Pada bagian keempat dari series ini kita akan membahas penerapan QGIS Expressions untuk mengatur default value dari data atribut. Nilai default bisa berasal dari variable dinamis atau nilai layer lain yang tumpang-tindih. Keuntungan penggunaan default value ini adalah kita tidak perlu mengisi atribut data setelah melakukan digitasi, karena nilainya akan otomatis terisi sesuai dengan expression yang digunakan. Prinsip penerapan QGIS Expressions untuk mengatur default value ini mirip dengan trigger function pada database, yang akan otomatis berjalan ketika ada perubahan data.
Berikut adalah sampel data yang digunakan dalam tutorial kali ini. Silakan diunduh dengan kata sandi: Spasialk*n.COMuntukBelajar (* = a)
Setelah data siap, silakan langsung saja buka properties layer yang akan digunakan, kemudian pilih Tab Attributes Form dan pilih dulu field yang akan diatur nilai defaultnya. Adapun pengaturan yang perlu diperhatikan antara lain terkait (i) Alias, (ii) Opsi Editable, (iii) opsi Apply default value on update, dan (iv) expression default value-nya tentu saja.
Variabel Dinamis
Bagi yang bingung contoh expressionnya seperti apa, silakan tengok tulisan QGIS Expressions 1 (Koordinat, Panjang, Luas, dan Keliling), QGIS Expressions 2 (Manipulasi Teks atau String), dan QGIS Expression 3 (Select by Expression, Case Statement, dan Teks di Simbol).
Sebagai contoh
@project_author @user_full_name @user_account_name
now()
Analisis Overlay (Fungsi Aggregate)
Dengan memanfaatkan fungsi aggregate, nilai default dapat diatur mengikuti nilai dari layer lain (yang saling bertumpang tindih). Kurang lebih seperti konsep overlay algoritma intersect. Perbedaannya, jika biasanya sebelum melakukan proses overlay terlebih dahulu semua data harus sudah siap, baik dari sisi atribut maupun geometri/grafisnya, dengan pengaturan default value menggunakan QGIS Expressions (fungsi aggregate) kita bisa melakukan analisis intersect paralel/bersamaan dengan proses digitasi data.
Bagi yang masih bingung dengan penjabaran di atas, berikut ilustrasinya (yang semoga saja bisa membantu):
Sebagai contoh, berikut adalah expressions untuk mengambil nama kecamatan yang bertampalan dengan layer batas administrasi.
aggregate( layer:='admin_desa_bantul', --mendefinisikan nama layer yang akan diambil nilainya aggregate:='concatenate', --opsi aggregate yang digunakan bisa concacenate, array_agg, concatenate_unique, dll expression:=wadmkc, --field nama kecamatan dari layer admin_desa_bantul yang akan digunakan nilainya untuk default value concatenator:=', ', --karakter untuk menggabungkan nilai-nilai aggregate (biasanya berguna pada data input berupa garis/area karena memungkinkan bertampalan dengan lebih dari satu administrasi) filter:=intersects($geometry, geometry(@parent)) --expression untuk memfilter data yang dimasukkan sebagai default value. )
Penjelasan expression filter intersect:
$geometry --adalah geometri dari layer di mana expressions aggregate tersebut ditambahkan geometry(@parent) --adalah geometri dari layer yang didefinisikan dalam parameter layer:=
Implementasi expression dari fungsi aggregate di atas dapat dikembangkan lagi, misalnya untuk:
Selain itu, dapat digunakan pula menggunakan data analisis lain (tidak hanya administrasi), seperti tutupan lahan, tata ruang, kemiringan lereng, dst.
Referensi: spatialthoughts.com
Leave a Reply