Configurar los parámetros de la herramienta de secuencia de comandos

Los parámetros de una herramienta de secuencia de comandos se pueden establecer mediante el asistente Agregar secuencia de comandos. También puede agregar, eliminar y modificar los parámetros de una herramienta de secuencia de comandos en el cuadro de diálogo Propiedades de la herramienta. Para acceder a las propiedades de la herramienta de secuencia de comandos, haga clic con el botón derecho del ratón en la herramienta, después haga clic en Propiedades y en la pestaña Parámetros.

Ya sea que esté configurando los parámetros en el asistente Agregar secuencia de comandos o en el cuadro de diálogo Propiedades, los procedimientos (como se describe aquí) son iguales.

Para agregar un parámetro nuevo, haga clic en la primera celda vacía de la columna Nombre de visualización y escriba el nombre del parámetro. Este es el nombre que se visualizará en el cuadro de diálogo de la herramienta y puede contener espacios. El nombre del parámetro para la sintaxis de Python será el nombre de visualización con los espacios reemplazados por guiones bajos (_).

Crear un parámetro nuevo

Después de escribir el nombre de visualización del parámetro, seleccione un tipo de datos para el parámetro haciendo clic en la celda Tipo de Datos, como se muestra a continuación.

Definir el tipo de datos de un parámetro

Cada parámetro tiene propiedades adicionales que usted puede configurar, como se muestra a continuación.

Propiedades de los parámetros

Propiedad

Descripción

Tipo

Puede ser Requerido, Opcional o Derivado. Derivado significa que el usuario de la herramienta no introduce un valor para el parámetro. Los tipos derivados siempre son parámetros de salida.

Dirección

Puede ser Entrada o Salida. Si el tipo de parámetro es Derivado, la dirección siempre es igual a Salida.

Valor múltiple

Valor múltiple es Sí, si desea una lista de valores; No, si desea un valor simple.

Predeterminado o Esquema

El valor predeterminado del parámetro. Cuando el tipo de datos del parámetro es un conjunto de entidades o un conjunto de registros, Predeterminado se reemplaza por Esquema.

Entorno

Si el valor predeterminado del parámetro proviene de una configuración del entorno, esta propiedad contiene el nombre de la configuración del entorno.

Filtro

Si desea que sólo se introduzcan para un parámetro algunos datasets o valores en particular, puede especificar un filtro. Existen seis tipos de filtros y el tipo de filtro que puede seleccionar depende del tipo de datos del parámetro.

Obtenido de

Esta propiedad se aplica a los tipos de datos de los parámetros de entrada y de salida derivada. Para los parámetros de salida derivada, se puede establecer Obtenido de como el parámetro que contiene la definición de la salida. Para los parámetros de entrada, se establece Obtenido de como el parámetro que contiene la información necesaria para la entrada.

Simbología

Esta propiedad sólo se aplica a los parámetros de salida. El valor es la ubicación de un archivo de capa (.lyr) que contiene la simbología para visualizar la salida.

Propiedades de los parámetros

Tipo

Existen tres opciones de Tipo:

NotaNota:

Si la herramienta de secuencia de comandos tiene salida derivada, deberá establecer el valor del parámetro de salida derivada en la secuencia de comandos con la función SetParameterAsText().

Todas las herramientas deberían tener salidas

Todas las herramientas de secuencia de comandos deberían tener parámetros de salida para utilizarlas en ModelBuilder. La idea fundamental de ModelBuilder es conectar la salida de las herramientas con las entradas de otras herramientas y, si la herramienta de secuencia de comandos no tiene un parámetro de salida, no será muy útil en ModelBuilder. Como mínimo puede obtener un valor booleano que contenga verdadero si la herramienta se completó correctamente, y de lo contrario, falso.

Salida derivada que modifica un parámetro de entrada

La ilustración siguiente muestra una herramienta de secuencia de comandos hipotética, Actualizar valores de campo, que se utiliza en ModelBuilder. (A fines de este ejemplo, una organización utiliza Actualizar valores de campo para examinar el contenido de un conjunto de campos de texto conocidos y corregir los errores ortográficos y de mayúsculas). Actualizar valores de campo no produce una nueva clase de entidad, pero sí actualiza los valores de campo en la clase de entidad de entrada.

Herramienta sin salida en ModelBuilder

