Describir datos
Las herramientas de geoprocesamiento funcionan con todo tipo de datos, como clases de entidades de geodatabase, shapefiles, rásteres, tablas, topologías y redes. Cada dato tiene propiedades particulares a las que se puede acceder y las que se pueden utilizar para controlar el flujo de la secuencia de comandos o como parámetros de una herramienta. Por ejemplo, el tipo de entidad de salida de la herramienta Intersecar depende del tipo de forma de los datos que se intersecan: punto, línea o polígono. Cuando la herramienta Intersecar se ejecuta dentro de una secuencia de comandos en una lista de datasets de entrada, debe ser capaz de determinar los tipos de forma de los datasets de entrada para poder configurar el tipo de forma de salida correcto. Puede utilizar la función Describir para determinar los tipos de forma de todos los datasets de entrada.
Las propiedades de un dataset se pueden determinar y utilizar para tomar decisiones mediante la función Describir. Por ejemplo, en el siguiente caso, la secuencia de comandos utiliza Describir para evaluar el tipo de forma (polilínea, polígono, punto, etc.) de los datos de entrada y determinar qué herramienta de geoprocesamiento es adecuada.
import arcpy
inFC = arcpy.GetParameterAsText(0)
outFC = arcpy.GetParameterAsText(1)
# Describe a feature class
#
desc = arcpy.Describe(inFC)
# Get the shape type (Polygon, Polyline) of the feature class
#
type = desc.shapeType
# If the shapeType is Polygon convert the data to polylines
# using the FeatureToLine tool, otherwise just copy the
# data using the CopyFeatures tool.
#
if type == "Polygon":
arcpy.FeatureToLine_management(inFC, outFC)
else:
arcpy.CopyFeatures_management(inFC, outFC)
La función Describir devuelve el objeto Descripción que contiene varias propiedades, como tipo de datos, campos, índices y otras. Sus propiedades son dinámicas, lo que significa que depende del tipo de datos que se describe, distintas propiedades de descripción estarán disponibles para su uso.
Las propiedades de descripción se organizan en una serie de grupos de propiedades. Cualquier dataset en particular adquirirá las propiedades de al menos uno de estos grupos. Por ejemplo, si describe una clase de entidad de geodatabase, puede acceder a las propiedades desde los grupos de propiedades FeatureClass de GDB, FeatureClass, Tabla y Dataset. Todos los datos, sin importar su tipo, siempre adquirirán las propiedades genéricas de Objeto de descripción.
Trabajar con conjuntos de propiedades
Algunas propiedades pertenecen a un conjunto de propiedades. Por ejemplo, las tolerancias de una cobertura o las propiedades de conexión de un espacio de trabajo son devueltas como Conjuntos de propiedades. Los Conjuntos de propiedades incluyen propiedades que se pueden denominar de la misma manera que el conjunto en sí. En el ejemplo que aparece a continuación, las tolerancias de una cobertura (difusa, de nodo colgado, de coincidencia con el punto de relevancia, de edición, de alineación con el nodo, de eliminación, ínfima y de alineación) se imprimen en la salida estándar:
import arcpy
# Create a describe object from a coverage feature class
#
desc = arcpy.Describe("D:/St_Johns/covs/freshwater")
# Create a property set of coverage tolerances
#
covTols = desc.tolerances
# Print each coverage tolerance
#
print covTols.fuzzy
print covTols.dangle
print covTols.ticMatch
print covTols.edit
print covTols.nodeSnap
print covTols.weed
print covTols.grain
print covTols.snap
Generalmente, los Conjuntos de propiedades se utilizan cuando las propiedades del objeto descrito varían. Las propiedades de conexión (servidor, instancia, base de datos, usuario y versión) de un espacio de trabajo de una geodatabase corporativa varían según el tipo de base de datos de ArcSDE utilizado, de modo que se adecue a un conjunto de propiedades que no posee una serie de valores predefinidos.