Apakah mungkin untuk menghitung titik koordinat XY dalam Derajat Desimal dalam model atau skrip ketika kelas fitur dalam sistem koordinat yang diproyeksikan?
Sangat mudah ketika FC berada dalam sistem koordinat geografis:
- menggunakan alat Tambah XY Koordinat atau
- menggunakan ekspresi Python misalnya.
!shape.extent.XMax!
Saya telah menemukan bahwa properti luas dan panjang bidang geometri dapat dimodifikasi dengan kata kunci konversi satuan geometri. Untuk unit linier ukuran satu dapat menggunakan @DECIMALDEGREES.
Sayangnya, !shape.extent.XMax@decimaldegrees!
tidak berfungsi karena XMax tidak panjang.
Dalam fungsi Calculate Geometry (diakses dari klik kanan) ada kemungkinan untuk memilih tipe output Desimal Derajat bahkan untuk kelas fitur yang diproyeksikan.
Bisakah saya melakukan ini menggunakan ArcPy?
Berikut cuplikan kode berdasarkan solusi iRfAn:
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
sumber
Jawaban:
Saya pikir kamu bisa.
Cukup tentukan Referensi Spasial di WGS-84 dan gunakan kursor menggunakan Referensi Spasial ini.
Koordinat ditentukan dalam spatial_reference yang disediakan, dan dikonversi dengan cepat ke sistem koordinat dataset.
Kedepan lebih detail lihat ini .
sumber
SHAPE
bidang Anda akan mendapatkan objek geometri titik, dari mana Anda bisa mendapatkan koordinat X dan Y.Saya tidak yakin tentang skrip, tetapi saya telah menyelesaikan ini dengan cara yang agak otomatis menggunakan pembuat model: mengimpor koordinat xy Anda dan memproyeksikannya ke WGS 1984. Kemudian tambahkan bidang dan hitung geometri titik dalam derajat desimal. Kemudian bawa poin XY Anda kembali ke sistem koordinat asli.
sumber