Analisando diferenças entre dois shapefiles para colocar os resultados em um novo shapefile?

9

Eu tenho dois arquivos de forma de polígono da mesma região de dois anos diferentes (1985 e 1997) e preciso analisar as diferenças entre os dois arquivos de forma, resultando em um terceiro arquivo de forma de polígono exibindo apenas diferenças.

Os shapefiles cobrem uma área do centro da cidade com prédios, parques, áreas seladas / não lacradas e áreas de água. Preciso descobrir, por exemplo, se um edifício foi des- / construído ou se um parque foi movido ou fechado ou coisas semelhantes. Quaisquer diferenças entre as formas.

Eu preciso que a saída esteja em um terceiro, novo shapefile. Existe uma maneira automatizada de conseguir isso?

Estou trabalhando com o geodatabase de arquivos de propriedade no ArcGIS 10.1, portanto prefiro soluções no ArcGIS. Mas se existe uma maneira fácil de fazer isso no QGIS, eu também gostaria.

Eu pensei que seria possível trabalhar com a análise de topologia no ArcGIS, mas não tenho muita certeza, por exemplo, de como comparar formas por atributos: cada forma tem um campo "tipo" na tabela de atributos e preciso comparar não apenas as formas mas os tipos dos polígonos.

Nota, Encontrando diferenças entre os shapefiles usando o ArcGIS for Desktop? Parece semelhante, mas estou procurando uma saída em um formato de arquivo em forma de polígono.

Este é um processo de detecção de alterações nos dados vetoriais (sem problemas de sensoriamento remoto). Existem alguns comentários legais nesta resposta, mas nenhuma solução.

Afr
fonte
11
Quando você diz diferença, você quer dizer a diferença em geometria, atributo ou ambos? Este é um processo de detecção de alterações?
Ryan Garnett
Sim, este é um processo de detecção de alterações. Primeiro, preciso das alterações na geometria, secundário, preciso de alterações nos atributos. Mas a geometria é mais importante, pois a saída deve ser visualizada de alguma forma.
Afr

Respostas:

2

Embora eu ache que a resposta de Ryan é o curso de ação mais razoável, você pode usar a Intersect Geoprocessing Tool usando suas classes de recurso como entrada.

A saída que você obtém conterá atributos de ambas as entradas. Você pode verificar os recursos com valores diferentes nos dois campos 'tipo'.

Existem algumas limitações para esse processo:

  • Em primeiro lugar, a ferramenta Intersect, como todas as ferramentas excessivas, pode operar apenas em uma quantidade limitada de vértices . Se você tiver muitos vértices em seus dados, será necessário agrupar seus dados e executar o processo em etapas.

  • Você encontrará muitos polígonos da tira na saída.

  • Isso requer que suas classes de recursos abranjam inteiramente sua área de interesse e que não haja lacunas.

Devdatta Tengshe
fonte
Isso faz o trabalho, obrigado! É uma solução bastante básica, mas é com isso que posso trabalhar.
Afr
6

Há algumas maneiras de fazer isto. Concluí isso no passado com ótimos resultados usando uma combinação de atributos e processamento raster. A premissa do processo é atribuir cada recurso com um valor de n (1, 2, 4, 8, 16, 32, 64, etc.). A atribuição desses valores garante que, ao subtrair a camada um (1985) da camada 2 (1997), você obtenha um valor único, que identifica para o que foi alterado. Por exemplo, se 1 = edifícios, 2 = parques, 4 = lacre / não selado e 8 = água; subtraindo os valores, não há como obter o mesmo valor. Ao adicionar esta coluna de valores, você desejará converter os polígonos em uma varredura, usando ArcGIS ou QGIS. Eu recomendo que você defina o tamanho do pixel de varredura para um valor pequeno (por exemplo: se os dados foram coletados das imagens do Quickbird, defina-os para o tamanho de pixel das imagens do Quickbird). O uso da Calculadora Raster (no ArcGIS ou QGIS) subtrai a Camada2 da Camada1. Isso resultará em Layer3, alterado para layer. Você pode converter esses dados novamente em uma camada de polígono para posterior análise GIS. Se você quiser mais informações ou detalhes, posso compartilhar um pouco mais com você.

Ryan Garnett
fonte
Essa é uma abordagem muito boa, mas não vou converter minhas formas em dados rasterizados e vice-versa, pois perderei muitas informações. De qualquer forma, isso é possível apenas com camadas vetoriais?
Afr
Você poderia fazer algo semelhante com os vetores, mas ele não usa a abordagem de valor. Você pode querer jogar com a ferramenta Diferença simétrica disponível no ArcGIS e QGIS. Não conheço uma abordagem baseada em vetores que imite a abordagem que descrevi.
22613 Ryan Garnett
seu approache me lembra usando operações bit a bit como descrito aqui blog.millermedeiros.com/...
geogeek
O ARCGIS 9.2 possui uma ferramenta de diferença simétrica. Eu não consigo encontrar. Qual versão do ARCGIS pode ser usada para analisar essa diferença simétrica?
Bandrush Barda
Eu acredito que você precisa de uma licença ArcInfo. Se você não tiver esse tipo de licença, poderá fazer o download do ETGeoWizards. Diferença simétrica é uma ferramenta disponível na guia Geoprocessamento. O QGIS também possui diferença simétrica nas ferramentas de vetores, que é gratuito.
Ryan Garnett
0

Para detectar alterações no ArcGIS, a partir de dois arquivos de polígono, use a operação de sobreposição (UNION). Isso fornece a matriz de transição, mostrando os detalhes das alterações (pode estar na cobertura do solo).

Ayele A.
fonte
Eu acho que isso é apenas uma variação da resposta aceita, mas com instruções menos detalhadas. Além disso, enquanto Union e Intersect são operações de sobreposição de polígonos, é o Intersect que eu usaria neste caso para minimizar o tamanho da saída e quaisquer conjuntos de dados intermediários.
PolyGeo