BAB 7: Seberapa Percaya Peta Ini? Validasi dan Koreksi Luas
#Studi kasus: "Angka ini boleh masuk laporan?"
Peta sudah jadi. Kepala Seksi menatap angka 2,64 ha bekas terbakar di peta pertama Anda. "Kalau saya tulis di laporan ke provinsi, apakah ada yang akan menyanggah?" Pertanyaan itu tidak bisa dijawab dengan "kelihatannya bagus". Anda perlu mengukur kebenaran peta, dan menyebut seberapa ragu angkanya.
#Konsep: validasi dalam tiga kalimat
Validasi itu seperti ujian dengan soal yang belum pernah dilihat murid: nilai ujian latihan yang soalnya sama dengan bahan belajar tidak membuktikan apa-apa. Kita menarik sampel acak titik di peta, memeriksa kebenarannya dengan data acuan yang lebih tepercaya (citra resolusi tinggi atau survei lapangan), lalu membuat matriks kebingungan. Dari matriks itu keluar akurasi, dan juga koreksi luas: luas yang sudah memperhitungkan kesalahan peta.
Istilah baru bab ini:
- Matriks kebingungan: tabel yang menyilangkan kelas peta dengan kelas acuan.
- Akurasi pengguna (UA): dari semua piksel yang peta sebut kelas X, berapa persen yang benar kelas X.
- Akurasi produsen (PA): dari semua piksel yang sebenarnya kelas X, berapa persen yang peta temukan.
- Sampel acak berstrata: sampel acak dengan jumlah tetap di tiap kelas peta, supaya kelas langka ikut terwakili.
- Luas terkoreksi: perkiraan luas yang sudah menyesuaikan kesalahan peta, disertai rentang ketidakpastian.

