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

BAB 4: Memotong Raster: Fokus pada Area Kerja

#Studi kasus: "Cukup bagian Alpha saja"

Kepala Seksi hanya membutuhkan data untuk KPH Alpha. Namun raster yang dimiliki Analis Muda mencakup seluruh area. Mengirim semuanya membuat berkas besar dan memuat daerah yang tidak perlu. Selain itu, statistik yang dihitung dari raster utuh ikut mencampur area lain. Bab ini mengajarkan cara memotong raster seukuran area kerja.

#Konsep: memotong raster dalam tiga kalimat

Clip (memotong) adalah menggunting raster mengikuti bentuk sebuah poligon, seperti menggunting foto mengikuti garis tepi sebuah pola. Poligon penggunting disebut mask (masker). Piksel di luar poligon dibuang atau diberi nilai NoData, sehingga tidak ikut dihitung.

Istilah baru bab ini:

  • Clip (potong): menggunting raster dengan poligon atau dengan kotak.
  • Mask: poligon yang menentukan bagian mana yang dipertahankan.
  • Extent: kotak terkecil yang membungkus sebuah data.
  • NoData: penanda piksel tanpa nilai. Ingat Bab 1.
  • Cutline: garis tepi poligon yang dipakai menggunting (istilah di GDAL).
Ilustrasi 4.1: Raster, poligon, dan hasil potong
Skema dari data latihan: raster utuh, poligon pemotong tidak beraturan, dan hasilnya dengan area luar menjadi NoData

#Dua cara memotong

  1. Memotong dengan kotak (extent). Hasilnya selalu persegi panjang. Cepat dan sederhana.
  2. Memotong dengan poligon (mask). Hasilnya mengikuti bentuk poligon. Raster tetap berbentuk persegi panjang, tetapi piksel di luar poligon berubah menjadi NoData.

Raster selalu berbentuk persegi panjang. Karena itu, hasil pemotongan dengan poligon tidak benar-benar "berbentuk poligon". Bagian luar poligon hanya dikosongkan.

#Angka dari data latihan

PemotonganHasil
DEM dengan Area_Kajian (poligon 6 sudut)Raster 155 x 160 = 24.800 piksel. NoData 6.100. Terisi 18.700 piksel = 74.800 m² = 7,48 ha
Luas poligon Area_Kajian (dihitung dari koordinat)74.800 m² = 7,48 ha
DEM dengan KPH Alpha10.000 piksel = 4,00 ha, tanpa NoData
DEM dengan kotak 200 m x 200 m di barat daya100 x 100 = 10.000 piksel

Luas dari hitungan piksel (7,48 ha) cocok dengan luas poligon (7,48 ha). Itu tanda pemotongan berjalan benar. Pada poligon dengan tepi yang lebih rumit, selisih kecil di tepi adalah hal biasa. Angka diuji di QGIS 4.0.2 (Skrip 4.1).

#Bagian A: QGIS

#Bagian A: Memotong raster di QGIS

#Memotong dengan poligon (mask)

  1. Tambahkan DEM_KPH.tif dan Area_Kajian.gpkg. Pastikan keduanya memakai CRS yang sama (EPSG:32749).
  2. Buka Raster ► Extraction ► Clip Raster by Mask Layer….
  3. Isi Input layer dengan DEM_KPH dan Mask layer dengan Area_Kajian.
  4. Pada Assign a specified NoData value to output bands, isi -9999. Itu nilai NoData yang sama dengan DEM asal.
  5. Biarkan Match the extent of the clipped raster to the extent of the mask layer tercentang. Pilihan ini membuat ukuran hasil sebatas kotak pembungkus poligon.
  6. Centang Keep resolution of input raster supaya ukuran piksel tetap 2 m.
  7. Simpan sebagai DEM_kajian.tif, lalu klik Run.
  8. Perhatikan hasilnya: bentuk poligon tampak, dan sudut-sudut di luar poligon kosong.

