Integrar secuencias de comandos dentro de un modelo

Es posible integrar secuencias de comandos de Python o de otros lenguajes en modelos convirtiendo la secuencia de comandos en una herramienta de secuencia de comandos y agregándola a un modelo. Se puede hacer uso de este método cuando se requiere lógica de secuencia de comandos de Python o de otro lenguaje para mejorar un modelo o acceder a un paquete o programa externo desde ArcGIS.

El punto de partida para integrar secuencias de comandos dentro de modelos es la propia secuencia de comandos. La secuencia de comandos se debe escribir de tal manera que se pueda integrar en el marco de geoprocesamiento. Para obtener más información, consulte Escribir una secuencia de comandos de Python.

Una vez que se ha escrito la secuencia de comandos, se puede crear y agregar una herramienta de secuencia de comandos a una caja de herramientas. Esta herramienta de secuencia de comandos se puede agregar a un modelo y utilizarse para añadir una nueva funcionalidad al modelo.

Aplicación de ejemplo

No existe ningún método integrado para trabajar con HTML en ArcGIS. Sin embargo, las secuencias de comandos de Python permiten acceder a métodos y funciones que se pueden utilizar para crear y modificar documentos HTML. Para integrar esta funcionalidad HTML con ArcGIS, integre una herramienta de secuencia de comandos de Python en un modelo.

El siguiente ejemplo realiza consultas espaciales y de atributo en una capa de parcelas y genera un informe HTML que detalla los atributos de una parcela y de parcelas circundantes especificadas por el usuario. El archivo HTML se genera dentro de una secuencia de comandos de Python que se ejecuta desde el modelo.

La secuencia de comandos de Python

La siguiente secuencia de comandos, tabletohtml.py, se utiliza para leer el contenido de una tabla de entrada y generar un informe HTML. El código de la secuencia de comandos se proporciona al final de este tema.

Secuencia de comandos de Python Tabla a HTML

Crear una herramienta de secuencia de comandos

Los siguientes pasos muestran cómo crear una herramienta de secuencia de comandos que ejecuta la secuencia de comandos tabletohtml.py. Para obtener más detalles sobre cómo crear herramientas de secuencia de comandos, consulte Recorrido rápido por la creación de herramientas de secuencia de comandos

Pasos:
  1. Haga clic con el botón derecho del ratón en una caja de herramientas y, a continuación, haga clic en Agregar > Secuencia de comandos.
    Agregar una nueva secuencia de comandos

    Se abrirá el asistente Agregar secuencia de comandos.

  2. Utilice el asistente Agregar secuencia de comandos para especificar propiedades generales de la secuencia de comandos.
    Propiedades generales de la secuencia de comandos
  3. En la siguiente página del asistente Agregar secuencia de comandos, especifique qué secuencia de comandos se ejecutará cuando se ejecute la herramienta de secuencia de comandos.
    Archivo fuente de la secuencia de comandos
  4. En la siguiente página del asistente Agregar secuencia de comandos, especifique las propiedades de los parámetros de la herramienta de secuencia de comandos. Esta herramienta de secuencia de comandos tiene dos parámetros: una tabla de entrada y un archivo HTML de salida. Estos parámetros también se han definido en tabletohtml.py.
    Configurar las propiedades de parámetro de la herramienta de secuencia de comandos
  5. Haga clic en Finalizar para agregar la herramienta de secuencia de comandos a la caja de herramientas.

Agregar la herramienta de secuencia de comandos a un modelo

Pasos:
  1. El informe de parcela del modelo realiza consultas espaciales y de atributo en una capa de parcelas. Agregue la herramienta de secuencia de comandos Tabla a HTML al modelo para agregar la funcionalidad de creación de HTML deseada.
    Agregar una herramienta de secuencia de comandos a un modelo
  2. Conecte la salida de la herramienta Seleccionar capa por ubicación como la entrada a la herramienta de secuencia de comandos y establezca la ruta de la salida de la herramienta de secuencia de comandos (la ruta del archivo HTML a generar). Además, cambie el nombre de la salida de la herramienta de secuencia de comandos a Informe y convierta la variable en un parámetro de modelo.
Modelo de ejemplo que utiliza una herramienta de secuencia de comandos
El modelo terminado, que contiene una herramienta de secuencia de comandos utilizada para generar un informe HTML
 import sys, string, os, arcgisscripting gp = arcgisscripting.create(9.3)  tablePath = gp.GetParameterAsText(0) filePath = gp.GetParameterAsText(1)  outfile = open(filePath, "w") fields = gp.ListFields(tablePath)  fieldNames = [] for field in fields:    if (field.type <> "Geometry" and field.type <> "BLOB"):        fieldNames.append(field.name) outfile.write("<table border=""1"">\n") outfile.write("<tr>\n")  for fieldName in fieldNames:     outfile.write("<th>" + fieldName + "</th>\n") outfile.write("</tr>\n")  cur = gp.SearchCursor(tablePath) row = cur.Next() while row:     outfile.write("<tr>\n")     for fieldName in fieldNames:         outfile.write("<td>" + str(row.getValue(fieldName)) + "</td>\n")     outfile.write("</tr>\n")      row = cur.Next()  del cur  outfile.write("</table>\n")  outfile.flush() outfile.close() 

7/11/2012