ArcCatalog mengatakan referensi spasial tidak cocok antara dataset fitur dan kelas fitur dengan sistem koordinat yang sama?

31

Saya memiliki dataset fitur yang menggunakan GCS_WGS_1984 sebagai sistem koordinat geografis. Ini mencakup beberapa kelas fitur.

Dataset fitur ini sendiri dalam file geodatabase yang berisi beberapa kelas fitur lainnya di root gdb. Salah satunya adalah kelas fitur yang disebut "titik" yang juga menggunakan GCS_WGS_1984 sebagai sistem koordinatnya.

Saya pikir akan sepele untuk menggunakan ArcCatalog untuk menyeret kelas fitur dari root gdb ke dalam dataset fitur karena mereka memiliki sistem koordinat yang sama. Sayangnya ArcGIS memberikan dialog kesalahan yang mengatakan:

Failed to paste points
The spatial references do not match

Mengapa ini gagal? Jika GCS dari kelas fitur dan dataset fitur sama, bukankah seharusnya hanya berfungsi? Saya telah memverifikasi ini kasusnya melalui dialog serta mengekspor file prj untuk dataset dan kelas dan menggunakan alat diff untuk membandingkan keduanya. Mereka identik.

Apakah referensi spasial dari kelas fitur berbeda dari sistem koordinat / proyeksi?

Mencoba untuk menyalin kelas fitur ke dataset fitur dengan menahan ctrl sambil menyeret hasil di ArcCatalog crash setiap waktu (malu pada ESRI).

Saya kira saya bisa mencoba cara alternatif untuk memindahkan kelas fitur. Gunakan CopyFeatures ke dalam dataset. Proyeksikan dari kelas fitur ke kelas fitur baru dalam dataset fitur?

