El lenguaje de las secuencias de comandos de ArcGIS es Python. ArcGIS incluye una API de Python, ArcPy, que proporciona acceso a todas las herramientas de geoprocesamiento, así como a funciones de secuencias de comandos y módulos especializados que ayudan a automatizar las tareas de SIG. Puede escribir scripts que usan ArcPy junto con diversas funciones que se proporcionan a través de las bibliotecas de Python estándar y de otras bibliotecas creadas por terceros. Puede ejecutar comandos y scripts de Python con notebooks de ArcGIS, en la ventana de Python, a través de herramientas de scripts, o puede ejecutar Python fuera de ArcGIS Pro. Independientemente de cómo ejecute Python, básicamente los comandos funcionan del mismo modo y utilizan las mismas herramientas de geoprocesamiento.
A continuación se muestra una secuencia de comandos de geoprocesamiento simple en la que se utiliza ArcPy.
import arcpy
roads = "c:/base/data.gdb/roads"
output = "c:/base/data.gdb/roads_Buffer"
# Run Buffer
arcpy.Buffer_analysis(roads, output, "100 Feet")
Definir los parámetros de la herramienta
Cada una de las herramientas de geoprocesamiento tiene un conjunto fijo de parámetros que proporcionan a la herramienta la información que necesita para su ejecución. Cuando se utiliza una herramienta en Python, los valores de sus parámetros se deben establecer correctamente para que se pueda ejecutar cuando se ejecute el script. Una vez que se ha proporcionado un conjunto de valores de parámetro válido, la herramienta está lista para ejecutarse. La mayoría de los parámetros se pueden especificar como una cadena de caracteres. Algunos parámetros complejos se pueden especificar como objetos con los que resulta más fácil trabajar en comparación con cadenas de caracteres largas.
Las cadenas de caracteres son textos que identifican de forma única un valor de parámetro, tal como una ruta hacia un dataset o una palabra clave. En el siguiente ejemplo de código, se definen los parámetros de entrada y de salida para la herramienta Zona de influencia. Tenga en cuenta que el nombre de la herramienta siempre se combina con su alias de la caja de herramientas. En el ejemplo, se utilizan dos variables de cadenas de caracteres para definir los parámetros de entrada y de salida para realizar la llamada a la herramienta que sea más fácil de leer.
La mayoría de las herramientas de geoprocesamiento incluyen argumentos obligatorios y opcionales. A veces se dan casos en los que hay muchos argumentos opcionales que no es necesario especificar. Hay un par de estrategias para tratar estos argumentos que no se utilizan. Una consiste en mantener todos los argumentos opcionales en orden y marcar los que no se necesiten como cadenas de caracteres vacías "", signos de almohadilla "#" o con un tipo None. import arcpy
arcpy.AddField_management("schools", "school_id", "LONG", "", "", "", "", "NON_NULLABLE")
import arcpy arcpy.AddField_management("schools", "school_id", "LONG", field_is_nullable="NON_NULLABLE")
Salida de la herramienta
ArcPy devuelve los valores de salida de una herramienta en forma de Result objeto. El objeto resultante mantiene información de utilidad sobre la ejecución de las herramientas, incluidos los mensajes, los parámetros y las rutas y valores del dataset de salida. Estos resultados se pueden mantener incluso después de que se hayan ejecutado varias otras herramientas.
Los siguientes ejemplos muestran cómo obtener la salida de un objeto de resultado siguiendo la ejecución de una herramienta de geoprocesamiento: import arcpy
arcpy.env.workspace = "c:/city/data.gdb"
# Geoprocessing tools return a result object
result = arcpy.CopyFeatures_management("roads", "urban_roads")
# A print function will display the string representation of the output.
print(result)
# A result object can be indexed to get the output value.
result_value = result[0]
Si se crea una salida que es solo una fase intermedia en un flujo de trabajo más extenso, el argumento de salida se puede omitir para permitir que la herramienta cree una ruta y un nombre únicos para la salida. Esto se puede lograr definiendo la salida como "#" o como None o, si la salida va a ser el último argumento utilizado, se puede omitir por completo. En cada caso, el valor devuelto es la ruta completa al nuevo origen de datos.
import arcpy
arcpy.env.workspace = "c:/city/data.gdb"
result = arcpy.CopyFeatures_management("roads", "#")
Generar un flujo de trabajo de geoprocesamiento
ArcPy dispone de varias clases y funciones de utilidad que le permiten ampliar su secuencia de comandos de geoprocesamiento más allá de ejecutar herramientas de forma secuencial. Las funciones se pueden utilizar para enumerar determinados datasets realizar un procesamiento por lotes, describir un dataset leer sus propiedades de forma programática o para realizar muchas otras tareas de geoprocesamiento de utilidad.
Más información sobre cómo generar secuencias de comandos de geoprocesamiento con las funciones de ArcPy