Mengapa perlu waktu lama untuk menyalin dataset raster besar dari satu file geodatabase ke yang lain? Saya dapat menyalin seluruh database di windows explorer dalam hitungan menit tetapi menyalin satu raster di ArcCatalog membutuhkan waktu lama. Saya selalu berasumsi tidak disarankan untuk menggunakan windows explorer untuk menyalin data antara ke File Geodatabases tetapi apakah ada cara yang aman untuk melakukan ini? Jika ya, bagaimana caranya?
arcgis-10.0
raster
esri-geodatabase
Jakub Sisak GeoGraphics
sumber
sumber
Jawaban:
Saya pikir kuncinya adalah perbedaan antara bagaimana Windows Explorer memperlakukan satu file, dan bagaimana ArcCatalog / ArcGIS memperlakukan raster. Ada beberapa faktor di sini.
Dalam format File GDB, raster tidak diwakili oleh satu file. Itu terdiri dari tabel data, bersama dengan mungkin piramida dan indeks. Mengapa ini penting adalah karena ketika ArcCatalog menyalin raster, pertama-tama menggabungkan semua file terpisah ini ke dalam apa yang kita lihat sebagai raster. Itu kemudian menjalankannya melalui lapisan pemrograman ArcGIS untuk menyalinnya ke File GDB baru. Ini jauh lebih rumit di permukaan daripada hanya menggunakan sumber daya Sistem Windows untuk menyalin file karena merupakan lapisan tambahan pemrograman.
Bagian selanjutnya terkait dengan sesuatu yang Anda lihat ketika Anda menyalin kelas fitur lain di ArcCatalog. Jika Anda menyalin dan menempel di ArcCatalog, itu memunculkan jendela progres yang menunjukkan kacamata fitur asli dan target, dan kemudian sebuah iterator yang menghitung jumlah fitur yang telah ditransfer. Ini menunjukkan bahwa itu adalah pengulangan baris demi baris melalui FeatureClass. Ini masuk akal dari sudut pandang integritas data karena setiap fitur disalin dan diverifikasi sebelum pindah ke yang berikutnya. Dimana ini relevan untuk Raster adalah bahwa raster terdiri dari ratusan, jika tidak ribuan Poin. Jika dataset raster disalin dengan cara yang sama seperti vektor featureeclass, maka ArcCatalog pada dasarnya melakukan iterasi melalui setiap pasangan koordinat dalam Raster, untuk menyalinnya dari satu ke yang lain.
Faktor terakhir adalah ukuran dataset. Dalam kasus Anda, File GDB yang Anda perlihatkan memiliki tabel yaitu 20.671.104 KB, yaitu ~ 20GB. Itu adalah Raster besar, dan pastinya berisi jutaan poin. Itu banyak pasangan koordinat untuk diulangi.
Ketika Anda menggabungkan ukuran dataset Raster Anda, dengan kebutuhan untuk mengulangi setiap baris (Mengkoordinasikan pasangan), dan menjalankan semua itu melalui lapisan pemrograman ArcGIS, Anda berakhir dengan yang jauh lebih kompleks, dan dengan demikian operasi lebih lama daripada menyalin satu pun. file menggunakan fungsi Sistem Windows.
------- Edit
Untuk menjawab pertanyaan awal Anda tentang cara yang lebih cepat untuk menyalin raster antara file geodatabases, saya akan mengatakan satu hal untuk dicoba adalah menulis skrip python bernama arcpy. Karena Anda kemudian akan langsung berinteraksi dengan API, tanpa menjalankan kode ArcCatalog / ArcMap tambahan, itu mungkin sedikit lebih cepat. Contoh kode mengikuti:
Saya tidak yakin apakah perbedaan kecepatan akan menonjol, tetapi ini merupakan opsi.
Opsi lain, seperti yang dimaksud @ blah238, adalah tidak menyimpan raster dalam file geodatabase, tetapi dalam format berbasis file, seperti "geotiff", atau bahkan Grid ArcINFO, karena file tersebut kemudian dapat sepenuhnya dimanipulasi melalui antarmuka Windows .
Sayangnya, selain ini, opsi Anda untuk bekerja dengan file geodatabase di luar antarmuka ArcGIS terbatas. Ada API untuk File GDB yang memungkinkan programmer untuk berinteraksi dengannya dalam perangkat lunak yang berbeda. Salah satu contoh saat ini adalah melalui pustaka GDAL / OGR, dan segera, Quantum GIS. Masalah dengan API adalah bahwa ia tidak mendukung dataset Raster saat ini. Jika ini adalah sesuatu yang ingin Anda advokasi, saya akan menambahkan dukungan Anda ke entri ini di situs Ide ArcGIS .
sumber