Memotong dataset poligon sangat besar di ArcGIS?

8

Saya mencoba untuk klip dataset poligon besar (~ 5gb, ribuan fitur) dengan dataset poligon jauh lebih kecil (~ 40 fitur). Apakah ada praktik terbaik atau rute paling efisien untuk melakukan tugas ini?

Klip geoprosesor standar berjalan tanpa batas pada dataset dengan ukuran ini. Apakah beberapa bentuk seleksi spasial dan ekspor akan lebih efisien?

EDIT : Beberapa jawaban bagus di bawah ini. Saya memilih apa yang saya anggap sebagai respons paling menyeluruh, tetapi setiap jawaban memberikan wawasan unik tentang masalah ini. Terima kasih!

Radar
sumber
4
Bagaimana sejauh mana dataset yang lebih kecil dibandingkan dengan yang lebih besar? Jika luasan yang sangat berbeda, Anda dianggap kliping pertama (atau hanya memilih melalui persimpangan) dataset besar dengan tingkat yang lebih kecil untuk mengurangi ukuran dari masalah?
whuber
2
Memotong dataset poligon sangat besar di ArcGIS? Jangan lakukan itu. Setelah bertahun-tahun mencoba ini, kami akhirnya menggunakan database dan mendapatkan SQL pekerjaan, waktu adalah uang.
Mapperz
@whuber - +1 Luasnya sangat mirip, meskipun saya telah menggunakan metode yang disarankan di masa lalu.
Radar
Sayang sekali ... Saya setuju dengan Mapperz. Saya juga melihat @dmahr telah mengirim balasan yang sangat bagus yang akan membantu Anda menyelinap di solusi atau bekerja di sekitar, jika ada yang mungkin. Ini memberikan strategi yang baik untuk berurusan dengan dataset besar menggunakan perangkat lunak apa pun.
whuber
Dari blog ini sepertinya cukup bermasalah di ArcGIS. donmeltz.com/blog/index.php/2011/06/11/…
Nicklas Avén

Jawaban:

13

Seperti biasa ketika berhadapan dengan masalah skalabilitas, yang terbaik adalah mulai dari yang kecil dan sederhana dan teruskan dengan cara Anda hingga yang besar dan kompleks.

Dalam hal klip, itu harus cukup pintar untuk berurusan dengan dataset besar karena ubin mereka secara internal . Tetapi karena tidak berfungsi, coba jalankan Klip dengan dataset input (data yang akan dipotong) dan dataset klip (data yang digunakan klip) dengan banyak fitur, jauh lebih sedikit . Seperti satu fitur klip, dengan hanya area di sekitarnya dalam dataset input (gunakan kueri definisi untuk mengecilkannya). Pastikan itu berjalan baik-baik saja, dan kemudian terus meningkatkan ruang lingkup operasi geoprocessing hingga kinerja menurun.

Beberapa ide spesifik:

  • Larutkan fitur klip ke dalam kelas fitur tunggal, multi-bagian.

  • Kurangi ukuran file dari fitur input menggunakan Simplify Polygon . Dataset vektor 5GB sangat besar - bahkan shapefile dari semua 250.000 kelompok blok Sensus AS hanya sekitar 1GB.

  • Membagi fitur input menjadi beberapa bagian. Secara teoritis, rutinitas ubin internal di dalam alat geoproses seharusnya sudah melakukan ini, tetapi Anda tidak pernah tahu. Mungkin ada beberapa masalah batasan ukuran file 32-bit di mana Anda tidak dapat memiliki shapefile lebih besar dari 2 32 byte = 4.29GB.

Beberapa tips kinerja geoproses yang lebih umum:

  • Pastikan kedua set data memiliki sistem koordinat yang sama. Jika memungkinkan, lebih cepat memiliki keduanya dalam sistem koordinat geografis tanpa proyeksi.

  • Pastikan Anda tidak kehabisan drive jaringan. Gunakan hard drive lokal tercepat atau, jika mungkin, SSD.

  • Muat dataset klip ke dalam memori .

  • Hapus bidang atribut yang tidak perlu (dan gabung lagi nanti jika perlu).

  • Tip kinerja geoproses lainnya .

