BAB 2: Satu Lemari untuk Semua Data: GeoPackage dan Geodatabase
#Studi kasus: "Kirimannya tidak lengkap"
Seorang surveyor mengirim hasil kerja lewat pesan. Hanya satu berkas yang sampai, yaitu .shp. Berkas .dbf yang memuat atributnya tertinggal. Fotonya ada di folder lain. Saat Anda memperbaikinya, kolom Diameter_cm ternyata terpotong menjadi Diameter_c.
Kepala Seksi bertanya, "Bisa tidak semuanya dibungkus jadi satu?" Bisa. Bab ini membahas dua pembungkus yang dipakai di dunia GIS: GeoPackage dan file geodatabase.
#Konsep: wadah data dalam tiga kalimat
Wadah data adalah tempat layer dan tabel disimpan. Shapefile seperti kertas-kertas lepas yang harus dibawa bersamaan, sedangkan GeoPackage seperti satu ordner yang memuat semuanya. File geodatabase adalah ordner serupa buatan Esri, yang tampil sebagai folder berakhiran .gdb.
Istilah baru bagian ini:
- GeoPackage: satu berkas berekstensi
.gpkgyang bisa memuat banyak layer, tabel, dan pengaturan tampilan. Isinya basis data SQLite. - File geodatabase: wadah milik Esri, berupa folder
.gdb. - Tabel tanpa geometri: tabel biasa tanpa titik, garis, atau poligon, misalnya daftar pilihan.
- Gaya tersimpan: pengaturan tampilan dan formulir yang disimpan di dalam wadah, bukan di berkas terpisah.

