Ist es möglich, Punkt-XY-Koordinaten in Dezimalgraden im Modell oder Skript zu berechnen, wenn sich eine Feature-Class im projizierten Koordinatensystem befindet?
Es ist einfach, wenn sich ein FC im geografischen Koordinatensystem befindet:
- mit dem Werkzeug XY-Koordinaten hinzufügen oder
- mit Python-Ausdruck zB.
!shape.extent.XMax!
Ich habe festgestellt, dass die Flächen- und Längeneigenschaften des Geometriefelds mit dem Schlüsselwort zur Konvertierung von Geometrieeinheiten geändert werden können. Für lineare Maßeinheiten kann man @DECIMALDEGREES verwenden.
Leider !shape.extent.XMax@decimaldegrees!
funktioniert es nicht, da XMax keine Länge ist.
In der Funktion "Geometrie berechnen" (Zugriff mit der rechten Maustaste) besteht die Möglichkeit, den Ausgabetyp "Dezimalgrad" auch für die projizierte Feature-Class auszuwählen.
Kann ich dies mit ArcPy tun?
Hier ist ein Code-Snippet, das auf der Lösung von iRfAn basiert:
import arcpy, os
projectedFC = r"C:\tmp\test.gdb\points01_Projected"
prjFile = os.path.join(arcpy.GetInstallInfo()["InstallDir"],
r"Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj")
spatialRef = arcpy.SpatialReference(prjFile)
updCursor = arcpy.UpdateCursor(projectedFC,"", spatialRef)
for row in updCursor:
pnt = row.Shape.getPart(0)
row.X = pnt.X
row.Y = pnt.Y
updCursor.updateRow(row)
del updCursor, row