28 votos

¿Por qué aprender/usar cajas de Herramientas de Python más de secuencia de Comandos de Python Herramientas?

He escrito un par de cajas de Herramientas de Python (que son nuevos en ArcGIS 10.1), pero estoy todavía para decidir si/cuando debo escribir en lugar de secuencia de Comandos de Python Herramientas en un estándar del cuadro de herramientas.

Pensé que la Ayuda en Línea podría aclararme cuando se antepone a algún punto de los puntos con:

Una vez creadas, las herramientas en una caja de herramientas de Python proporcionar muchas ventajas

Sin embargo, las cinco ventajas enumeradas todos parecen ser más de no ser capaz de usar Python para escribir herramientas, y ninguno de ellos parece especificar una ventaja de cajas de Herramientas de Python más de secuencia de Comandos de Python Herramientas.

Las dos ventajas que puedo pensar son:

  • Ahora puedo escribir un "puro" herramienta de Python en una sola secuencia de comandos de Python sin tener que conectarlo a una por separado autor de diálogo con su Herramienta de Validación parecer él fue clavado, pero yo estoy feliz de ser pragmático más que pura en este sentido
  • Ahora puedo utilizar el código (Python o cualquier lenguaje capaz de escritura de archivos de texto) para automatizar la escritura de cajas de herramientas de Python, pero todavía tengo que venir a través de un requisito para hacer este

Estoy con vistas al caso convincente de que el led de Esri para proporcionar la caja de herramientas de Python capacidad y, si es así, ¿qué es?

38voto

Paul Puntos 555

Los dos son muy, muy cerca de la funcionalidad, pero no completamente equivalente.

Común a ambos

  • Incluye un conjunto de herramientas con un alias para la identificación
  • Puede llamar desde arcpy
  • Obtener una herramienta de Geoprocesamiento de diálogo (esencialmente una interfaz de usuario completa) gratis para cada herramienta
  • Puede mantener todo el código de Python en un archivo (incrustación herramienta de fuente en TBX, la celebración de toda la aplicación en un PYT) y distribuir a través de correo electrónico o unidades de red compartidas
  • Siempre se ejecutan en primer plano de configuración para las aplicaciones de escritorio. La configuración de "ejecutar Siempre en primer plano" dentro de ArcPy código?

Única para TBX archivos:

  • Puede incluir referencias al sistema de cajas de herramientas personalizadas COM herramientas y personalizado .Herramientas de redes
  • Modelo de Generador de herramientas puede ser incluido en la caja de herramientas
  • La documentación de la herramienta se almacena dentro de la .tbx archivo
  • Asistente fácil interfaz de usuario para la configuración de parámetros y hacer el código de validación
  • Ejecutar la secuencia de Comandos de Python en Proceso propiedades de la herramienta
  • Desventaja: formato binario Opaco, las nuevas versiones de archivos TBX necesitan ser explícitamente guardados en versiones anteriores a trabajar en las versiones anteriores del software, la interfaz de usuario puede ser un arma de doble filo ya que tienes que cambiar entre las páginas de propiedades para ver si usted ha omitido una configuración (tales como rutas relativas)

Única para cajas de Herramientas de Python:

  • Texto sin formato, cajas de herramientas pueden ser tratados como cualquier otro tipo de código (útil en entornos donde la buena de revisión de control se utilizan herramientas como usted puede rastrear la historia de su desarrollo -- mira cómo muchos proyectos en GitHub uso PYT sobre TBX.)
  • Tener más control sobre ciertos tipos de parámetros (es decir, usted puede hacer compuesta tipos de datos y definir el valor de mesas " schemata)
  • isLicensed propiedad se puede utilizar para deshabilitar una herramienta de si un producto ("ArcInfo") o extensión ("espacial") no está disponible.
  • La documentación de la herramienta se almacenan en archivos XML en la misma carpeta que el .pyt
  • Desventaja: No asistente para interfaz de usuario para la herramienta de configuración de parámetros, significativamente más andamio de código en Python, convierte a la caja de herramientas de desarrollo en más de una formales de desarrollo de software tarea más simple adición de una secuencia de comandos de implementación. La recarga de un pyt a los cambios de carga, mientras que el desarrollo puede ser lento si pyt es grande (esto se puede evitar poniendo herramientas en otros archivos e importar por lo que no necesitan ser re-compilado).

Hace un tiempo cuando yo estaba trabajando en mi primera docena PYT cajas de herramientas me puse nervioso en cuánto de una molestia que era la creación de un PYT , por primera vez, así que he desarrollado una herramienta llamada tbx2pyt. Va a tomar un TBX caja de herramientas, y convertirlo en un PYT con una pérdida mínima de código. De hecho, el PYT que los poderes que primero fue un TBX. Este puede ser un buen camino para la transición de las herramientas existentes para la caja de herramientas de Python formato, si así lo desean. Al menos, esto hace que sea posible establecer sus herramientas parámetros de uso de la interfaz de usuario antes de cambiar el código.

16voto

aditya Puntos 111

La sección de ayuda titulada la Comparación de la costumbre y cajas de herramientas de Python tiene una muy buena comparación de por qué podría elegir uno sobre el otro, aunque tengo curiosidad de escuchar el "mundo real" ventajas/desventajas de los experimentados en la creación de cajas de Herramientas de Python.

Una clara desventaja que he leído es la incapacidad para mezclar y coinciden con los modelos y secuencias de comandos en una caja de herramientas de Python, como usted puede en un estándar de la caja de herramientas Personalizada.

12voto

Greg Puntos 1756

Mi razón número uno por la inclinación hacia las cajas de herramientas de python es para el control de versiones y gestión de código fuente (ver la Aplicación de control de versión de ArcGIS Modelos), seguido muy de cerca por ser capaz de utilizar un editor de código/IDE con la finalización de pestaña, expresiones regulares, fragmento de bibliotecas, etc.

Sin embargo, como Ryan Dalton notas, al hacerlo se pierde la capacidad de utilizar el Modelo de Generador y de estilo antiguo Herramientas -- a menos que usted está dispuesto a ir a través del esfuerzo de la construcción del modelo como de costumbre y, a continuación, exportar a python y, a continuación, reescritura para encajar en el .pyt. (Si no esta echa un vistazo a las Directrices para la organización de cajas de Herramientas de Python (.pyt) en ArcGIS). En la actualidad, esta desventaja es tan grande, que aún no he embarcarse en el uso de cajas de herramientas de python en serio.

Si tienes cajas de herramientas existentes quieres convertir .pyt, usted puede encontrar Jason Scheirer del tbxtopyt parcial convertidor útil.

Como en el caso convincente?" parte de la pregunta: si usted ya tiene algún desarrollo de software chuletas, sí, definitivamente. Si como yo, eres de 3 piezas SIG Tech/Analista y 1 parte o menos pythonista, no tanto. (Al menos no todavía-yo realmente espero que esto binario uno o el otro de la naturaleza de los dos enfoque cambios en un futuro cercano versión).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X