Apa perbedaan antara Cakupan, Shapefile dan Geodatabases di ArcGIS?

24

Saya bertanya-tanya tentang perbedaan dalam metodologi penyimpanan data spasial yang digunakan oleh Cakupan, Shapefile dan Geodatabases di ArcGIS. Cakupan adalah format awal, diikuti oleh Shape Files dan sekarang Geodatabases. Jadi apa yang telah diperbaiki dalam format Shapefile dan Geodatabases yang lebih baru ini?

Akan lebih bagus jika seseorang bisa menjelaskannya dengan contoh.

Abhishek Potnis
sumber
1
Saya pikir shapefile selalu lebih untuk berbagi data daripada penyimpanan utama. Itu tentu cara mereka digunakan dalam pengalaman saya.
Russell di ISC
3
Tidak semuanya. Shapefile adalah format data primer untuk ArcView 1/2 / 3.x. Mereka tentu saja menggunakan format (jika mereka adalah format transfer mereka tidak akan berada dalam beberapa file)
Vince

Jawaban:

22

Ini pertanyaan yang sangat bagus. Cakupan, Shapefile dan Geodatabases pada dasarnya berbeda menyimpan data geospasial dari sudut pandang implementasi maupun dari sudut pandang filosofis. Saya akan mencoba untuk meringkas tanpa terlalu jauh ke dalamnya.

1. Cakupan:

Cakupan adalah struktur data geospasial yang menarik . Mereka berkonsentrasi menyimpan topologi. Jadi, Anda akan melihat bahwa penekanannya adalah dalam menyimpan elemen geometri terlebih dahulu, yaitu node, tepi yang membentuk semua geometri. Anda kemudian akan melihat satu set tabel terpisah yang menghubungkan geometri dengan atribut (dan karenanya mereka "menjadi" fitur).

Dari bantuan ESRI

Sebuah "bersih" cakupan menjamin aturan-aturan tertentu, misalnya, bahwa ada node di setiap persimpangan node, Anda tidak akan memiliki dua (atau lebih) node di atas satu sama lain (atau bahkan dalam jarak toleransi kabur), bahwa tidak ada dua sisi saling bertumpukan, dll. Mereka juga memiliki indera pengarahan (dari-> ke) dan dapat membedakan antara apa yang ada di sisi kiri dan kanannya.

Bersihkan cakupan dari bantuan ESRI

Cakupan berfungsi dengan sangat baik untuk pengeditan yang membutuhkan kesadaran akan hubungan topologis (bayangkan mengedit batas parsel). Selain itu, tutupan kompres sangat baik karena mereka menghapus redundansi geometris dengan desain. Bahkan, Anda akan melihat bahwa saat ini, format modern seperti TopoJSON mulai menggunakan teknik yang sama yang kami pelajari dari liputan beberapa dekade yang lalu.

Cakupan bisa sedikit lebih rumit untuk bekerja ketika Anda berurusan dengan data 3D (misalnya memodelkan jembatan yang memiliki sisi atas dan sisi bawah tepat di bawah) karena algoritma yang kami gunakan untuk mengatasinya secara inheren dimaksudkan untuk matematika grafik planar 2D .

Jadi mengapa kita menjauh darinya? Itu akan membutuhkan jawaban yang lebih lama, tetapi mungkin kita harus menjelaskan sedikit lebih banyak tentang apa yang menjadikan ESRI Shapefiles populer pertama.

2. ESRI Shapefile:

Datanglah Shapefile. Mungkin karakteristik paling penting yang dimilikinya adalah bahwa / itu adalah Spesifikasi Terbuka yang (relatif) mudah diterapkan. Atribut memanfaatkan file DBF , jadi sudah ada banyak perpustakaan yang menerapkan sebagian besar spesifikasi. Tidak ada konsep "bersih", yang berarti bahwa setiap geometri individu hanya perlu khawatir tentang merepresentasikan dirinya sendiri tanpa mempertimbangkan geometri di sekitar mereka atau bahwa mereka berpotongan. Ini berarti bahwa kami tidak perlu melakukan matematika yang rumit untuk memastikan bahwa shapefile benar (tidak seperti rekan cakupan).

Punya banyak geometri yang saling bersilangan? Tentu saja mengapa tidak. Dua poin di atas satu sama lain? Jadilah tamuku.

Terkadang, format "terbaik" (yang bisa dibilang) bukanlah yang menang, tetapi yang diadopsi. Jika format mudah diimplementasikan, ia memiliki peluang lebih baik untuk diadopsi daripada yang rumit. Itu adalah Shapefile.