#Menghitung piksel NoData

  1. Buka Processing Toolbox, cari Raster layer unique values report.
  2. Isi Input layer dengan DEM_kajian, lalu jalankan.
  3. Lihat Total pixel count (24.800) dan NoData pixel count (6.100). Selisihnya, 18.700, adalah piksel yang terisi.
  4. Kalikan 18.700 dengan 4 m² per piksel. Hasilnya 74.800 m² atau 7,48 ha.

#Memotong dengan satu KPH saja

  1. Klik kanan layer Batas_KPH ► Filter… (pembangun kueri).
  2. Isi kueri: "NAMA_KPH" = 'KPH Alpha', lalu klik OK. Layer hanya menampilkan KPH Alpha.
  3. Jalankan lagi Clip Raster by Mask Layer dengan Batas_KPH sebagai mask. Hasil: 100 x 100 = 10.000 piksel, tanpa NoData, 4 ha.
  4. Ulangi untuk KPH Beta dan Gamma dengan mengganti kueri.

#Memotong dengan kotak

Buka Raster ► Extraction ► Clip Raster by Extent…. Isi Input layer dan Clipping extent. Untuk extent, Anda bisa memilih dari layer lain atau menggambar di kanvas. Hasilnya persegi panjang, tanpa NoData baru.

#Dengan Python (opsional)

Berkas skrip/b3_04_clip.py:

PYTHON
import processing
from qgis.core import QgsVectorLayer

DATA = r"D:/data/paket-b3"
OUT = r"C:/kerja_b3"

# 1) Potong DEM dengan Area_Kajian (poligon tidak beraturan)
hasil = processing.run("gdal:cliprasterbymasklayer", {
    "INPUT": DATA + "/DEM_KPH.tif",
    "MASK": DATA + "/Area_Kajian.gpkg",
    "NODATA": -9999,
    "CROP_TO_CUTLINE": True,
    "KEEP_RESOLUTION": True,
    "OUTPUT": OUT + "/DEM_kajian.tif"})
u = processing.run("native:rasterlayeruniquevaluesreport", {"INPUT": hasil["OUTPUT"], "BAND": 1})
isi = u["TOTAL_PIXEL_COUNT"] - u["NODATA_PIXEL_COUNT"]
print("Piksel total:", u["TOTAL_PIXEL_COUNT"], "| NoData:", u["NODATA_PIXEL_COUNT"])
print("Piksel berisi nilai:", isi, "= luas (ha):", round(isi * 4 / 10000, 2))

# 2) Potong dengan satu KPH saja (filter lapisan batas lebih dulu)
batas = QgsVectorLayer(DATA + "/Batas_KPH.gpkg|layername=Batas_KPH", "Batas_KPH", "ogr")
batas.setSubsetString("\"NAMA_KPH\" = 'KPH Alpha'")
h2 = processing.run("gdal:cliprasterbymasklayer", {
    "INPUT": DATA + "/DEM_KPH.tif", "MASK": batas, "NODATA": -9999,
    "CROP_TO_CUTLINE": True, "KEEP_RESOLUTION": True, "OUTPUT": OUT + "/DEM_Alpha.tif"})
u2 = processing.run("native:rasterlayeruniquevaluesreport", {"INPUT": h2["OUTPUT"], "BAND": 1})
print("KPH Alpha: piksel total", u2["TOTAL_PIXEL_COUNT"], "| NoData", u2["NODATA_PIXEL_COUNT"])

Keluaran yang diuji di QGIS 4.0.2:

TEKS
Piksel total: 24800 | NoData: 6100
Piksel berisi nilai: 18700 = luas (ha): 7.48
KPH Alpha: piksel total 10000 | NoData 0

#Bagian B: ArcGIS Pro

