¿Cómo comparar esquemas de dos geodatabases de archivos?


13

Tenemos geodatabase de plantillas, que enviamos a nuestros creadores de datos regionales. Actualizan estas geodatabases y digitalizan todos los datos de su región en las clases de características predefinidas.

Ahora que tenemos las geodatabases de archivos, encontramos que a menudo muchas de las clases de características se han modificado. Tal vez se pueda agregar o eliminar un campo. En algunos casos, la clase de entidad en sí se elimina o se crea una nueva.

Me gustaría obtener un informe que indique qué clases de entidad y tablas se cambian, así como los diferentes campos en las tablas y clases de entidad comunes.

Ya he visto varias preguntas como:

Pero las respuestas dadas en estas preguntas no han sido útiles.


No estoy seguro del protocolo aquí en SE con temas necroing, pero tenía una pregunta relacionada con usted, Devdatta: ¿Existe una herramienta que tome su solución del complemento de rayos X y resuelva las diferencias entre los GeoDBs / XML?
Kyle Shepard

@KyleShepard El procedimiento habitual es hacer una nueva pregunta, para un nuevo problema. Puede vincular a una pregunta anterior si contiene información relacionada. Y para responder a su pregunta, no he encontrado nada de eso. Tal vez podría hacer una nueva pregunta, y alguien que haya encontrado algo la respondería.
Devdatta Tengshe

Respuestas:


9

Hay un maravilloso complemento llamado X-ray para ArcCatalog . Tiene muchas características, pero la que utilizamos fue la herramienta 'Analizar diferencia' del menú Herramientas.

Encuentra la diferencia entre una geodatabase y un documento de espacio de trabajo XML. Acabamos de exportar el esquema de nuestra Geodatabase de plantillas a XML y lo comparamos con las diferentes Geodatabases.

Apenas toma un par de segundos mostrar un informe agradable con todas las clases de entidad y campos que faltan o son diferentes en las dos geodatabase.


Esto se ve genial. ¿Funciona en 10.1?
Fezter


7

Creo que escribir una secuencia de comandos de Python sería lo mejor para lo que estás tratando de descubrir. A continuación se muestra un flujo de trabajo de script general:

Primero compare la geodatabase 1 (geo1) con la geodatabase 2 (geo2)

  1. Busque / recorra geo1 y obtenga el nombre de la clase de entidad (fc) 1 y busque el mismo nombre de fc en otra geo2 (si no se puede encontrar el nombre de fc1 en geo2, escriba el primer nombre de fc en el archivo de texto)
  2. Si paso 1 fc1 == nombre de fc2, enumere los campos en fc1 y busque los campos en fc2, si el nombre de campo fc1 no se puede encontrar en fc2, escriba el nombre del campo fc1 en el archivo de texto
  3. Luego, busque o enumere el dominio dentro de geo1 y luego busque el mismo nombre de dominio en geo2, si el dominio geo1 == dominio geo2 obtenga el primer valor codificado del dominio 1 y vea si existe en el dominio 2, si no, escriba el nombre del dominio geo1 o valor codificado de dominio al archivo de texto.

Segundo en reversa, compara geo2 con geo1

Siga los pasos 1-3 anteriores pero en orden inverso geo2 a geo1

Después de que el script esté hecho, inspeccione el archivo de texto de resultados para detectar posibles discrepancias.


3

Parece que ya tienes una buena respuesta. Pero para cualquier persona que esté buscando comprender sus esquemas de geodatabase, también puedo recomendar ArcGIS Diagrammer , un programa independiente escrito por uno del equipo de Esri.

ArcGIS Diagrammer es una herramienta de productividad para profesionales de SIG para crear, editar o analizar esquemas de geodatabase. El esquema se presenta como gráficos editables en un entorno familiar para los usuarios de Microsoft Visual Studio. Esencialmente ArcGIS Diagrammer es un editor visual para los documentos del espacio de trabajo xml de ESRI que se pueden crear en ArcMap o ArcCatalog.


para aclarar, no requiere Visio, pero parece un poco "familiar para los usuarios de Visio" en el sentido de que ha utilizado un diseño similar
Stephen Lead el

Sí, tiene usted razón. Parece que me equivoqué.
Devdatta Tengshe
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.