01

Dari Satelit ke Peta Hutan

Apa yang dilakukan pipeline ini — dan apa yang terjadi saat Anda menjalankannya

Citra satelit masuk. Peta hutan keluar.

DAS Cisokan di Jawa Barat merupakan mosaik sawah, perkebunan, hutan, dan bangunan — dan dari luar angkasa, sulit membedakannya. Pipeline ini membaca citra satelit dan secara otomatis memberi label setiap petak lahan dengan salah satu dari sembilan kelas tutupan lahan.

Hasilnya adalah peta raster di mana setiap piksel menjawab: apa lahan ini?

🛰️

Input

10 citra satelit PlanetScope selama 2 tahun, ditambah data radar dan ketinggian kanopi

⚙️

Pipeline

12 skrip Python yang melakukan segmentasi, pengukuran, dan klasifikasi — berjalan 45–90 menit pada awal pertama

🗺️

Output

Peta tutupan lahan 9 kelas dengan resolusi 3 m yang mencakup seluruh DAS

Telusuri apa yang terjadi saat Anda menjalankannya

Bayangkan Anda membuka terminal dan mengetik python planetscope_10epoch_obia_v3.py. Inilah perjalanan tepat yang ditempuh data Anda — dari piksel satelit mentah hingga peta hutan berwarna di layar.

🛰️
Citra Mentah
✂️
Segmen
📊
Fitur
🌲
Model RF
🗺️
Peta Lahan
Klik "Langkah Berikutnya" untuk menelusuri pipeline

Sembilan jawaban yang dapat diberikan peta

Pipeline ini menggunakan hierarki dua tingkat. Tingkat 1 mengelompokkan lahan ke dalam 7 kategori besar. Tingkat 2 memperbesar "Vegetasi Lebat" dan membaginya menjadi tiga subtipe hutan.

💧
1 — Badan Air

Danau, sungai, waduk Cisokan — setiap permukaan air terbuka

🌾
2 — Sawah

Lahan padi irigasi — perubahan NDVI yang kuat antara masa tanam dan panen

🏠
3 — Lahan Terbangun

Jalan, atap, permukiman — kecerahan tinggi di semua musim

🌫️
4 — Lainnya

Awan, bayangan, piksel campuran — apa pun yang tidak masuk ke label lain

🌳
5 — Hutan Alam

Hutan primer dan sekunder — kanopi tertinggi, biomassa terbesar

🌲
6 — Hutan Produksi

Perkebunan kayu — lebat namun lebih muda, kanopi lebih seragam

🫖
7 — Agroforest

Kebun campuran (kopi, karet, buah-buahan) — heterogen dan sulit diklasifikasikan

🌿
8 — Vegetasi Jarang

Padang rumput, semak, lahan terdegradasi — mencakup 46% DAS

🌽
9 — Lahan Pertanian

Pertanian lahan kering — jagung, singkong, tanaman semusim campuran

💡
Mengapa "Lahan Terbuka" dihapus

Cisokan memiliki sangat sedikit tanah yang benar-benar terbuka secara permanen — apa yang terlihat sebagai "Lahan Terbuka" sebagian besar merupakan kondisi sementara (sawah setelah panen, bera, bayangan awan). Memaksa model untuk mempelajari kelas yang tidak konsisten memperburuk segalanya. Menghapusnya meningkatkan akurasi keseluruhan dari 87% menjadi 89,5%.

Seberapa baik hasilnya?

Sebelum menyelami mekanismenya, inilah intinya: pipeline ini mencapai akurasi keseluruhan 89,5% untuk peta L1 7 kelas — diverifikasi pada 228 segmen yang tidak pernah dilihat model selama pelatihan.

🎯

Akurasi L1

89,5% akurasi keseluruhan, 92% dalam validasi silang 5-lipatan. Setiap kelas mencapai F1 ≥ 0,82.

🌲

Akurasi L2

57,5% untuk subtipe hutan — masalah lebih sulit, hanya 137 sampel latih. Hutan produksi adalah kelas yang paling sulit.

📈

Faktor kunci

