Soy nuevo en Python scripting en ArcGIS, pero no soy nuevo en ModelBuilder.
Me gustaría conocer los beneficios de Python vs ModelBuilder.
¿Cuándo deberíamos escribir el script Python para la automatización SIG en lugar de usar ModelBuilder?
¿Cuáles son las capacidades de automatización de Python que no podemos encontrar en ModelBuilder?
fuente
Si está trabajando únicamente dentro de los límites de ArcGIS, hay algunas consideraciones que consideraría al intentar determinar el enfoque a seguir.
Dadas esas consideraciones:
Probablemente no haya una respuesta a "cuál es mejor" para uso personal, pero si está buscando posibilidades de empleo a largo plazo, al aprender Python se distinguirá de aquellos que solo saben cómo usar las herramientas preprogramadas, o solo sé cómo usar ModelBuilder. También tiene la capacidad de salir de los límites de Python for ArcGIS (ArcPy) y comenzar a automatizar muchas más tareas y proyectos mediante el uso de otras bibliotecas GIS de propiedad y de código abierto, así como muchas bibliotecas no SIG (es decir, base de datos , manipulación de imágenes, estadísticas, etc.).
fuente
Model Builder es un lenguaje de programación visual excelente y fácil de aprender y una buena entrada a la programación SIG en general. Pero en algunas cosas, Python puede hacer más.
Un ejemplo es la integración de bibliotecas SIS no ESRI. Casi todos los SIG de código abierto se pueden abordar también a través de Python (por ejemplo , GRASS , Sextante , QGIS , SAGA ). Esto me ayudó mucho, porque solo tengo una licencia ArcView. Por lo tanto, cada vez que no puedo usar una determinada herramienta de geoprocesamiento en ArcGIS, miro qué otras opciones están disponibles en Open Source GIS. Luego tomo estas herramientas OpenSource y las combino con las herramientas de ArcGIS en un script de Python más grande o las integro en ModelBuilder a través de un script de Python más pequeño.
Estoy seguro de que otros miembros pueden nombrar más ventajas.
fuente
Cuando usa Python y ArcGIS, obtiene toda la funcionalidad de Python además de lo que ya tenía en ArcGIS. Si necesita este tipo de poder y flexibilidad depende de sus deseos. Además, conocer y aprovechar realmente un lenguaje de programación como Python lleva tiempo. Si esta inversión vale la pena, depende de usted. Sin embargo, para el procesamiento serio de datos, un lenguaje de script real es una muy buena adición a su arsenal.
Además de cualquier funcionalidad que ModelBuilder pueda perder, también hay una discusión más fundamental. En general, los scripts son mucho más adecuados para crear flujos de trabajo complejos. El código se procesa de arriba a abajo y las tareas complejas se pueden subdividir en subtareas más pequeñas utilizando, por ejemplo, funciones. u objetos Una herramienta gráfica como el generador de modelos tiende a convertirse en un gran espagueti.
fuente
Soy parcial en la creación de scripts de Python. Es más divertido escribir código que perder el tiempo conectando líneas a cuadros y cosas así, al menos para mí.
Lo realmente bueno de las secuencias de comandos de Python es que puede programar sus secuencias de comandos para que se ejecuten en un momento que sea conveniente para usted. Si tiene un script que tarda un tiempo en completarse o necesita ejecutarse fuera del horario comercial habitual, esto es realmente conveniente. Puede ver un ejemplo de cómo programar un script aquí .
Y como menciona @Aaron, puede configurar fácilmente el bucle en un script de Python.
Si solo está comenzando con las secuencias de comandos de Python, es posible que desee crear un modelo con Model Builder y exportarlo como una secuencia de comandos de Python. A veces hago esto si tengo problemas para entender cómo usar varias herramientas en un script. Podría ayudarlo a tener una idea de cómo armar scripts.
fuente
He descubierto que parece que me quedo estancado sin una solución más con el generador de modelos que con las secuencias de comandos de Python. La naturaleza un tanto `` caja negra '' del creador de modelos para mí hace que sea más difícil encontrar dónde se encuentra el problema.
También he descubierto que puedo encontrar mucha más ayuda en Python. Tiendo a encontrar muchos hilos sin salida y temas sobre el generador de modelos. También hay menos ejemplos para seguir, donde al igual que con Python, probablemente pueda encontrar pequeños fragmentos de la mayoría de las partes de cualquier script que esté escribiendo.
fuente