#Bagian B: ArcGIS Pro

  1. Buka alat Extract by Mask (Spatial Analyst Tools). Alat ini memerlukan ekstensi Spatial Analyst.
  2. Isi Input raster dengan DEM dan Input raster or feature mask data dengan poligon batas. Alat ini menerima mask berupa fitur atau raster.
  3. Extraction Area bernilai INSIDE secara bawaan, artinya yang dipertahankan adalah bagian di dalam mask. Pilih OUTSIDE bila ingin kebalikannya.
  4. Tentukan Output raster, lalu jalankan. Piksel di luar mask menjadi NoData. [CEK: tampilan hasil]
  5. Untuk memotong hanya satu KPH, pilih fiturnya lebih dulu. Alat memakai fitur terpilih bila ada seleksi. [CEK]
  6. Alat lain, Clip Raster (Data Management), memotong dengan kotak atau poligon tanpa Spatial Analyst. [CEK]

#Bagian C: ArcMap 10.8

#Bagian C: ArcMap 10.8

  1. Buka alat Extract by Mask (toolbox Spatial Analyst). Parameternya dua: in_raster (raster sumber) dan in_mask_data (raster atau fitur sebagai mask).
  2. Menurut dokumentasi Esri, mask berupa fitur diubah dulu menjadi raster dengan ukuran sel dan susunan yang sama dengan raster masukan. Untuk raster multiband, semua band diproses.
  3. Tentukan keluaran, lalu jalankan.
  4. Untuk memotong dengan kotak, pakai alat Clip (Data Management). [CEK]

#Cek paham

  1. Mengapa raster hasil pemotongan dengan poligon tetap berbentuk persegi panjang?
  2. Apa fungsi NoData pada hasil pemotongan?
  3. Bagaimana mengecek bahwa pemotongan berjalan benar?

Jawaban:

  1. Raster hanya bisa berupa petak-petak persegi panjang. Bagian luar poligon tidak dihapus, hanya diberi nilai NoData.
  2. Menandai piksel di luar area kerja sehingga tidak ikut dalam statistik atau luas.
  3. Hitung piksel terisi dikali luas satu piksel, lalu bandingkan dengan luas poligon. Pada data latihan, 7,48 ha dan 7,48 ha cocok.

#Kesalahan umum

  • Mask dan raster tidak tumpang tindih. Hasilnya kosong atau galat. Tampilkan keduanya bersama dan lihat apakah letaknya berimpit.
  • Lupa menetapkan nilai NoData. Piksel di luar poligon bisa terisi nol, tergantung alat, lalu ikut mengacaukan rata-rata. [CEK: perilaku tanpa NoData] Selalu tetapkan NoData yang tidak mungkin muncul sebagai data nyata.
  • Mengubah ukuran piksel tanpa sadar. Bila Keep resolution tidak dicentang, ukuran piksel hasil bisa berubah. Hasil luas jadi bergeser. Centang pilihan itu.
  • Mask berisi banyak poligon. Semua poligon dipakai sekaligus. Bila hanya butuh satu KPH, saring dulu (Filter) atau potong satu per satu.

#Ringkasan dan latihan

Ringkasan: Clip menggunting raster dengan kotak atau poligon. Piksel di luar poligon menjadi NoData. Luas hasil bisa dicek dengan menghitung piksel terisi dikali luas piksel.

Latihan:

  1. Potong DEM_KPH untuk KPH Beta dan Gamma. Hitung piksel terisi dan luasnya. Jawaban uji: Beta 10.000 piksel (4 ha) dan Gamma 20.000 piksel (8 ha).
  2. Potong keempat band dengan mask KPH Alpha, lalu bandingkan ukuran berkasnya dengan raster utuh. Jawaban: berkas Alpha lebih kecil karena hanya memuat seperempat piksel.

#Tabel perbandingan: memotong raster

HalQGISArcGIS ProArcMap 10.8
Potong dengan poligonClip Raster by Mask LayerExtract by Mask (Spatial Analyst)Extract by Mask (Spatial Analyst)
Potong dengan kotakClip Raster by ExtentClip Raster [CEK]Clip [CEK]
Menetapkan NoDataKolom NoData pada alatPiksel luar mask menjadi NoDataPiksel luar mask menjadi NoData
Bagian yang dipertahankanDi dalam poligonINSIDE (bawaan) atau OUTSIDEDi dalam mask
LisensiGratisSpatial Analyst untuk Extract by MaskSpatial Analyst untuk Extract by Mask