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 y Extent, generalmente se utilizan como accesos rápidos de teclado para completar los parámetros de la herramienta de geoprocesamiento que de lo contrario tendrían un equivalente de cadena de texto más complicado.
ArcPy incluye varias clases, incluidas SpatialReference, ValueTable y Punto. 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 después de leer 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 una cantidad de 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)
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, 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 y 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", "", "", "", spatialRef)
La cadena de caracteres equivalente para este parámetro se parece 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