Bagaimana cara meningkatkan kinerja rendering dari shapefile yang sangat besar?


20

Saya memiliki bentuk poligon yang memiliki komponen file 100MB .dbf, dan 500MB .shp. Alasannya sangat besar, adalah karena diklasifikasikan sebagai basis rumah tangga untuk seluruh kabupaten.

Setiap kali saya melihat file di ArcCatalog, atau ArcMap, dan memindahkan jendela tampilan sedikit, seluruh file perlu digambar ulang dari awal. Saya telah mencoba pengindeksan spasial dan mengimpor ke geodatabase - tidak ada pendekatan yang memberikan peningkatan kinerja yang nyata sehubungan dengan rendering.

Halaman bantuan Esri menunjukkan bahwa untuk meningkatkan kinerja shapefile, pengguna dapat menggeneralisasi file . Meskipun ini jelas akan berhasil, saya tidak ingin kehilangan informasi apa pun. Memisahkan file tidak ideal karena saya melakukan banyak geoproses / permintaan dengan seluruh area. Saya kira saya bisa menghindari melihat seluruh area sekaligus - tetapi kadang-kadang, misalnya, baik untuk melihat bagian mana dari file yang telah dipilih kueri.

Apakah ada pendekatan lain yang bisa saya ambil untuk meningkatkan kinerja rendering?

(Secara teori, membangun piramida shapefile akan ideal - saya tidak yakin mengapa ArcGIS tidak pernah mendukung pendekatan semacam itu - setidaknya saya tahu ...)


2
Memiliki shapefile sebesar itu, hanya meminta masalah. Dalam pengalaman saya, shapefile besar cenderung mudah rusak. Dapatkan di File Geodatabase, untuk menghindari korupsi. Performa menggambar yang lebih baik akan menjadi bonus tambahan.
Devdatta Tengshe

Seperti yang saya perhatikan di atas, saya menemukan bahwa mengimpor shapefile besar ke gdb tidak menghasilkan perbaikan - dari sudut pandang rendering murni. Anda benar bahwa meskipun dari perspektif umum tidak masuk akal untuk tidak memiliki file shp besar dalam gdb (untuk segala macam alasan).
Youzer

2
Sudahkah Anda mempertimbangkan untuk menggunakan raster alih-alih shapefile?
Kirk Kuykendall

saya bingung dalam satu hal bagaimana jika ukuran file 2gb dan memori komputer juga 2gb maka bagaimana arcgis akan menangani data file ini karena akan menggunakan memori penuh
user2174920

jika Anda punya jutaan poligon kecil, seharusnya menggunakan raster adalah pepatah terkenal (kecuali Anda membuat lapisan tanah ...)
Jika Anda tidak tahu- hanya GIS

Jawaban:


22

Pikiranku adalah:

  1. Ekspor shapefile Anda ke kelas fitur file geodatabase - Saya pikir kinerja gambarnya akan lebih baik tetapi saya tidak yakin berapa banyak
  2. Jika Anda menggunakan ArcGIS Desktop 10.0 atau lebih baru, pindahkan ke Layer Basemap - ini akan meningkatkan kinerja menggambar secara dramatis
  3. Jika Anda menyukai suara piramida untuk data vektor, pastikan untuk memilih Ide ArcGIS ini .

3
Kecuali Anda tidak dapat melakukan analisis atau seleksi pada basemap layers IIRC.
blah238

4
Kecurigaan yang bisa didapat dengan memiliki lapisan kedua di TOC menunjuk pada sumber yang sama dan bukan lapisan peta dasar, yang biasanya dimatikan tetapi dapat ditampilkan ketika diperlukan untuk analisis atau seleksi.
PolyGeo

