Como comparar esquemas de dois geodatabases de arquivos?

13

Temos um modelo de geodatabase, que enviamos aos nossos criadores de dados regionais. Eles atualizam esses bancos de dados geográficos e digitalizam todos os dados de sua região nas classes de características predefinidas.

Agora que obtivemos os bancos de dados geográficos de arquivos, descobrimos que muitas das classes de características foram modificadas. Talvez um campo possa ser adicionado ou removido. Em alguns casos, a própria classe Feature é excluída ou uma nova criada.

Gostaria de obter um relatório indicando quais classes de recurso e tabelas foram alteradas, bem como os diferentes campos nas tabelas e características comuns.

Eu já olhei para várias perguntas, como:

Mas as respostas dadas nestas perguntas não foram úteis.

Devdatta Tengshe
fonte
Não tenho certeza do protocolo aqui no SE com tópicos necroing, mas eu tinha uma pergunta relacionada à sua, Devdatta: Existe uma ferramenta que retira sua solução do suplemento de raio-X e resolve as diferenças entre os GeoDBs / XML?
Kyle Shepard
@KyleShepard O procedimento usual é fazer uma nova pergunta, para uma nova questão. Você pode vincular a uma pergunta antiga se ela contiver informações relacionadas. E para responder sua pergunta, não encontrei nada parecido. Talvez você possa fazer uma nova pergunta e alguém que encontrou algo possa responder.
Devdatta Tengshe

Respostas:

9

Existe um maravilhoso suplemento chamado raio-X para o ArcCatalog . Ele tem muitos recursos, mas o que acabamos usando foi a ferramenta 'Analyze Difference' no menu Ferramentas.

Ele encontra para você a diferença entre um Documento de área de trabalho Geodatabase e XML. Acabamos de exportar o esquema do nosso banco de dados de modelos para XML e comparamos os diferentes bancos de dados a ele.

Demora alguns segundos para mostrar um bom relatório com todas as classes e campos de recursos ausentes ou diferentes nos dois geodatabase.

Devdatta Tengshe
fonte
Isso parece ótimo. Funciona com 10.1?
Fezter
@Fezter: Este parece ser o único para 10.1: arcgis.com/home/item.html?id=e1e911d7d7374285b1ef03d06b3ee642
Devdatta Tengshe
7

Eu acho que escrever um script python seria o melhor para o que você está tentando descobrir. Abaixo está um fluxo de trabalho de script geral:

Primeiro compare o banco de dados geográfico 1 (geo1) com o geodatabase 2 (geo2)

  1. Pesquise / faça um loop pelo geo1 e obtenha o nome da classe de recurso (fc) 1 e procure o mesmo nome fc em outro geo2 (se o nome fc1 não puder ser encontrado no geo2, escreva o primeiro nome fc no arquivo de texto)
  2. Se a etapa 1 fc1 == nome fc2, listar os campos em fc1 e procurar campos em fc2, se o nome do campo fc1 não puder ser encontrado em fc2, escreva o nome do campo fc1 no arquivo de texto
  3. Em seguida, pesquise ou liste o domínio no geo1 e procure o mesmo nome de domínio no geo2, se o domínio geo1 == domínio geo2, obtenha o primeiro valor codificado do domínio 1 e veja se ele existe no domínio 2, caso contrário, escreva o nome do domínio geo1 ou valor codificado de domínio para arquivo de texto.

Segundo na comparação inversa geo2 para geo1

Siga as etapas 1 a 3 acima, mas na ordem inversa geo2 a geo1

Após a conclusão do script, verifique se há discrepâncias no arquivo de texto do resultado.

artwork21
fonte
3

Parece que você já tem uma boa resposta. Mas para quem quer entender seus esquemas de geodatabase, também posso recomendar o ArcGIS Diagrammer , um programa independente escrito por uma equipe da Esri.

O ArcGIS Diagrammer é uma ferramenta de produtividade para profissionais de GIS criar, editar ou analisar esquemas de geodatabase. O esquema é apresentado como gráficos editáveis ​​em um ambiente familiar aos usuários do Microsoft Visual Studio. Essencialmente, o ArcGIS Diagrammer é um editor visual para documentos de área de trabalho xml da ESRI que podem ser criados no ArcMap ou ArcCatalog.

Stephen Lead
fonte
para esclarecer, não exigem Visio - mas parece um pouco "familiar aos usuários do Visio", em que ele usou um layout similar
Stephen Chumbo
Sim você está certo. Parece que eu estava enganado.
Devdatta Tengshe 13/03/2013