mindless.panda
sumber
Bisakah Anda memposting file gdb di suatu tempat? Mungkin menghapus semua atau beberapa fitur jika itu besar, terdengar seperti itu dapat direproduksi bahkan dengan kacamata fitur kosong.
Kirk Kuykendall
4
Saya berharap saya punya waktu untuk menjalankan setiap kekhasan kecil yang saya alami di ArcGIS, seringkali saya hanya harus hidup dengannya dan menemukan solusi paling tidak menyenangkan berikutnya. Saya menggunakan Manajemen Data -> Fitur Salin untuk menyalin ke kelas fitur baru (bernama temp), menghapus kelas fitur lama, mengganti kelas fitur baru agar sesuai dengan yang lama. Menggunakan ArcGIS seharusnya tidak memerlukan gelar dalam pengujian perangkat lunak. = (
mindless.panda
2
"seharusnya tidak memerlukan gelar dalam pengujian perangkat lunak" , chat.stackexchange.com/transcript/message/1116371
matt wilkie
itu hanya nama, mereka dapat mencocokkan tetapi jika mereka memiliki nama yang berbeda itu mengeluarkan pesan ini, abaikan saja.
Jika Anda tidak tahu- hanya GIS

Jawaban:

21

Sistem koordinat yang sama tidak selalu merupakan sistem koordinat yang identik . Saya telah menemukan situasi di mana beberapa operasi dan alat geoproses akan berpikir kelas fitur tidak berbagi sistem koordinat yang sama karena nama deskriptif proyeksi berbeda ("Yukon Albers" vs "Albers - kustom") walaupun parameternya identik, atau karena dari posisi desimal yang berbeda (false northing 500000.00 vs 500000.0000).

Apa yang biasanya saya lakukan adalah memastikan sistem koordinat Feature Dataset (dan F.class) dibuat dengan file .prj standar kami yang ditempatkan di bagian atas C:\path\to\ArcGIS\Desktop10.0\Coordinate Systems(membuat CS tersedia dengan lebih sedikit klik) dan / atau menyalin CS dari templat kelas fitur master disimpan di suatu tempat selalu di tangan.

Sebagian dalam menanggapi masalah ini, saya juga memiliki dataset fitur kosong ( D:\s.gdb\_template) yang saya corongkan semua data kami sebagai filter langkah pertama sebelum melakukan hal lain sama sekali dengan mereka. Di antara sistem koordinat umum ini juga memastikan ketepatan dan domain spasial dll identik.

Pembaruan: Lihat jawaban Andy tentang menggunakan python, hanya 2 baris, untuk menyalin sistem referensi spasial Fitur Dataset dari kelas fitur templat. Ini bekerja untuk saya di ArcCatalog 10.3 ketika metode interaktif mendefinisikan SR dengan memilih kelas fitur untuk mengimpor satu tidak berfungsi.

matt wilkie
sumber
Tidakkah perubahan kecil pada nama cetak cantik ini atau posisi desimal yang Anda sebutkan hadir dalam file .prj yang diekspor dengan opsi Simpan Sebagai? Jika demikian mengapa file prj diffing tidak menunjukkan apa-apa? Saya bertanya-tanya apakah sedikit perbedaan dalam resolusi x, y dapat menyebabkan konflik juga.
mindless.panda
1
Mungkin saja file .prj dibuat dengan "Save As" tidak persis sama dengan yang disimpan secara internal. Saya menggunakan fitur dataset "filter" untuk memastikan resolusi spasial umum dll.
matt wilkie
3
Saya akan menambahkan satu sisi tambahan untuk ini: Kadang-kadang set data dari sumber lain akan dihasilkan mengandung nilai-nilai M dan Z ketika mereka tidak benar-benar memiliki M atau Z. Saya telah menemukan bahwa beberapa alat ESRI mendeteksi sistem koordinat Z kosong karena tidak cocok, terlepas dari kenyataan bahwa sistem koordinat X / Y benar-benar cocok.
DPierce
16

Ini adalah penjelasan daripada jawaban.

Kami (Esri) melakukan pengujian yang cukup ketat terhadap nama dan nilai sistem referensi koordinat. Tes 'sama' tidak akan menghasilkan kegagalan ketika membandingkan 500000.00 dan 500000.000000, tetapi mungkin gagal jika satu benar-benar 500000.0 dan yang lainnya 500000.00000005. Kami sedang berupaya menambahkan alias untuk nama sehingga 'sama' akan melewati lebih banyak.

Seperti yang disebutkan oleh mindless.panda dan matt wilkie, perbedaan mungkin ada pada nilai-nilai lain dari referensi spasial. Referensi spasial mencakup sistem referensi koordinat dan nilai penyimpanan / pemrosesan. Untuk penyimpanan: xy, z, dan ukur resolusi dan luasan. Untuk memproses: xy, z, dan mengukur nilai toleransi. Perbedaan dalam hal ini dapat menyebabkan kesalahan yang tidak sama.

mkennedy
sumber
6
tanggapan Anda sangat dihargai. Saya benar-benar ingin melihat penanganan kesalahan, terutama pada apa yang dilaporkan kepada pengguna, meningkat di ArcGIS. Diperlukan lebih banyak kesalahan informatif, dengan opsi untuk mendapatkan informasi yang lebih terperinci jika diinginkan. Sekali lagi, terima kasih kepada ESRI karena telah meluangkan waktu untuk merespons.
mindless.panda
2
Saya kedua proposal untuk memberikan informasi lebih lanjut tentang kesalahan. Selama dua minggu terakhir saya mendapatkan kesalahan yang sama ( Error code: 999999: Error executing function. Description: This is a generic error for which the cause of the error does not have an appropriate error ID. ) karena berbagai masalah. Ini adalah pesan yang menyebalkan untuk diterima karena saya tidak dapat melakukan apa pun kecuali mencoba menjalankan apa yang saya lakukan untuk kedua kalinya untuk melihat apakah kesalahannya berulang, atau menyerah dan menggunakan metode lain (atau perangkat lunak, yang semakin sering terjadi).
djq
9

Inilah yang saya lakukan untuk menyelesaikan masalah (menggunakan arcpy di ArcGIS 10.0) -

Ini mengasumsikan sebagai berikut:

  • FGDB - C: \ gisdata \ Test.gdb
  • Kelas Fitur - C: \ gisdata \ Test.gdb \ bldg

Anda dapat memodifikasi jalur dan nama objek dalam kode dan menempelkannya ke jendela python di ArcCatalog.

sr = arcpy.Describe(r'C:\gisdata\Test.gdb\bldg').spatialReference
arcpy.CreateFeatureDataset_management(r'C:\gisdata\Test.gdb', 'MyFeatureDataset', sr)

Setelah dataset fitur dibuat, Anda dapat menarik dan melepas kelas fitur.

Andy Arismendi
sumber
1
Terima kasih! Ini bekerja untuk saya hari ini dalam situasi di mana menggunakan alat interaktif untuk menentukan sistem koordinat dataset fitur baru dengan memilih kelas fitur yang ada tidak berfungsi (v10.3).
matt wilkie
7

Masalah ini membunuhku! Setelah menyimpan banyak kelas fitur dari file CAD, saya mencoba beberapa kali untuk mendefinisikan sistem koordinat mereka kemudian mengaturnya ke dalam dataset fitur. Saya mencoba mendefinisikan semua f.class dan f.dataset yang diperlukan dari proyeksi WGS_1984_UTM_42N resmi dari ESRI, serta mengatur proyeksi untuk dataset kemudian mengimpor proyeksi itu untuk f.classes menggunakan alat Tentukan Proyeksi. Entah tidak ada kelas f yang akan menempel, atau 1 akan dan yang lain tidak.

Terima kasih banyak kepada @Matt Wilkie di pos ini , alat Kelas Fitur ke Kelas Fitur tampaknya telah menyelesaikan masalah. Itu berhasil mengimpor f.class ke dataset yang diinginkan, bahkan jika saya belum mendefinisikan sistem koordinat untuk f.class yang bersangkutan.

Selain itu, saya menemukan bahwa skrip Kelas Fitur ke Geodatabase (banyak) berfungsi baik untuk memindahkan f.class ke f.dataset secara massal, kecuali ini harus dilakukan dari Geodatabase ke yang lain (bukan ke f.dataset dalam geodatabase yang sama) . Ini kelihatannya karena skrip tidak secara otomatis mengganti nama f.class ketika disalin (atau meminta nama baru dari operator, seperti pada Kelas Fitur ke Kelas Fitur). Namun, seperti yang ditunjukkan oleh orang lain (utas yang sama tertaut di atas), kesalahan yang diberikan adalah generik 999999.

Matt Cohen-Harga
sumber
4

Saya punya masalah ini ketika hanya ingin memindahkan kelas fitur ke dataset fitur dalam GeoDatabase. Saya membuat Dataset Fitur saya dan memastikan ia memiliki sistem koordinat yang sama. Berkali-kali saya menerima "Gagal menempelkan xyz . Referensi spasial tidak cocok" Pekerjaan tercepat di sekitar yang saya temukan adalah mengimpor referensi spasial yang identik dalam dataset saya yang baru dibuat dari kelas fitur yang ingin saya impor ke dalamnya. Pada langkah kedua wizard "Buat Fitur Data Baru".

Saya tidak tahu mengapa referensi spasial berbeda.

Alan Boatman
sumber
Hai, @lan! Terima kasih telah berbagi pengalaman Anda dan selamat datang di situs kami.
whuber
1
Halo Alan, pembuat set data / kelas fitur baru tidak selalu menarik semua nilai penyimpanan / pemrosesan ketika "impor sistem koordinat" digunakan. Kami sedang berusaha memperbaikinya. Saya pikir inilah yang Anda temui.
mkennedy
1
Saya melihat masalah ini - bahkan jika saya membuat Feature Dataset dan menggunakan mekanisme impor dan memilih kelas fitur, saya masih tidak bisa menyeret / menyalin kelas fitur ke dalam Dataset Fitur yang baru dibuat tanpa kesalahan yang disebutkan di atas.
mindless.panda
3

Saya pikir salah satu pesan untuk ESRI adalah untuk memberikan informasi debug perbedaan parameter yang lebih spesifik ketika kesalahan ini terjadi. Saya juga mengalami kesalahan ini bahkan setelah dengan hati-hati mengendalikan sistem referensi dan proyeksi, seperti yang saya kira sebagian besar pengguna GIS lakukan.

Saya telah menemukan prosedur menggunakan Fitur Salin ArcToolbox untuk memperbaiki pesan kesalahan yang terjadi ketika mekanisme impor atau salin digunakan. Di sini kita bergantung pada prosedur kotak alat Fitur Salin untuk menyelesaikan dengan benar perbedaan referensi atau proyeksi sebelum memasukkan kelas fitur ke dalam dataset fitur.

Saya bahkan telah mencoba membuat dataset fitur dengan sistem proyeksi yang ditentukan pada waktu pembuatan dataset, dan kemudian memproyeksikan kelas fitur ke dalam dataset fitur menggunakan alat proyeksi ArcToolbox dengan proyeksi yang sama, dan masih menerima kesalahan yang dijelaskan di sini ketika saya mencoba mengimpor atau salin kelas fitur ke dalam dataset.

Masalah sistem koordinat ini menjadi tertutup ketika Anda menggunakan data di ArcMap. Karena ArcMap melakukan proyeksi saat itu juga, beberapa kelas fitur yang masing-masing dengan proyeksi berbeda dapat ditambahkan ke peta ArcMap tanpa pengguna sadari. ArcMap akan memperingatkan tentang sistem referensi koordinat yang berbeda.

Derek S Wilson
sumber
1

BAIK. Saya telah menemukan solusinya! Rightmouse pada Features Dataset di GDB dan klik Import. Pilih Fitur yang Anda butuhkan, lalu OK.

Sergei Valetov
sumber
0

Coba gunakan alat Fitur Salin di bawah Alat / Fitur Manajemen Data. Kalau tidak, saya terus mendapatkan kesalahan tidak peduli apa yang saya lakukan.

Rayner
sumber
-1

Sudahkah Anda mencoba membawanya ke ArcMap dan mengatur lapisan sebagai GCS_WGS_1984 Anda dan kemudian mengekspor semua lapisan Anda ke geodatabase file?

Jika Anda memiliki satu atau beberapa lapisan dalam proyeksi berbeda, Anda dapat mengekspornya tetapi mengubah bingkai data menjadi GCS_WGS_1984?

Saya tidak yakin untuk itu di ArcGIS 10. Saya belum memilikinya tetapi saya menggunakan 9.3.1.

PROBERT
sumber
1
Bisakah Anda menjelaskan poin 1 dan 2? Ini tampaknya tidak akurat.
Aaron