PolyGeo - terima kasih atas jawabannya. Saya mencoba baselayer dan memang peningkatan kinerja utama adalah ketika "zoom to layer" diklik, file tidak dirender dari awal. Solusi yang Anda sarankan berikan komentar blah238 mungkin akan bekerja dari beberapa proyek, tetapi saya menemukan hal tambahan yang membatasi penggunaan baselayer adalah bahwa Anda tidak dapat memvisualisasikan dbf menggunakan simbologi apa pun. Dengan batasan ini saya mungkin juga menggeneralisasi file untuk referensi (bukan baselayer), lalu sembunyikan layer "real" ketika dibutuhkan. Bukan solusi yang hebat .. Saya akan memilih ide "piramida" seperti yang Anda sarankan!
Youzer

6

Ada banyak tips untuk meningkatkan kinerja ArcMap yang mungkin bisa membantu, tapi inilah tiga saran yang saya gunakan.

  1. Saya akan memastikan sistem koordinat Frame Data cocok dengan shapefile saya dan lapisan lain yang saya miliki di TOC; tetapi semakin sedikit layer yang ditampilkan, semakin baik.
  2. Saya hanya akan menggunakan simbologi saya berdasarkan garis sederhana dan isi tanpa transparansi atau kompleksitas lainnya.
  3. Jika Anda membutuhkan ikhtisar dan kemampuan untuk menjelajah dari dekat, pertimbangkan untuk menggunakan kaca pembesar atau penampil.

saran umumnya sangat bagus. Saya memang menerapkan semua ini dalam tes awal saya - tampaknya lebih banyak / trik yang berbeda diperlukan untuk menangani kelas fitur yang sangat besar / shapefile.
Youzer

4

Anda dapat meningkatkan rendering dengan mengatur parameter tampilan layer sehingga layer tidak akan ditampilkan dalam skala besar (mis.> 1: 10.000). Anda dapat menemukan opsi ini di properti lapisan: Properti Lapisan> Tab Umum> "Jangan tampilkan lapisan saat diperbesar melampaui ..."

Juga, lokasi penyimpanan penting - misalnya, jika disimpan di server lama dengan bandwidth yang buruk, Anda dijamin memiliki kinerja yang buruk. Saya secara rutin menangani data vektor 1GB + melalui server, yang membuat saya mempertanyakan apakah spesifikasi sistem Anda perlu diperbarui (untuk referensi, saya menjalankan RAM 12GB, 2nd gen i7, kartu grafis rata-rata).

masukkan deskripsi gambar di sini


3

Apakah Anda perlu merender peta untuk membuat pertanyaan? Bagaimana jika Anda menjalankan skrip python dan mengakses data tanpa menggambar peta? Saya tidak yakin proses persisnya, kebutuhan, dll, tetapi sebuah pemikiran.


3

Sebagai sedikit tindak lanjut dari jawaban Aaron , Anda juga bisa menggunakan kueri definisi untuk membatasi jumlah hasil yang dikembalikan untuk visualisasi (dan itu termasuk analisis - saya percaya ini berfungsi seperti seleksi). Jika tidak semua fitur diperlukan untuk dilihat pada saat tertentu dan Anda tidak mengubah daerah satu ton, kueri definisi bisa menjadi solusi yang bisa diterapkan, meskipun bukan jawaban yang tepat untuk pertanyaan atau kebutuhan Anda.


3

Saya mendengar frustrasi Anda. Saya secara rutin bekerja dengan shapefile besar seperti ini dan tidak memiliki masalah tampilan, secara umum. Saya setuju dengan semua komentar di atas, terutama memastikan semuanya dalam proyeksi yang sama, termasuk kerangka data. Saya berasumsi Anda telah menyalin file secara lokal dan tidak mencoba mengaksesnya melalui jaringan? Satu hal yang akan menyebabkan masalah tampilan dengan shapefile ukuran ini adalah jika ada jumlah ekstrim dari simpul, seperti dalam jaringan aliran. Satu-satunya solusi yang saya temukan untuk ini adalah membuat skrip python untuk melakukan definisi layer dengan cepat jadi saya hanya menggambar beberapa per satu. Hal lain adalah memperbarui memori grafis komputer Anda dan kartu grafis.

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.