dmahr
sumber
5
+1 Sangat bagus. Bisakah saya menyarankan mendekati masalah sedikit lebih kuantitatif? Daripada hanya menunggu permulaan penurunan kinerja, manfaatkan waktu untuk operasi. Bahkan sesuatu yang kasar seperti menonton jam sistem dapat berguna. Merencanakan waktu dengan ukuran masalah dapat menunjukkan bagaimana skala, memberi Anda cara untuk memperkirakan upaya untuk masalah penuh, dan bahkan mengungkapkan tempat di mana penskalaan berubah (Anda menabrak dinding sumber daya atau perubahan algoritma internal, misalnya) . Ini informasi yang mudah didapat dan bisa sangat berguna.
whuber
Saya sepenuhnya setuju dengan Whuber tentang ini. Saya selalu melacak waktu kinerja geoprocessing, terutama dengan objek timedelta di Python (ketika saya scripting dengan ArcPy). Tip lainnya adalah menggunakan monitor sistem yang lebih lengkap, seperti Process Explorer . Ini dapat memberi Anda lebih banyak informasi tentang kinerja dan membantu Anda mengidentifikasi hambatan.
dmahr
7

Beberapa fungsi ArcGIS seperti Union dan Intersect menggunakan pemrosesan subdivisi adaptif seperti yang dijelaskan dalam pemrosesan ubin dari dataset besar . Sayangnya ini muncul seolah-olah Klip tidak memiliki alat geoproses yang besar.

Sepertinya Anda mungkin dapat meniru konsep ini melalui skrip ModelBuilder atau Python yang menggunakan alat Split (ArcInfo) untuk membantu memproses kumpulan data berukuran besar.

RyanKDalton
sumber
7

Atau, Anda bisa menyerah pada ArcGIS dan mencoba melakukan klip di OGR. Lihat penjelasan di sini . Saya telah menemukan ini berfungsi ketika tidak ada yang lain!

Darren Cope
sumber
1
ogr2ogr -clipsrc clipping_polygon.shp output.shp input.shp Sial, itu indah.
RK
3

Saya pikir bahkan memilih berdasarkan lokasi akan bekerja untuk Anda, pertama-tama Anda memilih semua poligon yang bersinggungan dengan shapefile Anda yang lebih kecil dan kemudian menghapusnya. semoga ini lebih cepat. biar tahu jika itu berhasil untuk Anda. Terima kasih.

Ramakrishna Billakanti
sumber
Bukan ide yang buruk secara umum - tetapi apakah Anda membaca komentar untuk pertanyaan asli? Permintaan awal tidak akan mengurangi ukuran masalah banyak.
Whuber
2
Ini benar-benar bekerja untuk saya. Dan, omong-omong, ini sangat berbeda dari memotong sejauh. Saya memiliki dua file vektor (satu dengan> 7 juta fitur, dan yang lain dengan ~ 5000) dengan tingkat yang sama, tetapi dengan kurang dari 1% dari 7 juta fitur yang memotong fitur klip. Saya menunggu lebih dari 8 jam agar klipnya berfungsi pada dataset lengkap ... itu tidak pernah selesai sebelum saya menyerah. Sebagai gantinya, saya memilih berdasarkan lokasi fitur yang memotong, mengekspor pilihan ke kelas fitur sendiri, dan kemudian menjalankan klip. Total waktu untuk ini (termasuk pemilihan): sekitar 1,5 menit.
Tom
Ini adalah pilihan yang baik untuk kliping poin dengan poligon seperti dalam kasus saya. Saya mencoba memotong sekitar 1 juta poin sebanyak 1 juta poligon - biarkan berjalan lebih dari dua hari dan tidak pernah selesai. Pilih berdasarkan lokasi dan ekspor dilakukan dalam waktu kurang dari 5 menit. Saya tidak tahu mengapa saya tidak memikirkan opsi ini sejak awal :-)
Janina