Utilizar la clase de referencia espacial

Los datasets geográficos, tales como las clases de entidad, las coberturas y los ráster, tienen una referencia espacial que define un sistema de coordenadas de dataset, dominio x,y, dominio m y dominio z. Cada parte de la referencia espacial tiene varias propiedades, especialmente el sistema de coordenadas, que define qué opciones de proyección de mapa se utilizan para definir coordenadas horizontales. Toda esta información está disponible luego de describir el dataset y obtener acceso a la propiedad de referencia espacial del mismo, la cual se encuentra en realidad en otro objeto que contiene un número de propiedades.


import arcpy

# Describe a feature class
#
fc = "D:/St_Johns/data.gdb/roads"
desc = arcpy.Describe(fc)

# Get the spatial reference 
#
sr = desc.spatialReference

# Check if the feature class is in projected space
#
if sr.type == "Projected":
    arcpy.Copy_management(fc,"D:/St_Johns/data.gdb/roads_UTM")

Crear una referencia espacial

A menudo, no es práctico mantener todos los detalles de una referencia espacial dentro de una secuencia de comandos Python. Utilizando un archivo de proyección, código de fábrica o el nombre de referencia espacial como un argumento para la clase SpatialReference, puede completar rápidamente las propiedades de una referencia espacial y utilizar el objeto como entrada a una herramienta de geoprocesamiento. En el siguiente ejemplo, la referencia espacial se construye utilizando un código de fábrica (también conocido como un código de autoridad) proporcionado como argumento de entrada.

Sugerencia:

Para obtener más información sobre los nombres del sistema de coordenadas y códigos de fábrica, consulte geographic_coordinate_systems.pdf y projected_coordinate_systems.pdf archivos en la carpeta de documentación de ArcGIS.

import arcpy

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

# Get the input workspace, the output name for the new feature class
#  and path to an input projection file
#
inputWorkspace = arcpy.GetParameterAsText(0)
outputName     = arcpy.GetParameterAsText(1)
factoryCode    = arcpy.GetParameterAsText(2)

# Use a code as input to the SpatialReference class
#
sr = arcpy.SpatialReference(factoryCode)

# Use the SpatialReference object to create a new feature class with a 
#  specific coordinate system
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName, 
                                    "POLYLINE", spatial_reference=sr)
Nota:

Para obtener una lista completa de propiedades y métodos, vea la clase SpatialReference.

Nota:

A veces se hace referencia a las referencias espaciales como cadenas de caracteres del motor de proyección. El Motor de proyección (PE) es una biblioteca de código que utiliza ArcGIS para definir proyecciones de mapa y transformar de una proyección a otra.