Data ketinggian kanopi (fitur terpenting #1 dan #3) — tinggi pohon memisahkan hutan dari lahan pertanian lebih baik daripada band spektral mana pun.

🗺️
Apa yang akan Anda pelajari dalam kursus ini

Modul 2 memperkenalkan 12 skrip. Modul 3 menguraikan bagaimana piksel mentah menjadi 591 pengukuran. Modul 4 menjelaskan segmentasi dan Random Forest. Modul 5 menunjukkan cara membaca angka akurasi dan cara meningkatkan model.

02

Mengenal Para Pemain

12 skrip Python, masing-masing dengan satu tugas — dan tiga sumber data satelit yang mereka gunakan

Bayangkan setiap skrip seperti spesialis dalam kru film

Tidak ada satu orang pun di lokasi syuting yang melakukan segalanya — sutradara tidak sekaligus mengoperasikan kamera. Ide yang sama berlaku di sini. Setiap skrip Python memiliki satu tanggung jawab yang terfokus, dan mereka menyerahkan pekerjaan satu sama lain dalam urutan yang jelas.

Skrip-skrip ini terbagi menjadi empat kelompok: pengunduh data, pembangun fitur, klasifikator, dan alat analisis.

Unduh Data
build_sar_features.pyMengunduh Sentinel-1 + PALSAR-2 dari Google Earth Engine
download_meta_canopy_v2.pyMengalirkan ubin ketinggian kanopi dari bucket S3 publik Meta
ee_init.pyMengautentikasi ke Earth Engine — selalu diimpor pertama kali
Pembuatan Fitur
planetscope_10epoch_local.pyMembangun cache piksel 138 fitur dari citra PlanetScope
curate_samples_for_obia.pyMembersihkan titik latih — satu per segmen, tanpa konflik
Klasifikasi
planetscope_10epoch_obia_v3.pySkrip utama — menjalankan semua 13 tahap pipeline dari awal hingga akhir
Segmentasi SAM (alternatif)
sam_preprocess.pyMempersiapkan input RGB untuk Meta SAM
sam_run.pyMenjalankan Segment Anything Model pada AOI
sam_filter.pyMemfilter dan mengisi poligon SAM
sam_option_a.pyAlternatif: menggunakan garis potong SAM untuk membagi segmen Lebat
Analisis & Visualisasi
separability_plot.pySeberapa terpisah kelas-kelasnya? Gambar 3 panel.
spectral_signature_plot.pyBagaimana tampilan setiap kelas di 138 fitur?

Tiga mata di langit

Klasifikator tidak bergantung pada satu satelit saja. Ia memadukan tiga jenis data yang benar-benar berbeda — masing-masing melihat sesuatu yang tidak dapat dilihat oleh yang lain.

🌈
PlanetScope SuperDove — 8 band optis, resolusi 3 m

Sepuluh citra diambil dari Maret 2024 hingga Maret 2026. Tulang punggung pipeline — memberi tahu seberapa hijau, basah, atau cerah setiap petak, serta bagaimana perubahannya antar musim.

📡
Sentinel-1 SAR + PALSAR-2 — Radar, menembus awan

Pulsa radar memantul berbeda dari kulit kayu yang kasar, permukaan air yang halus, atau atap logam. Bekerja di malam hari dan saat hujan. 19 fitur Sentinel-1 + 5 fitur PALSAR-2.

📏
Ketinggian Kanopi — Meta v2 + ETH

Seberapa tinggi vegetasinya? Hutan Alam setinggi 40 m terlihat sangat berbeda dari semak setinggi 3 m. Ketinggian kanopi adalah fitur tunggal yang paling penting dalam seluruh model.

📡
Mengapa radar?

SAR melihat apa yang tidak dapat dilihat sensor optis: struktur hutan. Radar pita L (PALSAR-2) sebenarnya menembus kanopi dan memantul dari batang pohon, sementara pita C (Sentinel-1) menyebar dari daun dan ranting. Bersama-sama keduanya menyandikan informasi biomassa yang tidak dapat disediakan oleh kamera warna biasa.

Para skrip di hari eksekusi

Pada pengaturan baru, skrip-skrip berjalan dalam urutan ini, menyerahkan pekerjaan satu sama lain. Begini cara mereka mendeskripsikannya:

Uji pengetahuan Anda

Sebelum melanjutkan, periksa pemahaman Anda tentang skrip mana yang melakukan apa — dan kapan menjalankannya.

Anda memiliki citra PlanetScope baru dari unduhan terkini. Skrip mana yang harus Anda jalankan sebelum klasifikator utama?

Mengapa pipeline repot-repot mengunduh data SAR padahal PlanetScope sudah memiliki 8 band spektral?

03

591 Cara Melihat Pohon

Bagaimana piksel satelit mentah menjadi tabel 591 kolom — satu baris per petak hutan

Mengapa model membutuhkan 591 angka per petak?

Satu piksel pada satu tanggal hanya memberi sedikit informasi. Sawah dan jalan tanah basah terlihat hampir identik di bulan Maret. Namun amati keduanya di 10 tanggal berbeda, ukur respons radarnya, periksa ketinggian vegetasinya — kini keduanya benar-benar berbeda.

Keahlian pipeline ini adalah mengubah setiap segmen 93 piksel menjadi "sidik jari" yang kaya — 591 angka yang mendeskripsikan segala sesuatu yang dapat diamati tentang petak tersebut dari luar angkasa.

🌈

138 Fitur Piksel Warisan

8 band × 10 epoch = 80 rata-rata band mentah, ditambah NDVI, NDWI, NDBI, EVI per epoch dan ringkasan temporal. Dibangun oleh planetscope_10epoch_local.py.

📐

100 Indeks Epoch Baru

10 indeks spektral (NDRE, EVI2, BSI, OSAVI, VARI, MNDWI, CIG, GNDVI, ARI, SIPI) di semua 10 tanggal. Lebih diskriminatif dibanding band mentah.

📡

48 Fitur SAR

19 band Sentinel-1 + 5 band PALSAR-2, masing-masing dengan rata-rata dan standar deviasi di seluruh segmen = 48 angka. Backscatter radar mengkodekan kekasaran kanopi dan kelembaban tanah.

📏

12 Fitur Ketinggian Kanopi

Meta v2 (rata-rata, stdev, p95, penutupan) + ETH (mean, std) — 6 mentah × mean + std = 12. Fitur terpenting ke-1 dan ke-3 dalam seluruh model.

🔲

11 Tekstur + Bentuk

6 statistik tekstur dari NDVI/NIR (varians, kontras...) + 5 properti geometri (luas, kekompakan, elongasi...) per segmen.

Trik statistik zona — dari piksel ke petak

Bayangkan setiap segmen sebagai wilayah di peta. Anda ingin mendeskripsikan wilayah itu — bukan piksel per piksel, melainkan secara keseluruhan. Pipeline menggunakan teknik penghitungan cerdas yang disebut statistik zona.

Untuk masing-masing dari 316.000 segmen dan masing-masing dari ~266 fitur piksel, dihitung dua angka: rata-rata (nilai khas di dalam wilayah ini) dan standar deviasi (seberapa beragam nilainya). Ini menghasilkan 266 × 2 = 532 fitur zona.

CODE

count = np.bincount(lbl, minlength=n_seg+1)
s     = np.bincount(lbl, weights=val, minlength=n_seg+1)
sq    = np.bincount(lbl, weights=val*val, minlength=n_seg+1)
mean  = s / count
std   = np.sqrt(sq/count - mean**2)
            
PLAIN ENGLISH

Hitung berapa piksel yang ada di setiap segmen (seperti sensus)

Jumlahkan semua nilai piksel di dalam setiap segmen

Jumlahkan semua nilai kuadrat (diperlukan untuk menghitung sebaran)

Bagi total dengan jumlah untuk mendapatkan nilai rata-rata per segmen

Hitung sebaran: seberapa jauh piksel individu menyimpang dari rata-rata

💡
Mengapa numpy.bincount dan bukan perulangan?

Perulangan di 316.000 segmen × 266 fitur × 93 piksel akan memakan waktu berjam-jam. numpy.bincount melakukan pekerjaan yang sama dengan mengakumulasi ember histogram dalam satu lintasan atas larik piksel. Waktu eksekusi: ~4 menit vs berjam-jam.

Mengapa menghitung indeks dan bukan sekadar menggunakan band mentah?

Nilai reflektansi mentah sensitif terhadap pencahayaan, atmosfer, dan keanehan sensor. Indeks spektral adalah rasio yang membatalkan banyak derau tersebut dan memperkuat sinyal yang Anda pedulikan.

NDVI Indeks Vegetasi Perbedaan Ternormalisasi — seberapa hijau dan aktif secara fotosintesis. Indeks klasik.
NDRE Versi Red-Edge dari NDVI — lebih sensitif terhadap klorofil kanopi, kurang jenuh di atas hutan lebat.
NDWI / MNDWI Indeks air — tinggi di atas badan air, rendah di atas tanah kering. Kunci untuk memisahkan Sawah dari Ladang.
BSI Indeks Tanah Terbuka — tinggi di atas tanah gundul, rendah di atas vegetasi. Berlawanan dengan NDVI.
VARI Indeks Ketahanan Atmosfer Tampak — bekerja hanya dengan RGB, sangat baik untuk Ladang pada citra bulan Maret.
OSAVI / EVI2 Indeks vegetasi yang disesuaikan tanah — lebih baik dari NDVI di mana tanah terbuka terlihat melalui kanopi jarang.

Musiman adalah senjata rahasia

Satu tanggal bisa ambigu — sawah yang baru dipanen dan lereng tandus terlihat identik di musim kemarau. Namun di 10 tanggal, sawah memiliki tanda tangan yang sangat khas: menghijau cepat (tanam), mencapai puncak, lalu menguning cepat (panen). Hutan tetap hijau sepanjang tahun.

Pipeline menghitung fitur ringkasan temporal yang menangkap ritme ini:

P
Persentil (p10, p25, p50, p75, p90)

Persentil ke-50 (median) NDVI menangkap kehijauan "khas" dengan mengabaikan tanggal ekstrem. Rentang antara p10 dan p90 menangkap fluktuasi musiman.

H
Koefisien harmonik (amplitudo, offset, fase)

Pasangkan gelombang sinusoidal pada NDVI lintas waktu. Amplitudo menunjukkan seberapa besar variasinya secara musiman. Fase menunjukkan kapan puncaknya. Bersama-sama, keduanya mengidentifikasi kalender tanam.

Y
Perbedaan Tahun ke Tahun

Bandingkan bulan yang sama di dua tahun berbeda. Hutan stabil menunjukkan perubahan hampir nol. Lahan yang dibuka menunjukkan penurunan NDVI mendadak. Ini mendeteksi gangguan.

🗓️
Mengapa September adalah tanggal tunggal terpenting

Peringkat kepentingan fitur menunjukkan bahwa indeks September (NDBI, NDWI, NDRE, OSAVI, BSI) mendominasi daftar 15 teratas. September adalah musim kemarau — kontras maksimum antara tanah gundul, tanaman yang mengering, dan hutan hijau abadi. Waktu musiman sama pentingnya dengan rentang spektral.

Cocokkan fitur dengan apa yang dideteksinya

Seret setiap kelompok fitur ke properti tutupan lahan yang paling baik dideteksinya.

Canopy Height
PALSAR-2 HV
NDWI (water index)
Harmonic amplitude

Memisahkan Hutan Alam yang tinggi dari semak rendah dan ladang

Letakkan di sini

Menembus kanopi hutan untuk mengukur volume kayu dan biomassa

Letakkan di sini

Membedakan badan air terbuka dan sawah tergenang dari lahan kering

Letakkan di sini

Mendeteksi kalender tanam musiman — seberapa besar NDVI berosilasi sepanjang tahun

Letakkan di sini
04

Mesin Pemikir

Bagaimana segmentasi LSMS menggambar batas — dan bagaimana Random Forest belajar melabeli isinya

Mengapa tidak mengklasifikasikan piksel per piksel saja?

Pendekatan naif adalah: untuk masing-masing dari 300 juta piksel dalam citra Cisokan, tentukan kelasnya. Masalahnya? Satu piksel berukuran 3 m × 3 m — kira-kira seukuran mobil. Satu piksel "hutan" bisa saja berupa celah terkena sinar matahari, bayangan, atau ujung ranting. Derau mengalahkan sinyal.

OBIA memecahkan masalah ini dengan terlebih dahulu mengelompokkan piksel-piksel berdekatan yang serupa menjadi segmen — petak 50–500 piksel yang memiliki warna, tekstur, dan kecerahan yang mirip — kemudian mengklasifikasikan setiap petak sebagai satu unit.

❌

Piksel per piksel (cara lama)

300 juta keputusan. Setiap piksel hanya melihat satu kotak 3 m. Derau pada satu piksel gelap salah memberi label "bayangan" sebagai "air." Kesalahan salt-and-pepper di mana-mana.

✅

Segmen per segmen (OBIA)

316.000 keputusan. Setiap segmen melihat 93 piksel yang dirata-ratakan. Derau saling meniadakan. Anda juga bisa menghitung bentuk (bulat vs. memanjang) — air berbentuk bulat, jalan berbentuk garis tipis.

LSMS: penyortir piksel

LSMS bekerja seperti algoritma penyortir kerumunan di sebuah festival. Setiap piksel "berjalan" menuju klaster tetangga berwarnatama serupa yang paling dekat. Setelah semua piksel menetap, kelompok-kelompok itu menjadi segmen.

Tiga parameter menentukan seberapa halus hasilnya:

spatialr = 3 Radius pencarian dalam piksel — seberapa jauh sebuah piksel mencari tetangga yang serupa. Lebih kecil = segmen lebih halus.
ranger = 12.0 Toleransi spektral — seberapa berbeda dua piksel boleh tetap digabung. Lebih rendah = lebih banyak segmen.
minsize = 50 Ukuran segmen minimum dalam piksel. Serpihan kecil di bawah batas ini digabungkan ke segmen tetangga.
📏
Halus vs Kasar — perbedaan akurasi 7,7 poin persentase

Eksperimen awal menggunakan parameter kasar (spatialr=15, ranger=30) yang menghasilkan 60.000 segmen dengan ~485 piksel per segmen. Penyempitan ke pengaturan halus saat ini melipattigakan jumlah segmen menjadi 316.000, mengurangi piksel per segmen menjadi 93, menggandakan set latih yang dapat digunakan, dan meningkatkan akurasi validasi silang dari 81% menjadi 88,7% — dengan standar deviasi yang menyusut dari ±4,9 poin persentase menjadi ±1,7 poin persentase (jauh lebih stabil).

Random Forest — hutan yang mengklasifikasikan hutan

Sebuah Random Forest bukanlah satu model melainkan ansambel 100 pohon keputusan, masing-masing dilatih secara independen pada subset data yang acak. Prediksi akhir adalah suara terbanyak dari 100 pohon tersebut.

Berikut adalah konfigurasi persis yang digunakan dalam pipeline ini:

CODE

RandomForestClassifier(
  n_estimators=100,
  min_samples_leaf=1,
  max_samples=0.5,
  bootstrap=True,
  max_features="sqrt",
  random_state=42,
  n_jobs=-1,
)
            
PLAIN ENGLISH

Buat komite dari 100 pohon keputusan

Setiap simpul daun dapat mewakili satu contoh latih (tanpa penghalusan)

Setiap pohon hanya melihat 50% data latih — memaksa keberagaman

Pengambilan sampel dengan pengembalian (seperti mengambil kartu lalu mengembalikannya)

Setiap pohon melihat subset acak berukuran akar kuadrat dari 591 fitur

Keacakan tetap — jalankan dua kali, hasilnya sama

Gunakan semua inti CPU secara paralel — pelatihan lebih cepat

Dua pengklasifikasi, dua pertanyaan

Pipeline menjalankan dua Random Forest secara berurutan. Bayangkan seperti wawancara dua babak: penyaring pertama mempersempit bidang, kemudian spesialis membuat keputusan akhir.

L1

7 kelas luas — Badan Air, Sawah, Terbangun, Lainnya, Vegetasi Lebat, Vegetasi Jarang, Ladang

→
🌳

Semua segmen "Vegetasi Lebat" diserahkan ke L2

→
L2

3 subtipe hutan — Hutan Alam, Hutan Produksi, Agroforest

→
9

Peta akhir menggabungkan L1 + L2 menjadi raster hierarkis 9 kelas

⚠️
Bug pelabelan v2 yang menyebabkan penurunan akurasi 24 poin persentase

Versi pipeline sebelumnya (v2) memperluas setiap titik latih menjadi baris berbobot dan menetapkan label fraksional per segmen. Ini menciptakan kontaminasi lintas-split — segmen yang sama muncul di split latih maupun validasi dengan label berbeda. Skema suara terbanyak v1 yang ketat (digunakan di v3) menghindari hal ini sepenuhnya. Pelajaran: selalu periksa split latih/validasi Anda untuk kebocoran data.

Men-debug pengklasifikasi

Anda telah menerapkan model. Seorang kolega melaporkan bahwa segmen Hutan Alam sering salah dilabeli sebagai Hutan Produksi. Terapkan apa yang telah Anda pelajari untuk mendiagnosis masalah ini.

Hutan Alam dan Hutan Produksi sama-sama merupakan "Vegetasi Lebat" dalam model L1. Di mana kebingungan sebenarnya terjadi?

Apa tindakan bernilai tertinggi tunggal untuk meningkatkan klasifikasi Hutan Produksi?

05

Membaca Angka

Apa yang sebenarnya disampaikan metrik akurasi — dan cara menggunakan feature importance untuk memperbaiki model

Overall Accuracy dan Kappa — apa arti angka utama ini

Setelah pelatihan, pipeline menahan 30% segmen berlabel untuk ujian akhir — segmen yang tidak pernah dilihat model selama pelatihan. Model memprediksi kelas untuk setiap segmen, lalu membandingkannya dengan label ground truth.

🎯

Overall Accuracy (OA)

Persentase segmen validasi yang diklasifikasikan dengan benar. 89,5% berarti 9 dari 10 segmen yang belum pernah dilihat mendapatkan label yang tepat. Intuitif, tetapi menyesatkan jika kelas tidak seimbang.

📊

Kappa Cohen

Kappa menyesuaikan OA terhadap kesesuaian secara kebetulan. Jika model hanya memprediksi "Vegetasi Jarang" untuk segalanya, ia akan mendapatkan 46% OA secara gratis. Kappa menghukum hal itu. Kappa 0,875 adalah nilai yang sangat baik.

🔁

5-Fold Cross-Validation

Ulangi pembagian latih/uji sebanyak 5 kali dengan partisi berbeda. Rata-rata (92,0%) dan standar deviasi (±1,6%) bersama-sama memberi tahu Anda: "model ini sekaligus akurat dan stabil."

💡
Standar deviasi CV lebih penting dari yang Anda kira

Model segmentasi kasar memiliki CV OA 81% ± 4,9pp. Model halus: 88,7% ± 1,7pp. Rata-ratanya membaik, tetapi standar deviasi yang menyusut 3 kali lebih kecil jauh lebih penting untuk produksi — ini berarti model konsisten di berbagai pembagian data, bukan hanya beruntung pada satu pembagian saja.

F1 Score — nilai jujur per kelas

Akurasi keseluruhan menyembunyikan kegagalan di tingkat kelas. F1 score menangkap kegagalan tersebut: kelas dengan F1 = 0,50 mendapatkan setengah prediksinya salah, meskipun OA terlihat baik.

Others: 0.97 Kelas tangkapan semua — sangat konsisten karena segala hal yang ambigu dikirim ke sini
Built-up: 0.90 Atap dan jalan memiliki tanda spektral + radar yang unik — kepercayaan tinggi
Paddy: 0.89 Siklus NDWI musiman yang kuat membuat sawah mudah dikenali
Waterbody: 0.93 Air secara spektral unik — reflektansi sangat rendah di semua band
Crops: 0.91 +0,24 dibanding model kasar — segmen lebih halus memecah kebingungan lahan/vegetasi jarang
Sparse Vegetation: 0.82 +0,25 dibanding model kasar — peningkatan terbesar dari segmentasi halus
Dense Vegetation: 0.83 L1 benar — subtipe kemudian ditangani di L2 dengan Random Forest terpisah

Apa yang sebenarnya dipelajari model untuk diperhatikan

Feature importance seperti sorotan cahaya pada perhatian model. Setelah pelatihan, Anda bisa bertanya: "Dari 591 fitur, mana yang paling diandalkan oleh pohon-pohon?" Jawabannya mengejutkan — dan dapat ditindaklanjuti.

#1
tree_height_mean__mean (0.0192)

Seberapa tinggi rata-rata kanopi di seluruh segmen ini? Tidak ada yang memisahkan hutan alami setinggi 40 m dari tanaman setinggi 1 m lebih cepat dari satu angka ini.

#2
ampNDBI__mean (0.0133) — amplitudo musiman Indeks Tanah Terbuka

Seberapa besar sinyal tanah terbuka berfluktuasi sepanjang tahun? Hutan tetap stabil. Tanaman pertanian berubah dari tanah terbuka menjadi bervegetasi dan kembali lagi. Ritme ini adalah kunci untuk memisahkan keduanya.

#3
tree_height_std__mean (0.0128)

Seberapa bervariasi ketinggian kanopi di dalam segmen ini? Perkebunan seragam memiliki std rendah. Hutan alami campuran dengan celah memiliki std tinggi. Ini membedakan subtipe hutan.

#5
PALSAR_HV_db__mean (0.0121) — cross-polarisasi radar L-band

Radar L-band menembus kanopi dan memantul dari batang kayu. HV tinggi = biomassa kayu yang padat. Ini adalah informasi struktural yang tidak dapat disediakan oleh band optik mana pun.

💡
20 fitur teratas setara dengan 591 fitur lengkap

Model Top-20 mencapai akurasi yang identik dengan model fitur lengkap. Ini adalah tanda kejenuhan fitur — begitu segmen cukup homogen (LSMS halus), 20 fitur teratas menangkap semua yang dibutuhkan model. Anda bisa menerapkan model 20 fitur 30 kali lebih cepat tanpa kehilangan akurasi.

Masalah L2 — dan cara memperbaikinya

Klasifier subtipe hutan L2 mencapai akurasi 57,5% pada 40 segmen validasi. Mode kegagalan yang dominan: 7 dari 14 segmen Hutan Produksi berlabel sebagai Hutan Alami.

Berikut adalah matriks kebingungan lengkapnya:

Pred. Alami Pred. Produksi Pred. Agroforest
Aktual Alami (n=18) 11 5 2
Aktual Produksi (n=14) 7 7 0
Aktual Agroforest (n=8) 1 2 5

Hutan Produksi dan Hutan Alami keduanya memiliki kanopi yang tinggi dan lebat. Fitur yang seharusnya memisahkan keduanya — tree_height_std, S1_VV_stdDev — tersedia, tetapi model hanya memiliki 48 contoh latih Produksi untuk dipelajari. Solusinya jelas: kumpulkan 30–50 titik latih Hutan Produksi tambahan dari area di mana baris penanaman terlihat pada citra dasar satelit.

Tantangan akhir — membaca skenario nyata

Model L2 melaporkan CV OA sebesar 64,9% ± 7,6%. Seorang rekan berkata "64,9% sudah lumayan." Apa yang disampaikan ±7,6% yang terlewat oleh mereka?

Anda ingin meningkatkan akurasi L2 tanpa mengumpulkan lebih banyak titik latih. Tindakan mana yang akan berdampak paling besar?

🚀
Langkah selanjutnya untuk pipeline ini

1) Tambahkan 30–50 sampel latih Hutan Produksi. 2) Selidiki mengapa 46% AOI adalah Vegetasi Jarang — sebagian mungkin merupakan Agroforest pinggiran yang salah klasifikasi. 3) Uji aturan YRF (Young Regenerated Forest) dengan sampel khusus. 4) Pertimbangkan SAR skala halus pada 10 m untuk model L2 setelah set latih lebih besar.