Aplicar el control de versión a los modelos de ArcGIS

14

Control de versión es una herramienta indispensable para el desarrollo de software, lo que permite que uno de forma confiable y retrocedió limpiamente en el tiempo hasta la última vez que X hizo el trabajo exactamente bien, o para ver qué cambió entre entonces y ahora, generalmente se usa cuando se trata de averiguar por qué X ya no funciona exactamente bien.

Sin embargo, todas las herramientas que conozco para este trabajo solo en archivos de texto sin formato. Cajas de herramientas (las estándar, no las cajas de herramientas de python introducido en 10.1), y por lo tanto sus modelos, son binarios. ¿Alguien tiene un método viable para llevar el control de versiones?

Nota: versioning es diferente de backup . Hay muchos métodos simples para crear instantáneas de archivos para una fecha / hora en particular: copia de seguridad de Windows, versiones anteriores , xcopy /s d:\foobar\ x:\foobar_%date% , zip stuff_%date%.zip stuff\* , y así sucesivamente.

Aplicar una herramienta como git , fósil , mercurial , subversion , o ... a un archivo binario es un paso mejor que usando xcopy o zip tanto como se pueda agregar un mensaje de confirmación, "El modelo foobar% date% ahora sobrescribe los resultados anteriores solo si Baz no existe" , pero sigue siendo anémico en comparación con lo que es igual. conjunto de herramientas puede hacer aplicado a archivos de texto: por ejemplo, muéstrame exactamente lo que cambió entre el año pasado y hoy .

    
pregunta matt wilkie 22.11.2010 - 21:49

5 respuestas

6

Actualmente tengo el flujo de trabajo de ArcCatalog: abriendo toolbox > seleccionando modelo > editando > archivo > exportar > a python , cambie a la herramienta SCM > cambios de actualización > confirmar cambios (ingrese el comentario de registro) .

Es engorroso así que No lo hago tanto y, por lo tanto, pierdo muchos de los beneficios de las versiones.

    
respondido por el matt wilkie 22.11.2010 - 21:49
8

Todos los programas de control de versiones principales, ya sean centrales de control de versiones como SVN o soluciones distribuidas como Git, Mercurial, Bazaar, etc., permiten el almacenamiento de archivos binarios. Todos son bastante efectivos tanto en términos de rendimiento como en términos de espacio ocupado.

La inspección de las diferencias entre las revisiones / versiones de un archivo es, por supuesto, una historia diferente. No hay mucho que pueda hacer cuando quiera comparar modelos de ArcGIS, que de hecho son binarios. No conozco ninguna herramienta de diferencias para los modelos, dudo que haya alguna, ya que la mayoría de las personas no necesitan esta funcionalidad específica.

    
respondido por el Petr Krebs 22.11.2010 - 22:11
6

ModelBuilder es antiguo, torpe y no está recibiendo actualizaciones significativas con ArcGIS Pro, si este tweet es un indicio . Nunca he sido un gran fanático (aunque a regañadientes todavía lo uso cuando tengo que hacerlo), por lo que podría considerar esta respuesta como un paso al margen de la pregunta y una recomendación para mirar alternativas .

FME es posiblemente la alternativa más obvia de ModelBuilder, ya que tiene una IU de diagrama de flujo similar. Una ventaja importante es que sus documentos están en formato de texto simple, por lo que pueden diferir (aunque a menudo hay muchos cruceros autogenerados sin sentido que debes aprender a ignorar). Sin embargo, es un software comercial, por lo que su costo puede estar fuera del alcance de algunos.

Otros con los que estoy menos familiarizado incluyen Orfeo Toolbox , Whitebox Geospatial Analysis Tools , y modelador gráfico de QGIS (basado en SEXTANTE ). Todos estos son entornos de modelado de código abierto con GUIs.

Un gran impulso que he observado en GIS y conferencias de datos abiertos en los últimos años es hacia la idea de "investigación reproducible", es decir, datos y procesos que otros pueden compartir y reproducir fácilmente. Eso a menudo significa utilizar formatos de datos abiertos, software de código abierto y repositorios compartidos. Python y R son muy populares para esto.

