Utilizar funciones en Python
Una función es una funcionalidad definida que realiza una tarea específica y se puede incorporar a un programa más amplio.
En ArcPy, todas las herramientas de geoprocesamiento se proporcionan como funciones, pero no todas las funciones son herramientas de geoprocesamiento. Además de herramientas, ArcPy proporciona diversas funciones para brindar mayor soporte a los flujos de trabajo de geoprocesamiento que utilizan Python. Las funciones se pueden utilizar para enumerar ciertos datasets, recuperar las propiedades de un dataset, validar el nombre de una tabla antes de agregarlo a una geodatabase o realizar muchas otras tareas de geoprocesamiento útiles. Estas funciones solamente están disponibles desde ArcPy y no como herramientas en las aplicaciones de ArcGIS, ya que se diseñaron para los flujos de trabajo de Python.
La forma general de una función es similar a la de una herramienta: toma argumentos, que pueden o no ser requeridos, y devuelve algo. El valor de retorno de una función que no es una herramienta puede variar: desde cadenas de caracteres a objetos de geoprocesamiento. Las funciones de herramientas siempre devuelven un objeto de Resultado y proporcionan soporte de mensajes de geoprocesamiento.
El siguiente ejemplo utiliza dos funciones de ArcPy, GetParameterAsText para recibir un argumento de entrada y Existe para determinar si la entrada existe o no. La función Existe devuelve un valor booleano (ya sea Verdadero o Falso).
import arcpy input = arcpy.GetParameterAsText(0) if arcpy.Exists(input): print "Data exists" else: print "Data does not exist"
El siguiente ejemplo crea una lista de Python de clases de entidades con la función ListFeatureClasses, después incluye la lista en un bucle, al recortar cada clase de entidad individual con una clase de entidad de límite.
import arcpy from arcpy import env import os # The workspace environment needs to be set before ListFeatureClasses # to identify which workspace the list will be based on # env.workspace = "c:/data" out_workspace = "c:/data/results/" clip_features = "c:/data/testarea/boundary.shp" # Loop through a list of feature classes in the workspace # for fc in arcpy.ListFeatureClasses(): # Set the output name to be the same as the input name, and # locate in the 'out_workspace' workspace # output = os.path.join(out_workspace, fc) # Clip each input feature class in the list # arcpy.Clip_analysis(fc, clip_features, output, 0.1)