Dado:
- una geodatabase A que contiene 100 conjuntos de datos con nombre de un 1 .. un 100
- una geodatabase B que contiene 100 conjuntos de datos llamados b 1 .. b 100
Quiero determinar mediante programación (*) para cada par de conjunto de datos ( a i , b i ) si tienen contenido idéntico. Como estoy comparando 100 pares, necesito un método de comparación eficiente. Idealmente, toda la comparación tomaría solo unos segundos.
(*) Nota: menciono el término "programático", no porque esté buscando ejemplos de código (aunque con mucho gusto los aceptaría), sino para enfatizar que estoy buscando un método de comparación muy rápido, que nunca ser posible al comparar 100 pares de conjuntos de datos manualmente.
Estoy planeando implementar este método de comparación, así que lo que esencialmente estoy buscando es un algoritmo y no una herramienta lista para usar (a menos que sea cuando sea de código abierto).
Soy consciente de que probablemente pregunte lo imposible, ya que esto requeriría comparar el contenido completo de los conjuntos de datos (quizás con las herramientas en el conjunto de herramientas Gestión de datos → Comparación de datos ); o al menos comparar hashes / resúmenes de conjuntos de datos, pero generar resúmenes también requeriría revisar primero todos los datos de los conjuntos de datos.
Por lo tanto, mi mejor enfoque hasta ahora es el siguiente:
Determine primero qué pares de conjuntos de datos ( a i , b i ) no pueden tener un contenido idéntico.
Realice una comparación de datos completa solo para los pares de conjuntos de datos restantes.
Mis preguntas:
¿ArcGIS puede calcular automáticamente algún tipo de resumen de conjunto de datos que podría consultar? ¿Si es así, cómo?
(No tengo conocimiento de nada de ese tipo, así que espero que la respuesta sea "no". Por favor, demuéstrame que estoy equivocado).
¿Cuáles son algunas formas muy eficientes y confiables de determinar si dos conjuntos de datos no pueden tener contenido idéntico?
(Hasta ahora he considerado comparar marcas de tiempo de modificación, aunque no sé qué tan confiables son, y comparar los esquemas de los conjuntos de datos. ¿Qué tan confiables son las marcas de tiempo en una geodatabase de ArcGIS? ¿Hay otras características de conjunto de datos que podrían servir para este propósito?)
Respuestas:
Puede crear un campo en la tabla de atributos de la función y calcular un hash, por ejemplo , MD5 , en la función utilizando IEditEvents o una extensión de clase.
El hash se calcularía en una representación de cadena de la característica (ya sea json o xml), donde WKT podría usarse para el campo de forma.
fuente
Miraría a los rayos X para comparar esquemas y luego a Comparación de características, Comparación de tablas, etc. del conjunto de herramientas Comparación de datos para comparar los contenidos cuando los esquemas coincidan. Si ya ha intentado este enfoque, quizás nos diga dónde puede fallar este enfoque.
fuente