Aprendiendo ArcPy?

Respuestas:

71

Esta pregunta se ha convertido a Community Wiki y wiki bloqueado porque es un ejemplo de una pregunta que busca una lista de respuestas y parece ser lo suficientemente popular como para protegerla del cierre. Debe tratarse como un caso especial y no debe verse como el tipo de pregunta que se recomienda en este, o en cualquier sitio de Stack Exchange, pero si desea contribuir con más contenido, no dude en hacerlo editando esta respuesta .


Mire las publicaciones aquí y en otros sitios web que usan scripts de Python e intente deconstruirlas y vea qué técnicas están utilizando los autores para llevar a cabo su tarea. Vale la pena revisar nuestras Preguntas frecuentes de autoensamblaje en ArcPy para este propósito.

Le resultará educativo tratar de resolver los problemas de otras personas. Tenemos una lista de autoensamblaje de preguntas sin respuesta en ArcPy para ayudarlo a encontrarlas.

Documentación de ArcGIS:

¡Lee los archivos de ayuda! El 90% de ArcPy es lo mismo que usar las herramientas de la GUI, solo que usted las está iniciando con Python. Todos los archivos de ayuda tienen un código Python de ejemplo en la parte inferior.

Libros en linea:

Cursos online:

Tutoriales:

Documentación de Python:

Presentaciones:

Libros de papel:

Comunidades de usuarios:

Blogs:

Código de muestra:

Herramientas / Entornos de desarrollo integrado (IDE) - No comercial:

Módulos / Marcos:

También vea estos consejos generales para los nuevos programadores de Python en esta respuesta a ¿Cómo exportar mxds a pdf usando ArcPy? .

blah238
fuente
1
Antigua pregunta, pero soy nuevo en ArcPy y pensé que agregaría lo que me ha ayudado recientemente. Esta serie de YouTube fue muy útil para mí, personalmente. Los videos son cortos, y los vi a todos en una noche a una velocidad 2x para tener una idea de cómo funciona ArcPy (no me molesté en hacer ningún ejercicio, solo vi los videos). [ youtube.com/playlist?list=PLO6KswO64zVu7S4bqQoHWR5516aCUEnda ]
AlexS1
También obtuve este libro. Es una introducción decente a buena y ciertamente fue útil para mí, pero definitivamente carece de profundidad y temas avanzados. Aún así, personalmente pensé que valía la pena por ~ $ 25 usados ​​(no pagaría más de ~ $ 35 por ello, pero esa es mi opinión). [ amazon.com/ArcPy-ArcGIS-Second-Silas-Toms/dp/1787282511/… ]
AlexS1
14

Le recomiendo leer Programming ArcGIS 10.1 con Python Cookbook .

ingrese la descripción de la imagen aquí

Desde mi propia experiencia, no puede aprender estrictamente el paquete del sitio arcpy sin eventualmente incorporar conceptos más grandes del lenguaje de programación Python. De hecho, primero traté de adoptar el enfoque al que está eludiendo, donde comencé a usar el paquete de sitio arcpy para automatizar procesos en ArcGIS. Sin embargo, rápidamente me encontré buscando en la documentación de Python buscando mejores enfoques para, por ejemplo, manipular rutas como con os.path.join(). También descubrí que había estado evitando bibliotecas de Python increíblemente poderosas como NumPy y SciPy al aceptar las alternativas de ESRI. En resumen, recomendaría los siguientes pasos para aprender los fundamentos de Python complementados por el paquete del sitio arcpy:

  1. Primero: ¡use un IDE como PythonWin o PyScripter para hacer todos sus scripts! A muchas personas les lleva demasiado tiempo darse cuenta de que pueden implementar y depurar scripts fuera de la ventana de Python de ArcGIS.
  2. Realice incluso las tareas más simples con Python. Por ejemplo, defina un espacio de trabajo y cree una geodatabase mediante programación. No comiences creando scripts complicados.
  3. Está bien hacer todas sus secuencias de comandos utilizando arcpy inicialmente; solo tenga en cuenta que existen métodos mejores y más eficientes para muchas tareas. Siempre busque una mejor alternativa con Python puro, si es necesario.
  4. Encuentre soluciones programáticas para consultas en este sitio. Esto definitivamente ayudará a completar sus habilidades, ya que lo expone a problemas fuera de su zona de confort.
  5. Finalmente, una vez que crea que tiene una buena comprensión de Python, tome un curso dirigido por un instructor de ESRI, como Introducción a los scripts de geoprocesamiento con Python . Sí, estos cursos son caros, pero son valiosos y realmente reforzarán lo que ya has aprendido. Simplemente no ingrese a uno de estos cursos sin una buena comprensión de los conceptos principales.
Aaron
fuente
6

A menudo entreno a personas en el uso de ArcMap y nuestro curso de capacitación presenta a las personas a Python y arcpy. ¡Me esfuerzo mucho para que la gente lea el archivo de Ayuda! ¿Qué pasa con la gente que no lee el archivo de ayuda, me vuelve loco?

Si abre el archivo de ayuda de cualquier herramienta de geoprocesamiento, siempre proporciona una muestra de código python usando esa herramienta. Esta es una excelente manera de aprender a interactuar con el módulo arcpy en un entorno Python.

Para un principiante, es gratis y está integrado en el archivo de ayuda de la aplicación. Como desea hacer cosas más sofisticadas, busque los recursos que se han recopilado en este hilo.

Hornbydd
fuente
3
Esta. Sí. Hay mucha documentación en el mundo de ArcGIS. La gente ha dedicado mucho tiempo a escribir esa documentación. Es un poco confuso para mí cuando las personas pasan por la molestia de elaborar una pregunta larga en Internet que obtiene una respuesta que es solo un enlace a la documentación cuando la persona podría haber usado un motor de búsqueda, escrito un número significativamente menor de palabras, y llegué a esa misma página de ayuda.
Jason Scheirer
3

Lo único que agregaría es construir algo en el generador de modelos y exportarlo a un script de Python para darle una idea de cómo encajan los diferentes componentes.

om_henners
fuente
77
Yo advertiría contra esto. Hay mucho que limpiar con este enfoque (el exportador inserta muchos nombres de variables extraños, extraños, etc., y algunas cosas simplemente no funcionan cuando se exporta desde ModelBuilder), y creo que el simple acto de escribir declaraciones y funciones te obliga a aprender de manera más efectiva que dejar que una herramienta lo haga por ti.
blah238
66
Una alternativa es hacer clic con el botón derecho en un resultado de geoprocesamiento y hacer clic en "Copiar como fragmento de Python" si solo desea obtener la sintaxis de una llamada de función (especialmente útil para cosas como las asignaciones de campo).
blah238
Sí, claro, no está mal si solo está uniendo un par de operaciones (un par de buffers seguidos de un clip tal vez), pero como usted dice, se pone feo rápidamente para los modelos más grandes. También me gusta la idea de copiar el script gp como un fragmento.
om_henners
No había pensado en eso para los mapeos de campo. Tendré que probar eso.
Jay Guarneri
1
+1 siempre es un buen truco, especialmente si necesita, por ejemplo, aprender a integrar la sintaxis de reclasificación en su secuencia de comandos.
Aaron