Menghitung koordinat XY dalam Derajat Desimal dari dataset yang diproyeksikan dalam model atau skrip?


8

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

Apakah perlu untuk mempertahankan poin XY dalam CS yang diproyeksikan?
Roy

@ Roy: ya, saya ingin mempertahankan kelas fitur di CS yang diproyeksikan, tetapi menghitung derajat desimal.
Marcin

Jawaban:


4

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 .


Anda bisa melakukannya dengan cara ini. Dari SHAPEbidang Anda akan mendapatkan objek geometri titik, dari mana Anda bisa mendapatkan koordinat X dan Y.
om_henners

2

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.


masih jauh, saya lebih suka menggunakan kursor dan menggunakan WGS-84 sebagai Referensi Spasial dan menghitung. Tidak perlu memproyeksikan kembali dan setelah itu bergabung.
iRfAn

@mburkenysdot: Ini adalah solusi yang baik ketika seseorang tidak ingin menggunakan skrip apa pun.
Marcin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.