Menggunakan arcpy, bagaimana Anda memeriksa apakah dua kelas fitur memiliki referensi spasial yang sama?
Hanya memeriksa apakah keduanya sama tidak berfungsi:
>>> import arcpy
>>> fc1 = r"C:\Users\e1b8\Desktop\E1B8\GIS_Stackexchange\data.gdb\test"
>>> sr1 = arcpy.Describe (fc1).spatialReference
>>> sr2 = arcpy.Describe (fc1).spatialReference
>>> sr1 == sr2
False
factoryCode
tidak berfungsi, karena proyeksi khusus tidak memilikinya.
>>> fc2 = r"C:\Users\e1b8\Desktop\E1B8\GIS_Stackexchange\data.gdb\customproj"
>>> sr2 = arcpy.Describe (fc2).spatialReference
>>> sr2.factoryCode
0
Ada name
, tetapi nama bisa sama, tetapi memiliki unit yang berbeda:
>>> sr1 = arcpy.Describe (fc1).spatialReference
>>> sr2 = arcpy.Describe (fc2).spatialReference
>>> sr1.name
u'NAD_1983_UTM_Zone_10N'
>>> sr2.name
u'NAD_1983_UTM_Zone_10N'
>>> sr1.linearUnitCode
9003
>>> sr2.linearUnitCode
9001
Jadi agak rumit. Yang terbaik yang saya hasilkan adalah:
>>> def CompareSRs (inFc1, inFc2):
sr1 = arcpy.Describe (inFc1).spatialReference
sr2 = arcpy.Describe (inFc2).spatialReference
if not sr1.name != sr2.name:
return False
srType = sr1.type
if srType != sr2.type:
return False
if srType == "Geographic":
return sr1.angularUnitCode == sr2.angularUnitCode
return sr1.linearUnitCode == sr2.linearUnitCode
Dan saya masih tidak yakin kode di atas kedap udara. Apakah ada cara yang lebih baik?
arcpy
arcgis-10.1
coordinate-system
Emil Brundage
sumber
sumber
exportToString ()
yang mengembalikan string WKT referensi spasial, mungkin tiketnya.Jawaban:
Menilai dari komentar, Anda mungkin sudah memilikinya :)
Anda dapat membandingkan deskripsi Teks yang Dikenali (WKT) dari referensi spasial.
sumber
Versi busur: 10.3
Jika ada yang masih menemukan ini pada tahun 2019 , saya memiliki masalah yang sama dan ingin seyakin mungkin apakah proyeksi cocok. Seperti dalam pertanyaan / jawaban di atas, Anda bisa mendapatkan referensi spasial menggunakan
arcpy.Describe(dataset).spatialReference
. Di perpustakaan fungsi saya, saya kemudian mengintegrasikan ini ke dalam alur kerja, set-up untuk menangani perbandingan 2 dataset.Atribut individual dari objek referensi spasial geoprocessing tersedia di sini .
Fungsi-fungsi berikut harus membantu - jangan ragu untuk menggunakan / memodifikasi saja. Layak memeriksa apa yang dihilangkan - beberapa atribut dari sistem referensi spasial tidak akan berbahaya jika tidak cocok tetapi itu terserah Anda :)
Mengingat hal di atas, Anda dapat menggunakannya seperti:
Mengingat kasus penggunaan Anda, semoga penegasan tidak akan gagal.
Saya mengintegrasikan fungsi-fungsi ini sekarang ke dalam banyak proses seperti di mana saya memiliki serangkaian dataset spasial yang saya gabung dan ingin menghilangkan keraguan bahwa segala sesuatunya tidak selaras.
sumber