Tiba-tiba Anda memiliki beberapa perpustakaan (open source dan proprietary) dan vendor perangkat lunak yang mendukungnya. Jadi semuanya hebat.

Pertanyaan yang jelas kemudian - mengapa Geodatabases?

3. Geodatabases:

Saya percaya Geodatabases adalah salah satu toko data geospasial yang paling banyak disalahpahami. Orang biasanya menganggap mereka hanya sebagai "format geospasial". Beberapa tahun yang lalu, seseorang bertanya "Apa itu ESRI Geodatabases?" . Daripada mengulangi apa jawaban saya saat itu, saya menyambut Anda untuk membacanya terlebih dahulu. Aku akan menunggu :)

Sekarang setelah Anda membaca jawaban itu dan tahu apa itu Geodatabase, saya bisa sedikit mengembangkan jawaban itu. Pada saat itu, ada banyak penelitian yang mengoptimalkan SQL dan menulis pengoptimal permintaan yang memanfaatkan indeks, toko kolom, dll (masih ada). Dengan membangun Geodatabase di atas datastore SQL, kita dapat memanfaatkan semua penelitian itu secara gratis. Kita hanya perlu berkonsentrasi pada konsep geospasial, dan ketika penyimpanan data SQL menjadi lebih baik, Geodatabase menjadi lebih baik juga, secara gratis . Bukan proposisi yang buruk ya?

Saat ini, ada beberapa spesifikasi untuk data geospasial yang keluar. Juri masih di luar sana tentang apa yang akan menggantikan teknologi ini (jika ada). Namun demikian, jika Anda tertarik dengan topik ini, saya sarankan membaca jawaban untuk pertanyaan yang diajukan di sini di GIS.SE beberapa tahun yang lalu: "Apakah ada upaya untuk mengganti file bentuk"

Saya harap ini membantu!

Ragi Yaser Burhum
sumber
12

Sebagian besar informasi dapat ditemukan di Bantuan Esri dan beberapa pencarian, jadi saya baru saja mengumpulkan beberapa bacaan yang bagus.

Bagaimana cakupan disimpan? Karena ini adalah format berpemilik, Anda tidak akan menemukan spesifikasi teknis tentang bagaimana algoritma tersebut diterapkan (kecuali @Vince akan menjelaskan).

Shapefile datang kemudian dan diimplementasikan sebagai standar yang menyediakan tingkat interoperabilitas tertentu. Deskripsi Teknis ESRI Shapefile berisi deskripsi lengkap.

Geodatabases diperkenalkan kemudian. Geodatabase personal pertama datang (MS Access), lalu file geodatabase (format terenkripsi biner) dan geodatase enterprise (atau ArcSDE) yang mengambil keuntungan dari teknologi ArcSDE dan DBMS. Anda dapat membaca lebih lanjut tentang geodatabases di sini: Jenis geodatabases dan Arsitektur geodatabase .

Bacaan yang bagus di GIS.SE: Apakah akan menggunakan File Geodatabase (* .gdb), Personal Geodatabase (* .mdb) atau shapefile?

Mengenai kinerja, ada banyak tolok ukur yang dilakukan dan file geodatabase menunjukkan menjadi yang tercepat dalam hal membaca / menulis informasi. Geodatabase dan shapefile pribadi jauh lebih lambat dan mungkin satu-satunya alasan untuk menggunakannya adalah untuk mendukung sistem yang lebih lama yang dibangun dengan beberapa logika bisnis MS Access atau pemikiran membaca / konversi shapefile.

Geodatabase berbasis ArcSDE sering melakukan hampir serta file geodatabases ketika DBMS disetel, tetapi semuanya tergantung pada jenis data yang disimpan, jaringan, dan perangkat keras. Untuk informasi lebih lanjut tentang tolok ukur, lihat sumber daya strategi desain sistem Esri (dan di sini ).

