BAB 7: Proyek Mini: Laporan Singkat Kondisi KPH Contoh
#Studi kasus: "Satu halaman untuk rapat besok"
Kepala Seksi akan rapat besok pagi. Ia meminta satu tabel ringkas untuk tiap KPH: luas, kehijauan vegetasi, dan luas lereng curam yang sebaiknya dihindari jalan angkut. Datanya hanya empat band citra, satu DEM, dan batas KPH. Bab ini merangkai semua langkah Bab 2 sampai 6 menjadi satu alur kerja.
#Konsep: alur kerja raster dalam tiga kalimat
Analisis raster hampir selalu berupa rantai: hasil satu langkah menjadi bahan langkah berikutnya, seperti jalur pabrik tempat setiap meja mengerjakan satu tahap. Rantainya di sini: siapkan band, turunkan DEM, hitung NDVI, kelompokkan nilai, lalu ringkas per area. Kebiasaan baik di sepanjang rantai adalah memeriksa angka di setiap tahap sebelum lanjut.
Istilah baru bab ini hanya dua, dan keduanya hanya penyatuan yang sudah Anda kenal:
- Alur kerja (workflow): urutan langkah dari data mentah sampai hasil.
- Pemeriksaan silang: membandingkan hasil dengan sumber lain untuk memastikan benar.