Pensé que la presentación de Dharhas Pothina sobre Python y GIS a principios de este año fue un buen argumento para esto. Estoy totalmente de acuerdo en que confiar en una GUI es perjudicial para la reproducibilidad. Con el código, siempre que esté familiarizado con el idioma, puede escanearlo rápidamente y averiguar qué está pasando, mientras que con una GUI debe hacer clic y desplazarse por muchas ventanas diferentes, a menudo anidadas unas dentro de otras. , para llegar a los valores y configuraciones.

Ciertamente, hay una compensación aquí, pero en mi opinión, cualquier persona que realice un trabajo serio (investigación científica, formulación de políticas, etc.) debe utilizar herramientas que faciliten la reproducibilidad.

Lamento que esto no responda a tu pregunta directamente (aunque no creo que haya una respuesta fácil).

    
respondido por el blah238 02.12.2014 - 00:03
3

La introducción de las cajas de herramientas de Python en ArcGIS 10.1 para escritorio invalida su declaración de cuatro años de que todos :

  

Las cajas de herramientas, y por lo tanto sus modelos, son binarios.

Las cajas de herramientas estándar son binarias, pero las cajas de herramientas de Python (* .pyt) son archivos de texto.

En consecuencia, creo que las cajas de herramientas de Python deberían considerarse si el control de versión del código fuente supera el requisito de una GUI de construcción de modelo.

Está al tanto de esto por su respuesta en ¿Por qué aprender / usar Python Toolboxes sobre Python Script Tools? pero pensé que debería incluir esto como un responda aquí para que la opción de usar las cajas de herramientas de Python (para obtener un fácil acceso al control de versiones) en lugar de las cajas de herramientas estándar no sea pasada por alto por los futuros lectores de esta Q & A.

    
respondido por el PolyGeo 25.11.2014 - 22:46
0

De muchas maneras, estoy realmente contento ESRI no revisó todo el Marco de Geoprocesamiento y Modelbuilder con la transición a ArcGIS Pro. Hay muchas organizaciones (de investigación) que invirtieron fuertemente en la construcción de modelos personalizados gigantes que sin duda necesitarían una revisión completa si ESRI hubiera roto la compatibilidad.

Al igual que con la transición a Python / Geoprocesamiento desde el fondo de las macros Arc / Info AML, esto sin duda significaría un impacto gigante y muchas personas en pérdida. Incluso unos 5 a 8 años después del primer lanzamiento de ArcGIS, todavía había investigadores y organizaciones gubernamentales que ocasionalmente se referían a los modelos de AML en foros como este, que aún no habían podido convertir a Python, debido al tiempo, dinero o otras restricciones. Esto solo ilustra el impacto potencial de tal transición, que sin duda sería enorme.

Estoy de acuerdo en que ModelBuilder puede ser "torpe" a veces si no lo conoces bien, pero desde que empecé a aprender Python y empecé a entender la programación de Validación de Herramientas ( enlace ), gran parte del" dolor "se ha liberado. Ahora entiendo mejor algunos de los mensajes de error "crípticos" que puede generar la validación de la herramienta, y lo dejo perdido en cuanto a qué parte del modelo está rota, y ahora puedo corregirlos o prevenirlos de manera más efectiva al escribir el código de validación de la herramienta correspondiente. . Esto es especialmente valioso cuando se "integran" cajas de herramientas / modelos que no son de Python con scripts de Python.

Un deseo, aunque todavía lo tengo, y eso haría la vida con ModelBuilder mucho más fácil, es si la validación automática de herramientas resaltara las herramientas y abriera automáticamente los modelos que causan las advertencias o errores relacionados. a las variables. Como alternativa, como mínimo, las listas de errores y advertencias que aparecen una vez que hace clic en "Aceptar" en un modelo no válido, deben incluir el nombre exacto de la herramienta y el nombre del modelo, donde reside la herramienta que no es válida. Si tiene muchos modelos anidados, encontrar la herramienta que causó un error de validación en particular puede ser tedioso a veces con solo una lista de errores que no incluye la herramienta o el nombre (sub) del modelo, sino solo el nombre de la variable no válida. En realidad, no entiendo por qué ESRI no incluyó la herramienta y el nombre del modelo en el listado, parece una solución fácil para este problema.

También sería útil un tipo de funcionalidad de "Búsqueda", para encontrar herramientas por nombre como se define en los modelos.

    
respondido por el Marco_B 06.04.2015 - 12:40

Lea otras preguntas en las etiquetas