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

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.
Ilustrasi 7.1: Alur proyek mini
Skema: enam langkah dari penyiapan band sampai reklasifikasi dan luas

#Alur kerjanya

LangkahBabMasukanKeluaran
1. Tumpuk band2Citra_B02, B03, B04, B08Citra_4band.tif
2. Periksa komposit2Citra_4bandWarna asli dan warna palsu
3. Turunkan DEM3DEM_KPH.tifLereng_derajat.tif
4. Hitung NDVI6Citra_4bandNDVI.tif
5. Reklasifikasi5 dan 6Lereng_derajat, NDVILereng_kelas.tif, NDVI_kelas.tif
6. Ringkas per KPH4 dan 6Raster kelas dan Batas_KPHTabel laporan

#Hasil yang diharapkan

Tabel ini dihitung dari data sintetis dan diuji di QGIS 4.0.2 (Skrip 7.1). Bukan kondisi lapangan nyata.

KPHLuas (ha)NDVI rata-rataLereng curam (ha)Vegetasi rapat (ha)
Alpha4,000,8140,003,75
Beta4,000,6140,002,00
Gamma8,000,7550,437,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

  1. Siapkan proyek. Buat proyek baru, atur CRS ke EPSG:32749, dan simpan sebagai Proyek_B3.qgz di folder kerja. Tambahkan Batas_KPH.gpkg.
  2. Tumpuk band. Ikuti Bab 2, Langkah 1. Hasil: Citra_4band.tif dengan empat band.
  3. Periksa komposit. Atur warna asli (3-2-1) dan warna palsu (4-3-2). Pastikan dua bukaan lahan terlihat.
  4. Turunkan DEM. Ikuti Bab 3. Hasil: Lereng_derajat.tif (nilai 0,01 sampai 21,89).
  5. Hitung NDVI. Ikuti Bab 6. Hasil: NDVI.tif (nilai -0,328 sampai 0,903).
  6. Reklasifikasi. Reklasifikasikan lereng (3 kelas, Bab 5) dan NDVI (4 kelas, Bab 6).
  7. Ringkas per KPH. Pakai Zonal statistics untuk NDVI rata-rata (Bab 6). Untuk luas kelas, saring Batas_KPH per KPH (Filter…), potong raster kelas (Bab 4), lalu hitung piksel dengan Raster layer unique values report (Bab 5).
  8. Simpan proyek (Project â–º Save). Tulis angka akhir di tabel pada halaman Anda.

Seluruh langkah 7 sudah dirangkum di skrip/b3_07_proyek.py:

PYTHON
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:

TEKS
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.

  1. Potong Tutupan_Acuan dengan tiap KPH, lalu hitung piksel kode 1 dan 2 dengan Raster layer unique values report.
  2. 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.
  3. 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:

  1. Composite Bands untuk menumpuk band (Bab 2).
  2. Slope dan Hillshade untuk DEM (Bab 3).
  3. Raster Calculator dengan Float atau fungsi raster NDVI (Bab 6). [CEK]
  4. Reclassify untuk lereng dan NDVI (Bab 5).
  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

  1. Mengapa raster kelas (lereng dan NDVI) dibuat dari raster asli, bukan sebaliknya?
  2. Apa gunanya pemeriksaan silang?
  3. Mengapa NDVI rata-rata Beta rendah padahal bukan kerusakan?

Jawaban:

  1. Reklasifikasi menghilangkan detail dan tidak bisa dikembalikan. Raster asli harus tetap tersimpan.
  2. Memastikan hasil sesuai sumber lain sebelum dilaporkan, sehingga kesalahan hitung ketahuan lebih awal.
  3. 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:

  1. Ulangi seluruh alur dengan folder baru dan proyek baru, tanpa melihat bab. Catat bagian yang membuat Anda berhenti.
  2. 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

HalQGISArcGIS ProArcMap 10.8
Tumpuk bandMerge (band terpisah)Composite BandsComposite Bands
Turunan DEMSlope, Hillshade, ContourSlope, Hillshade, ContourSlope, Hillshade, Contour [CEK]
NDVIRaster CalculatorRaster Calculator atau fungsi NDVI [CEK]Raster Calculator [CEK]
ReklasifikasiReclassify by tableReclassifyReclassify
PotongClip Raster by Mask LayerExtract by MaskExtract by Mask
Ringkasan per poligonZonal statisticsZonal Statistics as Table [CEK]Zonal Statistics as Table [CEK]
Rangkai otomatisSkrip Python, Graphical ModelerModelBuilder [CEK]ModelBuilder [CEK]