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
quelle
Antworten:
Ich glaube du kannst.
Definieren Sie einfach die Raumreferenz in WGS-84 und verwenden Sie den Cursor mit dieser Raumreferenz.
Koordinaten werden in der bereitgestellten räumlichen Referenz angegeben und im laufenden Betrieb in das Koordinatensystem des Datensatzes konvertiert.
Weitere Details finden Sie hier .
quelle
SHAPE
Feld erhalten Sie ein Punktgeometrieobjekt, aus dem Sie die X- und Y-Koordinaten abrufen können.Ich bin mir bei einem Skript nicht sicher, aber ich habe dies mit Model Builder etwas automatisiert erreicht: Importieren Sie Ihre xy-Koordinaten und projizieren Sie sie in WGS 1984. Fügen Sie dann Felder hinzu und berechnen Sie die Geometrie der Punkte in Dezimalgraden. Bringen Sie dann Ihre XY-Punkte zurück in das ursprüngliche Koordinatensystem.
quelle