¿Alguna diferencia de rendimiento entre la ventana de Python y la herramienta de script de Python?

9

¿Hay alguna diferencia en el rendimiento entre ejecutar un script de Python en la ventana de Python y ejecutarlo como una herramienta de script de Python desde la caja de herramientas de ArcGIS Desktop 10.0?

A veces necesito usar ArcPy y ejecutar ArcGIS. En mi experiencia reciente, puedo ejecutar el mismo script a través de la caja de herramientas y en la ventana de Python, y la caja de herramientas parece ser un poco más rápida.

Guindilla
fuente
Al usar secuencias de comandos independientes: no tiene que abrir Arcmap, lo que le ahorra tiempo y recursos (CPU y memoria). No puedo permitirme una computadora decente en este momento.
gm70560
La caja de herramientas tampoco puede tocar el documento de mapa ACTUAL. Debe apuntar a un mxd para hacer cualquier cosa con un mapa específico en una herramienta, donde puede usar arcpy.mapping.MapDocument ("ACTUAL") en la ventana de Python.
eseglem
3
@eseglem, definitivamente deberías poder usar la CURRENTpalabra clave para acceder al documento de mapa actual en una herramienta de secuencia de comandos, siempre que se ejecute en proceso.
blah238
1
@ gm70560 Cuando ejecuta una secuencia de comandos independiente, tiene que crear una especie de instancia de Arcmap, lo que lleva tiempo. Dentro de la ventana de Python que ya se inició.
Matthew Snape
2
import arcpyllevará mucho tiempo como un script independiente (o parte de una caja de herramientas), mientras que dentro de ArcMap ya forma parte del espacio de nombres de la ventana de Python.
Michael Markieta

Respuestas:

5

Tanto Michael Markieta como gm70560 son correctos. Si está ejecutando grandes tareas de geoprocesamiento, definitivamente lo haría a través de un script de python independiente, preferiblemente lanzado desde la línea de comandos y no desde un IDE. Para este tipo de tarea, la sobrecarga de importar ArcPy bien vale la pena.

Sin embargo, una tarea pequeña, especialmente una que requiere la intervención del usuario, generalmente es más rápida y más conveniente en ArcMap, a menos que tenga que abrir ArcMap específicamente para el propósito, en cuyo caso tiene la sobrecarga de iniciar ArcMap en sí más algún tiempo de inactividad para conectarse. todas sus bases de datos a las que se hace referencia en el MXD (que si están en una conexión de red lenta puede ser tedioso).

Del mismo modo, el procesamiento por lotes, incluso las tareas pequeñas, en mi opinión, se realiza mejor en una secuencia de comandos de Python independiente que a través de una caja de herramientas en ArcMap porque toma ese golpe de importación solo una vez y no tiene la sobrecarga de ArcMap.

Después de haber realizado una gran cantidad de geoprocesamiento automatizado a través de scripts de Python, por defecto los ejecutaría como procesos independientes porque me gusta la velocidad y flexibilidad adicionales. La mayoría de las tareas que se ejecutan más rápido en la caja de herramientas suelen ser lo suficientemente pequeñas como para haberlas eliminado en ModelBuilder sin molestarme en escribir ningún código.

MappaGnosis
fuente