Alex Tereshenkov
sumber
2
Format file cakupan didokumentasikan dalam dokumentasi FORTRAN SDK (LAB, ARC, dan TXT primitif, ditambah PAT, AAT, PAL, RAT, dan banyak sup alfabet). Sebagian besar "algoritma" tidak tergantung pada format file dan karenanya tidak didokumentasikan dalam SDK.
Vince
2
Saya pikir Personal Geodatabases datang setelah ArcSDE / SDE / SDBE Geodatabases tetapi sebelum File Geodatabases.
PolyGeo
3
Setelah SDBE dan SDE tentu saja, tetapi perubahan nama ArcSDE bersamaan dengan rilis format PGDB. FGDB datang kemudian.
Vince
Daniel Morisette secara terbalik merekayasa format cakupan menjadi berguna, yang sekarang menjadi bagian dari paket GDAL / OGR. avce00.maptools.org/docs/v7_bin_cover.html
matt wilkie
1
@ PolyGeo Anda benar. Fakta menyenangkan: SDE mendukung database Access pada satu titik. Anda dapat melihat bahwa di API ArcSDE untuk mengambil info koneksi: help.arcgis.com/en/geodatabase/10.0/sdk/arcsde/api/capi/… SE_DBMS_IS_JET adalah untuk Mesin MS Jet en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine
Ragi Yaser Burhum
8

Perbedaan utama antara format ini adalah cara fitur berhubungan dengan geometri. Kembali pada masa puncak pertanggungan, bahasa pengkodean adalah FORTRAN, yang berarti ukuran buffer tetap dalam blok UMUM. Yang paling ketat dari ini adalah 500 simpul per baris primitif ("arc"). Pembatasan ini memperkenalkan konsep "pseudo-node" (tempat dimana busur bergabung hanya dengan satu busur lainnya), dan mempersulit banyak operasi akses data lainnya.

Model cakupan menggunakan "polygon arc list" (PAL) untuk menggambarkan poligon, yang membutuhkan algoritma shading poligon untuk membaca satu file untuk mendapatkan daftar busur, kemudian membaca busur sendiri untuk mendapatkan jumlah titik, kemudian mengalokasikan cukup RAM untuk simpan semua simpul, lalu kembali untuk membaca lengkok lagi, kali ini menyalin simpul ke depan atau membalikkan urutan untuk merakit poligon lengkap. Hanya setelah dua kunjungan ke file ARC poligon dapat dijelaskan secara memadai, dan kemudian banyak dari busur yang sama perlu diakses (dalam arah yang berlawanan) untuk menaungi tetangga poligon.

Sebagai perbandingan, format shapefile dan berbagai geodatabase menyimpan geometri lengkap sebagai objek tunggal (dengan berbagai detail implementasi tentang bagaimana objek diimplementasikan secara fisik). Ini memiliki kelemahan ketika mencoba mengedit batas bersama, tetapi operasi itu secara signifikan lebih jarang daripada naungan poligon.

Model penyimpanan "seluruh bentuk" adalah perbedaan utama antara format cakupan dan yang baru, dan perbedaan ini sangat mendasar sehingga sulit untuk melihat perbedaan nyata antara shapefile dan berbagai format geodatabase. Faktanya, format shapefile digunakan untuk mengakses geometri FGDB melalui API FGDB, meskipun FGDB tidak menggunakan format yang tepat, hanya karena itu lebih sederhana daripada memperkenalkan tata letak vertex baru.

Vince
sumber
5

Satu lagi perbedaan antara format adalah bahwa geodatabase dapat memodelkan hubungan antara kelas fitur . Seperti yang dicatat Ragi,

Cakupan berfungsi dengan sangat baik untuk pengeditan yang membutuhkan kesadaran akan hubungan topologis (bayangkan mengedit batas parsel).

Tetapi kesadaran ini hanya ada dalam cakupan tunggal - jika Anda ingin memodelkan hubungan antara 2 atau lebih cakupan, Anda bertanggung jawab untuk menulis kode yang memeriksa setiap hubungan topologi "ilegal".

Misalnya, jika poligon parsel tidak dapat memiliki celah, dan batas-batas parsel harus sejajar dengan jalan, dengan cakupan atau shapefile terserah Anda untuk memverifikasi bahwa ini adalah kasusnya, dan secara manual memperbaiki kesalahan di mana aturan ini tidak ditegakkan.

Database geodat dapat secara opsional mendukung objek Topologi , yang memungkinkan Anda untuk menentukan aturan topologi yang diijinkan untuk data Anda. Yang penting, aturan-aturan ini dapat terjadi baik di dalam maupun di antara kelas fitur di geodatabase Anda.

Alat edit topologi dalam ArcMap membantu Anda menemukan pelanggaran topologi , dan dalam beberapa kasus memperbaikinya secara otomatis .

Sebelum pengenalan topologi geodatabase ("masa lalu yang baik"), adalah umum untuk menulis skrip AML yang panjang dan rumit untuk mendeteksi pelanggaran topologi, kemudian mengedit cakupan secara manual di ArcEdit (tidak terlalu menyenangkan).

Stephen Lead
sumber