Geographische Datasets wie Feature-Classes, Coverages und Raster verfügen über einen Raumbezug, durch den das Koordinatensystem, die X/Y-Domäne, die M-Domäne und die Z-Domäne eines Datasets definiert werden. Jeder Teil des Raumbezugs verfügt über eine Reihe von Eigenschaften. Die Eigenschaften für das Koordinatensystem legen beispielsweise fest, welche Kartenprojektionsoptionen zur Definition der horizontalen Koordinaten verwendet werden. All diese Informationen können über die Beschreibung des Datasets und den Zugriff auf dessen Raumbezugseigenschaft abgerufen werden, die als Objekt wiederum mehrere Eigenschaften enthält.
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")
Erstellen eines Raumbezugs
Häufig empfiehlt es sich, nicht alle Informationen zum Raumbezug in ein Python-Skript aufzunehmen. Durch Verwendung einer Projektionsdatei, eines Factory-Codes oder eines Raumbezugsnamens als Argument für die SpatialReference-Klasse können Sie schnell die Eigenschaften eines Raumbezugsobjekts vervollständigen und das Objekt dann als Eingabe für ein Geoverarbeitungswerkzeug verwenden. Im folgenden Beispiel wird der Raumbezug mit einem als Eingabeargument angegebenen Factory-Code (auch als Autorisierungs-Code bezeichnet) erstellt.
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)