#Apa yang saya buktikan di data latihan
Hal-hal berikut saya uji dengan GDAL dan QGIS 4.0.2. [terbukti]
- Membuat shapefile dengan field
Diameter_cmmenghasilkan nama terpotongDiameter_c, dan tiga berkas (.shp,.shx,.dbf). - Satu GeoPackage memuat layer titik, layer poligon, dan dua tabel acuan tanpa geometri.
- Saat sebuah layer GeoPackage sedang diedit di QGIS, muncul dua berkas pendamping,
.gpkg-waldan.gpkg-shm. Setelah perubahan disimpan, keduanya hilang. - Layer GeoPackage bisa disalin ke file geodatabase lewat GDAL (
ogr2ogr -f OpenFileGDB). Saat itu, kolom tanggal ditulis sebagai tanggal-waktu.
#Perbandingan tiga wadah
| Hal | Shapefile | GeoPackage | File geodatabase |
|---|---|---|---|
| Bentuk | Banyak berkas | Satu berkas .gpkg | Folder .gdb |
| Panjang nama field | 10 huruf (terbukti) | Panjang | Panjang |
| Banyak layer dalam satu wadah | Tidak | Ya (terbukti) | Ya |
| Tabel tanpa geometri | Tidak | Ya (terbukti) | Ya |
| Domain nilai | Tidak | Ya (terbukti, lihat Bab 3) | Ya |
| Gaya dan formulir QGIS tersimpan di dalam | Tidak (berkas .qml terpisah) | Ya (terbukti) | Perlu dicek [CEK] |
| SQL | Tidak | Ya (terbukti, lihat Bab 7) | Perlu dicek [CEK] |
| Standar | Format lama milik perusahaan | Standar terbuka OGC | Format milik Esri |
#Aturan membawa GeoPackage
- Tutup QGIS dulu sebelum menyalin berkas
.gpkg. Bila ada berkas.gpkg-waldan.gpkg-shmdi sampingnya, berarti masih ada perubahan yang belum tergabung. Menyalin hanya.gpkgbisa membuat Anda membawa versi lama atau berkas yang tidak terbuka. [kemungkinan: dari diskusi pengembang QGIS dan uji penulis] - Beri nama berkas yang jelas, misalnya
Survei_KPH.gpkg. Satu survei, satu berkas. - Jangan menyalin ke banyak surveyor lalu mengedit bersamaan di berkas yang sama. Bab 5 menjelaskan cara yang aman.
- Simpan data dan foto sedekat mungkin, misalnya satu folder proyek, supaya jalur foto tetap valid.
#Bagian A: QGIS
#Bagian A: Membuat GeoPackage survei di QGIS
Hasil akhir: Survei_KPH.gpkg dengan layer Titik_Survei dan dua tabel acuan, Ref_Kondisi dan Ref_Jenis. Struktur ini sama dengan yang dipakai Bab 2 M1, ditambah beberapa kolom.
- Buat folder
KPH_Contoh. Salin folderpaket-i3ke dalamnya. - Pilih Layer ► Create Layer ► New GeoPackage Layer. Isi Database dengan
KPH_Contoh/Survei_KPH.gpkg, Table nameTitik_Survei, Geometry typePoint, dan CRSEPSG:32749. - Tambahkan sepuluh field satu per satu dengan tombol Add to Fields List, sesuai tabel di bawah. Lalu klik OK. Hasil yang akan terlihat: layer
Titik_Surveikosong di panel Layers.
| Field | Tipe | Isi |
|---|---|---|
ID_Survei | Text (10) | Kode unik, misalnya SV-001 |
KPH | Text (20) | Petak: KPH Alpha, KPH Beta, KPH Gamma |
Jenis | Text (20) | Jati, Mahoni, Sengon |
Kondisi | Text (20) | Sehat, Terserang Hama, Tebangan Liar |
Tinggi_Phn | Decimal | Tinggi pohon (m) |
Diameter_cm | Decimal | Diameter batang (cm) |
Tgl_Survei | Date | Tanggal survei |
Surveyor | Text (30) | Nama surveyor |
Akurasi_m | Decimal | Akurasi GNSS (m) |
Foto | Text (100) | Nama berkas foto |
- Buat tabel acuan. Ulangi New GeoPackage Layer dengan Database yang sama, Table name
Ref_Kondisi, Geometry typeNo Geometry, dan satu fieldKondisibertipe Text. Bila QGIS bertanya, pilih Add New Layer, bukan menimpa berkas. [CEK] - Isi
Ref_Kondisidengan tiga baris:Sehat,Terserang Hama, danTebangan Liar. Lakukan hal serupa untukRef_Jenis(Jati,Mahoni,Sengon).
Cara cepat: jalankan skrip I3.2 yang melakukan semua langkah di atas sekaligus. Skrip berhenti bila berkas sudah ada, supaya tidak menimpa pekerjaan Anda.
# Inti skrip I3.2 (berkas lengkap: skrip/i3_02_buat_geopackage.py)
skema = ("Point?crs=EPSG:32749&field=ID_Survei:string(10)&field=KPH:string(20)&field=Jenis:string(20)"
"&field=Kondisi:string(20)&field=Tinggi_Phn:double&field=Diameter_cm:double&field=Tgl_Survei:date"
"&field=Surveyor:string(30)&field=Akurasi_m:double&field=Foto:string(100)")
sementara = QgsVectorLayer(skema, "Titik_Survei", "memory")
QgsVectorFileWriter.writeAsVectorFormatV3(sementara, KELUAR, QgsProject.instance().transformContext(), opsi)Hasil uji (QGIS 4.0.2): Titik_Survei valid dengan 0 baris dan 10 field (ditambah fid), Ref_Kondisi 3 baris, Ref_Jenis 3 baris.
- Lihat isi wadah di panel Browser. Buka
Survei_KPH.gpkg► tiga tabel tampil. Seret ketiganya ke kanvas bila perlu. - Satu kebiasaan baik: ubah shapefile lama menjadi GeoPackage. Klik kanan layer ► Export ► Save Features As, pilih format GeoPackage. Perhatikan bahwa nama field panjang tidak lagi terpotong. [CEK]
#Bagian B: ArcGIS Pro
#Bagian B: ArcGIS Pro
Di Pro, wadah utamanya adalah file geodatabase. Pro juga bisa terhubung ke GeoPackage. Cocokkan dengan versi Anda. [CEK]
- Jalankan Create File Geodatabase (Data Management Tools ► Workspace). Beri nama
Survei.gdb. [CEK] - Jalankan Create Feature Class dengan tipe geometri Point, nama
Titik_Survei, dan sistem koordinat WGS 1984 UTM Zone 49S. Tambahkan field seperti tabel di Bagian A. [CEK] - Buat tabel acuan dengan Create Table, lalu tambahkan field dan baris. [CEK]
- Untuk membuat GeoPackage dari Pro, pakai alat Create SQLite Database dan pilih jenis ruang GEOPACKAGE. Dokumentasi Esri menyebut alat ini bisa membuat GeoPackage. [kemungkinan: dokumentasi Esri]
- Untuk membuka GeoPackage yang sudah ada, buat koneksi basis data dari panel Catalog. Dokumentasi Esri menyebut koneksi SQLite dan GeoPackage bersifat satu pengguna. [kemungkinan: dokumentasi Esri]
#Bagian C: ArcMap 10.8
#Bagian C: ArcMap 10.8
- Buat file geodatabase dengan alat Create File GDB (ArcToolbox ► Data Management Tools ► Workspace). Folder tujuan harus sudah ada. [CEK]
- Buat feature class titik dengan Create Feature Class, lalu tambahkan field. [CEK]
- Dokumentasi Esri menyatakan ArcMap dapat terhubung ke GeoPackage (sejak versi 10.2.2). Beberapa versi, seperti 10.8.1, memerlukan indeks spasial pada GeoPackage sebelum datanya tampil. Bila GeoPackage tidak terbaca, simpan salinan data sebagai file geodatabase atau shapefile. [kemungkinan: dokumentasi Esri dan laporan pengguna]
#Cek paham
- Sebutkan dua kerugian shapefile untuk data survei lapangan.
- Mengapa Anda perlu menutup QGIS sebelum menyalin berkas GeoPackage?
- Apa gunanya tabel acuan seperti
Ref_Kondisi?
Jawaban:
- Nama field dibatasi 10 huruf, dan satu layer terdiri atas banyak berkas yang mudah tercecer. Shapefile juga tidak bisa memuat tabel acuan di wadah yang sama.
- Saat layer diedit, ada berkas pendamping
.gpkg-waldan.gpkg-shmyang menyimpan perubahan sementara. Menutup QGIS menggabungkan perubahan ke berkas utama, sehingga salinannya lengkap. - Menyimpan daftar pilihan yang sah di dalam wadah yang sama. Daftar ini dipakai oleh formulir dan pemeriksaan data.
#Kesalahan umum
- Menyalin `.gpkg` saat QGIS masih membuka layer yang diedit. Tutup dulu, atau pastikan perubahan sudah disimpan.
- Membuat satu GeoPackage untuk setiap layer tanpa alasan. Kumpulkan layer yang berhubungan dalam satu berkas.
- Memakai spasi dan huruf aneh dalam nama. Ini menyulitkan SQL (Bab 7) dan skrip.
- Mengira file geodatabase bisa diedit di semua aplikasi. QGIS dapat menulis ke file geodatabase lewat GDAL, tetapi hasilnya sebaiknya diperiksa di produk Esri. [CEK]
#Ringkasan dan latihan
Ringkasan: gunakan satu wadah untuk satu survei. GeoPackage memuat layer, tabel acuan, pengaturan formulir, dan domain dalam satu berkas. File geodatabase adalah padanan Esri. Tutup aplikasi sebelum menyalin.
Latihan: buat Survei_KPH.gpkg seperti Bagian A, lalu buka panel Browser dan hitung ada berapa tabel di dalamnya. Jawaban yang diharapkan: tiga (Titik_Survei, Ref_Kondisi, Ref_Jenis).
#Tabel perbandingan: membuat wadah survei
| Tugas | QGIS | ArcGIS Pro | ArcMap 10.8 |
|---|---|---|---|
| Wadah utama | GeoPackage | File geodatabase (GeoPackage juga bisa) | File geodatabase (GeoPackage bisa terhubung [CEK]) |
| Membuat wadah | Layer ► Create Layer ► New GeoPackage Layer | Create File Geodatabase | Create File GDB |
| Membuat layer titik | Dialog yang sama, jenis Point | Create Feature Class | Create Feature Class |
| Tabel tanpa geometri | Geometry type: No Geometry | Create Table | Create Table |
| Melihat isi wadah | Panel Browser | Panel Catalog | Jendela Catalog |