En la ilustración siguiente se muestra la definición de parámetro correcta de Actualizar valores de campo, donde Actualizar valores de campo tiene un parámetro de clase de entidad de salida en el cual el Tipo se encuentra establecido como Derivado. Debido a que para esta herramienta, la salida es la misma que la entrada, Obtenido de se establece como el parámetro de entrada. (Obtenido de utiliza el nombre del parámetro, que es el nombre de visualización en el que los espacios se reemplazan por guiones bajos).

Herramienta con salida derivada

Salida derivada que no modifica un parámetro de entrada

La ilustración siguiente muestra una herramienta diferente, en la cual la salida es derivada, pero no se obtiene de ningún parámetro de entrada (Obtenido de se deja en blanco). En esta situación, la herramienta hipotética Publicar datos en repositorio copia la clase de entidad de entrada en un espacio de trabajo conocido (el repositorio), y a continuación agrega y completa un campo de fecha y hora.

Datos derivados de salida que no se obtienen de un parámetro de entrada

Establecer el valor de salida

En el modelo que se ilustra a continuación, tenga en cuenta que la herramienta Copiar entidades se encuentra vacía (en color blanco en lugar de amarillo). Esto se debe a que la variable Entidades de salida, aunque se encuentre en color verde, no contiene un valor; no se conocen los nombres y la ubicación de las entidades de salida hasta que se ejecuta la herramienta. En este caso, la secuencia de comandos debe especificar el valor de salida utilizando la función de arcpy SetParameterAsText(). La función SetParameterAsText() establecerá el valor de un parámetro de salida mediante una cadena de texto o un objeto tal como una tabla de valores.

Se puede suministrar un valor para la salida antes de ejecutar la herramienta, si se suministra un código de validación de la herramienta.

Más información sobre validación de herramientas

Este es un ejemplo de código que utiliza SetParameterAsText(), basado en el trabajo hecho por la secuencia de comandos Publicar datos en repositorio descrita anteriormente.

 # Post data to Repository - copies the input features to the #  current repository, adding and populating a date #  field #  # Import system modules and arcpy # import sys import string import os import arcpy  # Get the value of the input parameter # inFC = arcpy.GetParameterAsText(0)  # Create the pathname to the output feature class. #  1) get the name of the feature class #  2) remove any file extension, such as ".shp" #     (we're copying to a geodatabase which doesn't #      allow file extensions, like .shp) # fcName = os.path.basename(inFC)  fcName = os.path.splitext(fcName)[0] repository = "e:/repository/featuredata.gdb" outFC = os.path.join(repository, fcName)  # Copy the input to the output, add the date field # arcpy.CopyFeatures_management(inFC, outFC) arcpy.AddField_management(outFC, "PostDate", "DATE")  # Create a locale-specific string containing the current date  #  and time, then calculate it into the PostDate field, adding #  the required quotes around the postTime string. # import time postTime = time.strftime("%x %X") arcpy.AddMessage(postTime) qPostTime = "\"" + postTime + "\"" arcpy.CalculateField_management(outFC, "PostDate", qPostTime)  # Set output parameter # arcpy.SetParameterAsText(1, outFC) 

Valores de salida en lugar de datos

Los ejemplos anteriores muestran salidas de datasets derivados. Algunas herramientas, sin embargo, obtienen valores en lugar de datasets, como la herramienta Obtener contador, que obtiene valores de un tipo de datos largo que contiene la cantidad de filas de una tabla. Es común obtener valores como salida en lugar de datasets. Puede tener secuencias de comando propias que realicen análisis de varios datasets relacionados y sólo obtener como salida un par de números, o un valor booleano de aprobación.

Los parámetros de salida que contienen tipos de datos de valor (como largo o booleano) son siempre Derivado y no Requerido.

Dirección

Esta propiedad define si el parámetro es una entrada de la herramienta o una salida de la herramienta.

Si el tipo de parámetro es Derivado, entonces la dirección del parámetro se establecerá automáticamente como salida.

Valor múltiple

Si desea que un parámetro pueda manejar una lista de valores en lugar de un solo valor, establezca la propiedad Valor múltiple como Sí.

En los cuadros de diálogo de las herramientas, hay dos controles de interfaz de usuario distintos que se utilizan para los valores múltiples, como se muestra a continuación.

A continuación se ilustran ambos tipos de controles de valor múltiple.

Controles de valor múltiple

Los valores múltiples se transmiten a la secuencia de comandos como cadenas de texto delimitadas por punto y coma. Según la ilustración anterior, si el usuario seleccionó todos los tipos de carreteras, el valor del parámetro será Interestatales;Carreteras primarias;Carreteras secundarias. Para romper una cadena de texto delimitada, utilice el método split() de Python, tal como se muestra en el siguiente ejemplo de código.

