Encontrando diferenças entre os shapefiles usando o ArcGIS for Desktop?

12

Todo mês, eu tenho que fazer o controle de qualidade / controle de qualidade de alguns dados de ruas de um município inteiro (mais de 47.000 registros). O primeiro passo é comparar os dois arquivos. Atualmente, estou usando uma ferramenta criada internamente via VBA há aproximadamente 5 anos. Ele funciona compara os dois arquivos e reporta as diferenças com base em alguns fatores (registros adicionados, registros excluídos, alterações de endereço, alterações de cidade, alterações de comprimento / vértices de segmentos). Em seguida, eu os exporto para shapefiles individuais. Além disso, a ferramenta funciona, ArcGIS 9.3mas não funciona mais emArcGIS 10.1

A ferramenta funciona muito bem, mas leva aproximadamente uma hora para ser concluída.

Esperamos começar a melhorar esta ferramenta para acelerar o desempenho. Eu olhei para uma variedade de métodos, incluindo o Compare Feature Toole Select by Location.

Ambas as ferramentas funcionam significativamente mais rápido, no entanto, elas não parecem capturar tudo o que eu preciso. O grande problema que tenho com o Compare Feature Toolé que não posso escolher em qual campo comparar. O padrão é ObjectID quando eu preciso comparar por Segment_ID. Não há uma opção para selecionar isso.

Alguém tem uma boa solução ou idéias sobre como obter uma comparação completa como eu descrevi?


Por alguma razão, o ArcGIS não está reconhecendo a associação que estou tentando, de acordo com a resposta de RyanDalton.

Mas

Seguindo o conselho de uma junção, descobri como encontrar os registros adicionados e as diferenças de registros excluídos nos dois arquivos:

  1. Associando o shapefile do Mês Anterior ao shapefile do Mês Atual através do campo Segment_ID
  2. Executando uma consulta de definição em que Segment_ID É NULL
  3. Exportando isso para um novo shapefile (Recursos Adicionados)

Em seguida, inverto as junções e encontro os Recursos Excluídos

Ainda trabalhando para encontrar as outras diferenças listadas e, em seguida, agrupá-las em um modelo.


Eu posso encontrar todos os registros que foram alterados executando os registros de seleção por localização de um dos conjuntos de dados que são idênticos ao outro conjunto de dados. Em seguida, alterno a seleção e ela fornece todos os registros que não são idênticos.

Vou colocar tudo em um modelo e espero que funcione tão bem.

Craig
fonte

Respostas:

11

Com o Compare Feature Tool, você deve escolher seu Segment_IDcampo como o campo de classificação na caixa de diálogo.

O campo [classificar] ou os campos [são] usados ​​para classificar registros na tabela base de entrada e na tabela de teste de entrada. Os registros são classificados em ordem crescente. A classificação por um campo comum nos Recursos da base de entrada e nos Recursos do teste de entrada garante que você esteja comparando a mesma linha de cada conjunto de dados de entrada.

Se você deseja obter o campo Segment_ID como parte da sua tabela de saída, tente associar a Compare Featuretabela de saída à sua fonte e , Test Tableem cf.Object_ID=tt.Object_IDseguida, exporte a tabela unida com seu Segment_ID.

Você pode facilmente colocar isso em um modelo para facilitar a repetibilidade.

RyanKDalton
fonte
Fiz isso, no entanto, a tabela criada por meio da ferramenta de comparação não inclui o campo Segment_ID (que é o identificador exclusivo). Em vez disso, apenas lista o objectID que realmente não me faz nenhum bem.
Craig
Atualizei minha resposta para refletir a entrada Segment_IDna sua tabela de saída.
RyanKDalton
adicionar a junção faz com que o ArcMap falhe sempre. De volta à prancheta.
Craig
1

Nas minhas experiências, o Feature Compare sempre usa o FID ou o ObjectID como base da comparação, mesmo se segment_id estiver selecionado como campo de classificação. Os FIDs do Shapefile são reciclados (reordenados), portanto, após algumas edições, muitos, se não todos, os FIDs são diferentes para suas geografias correspondentes. Eles terão, assim, um erro de comparação de recurso "verdadeiro". Se você usar um ObjectID do GeoDatabase ou GISquirrel, os IDs não serão reciclados e você poderá confiar nessa ferramenta. Você deve manter os bancos de dados alinhados durante o período de tempo para que os ObjectIds nunca sejam reordenados.

Independentemente da descrição do campo Classificar na ajuda da ferramenta GP, é MUITO enganosa. Essa ferramenta seria tremenda se a base de comparação pudesse ser o segmento_ID.

user14022
fonte