#Alur kerjanya
| Langkah | Bab | Masukan | Keluaran |
|---|---|---|---|
| 1. Tumpuk band | 2 | Citra_B02, B03, B04, B08 | Citra_4band.tif |
| 2. Periksa komposit | 2 | Citra_4band | Warna asli dan warna palsu |
| 3. Turunkan DEM | 3 | DEM_KPH.tif | Lereng_derajat.tif |
| 4. Hitung NDVI | 6 | Citra_4band | NDVI.tif |
| 5. Reklasifikasi | 5 dan 6 | Lereng_derajat, NDVI | Lereng_kelas.tif, NDVI_kelas.tif |
| 6. Ringkas per KPH | 4 dan 6 | Raster kelas dan Batas_KPH | Tabel laporan |
#Hasil yang diharapkan
Tabel ini dihitung dari data sintetis dan diuji di QGIS 4.0.2 (Skrip 7.1). Bukan kondisi lapangan nyata.
| KPH | Luas (ha) | NDVI rata-rata | Lereng curam (ha) | Vegetasi rapat (ha) |
|---|---|---|---|---|
| Alpha | 4,00 | 0,814 | 0,00 | 3,75 |
| Beta | 4,00 | 0,614 | 0,00 | 2,00 |
| Gamma | 8,00 | 0,755 | 0,43 | 7,06 |
Bacaan untuk Kepala Seksi:
- Alpha paling hijau (0,814). Sebagian kecil (0,25 ha) berupa bukaan lahan.
- Beta paling rendah (0,614) karena separuhnya sawah atau tanaman muda. Itu wajar, bukan tanda rusak.
- Gamma memuat seluruh lereng curam (0,43 ha, dari 15 derajat ke atas). Jalan angkut sebaiknya menghindari bukit di bagian barat laut.
#Bagian A: QGIS
#Bagian A: Mengerjakan proyek di QGIS
- Siapkan proyek. Buat proyek baru, atur CRS ke EPSG:32749, dan simpan sebagai
Proyek_B3.qgzdi folder kerja. TambahkanBatas_KPH.gpkg. - Tumpuk band. Ikuti Bab 2, Langkah 1. Hasil:
Citra_4band.tifdengan empat band. - Periksa komposit. Atur warna asli (3-2-1) dan warna palsu (4-3-2). Pastikan dua bukaan lahan terlihat.
- Turunkan DEM. Ikuti Bab 3. Hasil:
Lereng_derajat.tif(nilai 0,01 sampai 21,89). - Hitung NDVI. Ikuti Bab 6. Hasil:
NDVI.tif(nilai -0,328 sampai 0,903). - Reklasifikasi. Reklasifikasikan lereng (3 kelas, Bab 5) dan NDVI (4 kelas, Bab 6).
- Ringkas per KPH. Pakai Zonal statistics untuk NDVI rata-rata (Bab 6). Untuk luas kelas, saring
Batas_KPHper KPH (Filter…), potong raster kelas (Bab 4), lalu hitung piksel dengan Raster layer unique values report (Bab 5). - Simpan proyek (Project ► Save). Tulis angka akhir di tabel pada halaman Anda.
Seluruh langkah 7 sudah dirangkum di skrip/b3_07_proyek.py:
import processing
from qgis.core import QgsVectorLayer
DATA = r"D:/data/paket-b3"
OUT = r"C:/kerja_b3"
BATAS = DATA + "/Batas_KPH.gpkg|layername=Batas_KPH"
def luas_kelas(raster, mask, kelas):
"""Luas (ha) piksel bernilai 'kelas' di dalam mask."""
pot = processing.run("gdal:cliprasterbymasklayer", {
"INPUT": raster, "MASK": mask, "NODATA": 255, "CROP_TO_CUTLINE": True,
"KEEP_RESOLUTION": True, "OUTPUT": "TEMPORARY_OUTPUT"})
u = processing.run("native:rasterlayeruniquevaluesreport", {
"INPUT": pot["OUTPUT"], "BAND": 1, "OUTPUT_TABLE": "TEMPORARY_OUTPUT"})
for f in u["OUTPUT_TABLE"].getFeatures():
if int(f["value"]) == kelas:
return f["count"] * 4 / 10000
return 0.0
print("KPH | luas (ha) | NDVI rata-rata | curam (ha) | vegetasi rapat (ha)")
for nama in ("KPH Alpha", "KPH Beta", "KPH Gamma"):
lyr = QgsVectorLayer(BATAS, "batas", "ogr")
lyr.setSubsetString("\"NAMA_KPH\" = '%s'" % nama)
luas = sum(f.geometry().area() for f in lyr.getFeatures()) / 10000
z = processing.run("native:zonalstatisticsfb", {
"INPUT": lyr, "INPUT_RASTER": OUT + "/NDVI.tif", "RASTER_BAND": 1,
"COLUMN_PREFIX": "n_", "STATISTICS": [2], "OUTPUT": "TEMPORARY_OUTPUT"})
ndvi = [f["n_mean"] for f in z["OUTPUT"].getFeatures()][0]
curam = luas_kelas(OUT + "/Lereng_kelas.tif", lyr, 3)
rapat = luas_kelas(OUT + "/NDVI_kelas.tif", lyr, 4)
print(nama, "|", round(luas, 2), "|", round(ndvi, 3), "|", round(curam, 2), "|", round(rapat, 2))Keluaran yang diuji di QGIS 4.0.2:
KPH | luas (ha) | NDVI rata-rata | curam (ha) | vegetasi rapat (ha)
KPH Alpha | 4.0 | 0.814 | 0.0 | 3.75
KPH Beta | 4.0 | 0.614 | 0.0 | 2.0
KPH Gamma | 8.0 | 0.755 | 0.43 | 7.06#Pemeriksaan silang dengan kunci jawaban
Tutupan_Acuan.tif adalah kunci jawaban jenis tutupan yang dipakai pembuat data (1 hutan, 2 kebun, 3 sawah atau tanaman muda, 4 lahan terbuka, 5 air). Sekarang boleh dibuka.
- Potong
Tutupan_Acuandengan tiap KPH, lalu hitung piksel kode 1 dan 2 dengan Raster layer unique values report. - Bandingkan luas hutan dan kebun (kode 1 dan 2) dengan luas vegetasi rapat dari NDVI. Hasil uji: Alpha 3,75 ha dan 3,75 ha, Beta 2,00 ha dan 2,00 ha, Gamma 7,06 ha dan 7,06 ha.
- Secara keseluruhan, 39.991 dari 40.000 piksel (99,98 persen) jatuh pada kelas NDVI yang sesuai dengan tutupan aslinya. Sembilan piksel selisih adalah akibat derau acak pada data sintetis.
Pada data nyata, tidak ada kunci jawaban semacam ini. Anda harus mencocokkan hasil dengan pengamatan lapangan atau citra resolusi tinggi. Itu topik seri berikutnya.
#Bagian B: ArcGIS Pro
#Bagian B: ArcGIS Pro
Alurnya sama, memakai alat yang sudah disebut:
- Composite Bands untuk menumpuk band (Bab 2).
- Slope dan Hillshade untuk DEM (Bab 3).
- Raster Calculator dengan Float atau fungsi raster NDVI (Bab 6). [CEK]
- Reclassify untuk lereng dan NDVI (Bab 5).
- Extract by Mask dan Zonal Statistics as Table untuk ringkasan per KPH (Bab 4 dan 6). [CEK]
Semua alat Spatial Analyst memerlukan ekstensinya. Susun langkah ini dalam ModelBuilder bila akan diulang. [CEK]
#Bagian C: ArcMap 10.8
#Bagian C: ArcMap 10.8
Alurnya sama dengan Pro, dengan alat Composite Bands, Slope, Raster Calculator, Reclassify, Extract by Mask, dan Zonal Statistics as Table (Spatial Analyst). [CEK] Gunakan Float dalam rumus NDVI.
#Cek paham
- Mengapa raster kelas (lereng dan NDVI) dibuat dari raster asli, bukan sebaliknya?
- Apa gunanya pemeriksaan silang?
- Mengapa NDVI rata-rata Beta rendah padahal bukan kerusakan?
Jawaban:
- Reklasifikasi menghilangkan detail dan tidak bisa dikembalikan. Raster asli harus tetap tersimpan.
- Memastikan hasil sesuai sumber lain sebelum dilaporkan, sehingga kesalahan hitung ketahuan lebih awal.
- Separuh Beta adalah sawah atau tanaman muda yang memang punya NDVI lebih rendah dari hutan.
#Kesalahan umum
- Melompat langkah tanpa memeriksa angka. Satu kesalahan di awal (misalnya urutan band) merambat ke semua hasil. Cek min dan maks setiap tahap.
- Nama berkas tidak konsisten. Gunakan nama yang menjelaskan isi, seperti
Lereng_kelas.tif. Simpan semua hasil di satu folder. - Melaporkan angka tanpa menyebut sumber data. Selalu tulis sumber, tanggal, ukuran piksel, dan aturan kelas di bawah tabel laporan.
#Ceklis kesiapan menuju seri berikutnya
Tandai bila Anda sudah bisa:
- [ ] Menyebut ukuran piksel, jumlah band, tipe data, dan CRS sebuah raster.
- [ ] Membuat komposit warna asli dan warna palsu.
- [ ] Membuat hillshade, lereng, dan kontur dari DEM.
- [ ] Memotong raster dengan poligon dan mengecek luasnya.
- [ ] Mereklasifikasi dan menghitung luas tiap kelas.
- [ ] Menghitung NDVI dan memeriksa bahwa nilainya antara -1 dan 1.
- [ ] Merangkum nilai raster per poligon.
Seri B4 (Kartografi dan Layout Peta) akan mengubah hasil-hasil ini menjadi peta yang rapi dan siap dicetak.
#Ringkasan dan latihan
Ringkasan: Analisis raster adalah rantai langkah. Simpan raster asli, beri nama hasil dengan jelas, periksa angka tiap tahap, dan cocokkan hasil akhir dengan sumber lain.
Latihan:
- Ulangi seluruh alur dengan folder baru dan proyek baru, tanpa melihat bab. Catat bagian yang membuat Anda berhenti.
- Ganti batas kelas NDVI "rapat" dari 0,6 menjadi 0,8. Berapa luas vegetasi rapat sekarang? Pikirkan: kebun (NDVI sekitar 0,71) masuk kelas mana? Jawaban: kebun turun ke kelas "jarang", sehingga luas vegetasi rapat hampir hanya hutan (sekitar 10,8 ha).
#Tabel perbandingan: alur kerja raster
| Hal | QGIS | ArcGIS Pro | ArcMap 10.8 |
|---|---|---|---|
| Tumpuk band | Merge (band terpisah) | Composite Bands | Composite Bands |
| Turunan DEM | Slope, Hillshade, Contour | Slope, Hillshade, Contour | Slope, Hillshade, Contour [CEK] |
| NDVI | Raster Calculator | Raster Calculator atau fungsi NDVI [CEK] | Raster Calculator [CEK] |
| Reklasifikasi | Reclassify by table | Reclassify | Reclassify |
| Potong | Clip Raster by Mask Layer | Extract by Mask | Extract by Mask |
| Ringkasan per poligon | Zonal statistics | Zonal Statistics as Table [CEK] | Zonal Statistics as Table [CEK] |
| Rangkai otomatis | Skrip Python, Graphical Modeler | ModelBuilder [CEK] | ModelBuilder [CEK] |