roadTypes = arcpy.GetParameterAsText(0) roadTypeList = roadTypes.split(";")  # Process each road type # for rType in roadTypeList:   # rType contains an individual road type string (ex: "Interstates")   #    arcpy.AddMessage("Processing: " + rType)

Por defecto

El valor predeterminado será el contenido del parámetro cuando se abra el cuadro de diálogo de la herramienta de la secuencia de comandos. También es el valor que se utilizará si se introduce un # para el parámetro en la secuencia de comandos. Si no especifica un valor para la propiedad Predeterminado, el valor del parámetro estará vacío cuando se abra el cuadro de diálogo de la secuencia de comandos. Si especifica un valor para esta propiedad, la propiedad Entorno se inhabilitará. Para habilitar la propiedad Entorno, borre la propiedad Predeterminado.

Esquema

Cuando el tipo de datos de parámetros de entrada es un Conjunto de entidades o un Conjunto de registros, debe especificar la ubicación del esquema que define los campos y el tipo de geometría de las entidades que se introducirán. Un esquema es una clase de entidad, tabla o archivo de capa (.lyr).

Acerca de Conjuntos de entidades y de registros

Los tipos de datos Conjuntos de entidades y de registros permiten la entrada de datos interactiva. Un Conjunto de entidades le permite al usuario de la secuencia de comandos crear entidades de manera interactiva en ArcMap haciendo clic en el mapa. El Conjunto de registros le permite al usuario crear filas en una cuadrícula de tabla simple de manera interactiva.

Conjuntos de entidades y de registros

Si desea obtener más información sobre los conjuntos de entidades y de registros, visite los siguientes vínculos.

Tema

Descripción

FeatureSets y RecordSets

El tema describe cómo utilizar los objetos FeatureSet y RecordSet en Python.

Utilizar los controles interactivos de entrada de registro y de entidad

El tema describe cómo utilizar los controles de los Conjuntos de entidades y de registros.

Temas sobre Conjuntos de entidades y de registros

Entorno

Puede establecer el valor predeterminado de un parámetro en el valor de una configuración del entorno haciendo clic con el botón derecho del ratón en la celda junto a Entorno y seleccionando el nombre de la configuración del entorno. Una vez que haya seleccionado una configuración del entorno, la propiedad Predeterminado será ignorada. Para utilizar la propiedad Predeterminado en lugar de la propiedad Entorno, borre la propiedad Entorno seleccionando la entrada vacía de la lista desplegable.

Seleccionar una configuración del entorno

Filtro

Si desea que sólo se introduzcan para un parámetro algunos tipos de dataset o valores, puede especificar un filtro. Haga clic en la celda que se encuentra junto a Filtro y seleccione el filtro adecuado en la lista desplegable. Se abre un cuadro de diálogo y se especifican los valores para el filtro. Existen seis tipos de filtros y el tipo de filtro que puede seleccionar depende del tipo de datos del parámetro.

Tipo de filtro

Valores

Lista de valores

Una lista de valores de cadena de texto o numéricos. Utilizado con los tipos de datos de parámetros de cadena de texto, largo, doble y booleano.

Rango

Un valor mínimo y máximo. Utilizado con los tipos de datos largos y dobles.

Clase de entidad

Una lista de tipos de clase de entidad permitidos: "Point", "Multipoint", "Polyline", "Polygon", "MultiPatch", "Sphere", "Annotation", "Dimension". Se puede proporcionar más de un valor del filtro.

Archivo

Una lista de sufijos de archivos. Ejemplo: "txt; e00; ditamap".

Campo

Una lista de tipos de campos permitidos: "Short", "Long", "Single", "Double", "Text", "Date", "OID", "Geometry", "Blob", "Raster", "GUID", "GlobalID", "XML". Se puede proporcionar más de un valor del filtro.

Espacio de trabajo

Una lista de tipos de espacios de trabajo permitidos: "Sistema de archivos", "Base de datos local", o "Base de datos remota". Se puede proporcionar más de un valor.

Tipo y valores de filtro

Por lo general, existe sólo un tipo de filtros que puede seleccionar. Sólo largo y dobles tienen dos opciones, Lista de valores y Rango.

También puede establecer filtros de forma programada suministrando la lógica de validación.

Más información sobre lógica de validación

Lista de valores

