Lewati ke isi
Profil penulisSeri Buku GIS Kehutanan dan Pertanian/ I2
Tampilkan bagian untuk:

BAB 1: Berhitung dengan Piksel: Aljabar Raster

#Studi kasus: "Seberapa tinggi pohonnya?"

Kepala Seksi membawa dua berkas hasil terbang drone: model permukaan (DSM) dan model tanah (DTM). Ia bertanya, "Berapa luas tajuk yang tingginya di atas lima meter?" Anda juga diminta menandai bagian citra yang hijau dan sehat. Dua pertanyaan itu terjawab dengan satu keterampilan: menghitung antar-raster.

#Konsep: aljabar raster dalam tiga kalimat

Aljabar raster adalah berhitung pada raster: rumus dijalankan di setiap piksel, pada letak yang sama, lalu hasilnya menjadi raster baru. Bayangkan dua lembar kertas berpetak yang ditumpuk. Anda mengurangkan angka di petak yang berimpit, dan jawabannya ditulis di lembar ketiga. Alat untuk melakukannya disebut Raster Calculator.

Istilah baru bab ini:

  • Aljabar raster: rumus yang dijalankan per piksel.
  • Ekspresi: rumus yang Anda tulis, misalnya "A@1" - "B@1".
  • NoData: piksel tanpa nilai. Hasil hitungannya juga NoData.
  • CHM (Canopy Height Model): tinggi tajuk = DSM dikurangi DTM.
  • Perbandingan logika: ekspresi seperti "x@1" > 5 yang menghasilkan 1 (benar) atau 0 (salah).
Ilustrasi 1.1: Rumus per piksel
Skema: band NIR dan band merah dihitung menjadi NDVI di tiap piksel yang letaknya sama

Tiga aturan penting. Pertama, nama layer di ekspresi ditulis "nama_layer@nomor_band". Kedua, bila salah satu piksel masukan NoData, hasilnya NoData. Hal ini diuji pada penulisan buku ini. Ketiga, raster yang dihitung bersama sebaiknya satu sistem koordinat dan satu luas. Kalau ukuran pikselnya beda, hasil mengikuti ukuran yang Anda pilih.

Ilustrasi 1.2: Piksel beda ukuran
Skema: dua raster sama luas dengan piksel 2 m dan 1 m

#Bagian A: QGIS

#Bagian A: Raster Calculator di QGIS

#A1. NDVI dari Citra_Komposit

NDVI mengukur kehijauan. Rumusnya (NIR − R) ÷ (NIR + R). Di Citra_Komposit.tif, band 1 = merah (R) dan band 4 = inframerah dekat (NIR).

  1. Tambahkan Citra_Komposit.tif dari paket-data (Layer ► Add Layer ► Add Raster Layer).
  2. Buka Raster ► Raster Calculator. Pada kotak ekspresi, ketik rumus berikut.
EKSPRESI
("Citra_Komposit@4" - "Citra_Komposit@1") / ("Citra_Komposit@4" + "Citra_Komposit@1")
  1. Pada Output layer, pilih lokasi dan nama ndvi.tif. Pada Output format, pilih GeoTIFF.
  2. Pada Selected Layer Extent, pilih layer Citra_Komposit@1 agar luas dan ukuran piksel mengikuti citra. Klik OK.
  3. Layer ndvi muncul. Klik kanan ► Properties ► Information untuk melihat statistiknya.

Hasilnya, pada skrip uji: nilai NDVI terendah −0,26, tertinggi 0,90, rata-rata 0,34. Citra ini berisi tiga lajur tutupan. Rata-rata NDVI per lajur adalah 0,50; 0,56; dan −0,05. Lajur ketiga hampir tanpa vegetasi.

#A2. Perbandingan logika: mana yang hijau?

  1. Buka lagi Raster Calculator. Pilih layer ndvi@1, lalu ketik:
EKSPRESI
"ndvi@1" > 0.3
  1. Simpan sebagai vegetasi.tif. Piksel dengan NDVI di atas 0,3 bernilai 1, sisanya 0.

Rata-rata raster 0/1 sama dengan bagian piksel bernilai 1. Hasil uji: rata-rata vegetasi.tif = 0,6666, artinya sekitar dua pertiga citra bervegetasi (dua dari tiga lajur). Ambang 0,3 hanyalah contoh. Tentukan ambang dari data dan tujuan Anda.

#A3. Tinggi tajuk: DSM dikurangi DTM

  1. Tambahkan DSM_Drone.tif dan DTM_Drone.tif dari paket-data.
  2. Buka Raster Calculator. Ekspresi:
EKSPRESI
"DSM_Drone@1" - "DTM_Drone@1"
  1. Simpan sebagai chm.tif. Pilih extent dan ukuran piksel mengikuti DSM_Drone@1 (0,5 m).
  2. Buat satu lagi untuk tajuk tinggi, memakai layer chm@1:
EKSPRESI
"chm@1" >= 5

Hasil uji: CHM berkisar 0 sampai 13,96 m, rata-rata 2,60 m. Bagian piksel bertajuk 5 m atau lebih adalah 18,87%. Satu piksel 0,5 m x 0,5 m = 0,25 m², dan seluruh area 640.000 piksel (16 ha). Jadi luas tajuk tinggi = 3,02 ha.

