Utilizar clases en Python

Una clase es similar a un plano arquitectónico. El plano ofrece el marco sobre cómo crear algo. Las clases se pueden utilizar para crear objetos, que comúnmente se denominan instancias. Las clases de ArcPy, como las clases SpatialReference o Extent, se suelen utilizar como accesos directos para completar los parámetros de la herramienta de geoprocesamiento que, de otro modo, tendrían una cadena de caracteres equivalente más complicada.

ArcPy incluye varias clases, como SpatialReference, ValueTable y Point. Una vez que se realizó la instanciación, se pueden utilizar las propiedades y los métodos. Las clases tienen uno o más métodos llamados constructores. Un constructor es un método para iniciar una nueva instancia de una clase. En el siguiente ejemplo, SpatialReference(prjFile) es el constructor de clases: crea el objeto spatialRef mediante la lectura de un archivo de proyección.

import arcpy

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

Como la mayoría de las otras clases, SpatialReference contiene diversos métodos y propiedades. Siguiendo con el ejemplo anterior, puede acceder a las propiedades de spatialRef.

import arcpy

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

# Print the SpatialReference's name, and type
#
print(spatialRef.name)
print(spatialRef.type)

Las clases se pueden utilizar repetidas veces; en el siguiente ejemplo, se crean dos objetos de punto únicos mediante el uso de la clase Point.

import arcpy

pointA = arcpy.Point(2.0, 4.5)
pointB = arcpy.Point(3.0, 7.0)
Nota:

La función CreateObject también se puede utilizar para crear muchos de los objetos que se pueden crear con las clases. Sin embargo, utilizar las clases es más fácil de utilizar y más legible.

Utilizar clases con herramientas de geoprocesamiento

Los parámetros de herramientas generalmente se definen mediante cadenas de texto simple. Los nombres de datasets, rutas, palabras clave, nombres de campo, tolerancias y nombres de dominio se pueden especificar mediante una cadena de caracteres que está entre comillas.

Algunos parámetros son más difíciles de definir mediante las cadenas de caracteres simples; son parámetros más complejos que requieren muchas propiedades. En lugar de utilizar cadenas de texto largas y complicadas para definir estos parámetros, puede utilizar clases (por ejemplo, las clases SpatialReference, ValueTable y Point). La documentación para cada herramienta contiene un ejemplo de secuencia de comandos de cómo se define y se utiliza cada parámetro de herramienta.

En el siguiente ejemplo, se crea un objeto SpatialReference que se utiliza para definir el sistema de coordenadas de salida de una nueva clase de entidad que se creó con la herramienta CreateFeatureClass.

import arcpy

inputWorkspace = "c:/temp"
outputName =  "rivers.shp"

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

# Run CreateFeatureclass using the spatial reference object
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName, "POLYLINE", 
                                    spatial_reference=spatialRef)

La cadena de caracteres equivalente para este parámetro es similar a esta: PROJCS['North_America_Equidistant_Conic',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Equidistant_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-96.0],PARAMETER['Standard_Parallel_1',20.0],PARAMETER['Standard_Parallel_2',60.0],PARAMETER['Latitude_Of_Origin',40.0],UNIT['Meter',1.0]];IsHighPrecision

Temas relacionados