El filtro de la Lista de valores es muy útil para suministrar un conjunto de palabras clave. Muchas herramientas tienen un conjunto de palabras clave, como el parámetro de tipo de campo que se encuentra en Agregar campo, o el parámetro JoinAttributes de muchas de las herramientas del conjunto de herramientas Superposición.

Se puede utilizar un filtro de la lista de valores para los tipos de datos largo y doble. Para estos tipos, introduzca los valores numéricos permitidos.

Si desea que el usuario pueda seleccionar más de un valor, configure la propiedad Valor múltiple como Sí.

Se puede utilizar una Lista de valores para los tipos de datos booleanos. En los tipos de datos booleanos, la Lista de valores contiene dos valores, el valor verdadero y el valor falso. El valor verdadero siempre es el primero de la lista. Estos valores se utilizan en la línea de comandos para especificar el valor. Consulte, por ejemplo, Agregar campo y las palabras clave {NULLABLE | NON_NULLABLE} utilizadas para la propiedad IsNullable.

Rango

Un parámetro largo o doble puede tener un filtro de rango. Los filtros de rango tienen dos valores, el mínimo y el máximo. El primer valor de la lista es el mínimo. El rango es inclusivo, lo que significa que tanto el mínimo como el máximo son opciones válidas.

Clase de entidad

Para este filtro, seleccione uno o más valores de filtro. Las clases de entidad de entrada se verificarán según estos valores de filtro. Entonces, por ejemplo, si selecciona sólo Puntos como valor de filtro, el usuario sólo podrá introducir clases de entidad de puntos como valor de parámetro.

Archivo

El filtro de archivo contiene una lista de sufijos de archivos que un archivo puede tener, como txt (archivo de texto simple) y csv (valor separado por comas). Puede proporcionar cualquier texto como sufijo, no tiene que ser necesariamente un sufijo que ArcGIS reconozca. El sufijo puede tener cualquier longitud y no incluye el punto.

Especificar un filtro de archivo

Campo

El filtro de archivo define los tipos de campo permitidos: "Short", "Long", "Single", "Double", "Text", "Date", "OID", "Geometry", "Blob", "Raster", "GUID", "GlobalID", "XML". Se puede proporcionar más de un valor del filtro.

Espacio de trabajo

El filtro del espacio de trabajo especifica los tipos de espacios de trabajo de entrada que se permiten. Hay tres valores:

  • Sistema de archivos

    Una carpeta del sistema, que se utiliza para almacenar shapefiles, coberturas de ArcInfo, tablas INFO y cuadrículas

  • Base de datos local

    Una geodatabase de archivos o personal

  • Base de datos remota

    Una conexión de base de datos de ArcSDE

Obtenido de

La propiedad Obtenido de tiene dos propósitos:

Obtenido de para un tipo de datos de campo

Sólo puede establecer Obtenido de para ciertos parámetros de entrada, como se muestra en la tabla siguiente.

Tipo de datos de entrada

Tipo de datos de Obtenido de

Descripción

Campo o Expresión SQL

Tabla

La tabla que contiene los campos

Elemento de INFO o expresión de INFO

Tabla INFO

La tabla INFO que contiene los elementos

Clase de entidad de cobertura

Cobertura

La cobertura que contiene las entidades

Unidades de área o unidades lineales

GeoDataset

Un dataset geográfico utilizado para determinar las unidades predeterminadas

Sistema de coordenadas

Espacio de trabajo

Un espacio de trabajo utilizado para determinar el sistema de coordenadas predeterminado

Configuración de jerarquía de Network Analyst

Dataset de red

El dataset de red que contiene la información de jerarquía.

Tabla de valores de estadísticas geográficas

Capa de estadísticas geográficas

La capa de análisis que contiene tablas

Tipos de datos de Obtenido de

Simbología

Si la salida de la herramienta es un conjunto de entidades, ráster, TIN o Capa de Network Analyst, puede especificar la ubicación de un archivo de capa (.lyr) en la propiedad Simbología. Cuando la herramienta se está ejecutando desde ArcMap, ArcGlobe o ArcScene, y Agregar los resultados de las operaciones de geoprocesamiento a la visualización se encuentra activado, la salida se agrega a la visualización y se dibuja utilizando la simbología definida en el archivo de simbología de capa.

NotaNota:

El archivo de capa se lee cada vez que se ejecuta la herramienta. Si no se puede encontrar el archivo de capa (porque su ubicación cambió o se lo eliminó), se utilizará la simbología predeterminada.


7/10/2012