Verwenden der Raumbezugsklasse
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.
Weitere Informationen zu Koordinatensystemnamen und Factory-Codes finden Sie in den Dateien geographic_coordinate_systems.pdf und projected_coordinate_systems.pdf im ArcGIS-Ordner "Documentation".
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)
Eine vollständige Liste von Eigenschaften und Methoden finden Sie unter SpatialReference-Klasse.
Raumbezüge werden manchmal als Projection Engine-Zeichenfolgen bezeichnet. Die Projection Engine (PE) ist eine Code-Bibliothek, die überall in ArcGIS verwendet wird, um Kartenprojektionen zu definieren und von einer Projektion in eine andere zu transformieren.