Casi todas las herramientas tienen parámetros, y sus valores se establecen en el panel Geoprocesamiento o dentro de una secuencia de comandos. Cuando se ejecuta la herramienta, los valores de parámetro se envían al código de fuente de la herramienta. La herramienta lee estos valores y continúa con su trabajo.
Para obtener más información sobre los parámetros, consulte Entender los parámetros de la herramienta de script.
Los parámetros de la herramienta de script se pueden establecer al crear una herramienta de script. También puede agregar, eliminar y modificar los parámetros de la herramienta de script en el cuadro de diálogo Propiedades de una herramienta. Para acceder a las propiedades de la herramienta de script, haga clic con el botón derecho en la herramienta, haga clic en Propiedades y, a continuación, haga clic en la pestaña Parámetros.
Para agregar un parámetro, haga clic en la primera celda vacía de la columna Etiqueta y escriba el nombre del parámetro. Este es el nombre que aparecerá en el panel Geoprocesamiento, y puede contener espacios. En la columna Nombre, se creará un nombre de parámetro predeterminado basado en la Etiqueta, pero se puede cambiar si es necesario. El nombre del parámetro es necesario para la sintaxis de Python y se validará (incluida la eliminación de espacios).
Después de introducir el nombre de visualización del parámetro, elija un tipo de datos para el parámetro haciendo clic en la celda Tipo de datos, como se muestra a continuación.
Si necesita crear un parámetro que acepte varios valores, active la casilla Valores múltiples. Si necesita crear un tipo de datos compuesto, es decir, un parámetro que acepte diferentes tipos de datos, puede marcar varios tipos de datos.
Cada parámetro tiene propiedades adicionales que puede establecer, como se ha mostrado anteriormente y como se describen a continuación.
Propiedad | Descripción |
---|---|
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. | |
Puede ser Entrada o Salida. Si el Tipo de parámetro es Derivado, la dirección siempre es igual a Salida. | |
Los parámetros se pueden agrupar en categorías diferentes. | |
Si desea que solo 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. | |
Esta propiedad se aplica a los tipos de datos de parámetro de salida derivado y parámetro de entrada. Para los parámetros de salida derivados, la Dependencia se puede establecer en el parámetro que contiene la definición de la salida. Para los parámetros de entrada, la Dependencia se establece en el parámetro que contiene la información necesaria para la entrada. | |
El valor predeterminado del parámetro. Cuando el tipo de datos del parámetro es un conjunto de entidades o un conjunto de registros, se utiliza Predeterminado para definir el esquema del parámetro. | |
Si el valor predeterminado del parámetro proviene de una configuración de entorno, esta propiedad contiene el nombre de la configuración de entorno. | |
Esta propiedad se aplica solo a los parámetros de salida. El valor es la ubicación de un archivo de capa (.lyrx) que contiene la simbología para mostrar la salida. |
Tipo
El Tipo se establece en una de las opciones siguientes:
- Requerido: el parámetro debe tener un valor para que la herramienta se ejecute.
- Opcional: El parámetro no requiere un valor.
- Derivado: utilice parámetros derivados en los siguientes casos:
- La salida es igual que la entrada. Por ejemplo, la herramienta Calcular campo actualiza los valores de un campo en la tabla de entrada; no crea una tabla ni modifica el esquema de la entrada.
- La herramienta modifica el esquema de la entrada. Por ejemplo, la herramienta Agregar campo agrega un campo a la tabla de entrada.
- La herramienta genera un valor escalar como un número, una cadena de caracteres o un valor booleano. Por ejemplo, la herramienta Obtener conteo devuelve un valor entero derivado.
- La herramienta crea una salida a partir de los valores de otros parámetros. Por ejemplo, la herramienta Crear clase de entidad devuelve una ruta de clase de entidad derivada construida a partir de otros parámetros que tienen valores de ruta y nombre.
- La herramienta creará los datos en una ubicación conocida. Por ejemplo, puede tener un script que cree una clase de entidad en un espacio de trabajo conocido. Ni la clase de entidad ni el espacio de trabajo son opciones de parámetro.
Nota:
Cuando una herramienta actualiza un dataset o una capa, la herramienta debe tener un parámetro de salida derivado con una dependencia del parámetro contrapuesta a un parámetro de entrada. Esto es así para que el geoprocesamiento multiproceso en segundo plano de ArcGIS Pro sepa qué capas de mapa desconectar durante el procesamiento para protegerse de errores de bloqueo de datos y volver a conectar después del procesamiento y refrescar con propiedades actualizadas como selecciones y uniones.
Nota:
Si la herramienta de script tiene una salida derivada, deberá establecer el valor del parámetro de salida derivado en la secuencia de comandos con la función SetParameterAsText o SetParameter
Valores de salida en lugar de datos
Los ejemplos anteriores muestran la generación de datasets derivados. Algunas herramientas, sin embargo, generan valores en lugar de datasets, como la herramienta Obtener conteo, que genera un tipo de datos Largo que contiene el número de filas de una tabla. Es común generar valores en lugar de datasets. Puede tener secuencias de comandos propias que realicen análisis sobre varios datasets relacionados y que no generen más de un par de números, o un valor booleano de superación/fallo.
Los parámetros de salida que contienen tipos de datos de valor (como Largo o Booleano) siempre son Derivados en lugar de Requeridos.
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, la dirección del parámetro se definirá automáticamente como Salida.
Todas las herramientas de script deben tener parámetros de salida para que se puedan utilizar 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. La salida puede ser un dataset que se introduce en un valor de parámetro, una salida derivada donde la ubicación o el nombre se determina en la secuencia de comandos, o un valor derivado que se calcula o determina. Como mínimo, puede generar un valor booleano que contenga True si la herramienta finalizó correctamente, y False en caso contrario.
Categoría
Los parámetros se pueden agrupar en categorías diferentes para minimizar el tamaño del panel Geoprocesamiento o para agrupar los parámetros relacionados que se utilizarán con poca frecuencia. Puede introducir un nuevo nombre de categoría o elegirlo de una lista si ha establecido una categoría para otros parámetros. Varias herramientas de ArcGIS Network Analyst extension utilizan categorías, como se muestra a continuación.
Las categorías siempre se muestran después de los parámetros no categorizados. No coloque los parámetros requeridos en categorías, porque están ocultos en el panel Geoprocesamiento.
Valor múltiple
Si desea que un parámetro pueda manejar una lista de valores en lugar de un solo valor, defina la propiedad Valor múltiple como Sí.
A continuación se ilustra un ejemplo de control de valor múltiple.
Se puede acceder a los valores múltiples como listas al utilizar la función arcpy.GetParameter e iterarlos utilizando un bucle for. De lo contrario, se puede acceder a los valores múltiples como una cadena de caracteres delimitada por punto y coma utilizando la función arcpy.GetParameterAsText. Para separar una cadena de caracteres delimitada, utilice el método split de Python como se muestra en el siguiente ejemplo de código.
import arcpy
road_types = arcpy.GetParameterAsText(0)
road_list = road_types.split(";")
# Process each road type
for road_type in road_list:
# road_type contains an individual road type string (ex: "Interstates")
arcpy.AddMessage("Processing: {}".format(road_type))
Predeterminado
El valor predeterminado será el contenido del parámetro cuando se abra la herramienta de script. También es el valor que se utilizará si se introduce un # para el parámetro en el script Si no especifica un valor para la propiedad Predeterminado, el valor del parámetro estará vacío cuando se abra la herramienta. Si especifica un valor para esta propiedad, la propiedad Entorno se deshabilitará. Para habilitar la propiedad Entorno, borre la propiedad Predeterminado.
Esquema
Cuando el tipo de datos del parámetro de entrada es un Conjunto de entidades o Conjunto de registros, debe especificar la ubicación de un esquema que defina los campos y el tipo de geometría de las entidades que se van a introducir. Un esquema es una clase de entidad, una tabla o un archivo de capa (.lyrx).
Los tipos de datos Conjunto de entidades y Conjunto de registros permiten la entrada de datos interactiva. Un Conjunto de entidades permite al usuario del script crear entidades de manera interactiva haciendo clic en el mapa. El Conjunto de registros permite al usuario crear filas en una cuadrícula de tabla de manera interactiva.
Medio ambiente
Puede establecer el valor predeterminado de un parámetro en el valor de una configuración de entorno haciendo clic con el botón derecho en la celda correspondiente de Entorno y eligiendo el nombre de la configuración del entorno.
Filtro
Si desea que solo se introduzcan para un parámetro algunos tipos de dataset o valores, puede especificar un filtro. Haga clic en la celda correspondiente de Filtro y elija el tipo de filtro adecuado en la lista desplegable. Aparece un cuadro de diálogo que permite especificar los valores del filtro. Existen seis tipos de filtros y el tipo de filtro que puede seleccionar depende del tipo de datos del parámetro.
Por lo general, existe solo un tipo de filtros que puede seleccionar. Solo Largo y Doble tienen dos opciones: Lista de valores y Rango.
También puede establecer filtros mediante programación con Python personalizando una clase ToolValidator de una herramienta de secuencia de comandos.
Unidades de área
El filtro de unidades de área define los tipos de unidad permitidos: Pulgadas cuadradas, Pies cuadrados, Yardas cuadradas, Acres, Millas cuadradas, Milímetros cuadrados, Centímetros cuadrados, Decímetros cuadrados, Metros cuadrados, Áreas, Hectáreas, Kilómetros cuadrados y Desconocido.
Tipo 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. Por ejemplo, si selecciona solo Punto como valor de filtro, el usuario solo podrá introducir clases de entidad de puntos como valor de parámetro.
Un filtro de tipo de entidad define los tipos de clase de entidad permitidos: Punto, Multipunto, Polígono, Polilínea, Anotación y Dimensión. Se puede proporcionar más de un valor al filtro.
Campo
El filtro del campo define los tipos de campos permitidos: Corto, Largo, Flotante, Doble, Texto, Fecha, OID, Geometría, Blob, Ráster, GUID, GlobalID y XML. Se puede proporcionar más de un valor al filtro.
Archivo
El filtro de archivos contiene una lista de los sufijos que puede tener un archivo, como txt (archivo de texto simple) y csv (archivo de valores separados 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. Varios sufijos se separan por un delimitador de punto y coma.
Unidades lineales
El filtro de unidades lineales define los tipos de unidad permitidos: Pulgadas, Puntos, Pies, Yardas, Millas, Millas náuticas, Milímetros, Centímetros, Metros, Kilómetros, Grados decimales, Decímetros, Grados y Desconocido. Se puede proporcionar más de un valor al filtro.
Intervalo
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 rango es inclusivo, lo que significa que tanto el mínimo como el máximo son opciones válidas.
Unidades de tiempo
El filtro de unidades de tiempo define los tipos de unidades permitidos: Milisegundos, Segundos, Minutos, Horas, Días, Semanas, Meses, Años, Décadas, Siglos y Desconocido. Se puede proporcionar más de un valor al filtro.
Tipo de unidad de modo de viaje
Este filtro se puede usar para definir los tipos de modo de viaje permitidos según la unidad del atributo de impedancia del modo de viaje. Las opciones válidas son Tiempo,Distancia y Otros. El valor predeterminado es permitir los tres tipos.
Lista de valores
El filtro de Lista de valores resulta muy útil para proporcionar un conjunto de palabras clave. Muchas herramientas tienen un conjunto de palabras clave predefinido, como el parámetro Tipo de campo que se encuentra en Agregar campo o el parámetro Unir atributos de muchas de las herramientas del conjunto de herramientas de superposición.
Se puede utilizar un filtro de Lista de valores para los tipos de datos Largo y Doble. Introduzca los valores numéricos permitidos para estos tipos.
Si desea que el usuario pueda seleccionar más de un valor, defina 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 es siempre el primer valor 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} usadas para la propiedad IsNullable.
Espacio de trabajo
El filtro del espacio de trabajo especifica los tipos de espacios de trabajo de entrada que se permiten. Los tres valores son los siguientes:
- Sistema de archivos: una carpeta del sistema que se utiliza para almacenar shapefiles, coberturas, 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 corporativa.
Se puede proporcionar más de un valor.
Dependencia
La propiedad Dependencia tiene los siguientes dos propósitos:
- Para un parámetro de salida derivado, Dependencia se establece en el parámetro de entrada que será modificado por la herramienta. Para obtener más información sobre datos derivados y Dependencia, consulte lo dicho anteriormente sobre la propiedad Tipo.
- Para los parámetros de entrada, Dependencia contiene el nombre de otros parámetros utilizados por el tipo de datos. Por ejemplo, para un tipo de datos de campo de entrada, Dependencia se establece en el nombre del parámetro de tabla que contiene los campos.
Solo puede establecer Dependencia 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 de 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 geoestadística | Capa de geoestadística | La capa de análisis que contiene las tablas |
Modo de viaje de red | Fuente de datos de red, Dataset de red, Capa de dataset de red | Lista de modos de viaje |
Simbología
Si la salida de la herramienta es un conjunto de entidades, ráster, TIN o capa, puede especificar la ubicación de un archivo de capa (.lyrx) en la propiedad Simbología. Cuando se ejecuta la herramienta y se agrega la salida para la visualización, se dibujará utilizando la simbología definida en el archivo de capa de simbología.
Precaución:
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.