#Dua jenis kesalahan, dua sisi
- Kesalahan komisi: peta bilang "terbakar", kenyataannya hutan. Diukur oleh akurasi pengguna.
- Kesalahan omisi: kenyataannya terbakar, peta tidak menandainya. Diukur oleh akurasi produsen.
Dua peta bisa sama akuratnya secara keseluruhan namun berbeda pada dua sisi ini. Untuk melaporkan luas, kedua sisi penting.
#Bagian A: QGIS
#Bagian A: Validasi di QGIS (Skrip 7.1)
Skrip 7.1 menguji dua peta: Peta A (hutan acak dengan 12 fitur, Bab 6) dan Peta B (hutan acak yang hanya melihat NDVI, tanpa SWIR). Acuannya Acuan_Dinamika.tif. Dalam praktik, acuan berasal dari tafsir citra resolusi tinggi atau survei lapangan, bukan dari kunci jawaban seperti ini.
A.1 Menyusun sampel
Aturan sampel dalam skrip: 20 titik acak per kelas peta, tidak boleh jatuh di titik latih. Kelas kecil dengan piksel bebas kurang dari 20 diambil sebanyak yang ada (kelas Terbuka: 18).
# SKRIP 7.1 (cuplikan; berkas lengkap: skrip/7_1_validasi.py)
def sampel_berstrata(peta, seed):
rng = np.random.default_rng(seed)
for k in np.unique(peta):
kand = np.argwhere((peta == k) & ~pakai_latih) # piksel kelas k di luar titik latih
pilih = rng.choice(len(kand), size=min(N_STRATUM, len(kand)), replace=False)
hasil[int(k)] = [((int(kand[p][0]), int(kand[p][1])), int(acuan[kand[p][0], kand[p][1]])) for p in pilih]Padanan di antarmuka QGIS: Polygonize peta, Dissolve per kelas, lalu Random points in polygons dengan jumlah titik per fitur, dan Sample raster values pada acuan. Alat ini berjalan di uji, tetapi hasil titiknya tidak identik antar-jalan walau SEED diisi. Karena itu angka di buku memakai pengundi dalam skrip yang bisa diulang persis.
A.2 Matriks, akurasi, dan luas terkoreksi
Rumus (Olofsson dan kawan-kawan, 2014), dengan W_i = bagian luas kelas peta ke-i, n_i = jumlah sampel kelas i, n_ij = jumlah sampel kelas peta i dengan acuan j:
p_ij = W_i * n_ij / n_i
Akurasi keseluruhan = jumlah p_ii
Akurasi pengguna(i) = p_ii / jumlah_j p_ij
Akurasi produsen(j) = p_jj / jumlah_i p_ij
Luas terkoreksi(j) = Luas_total * jumlah_i p_ij
Galat baku(j) = Luas_total * akar( jumlah_i W_i^2 * (n_ij/n_i) * (1 - n_ij/n_i) / (n_i - 1) )
Rentang 95% = luas terkoreksi +/- 1,96 * galat bakuHasil Peta A (12 fitur):
| Ukuran | Nilai |
|---|---|
| Sampel | 158 titik |
| Akurasi keseluruhan | 0,995 |
| Kesalahan | 1 titik "terbakar" yang acuannya hutan alam |
| Luas terbakar: peta, terkoreksi, acuan | 1,52 ha; 1,46 ha (plus minus 0,12); 1,51 ha |
| Luas deforestasi: peta, terkoreksi, acuan | 1,30 ha; 1,30 ha (plus minus 0,00); 1,30 ha |
Hasil Peta B (NDVI saja): matriks pada 158 sampel, baris = kelas peta, kolom = kelas acuan.
| Kelas peta | Hutan alam | Terbakar | Kelas lain | Jumlah |
|---|---|---|---|---|
| Hutan alam | 20 | 0 | 0 | 20 |
| Terbakar | 10 | 10 | 0 | 20 |
| Enam kelas lain | semuanya tepat | 118 |
| Ukuran | Nilai |
|---|---|
| Akurasi keseluruhan | 0,915 |
| Akurasi pengguna kelas Terbakar | 0,50 |
| Akurasi produsen kelas Terbakar | 1,00 |
| Luas terbakar: peta, terkoreksi, acuan | 2,64 ha; 1,44 ha (plus minus 0,54); 1,51 ha |
| Luas hutan alam: peta, terkoreksi, acuan | 6,87 ha; 8,07 ha (plus minus 0,54); 8,00 ha |
[terbukti: dihitung dari data sintetis dengan sampel berbenih tetap]
Cara membaca hasil Peta B. Peta menandai 2,64 ha terbakar. Tetapi setengah titik "terbakar" yang diperiksa ternyata hutan biasa (akurasi pengguna 0,50), jadi luas sebenarnya hanya sekitar 1,44 ha, dengan rentang kira-kira 0,90 sampai 1,98 ha. Angka mentah peta hampir dua kali terlalu besar. Kunci jawaban (1,51 ha) memang berada di dalam rentang itu. Itulah gunanya koreksi luas: peta yang salah pun bisa memberi angka luas yang jujur, asalkan sampelnya baik. Menghitung piksel peta mentah tidak pernah jujur.
A.3 Kestabilan terhadap undian sampel
Sampel bisa diundi berkali-kali. Pada lima undian lain, akurasi keseluruhan Peta B berkisar 0,874 sampai 0,940, sedangkan Peta A 0,995 sampai 1,000. Rentang itu menjadi pengingat: satu angka akurasi hanyalah satu undian. Laporkan akurasi bersama ketidakpastiannya.
A.4 Dari uji acak ke uji yang jujur
Ingat Bab 6: uji silang acak memberi 0,995, sedangkan uji blok memberi 0,617. Sampel validasi yang baik tidak diambil dari tempat yang sama dengan titik latih, dan lebih baik lagi bila diambil secara independen oleh orang lain, dari sumber acuan yang berbeda.
Hasilnya: Anda bisa menjawab Kepala Seksi. "Peta pertama melebih-lebihkan bekas bakar. Pakai angka terkoreksi sekitar 1,4 ha dengan rentang 0,9 sampai 2,0 ha. Dengan fitur SWIR (Peta A), angkanya hampir tidak perlu dikoreksi."
#Bagian B: ArcGIS Pro
#Bagian B: ArcGIS Pro
Pro memiliki rantai alat khusus di ekstensi Spatial Analyst atau Image Analyst.
- Create Accuracy Assessment Points membuat titik sampel dari peta klasifikasi.
- Isi nilai kelas acuan pada field GrndTruth (lewat penafsiran citra atau survei). Update Accuracy Assessment Points menyalin kelas peta ke field Classified.
- Compute Confusion Matrix menghitung akurasi pengguna, akurasi produsen, dan indeks Kappa, dan keluarannya tabel. Menurut dokumentasi Esri, titik masukan harus punya field Classified dan GrndTruth. Dokumentasi Pro juga menyebut Intersection over Union dan akurasi keseluruhan.
- Koreksi luas (rumus Olofsson) tidak ada alatnya. Hitung sendiri di Python atau lembar kerja memakai rumus di atas. [CEK]
#Bagian C: ArcMap 10.8
#Bagian C: ArcMap 10.8
- Create Accuracy Assessment Points (Spatial Analyst Toolbox). Dokumentasi ArcMap menyebut tiga strategi sampel: Stratified Random (jumlah titik proporsional dengan luas kelas, bawaan), Equalized Stratified Random (jumlah titik sama di tiap kelas), dan Random. Untuk kelas langka, pilih Equalized Stratified Random.
- Compute Confusion Matrix: menghitung akurasi pengguna, akurasi produsen, dan Kappa. Titik harus punya field CLASSIFIED dan GROUND_TRUTH, dan lisensinya Spatial Analyst.
- Koreksi luas: hitung sendiri, seperti di Pro. [CEK]
#Cek paham
- Peta menandai 2,64 ha terbakar dan akurasi penggunanya 0,50. Mengapa luas sebenarnya sekitar separuhnya?
- Mengapa sampel validasi tidak boleh sama dengan titik latih?
- Apa beda akurasi pengguna dan akurasi produsen?
Jawaban:
- Separuh dari area yang ditandai terbakar ternyata bukan terbakar. Luas terkoreksi memperhitungkan itu.
- Model sudah "hafal" titik latih, sehingga nilai ujinya menjadi terlalu bagus dan tidak berarti.
- Akurasi pengguna: dari yang peta sebut kelas X, berapa yang benar. Akurasi produsen: dari yang sebenarnya kelas X, berapa yang peta temukan.
#Kesalahan umum
- Melaporkan luas dari hitungan piksel peta mentah. Gunakan luas terkoreksi.
- Hanya melaporkan akurasi keseluruhan. Kelas langka bisa buruk sementara angka keseluruhan tinggi.
- Sampel terlalu sedikit di kelas langka. Rentang kepercayaan menjadi lebar.
- Memakai acuan yang lebih lemah daripada peta. Acuan harus lebih tepercaya.
- Mengulang uji sampai hasilnya bagus. Tetapkan rancangan sampel sebelum melihat hasil.
#Ringkasan dan latihan
Ringkasan: validasi memakai sampel acak berstrata dan acuan independen. Matriks kebingungan memberi akurasi pengguna dan produsen. Luas terkoreksi memperbaiki angka peta dan menyebut ketidakpastiannya.
Latihan:
- Jalankan Skrip 7.1. Ubah N_STRATUM menjadi 10, lalu 30. Bagaimana lebar rentang luas terbakar Peta B?
- Ubah benih acak di Skrip 7.1 dan jalankan beberapa kali. Berapa rentang akurasi keseluruhan?
- Hitung sendiri luas terkoreksi kelas Terbakar Peta B dari tabel matriks di atas, dengan rumus. Cocokkah?
#Tabel perbandingan: validasi
| Langkah | QGIS | ArcGIS Pro | ArcMap 10.8 | Status |
|---|---|---|---|---|
| Sampel acak berstrata | Random points in polygons atau skrip | Create Accuracy Assessment Points | Create Accuracy Assessment Points | QGIS: terbukti; Esri: dokumentasi ArcMap dibaca |
| Matriks kebingungan | Skrip NumPy | Compute Confusion Matrix | Compute Confusion Matrix | Dokumentasi dibaca |
| Akurasi pengguna dan produsen | Skrip NumPy | Compute Confusion Matrix | Compute Confusion Matrix | Dokumentasi dibaca |
| Luas terkoreksi dan rentang | Skrip NumPy | Hitung sendiri | Hitung sendiri | QGIS: terbukti |
#Penutup seri: ceklis kesiapan menuju M4
Anda sudah menempuh satu alur lengkap pemantauan: susun, bersihkan, pahami musim, deteksi perubahan, klasifikasi, validasi. Sebelum membuka M4 (pengembangan dan publikasi), periksa diri:
- Saya bisa menyusun deret waktu bertanggal dan menjelaskan mengapa waktu dihitung dalam hari.
- Saya bisa membuang awan dan memeriksa jumlah pengamatan valid.
- Saya bisa membedakan irama musiman dari perubahan sungguhan.
- Saya bisa mendeteksi deforestasi dan kebakaran, dan menyebut tanggalnya sebagai rentang.
- Saya bisa melatih model dan tahu mengapa uji acak terlalu optimis.
- Saya bisa menyampaikan luas bersama ketidakpastiannya.
Di M4, semua ini dibungkus menjadi alat yang bisa dipakai orang lain: plugin, layanan web, dan dasbor pemantauan.