Jawaban untuk Kepala Seksi: sekitar 3 hektare dari 16 hektare area contoh bertajuk 5 meter atau lebih.

#A4. Ekspresi bersyarat dan skrip

Fungsi if(kondisi, nilai_bila_benar, nilai_bila_salah) tersedia di Raster Calculator. Contoh: beri nilai 2 pada piksel tajuk tinggi dan 1 pada sisanya.

EKSPRESI
if("chm@1" >= 5, 2, 1)

Semua langkah A1 sampai A3 sudah ditulis dalam skrip i2_01_aljabar_raster.py. Skrip memakai alat Processing native:rastercalc. Dengan skrip, Anda cukup mengganti jalur untuk mengulang analisis di data lain.

PYTHON
processing.run("native:rastercalc", {
    "EXPRESSION": '"DSM_Drone@1" - "DTM_Drone@1"', "LAYERS": [dsm, dtm],
    "CELL_SIZE": dsm.rasterUnitsPerPixelX(), "EXTENT": dsm.extent(), "CRS": dsm.crs(),
    "OUTPUT": "C:/temp/hasil_i2/chm.tif"})

#Bagian B: ArcGIS Pro

#Bagian B: ArcGIS Pro

Alat padanannya adalah Raster Calculator (Spatial Analyst), di panel Geoprocessing. Alat ini memakai Map Algebra. [CEK]

  1. Tambahkan Citra_Komposit.tif ke peta. Band muncul sebagai layer terpisah di panel Contents. [CEK]
  2. Cari Raster Calculator di panel Geoprocessing. Klik dua kali. [CEK]
  3. Tulis ekspresi NDVI dengan fungsi Float() agar pembagian tidak dibulatkan menjadi bilangan bulat. Nama band mengikuti yang tampil di daftar. [CEK]
  4. Atur raster keluaran, lalu jalankan.
  5. Untuk CHM, kurangkan DSM dengan DTM dengan cara yang sama. Ekspresi logika seperti chm >= 5 menghasilkan 1 dan 0. [CEK]

Pro tidak memakai tanda @ untuk nomor band. Cara menulis band bergantung nama layer di Contents. [CEK]

#Bagian C: ArcMap 10.8

#Bagian C: ArcMap 10.8

Padanannya adalah Raster Calculator di Spatial Analyst Tools ► Map Algebra. Alat ini perlu ekstensi Spatial Analyst. [CEK]

  1. Aktifkan ekstensi lewat Customize ► Extensions ► Spatial Analyst. [CEK]
  2. Buka ArcToolbox ► Spatial Analyst Tools ► Map Algebra ► Raster Calculator. [CEK]
  3. Klik dua kali nama band di daftar layer agar tertulis di ekspresi. Bungkus pembagian dengan Float(). [CEK]
  4. Tentukan raster keluaran, lalu klik OK.
  5. Perbandingan seperti "chm" >= 5 menghasilkan 1 dan 0. [CEK]

#Cek paham

  1. Apa yang terjadi bila satu piksel masukan bernilai NoData?
  2. Mengapa rata-rata raster hasil "x@1" > 0.3 bisa dibaca sebagai bagian luas?
  3. Bagaimana CHM dihitung?

Jawaban:

  1. Piksel hasil di letak itu juga NoData.
  2. Raster itu hanya berisi 0 dan 1. Rata-rata sama dengan jumlah piksel bernilai 1 dibagi jumlah piksel, jadi menunjukkan bagian yang memenuhi syarat.
  3. CHM = DSM − DTM, piksel demi piksel.

#Kesalahan umum

  • Menulis nama layer tanpa `@nomor_band`. Ekspresi gagal. Pilih nama dari daftar layer di dialog, jangan diketik dari ingatan.
  • Membagi bilangan bulat di perangkat yang membulatkan. Di Esri, bungkus dengan Float(). Di QGIS Raster Calculator, hasil pembagian pada data ini sudah berupa desimal (terlihat pada NDVI di atas).
  • Menghitung dua raster yang beda sistem koordinat atau beda luas. Samakan dahulu, lalu hitung.
  • Lupa mengatur luas dan ukuran piksel keluaran. Hasil bisa terpotong. Pilih layer acuan di Selected Layer Extent.

#Ringkasan dan latihan

Ringkasan: aljabar raster menjalankan rumus per piksel. NDVI, CHM, dan ambang 0/1 adalah tiga contoh. NoData menular ke hasil.

Latihan:

  1. Buat raster untuk piksel dengan CHM antara 2 dan 5 m. Petunjuk: gabungkan dua perbandingan dengan AND.
  2. Hitung bagian area bernilai NDVI di atas 0,5 pada Citra_Komposit. Bandingkan dengan hasil ambang 0,3 dan jelaskan bedanya.

#Tabel perbandingan: aljabar raster

HalQGISArcGIS ProArcMap 10.8
AlatRaster Calculator (Raster ► Raster Calculator, atau Processing)Raster Calculator (Spatial Analyst) [CEK]Raster Calculator (Map Algebra) [CEK]
Menulis band"layer@2"nama band dari daftar [CEK]klik dua kali nama band [CEK]
Syarattanpa ekstensiekstensi Spatial Analyst [CEK]ekstensi Spatial Analyst [CEK]
Bersyaratif(k, a, b)Con [CEK]Con [CEK]