Dzaky Zakiyal Fawwaz
open-satellite-analysis: Skill yang Membuat Agen AI Bisa Bertanya ke Data Satelit Gratis tentang Sebuah Tempat

open-satellite-analysis: Skill yang Membuat Agen AI Bisa Bertanya ke Data Satelit Gratis tentang Sebuah Tempat

Diterbitkan pada
15 mnt baca
aiagentsremote-sensinggeospatial

Citra Satelit yang Isinya Asap

Pada 21 Oktober 2026, Sentinel-2 melintas di atas Pulang Pisau, Kalimantan Tengah, di minggu ketika sensor VIIRS milik NASA mencatat sekitar 1.400 hotspot kebakaran di dalam satu kotak 14 km di sana. Dalam warna asli, citranya hanya berisi asap.

Lintasan yang sama juga merekam inframerah gelombang pendek (SWIR), dan di band itu asapnya hampir hilang. Yang terlihat justru bekas terbakar sepanjang beberapa kilometer dan garis api di tepinya.

Pulang Pisau, 21 Okt 2026: asap dalam warna asli, bekas terbakar dan garis api dalam inframerah gelombang pendek, serta peta tingkat keparahan kebakaran dengan hotspot VIIRS NASA di atasnya.

Citra itu gratis. Begitu juga semua yang dibutuhkan untuk mengubahnya jadi angka: citranya, rumus indeksnya, dan deteksi kebakaran NASA. Yang belum ada adalah perekatnya, langkah-langkah di antara "ini citranya" dan "sekitar 2.900 hektar terbakar, dan ini buktinya". Di langkah-langkah itulah manusia, juga agen AI, sering keliru. Saya membuat open-satellite-analysis sebagai skill yang bisa dipakai agen, dengan pola yang sama seperti pid-parser: skrip kecil yang melakukan pengukuran, dan instruksi yang memberi tahu agen cara memakainya. Pasang ke agen Anda, lalu tanyakan tentang sebuah tempat dan terima angka, peta, dan batasannya. Saya mengujinya pada lima pertanyaan tentang tempat di Indonesia.

Kode: github.com/dzakybd/open-satellite-analysis (MIT) · Demo: huggingface.co/spaces/dzakybd/open-satellite-analysis

TL;DR

  • Apa itu: skill yang dipasang ke agen agar bisa menanyakan dan menganalisis sebuah kasus dari data satelit publik. Beri alamat atau koordinat dan sebuah pertanyaan; hasilnya angka, peta, dan batasan yang berlaku. Dua versi, seperti pid-parser: skill untuk coding agent (npx skills add dzakybd/open-satellite-analysis) dan versi LangChain Deep Agents.
  • Caranya: enam skrip kecil: alamat jadi area, citra paling bersih untuk area itu, indeks spektral, perbandingan dua tanggal, hotspot NASA, dan pencarian katalog. Pendekatannya indeks yang sudah dipublikasikan dan ambang batas sederhana, jadi setiap angka bisa dijalankan ulang.
  • Data gratis, tanpa key: Sentinel-2 (Earth Search), Landsat 8/9 dan radar Sentinel-1 (Microsoft Planetary Computer), hotspot NASA FIRMS, geocoding OpenStreetMap, dan 245 indeks dari katalog Awesome Spectral Indices, dihitung dengan spyndex.
  • Seberapa baik: lima kasus di Indonesia, masing-masing dicek dengan berita dan laporan. Kebakaran Pulang Pisau Oktober 2026 keluar sekitar 2.900 ha dari Sentinel-2 dan 4.000 ha dari Landsat, dengan 84% hotspot NASA yang terlihat berada di area terbakar.
  • Kelemahannya: asap menutup tanah berminggu-minggu saat puncak kebakaran, radar tidak melihat air di bawah tanaman dan bangunan, dan piksel 20 sampai 30 m melewatkan perubahan kecil.
Semua gambar berasal dari proses nyata, dan setiap hasil dicek dengan berita dan laporan.

Berguna untuk Apa

Apa saja yang diawali "apa yang berubah di tempat ini?" dan bisa terlihat dari orbit. Lima kartu di baris pertama sudah saya uji; kartu keenam adalah inti skill ini, yaitu memberi agen pertanyaan-pertanyaan ini sebagai alat.

Enam kartu: kebakaran dan bekas bakar, perluasan tambang, pembukaan lahan, danau dan waduk, banjir, dan alat agen untuk tempat mana pun.

Cara Kerjanya, Langkah demi Langkah

Skill ini sebuah folder: SKILL.md berisi instruksi, dan skrip mandiri yang dijalankan dengan uv run serta memasang dependensinya sendiri. Agen membaca instruksi, memilih skrip, menjalankannya, dan membaca keluarannya. Dua pilihan ada di tangan agen, dengan panduan SKILL.md: satelit mana yang cocok untuk pertanyaannya, dan indeks mana yang cocok untuk kasusnya.

Seluruh proses dalam tujuh langkah: pertanyaan, locate, memilih satelit yang tepat (Sentinel-2, Landsat, radar Sentinel-1, atau hotspot NASA), memilih indeks yang tepat untuk kasusnya (NBR, MNDWI, ambang radar), mencari citra paling bersih, menghitung, membandingkan dua tanggal, lalu agen mengecek dan menjawab. Langkah hijau adalah skrip biasa, langkah biru ditentukan agen.

1. Tentukan tempatnya. locate.py mengubah alamat jadi koordinat lewat Nominatim milik OpenStreetMap, atau langsung memakai koordinat, lalu menggambar area minat (AOI) berbentuk persegi di sekitarnya.

uv run locate.py --lat -2.8 --lng 114.05 --buffer-m 7000 --out work/aoi.json
uv run locate.py "Pulang Pisau, Kalimantan Tengah" --buffer-m 3000 --out work/aoi.json

2. Pilih indeksnya. Indeks spektral menggabungkan band untuk menonjolkan satu hal. NBR, Normalized Burn Ratio, memakai inframerah dekat, yang dipantulkan kuat oleh daun sehat, dan inframerah gelombang pendek, yang dipantulkan kuat oleh tanah gundul dan hangus: (NIR − SWIR2) / (NIR + SWIR2). Saat vegetasi terbakar, NBR turun. search_index.py mendaftar 245 indeks yang bisa dihitung Sentinel-2, atau yang bisa dihitung Landsat. Katalog Awesome Spectral Indices memuat 280 indeks lengkap dengan band dan makalah sumbernya, dan spyndex menghitungnya. Saya tidak menulis satu pun rumusnya.

uv run search_index.py --domain burn

Kenapa nama band di katalog perlu hati-hati. Katalog memberi nama band secara umum: N adalah inframerah dekat, S1 dan S2 adalah dua band gelombang pendek. Jadi dalam rumus NBR, S2 berarti SWIR 2 (band B12), bukan Sentinel-2. Skill ini menjelaskannya, karena agen pasti akan tertukar.

3. Cari citra bersih, untuk areamu. Sentinel-2 memotret tempat yang sama sekitar tiap lima hari, dan tiap citra datang dengan persentase awan. Angka itu untuk seluruh tile 110 km. find_scene.py justru membaca masker awan hanya untuk AOI Anda.

uv run find_scene.py work/aoi.json --out work/post/scene.json                       # citra bersih terbaru
uv run find_scene.py work/aoi.json --date 2026-08-29 --direction before --out work/pre/scene.json
uv run find_scene.py work/aoi.json --source landsat --out work/post-landsat/scene.json

Ini penting: citra 21 Oktober di atas Pulang Pisau tercatat 13,6% awan, tetapi di area kami 66% tertutup asap atau awan, karena asap berada tepat di tempat api. Skrip mencetak kedua angka itu, beserta citra yang dilewatinya.

Dua bar: 13,6% awan tercatat untuk tile, dibanding 66% asap atau awan di area minat, untuk citra Sentinel-2 21 Oktober 2026.

4. Hitung. compute_index.py membaca hanya piksel AOI dari file cloud-optimized, mengubahnya ke reflektansi permukaan, lalu menghitung indeksnya. Ia juga menyimpan gambar warna asli dan warna palsu inframerah gelombang pendek, tempat bekas terbakar tampak merah gelap.

uv run compute_index.py work/aoi.json work/post/scene.json NBR NDVI --out work/post

Citra yang sama, dua gambar. Warna asli adalah yang dilihat mata; inframerah gelombang pendek adalah yang dipakai indeks.

Warna asli citra Pulang Pisau pada 21 Oktober 2026: kabut asap kelabu di atas hutan.

Citra yang sama dalam inframerah gelombang pendek: bekas terbakar merah-cokelat gelap, hutan sehat hijau, dan garis api oranye terang.

Kenapa langkah reflektansi hampir merusak segalanya. Sejak 2022, ESA menambahkan 1000 ke setiap nilai Sentinel-2 L2A, dan metadata menyuruh kita menguranginya. Earth Search sudah menghapusnya dari piksel dan menandai item dengan earthsearch:boa_offset_applied, tetapi metadata tetap mencantumkan offsetnya. Percobaan pertama saya menerapkannya lagi: nilai gelombang pendek jadi negatif dan hutan sehat keluar dengan NDVI −0,99. Bug kedua memperparah: aset visual, gambar RGB 8-bit, juga mengaku sebagai band 2, 3, dan 4, lalu terbaca sebagai merah. Keduanya sudah diperbaiki dan ditulis ke dalam skill, jadi agen tidak mengulanginya.

5. Bandingkan dua tanggal. compare.py punya tiga mode: keparahan kebakaran dNBR, "berapa yang di atas atau di bawah ambang pada tiap tanggal" (air, vegetasi, tanah terbuka), dan peta perubahan biasa. Piksel yang berawan pada salah satu tanggal dikeluarkan, dan porsi yang dikeluarkan dilaporkan di setiap hasil.

# keparahan kebakaran, dengan pengecekan hotspot
uv run hotspots.py --aoi work/aoi.json --days 7 --out work/hotspots.json
uv run compare.py work/pre/NBR.tif work/post/NBR.tif --burn \
  --hotspots work/hotspots.json --out work/compare
 
# air, tanah terbuka, vegetasi
uv run compare.py work/dry/MNDWI.tif work/wet/MNDWI.tif --above 0 --out work/compare
uv run compare.py work/2019/NBR.tif work/2026/NBR.tif --below 0.1 --out work/compare

Hasilnya summary.json dan sebuah peta. Ini yang untuk Pulang Pisau:

{
  "mode": "dNBR (pre - post)",
  "confident_burned_hectares": 2924.8,
  "possible_burned_hectares": 1507.8,
  "aoi_hectares": 19601.5,
  "compared_pct": 33.9,
  "note": "Pixels cloudy, shadowed or missing on either date are excluded (see compared_pct)."
}

6. Agen mengecek dan menjawab. Skrip mengembalikan angka; SKILL.md memberi tahu agen apa yang harus dilakukan dengannya: sebut porsi area yang terlihat, katakan kelas mana yang kurang pasti, lihat gambarnya sebelum memercayai citra yang diambil saat kebakaran, cek hotspot sebagai sumber independen, dan katakan bahwa perubahan indeks hanya menunjukkan permukaan berubah, bukan sebabnya.

Pengukurannya hanya berasal dari bahan yang sudah dipublikasikan: indeks spektral, masker awan yang menyertai citra, dan ambang batas sederhana dari literatur (air gelap di radar di bawah sekitar -15 dB, tanah terbakar punya dNBR di atas 0,27) yang dicantumkan di samping setiap hasil. Tidak ada yang dilatih, jadi siapa pun bisa menjalankan ulang sebuah angka dan mendapat hasil yang sama. Yang saya bangun adalah alur di sekeliling indeks itu, tempat kebanyakan kesalahan analisis semacam ini terjadi, seperti terlihat di bagian-bagian berikutnya.

Data Mana untuk Pertanyaan Apa

Tidak ada satu satelit yang menjawab semuanya. Skill ini memberi agen tabel berikut:

PertanyaanSumberKenapa
Kebakaran, vegetasi, air, tanah terbukaSentinel-2, 10 sampai 20 m, tiap ~5 hariCitra optik gratis paling tajam, 245 indeks
Sentinel-2 berawan atau berasap; riwayat sebelum 2017Landsat 8/9, 30 m, tiap ~8 hariHari lintasan berbeda, rekaman sejak 2013
Apakah sedang terbakar? Kapan mulai?Hotspot NASA FIRMS, 375 m, beberapa lintasan sehariMelihat panas menembus asap, tetapi terlalu kasar untuk mengukur luas
Banjir di bawah awan, apa pun yang tidak terlihat optikRadar Sentinel-1, 10 mMenembus awan, asap, dan gelap; air tampak gelap

Catatan soal api, karena mudah tertukar: hotspot hanya menunjukkan di mana dan kapan. Pikselnya 375 m dan tidak bisa menyebut berapa hektar yang terbakar. Hektar di tulisan ini berasal dari Sentinel-2 dan Landsat, pada 20 sampai 30 m. Hotspot berfungsi sebagai pengecekan independen atas angka-angka itu, dari satelit, sensor, dan metode yang berbeda.

Hasil Sekilas

Lima pertanyaan, lima tempat, setiap hasil dicek dengan berita dan laporan. Rinciannya, dengan gambar dan bukti lapangan, ada di bawah.

Lima kartu hasil: terbakar Pulang Pisau 2.925 ha, tanah terbuka Weda Bay 146 ke 439 ha, vegetasi inti IKN hilang 1.611 ha, air Danau Sentarum 12.639 ke 155 ha, banjir Demak sedikitnya 1.003 ha air baru.

KasusSumberHasilTerlihat di kedua tanggalDicek dengan
Kebakaran Pulang Pisau, Okt 2026Sentinel-2, Landsat, FIRMS~2.925 ha (S2), ~4.003 ha (Landsat); 84% hotspot terlihat ada di area terbakar33,9% (S2), 100% (Landsat)Angka BPBD lewat Berita Sampit
Tambang Weda Bay, 2019 ke 2026Sentinel-2tanah terbuka 146 → 439 ha84%Climate Rights International, Mongabay
Inti IKN, 2021 ke 2026Sentinel-21.611 ha vegetasi hilang69%Otorita IKN, Forest Watch Indonesia
Danau Sentarum, 2026Landsat12.639 → 155 ha air terbuka77%Mongabay Indonesia, LIPI
Banjir Demak, Feb 2024Sentinel-1≥ 1.003 sampai 1.281 ha air terbuka baruorbit yang sama di kedua tanggalMedia Indonesia, WIKA, Republika

Lima Pertanyaan, Lima Tempat

1. Berapa yang terbakar? Pulang Pisau, Oktober 2026

Resepnya: NBR pada citra bersih sebelum kebakaran (29 Agustus) dan citra terbaru (21 Oktober), lalu dNBR, dikelaskan dengan rentang USGS FIREMON (Key & Benson, 2006).

Area14 km × 14 km di sekitar -2,8; 114,05 (19.602 ha)
Sebelum / sesudah29 Agu 2026 (bersih) / 21 Okt 2026 (66% area tertutup asap atau awan)
Terlihat di kedua tanggal33,9%
Terbakar, keyakinan tinggi (dNBR ≥ 0,27)~2.925 ha
Mungkin terbakar (keparahan rendah, 0,1 sampai 0,27)~1.508 ha
Hotspot VIIRS NASA di piksel yang terlihat266 dari 318 (83,6%) dalam radius 190 m dari area terbakar keyakinan tinggi

Skrip melaporkan dua luasan dengan sengaja. Kelas keparahan rendah, 0,1 sampai 0,27, juga bisa muncul karena kabut asap, kekeringan, atau panen, jadi tidak dihitung sebagai kebakaran. Di lokasi uji pertama saya, satu citra berkabut memasukkan 3.600 ha ke kelas itu, dan citra warna aslinya menunjukkan sebagian besarnya kabut.

Pembanding. Berita Sampit melaporkan pada 4 Oktober 2026, mengutip BPBD kabupaten, bahwa 7.083,6 ha terbakar di seluruh kabupaten, 3.338,5 ha di antaranya di Jabiren Raya (Berita Sampit). BMKG sudah memperkirakan pada Juni bahwa El Niño bertahan sampai awal 2027 dan Agustus 2026 menjadi puncak kemarau terluas (BMKG). Cakupannya berbeda, karena angka resmi mencakup seluruh kabupaten, tetapi orde besarnya sejalan.

Satelit kedua untuk mengisi celah. Citra 21 Oktober sebagian besar tertutup, jadi saya bertanya ke Landsat. Landsat 8 melintas pada 4 Oktober dan masker awannya tidak menandai satu pun bagian area. Dibandingkan dengan 25 Agustus (Landsat 9):

Landsat 8 pada 4 Oktober 2026 di area yang sama: kepulan asap dalam warna asli, bekas terbakar dan garis api menyala dalam inframerah gelombang pendek, serta peta dNBR dibanding 25 Agustus.

Landsat 8/9, 30 m
Terlihat di kedua tanggal100% area
Terbakar, keyakinan tinggi~4.003 ha
Mungkin terbakar~2.561 ha

Dua angka ini mengukur hal yang berbeda: Landsat melihat seluruh area sampai 4 Oktober, Sentinel-2 melihat sepertiganya sampai 21 Oktober. Angka Landsat sedikit di atas separuh angka resmi kabupaten, 7.083,6 ha pada hari yang sama, yang masuk akal untuk satu kotak 14 km di dalam kabupaten, meski saya tidak bisa menyimpulkan lebih dari itu. Kepulan asap yang tipis tidak ditandai oleh masker awan Landsat, jadi piksel di bawahnya membawa sedikit asap, dan inframerah gelombang pendek yang paling sedikit terpengaruh.

2. Seberapa jauh tambang meluas? Weda Bay, 2019 sampai 2026

Weda Bay di Halmahera adalah salah satu kawasan tambang dan pengolahan nikel besar di Indonesia. Resepnya: citra Sentinel-2 bersih dari Juli 2019 dan satu dari Agustus 2026, NBR di keduanya, dan luas area dengan NBR di bawah 0,1, yaitu tanah terbuka atau bekas tambang.

Weda Bay, 25 Jul 2019 dan 24 Agu 2026 dalam warna asli: hutan lebat di 2019, bekas tambang oranye di 2026. Peta menunjukkan di mana tanah terbuka muncul.

Area8 km × 8 km di sekitar Lelilef Sawai (6.351 ha), 84% terlihat di kedua tanggal
Tanah terbuka, 2019146 ha
Tanah terbuka, 2026439 ha
Tanah terbuka baru / kembali bervegetasi376 ha / 84 ha

Pelajaran di sini soal kabut. Percobaan pertama saya mengukur hilangnya vegetasi dengan NDVI, dan hasilnya menyebut vegetasi justru bertambah di sekitar lubang tambang baru. Citra 2019 berkabut: kabut tipis tidak ditandai sebagai awan dan menurunkan indeks vegetasi di atas hutan, sehingga hutan tampak lebih hijau di 2026 dibanding 2019. Beralih ke NBR juga tidak menyelesaikannya. Yang berhasil adalah mengukur hal yang muncul: kabut bisa membuat hutan tampak kusam, tetapi tidak bisa membuat hutan tampak seperti tanah terbuka. Tanah terbuka yang tumbuh dari 146 ke 439 ha adalah tren yang sama di tiga ambang berbeda, dan bekas tambang oranye di citra 2026 berada persis di tempat yang ditunjukkan peta. Skill ini sekarang menuliskannya di instruksi yang dibaca agen.

Pembanding. Climate Rights International melaporkan pada Januari 2024, dari analisis satelit bersama peneliti UC Berkeley, bahwa setidaknya 5.331 ha dibuka di dalam konsesi tambang nikel di Halmahera (CRI). Mongabay menambahkan bahwa konsesi Weda Bay Nickel saja kehilangan 1.456 ha per 2022, dan estat kawasan industri sekitar 5.000 ha (Mongabay). Angka-angka itu mencakup semua konsesi di pulau, jauh lebih luas dari kotak 8 km, jadi mereka mengonfirmasi arah dan konteksnya, bukan angka saya.

3. Berapa yang dibuka untuk ibu kota? IKN, 2021 sampai 2026

Nusantara, ibu kota baru Indonesia di Sepaku, Kalimantan Timur, mulai dibangun pada 2022. Saya mengambil Kawasan Inti Pusat Pemerintahan (KIPP) dan membandingkan Juni 2021 dengan September 2026, menghitung vegetasi yang masih berdiri sebagai NBR di atas 0,3.

Kawasan inti Nusantara dalam warna asli: hutan lebat pada Juni 2021 serta jaringan jalan dan lahan terbuka pada September 2026. Peta menunjukkan vegetasi yang hilang.

Area7 km × 7 km di sekitar kawasan inti (4.869 ha), 69% terlihat di kedua tanggal
Vegetasi berdiri, 2021 / 20262.885 ha / 1.534 ha
Hilang / tumbuh kembali1.611 ha / 260 ha

Pembanding. Kawasan inti seluas 6.671 ha (iNews). Kaltimkece melaporkan bahwa Otorita IKN menyebut lahan yang dibuka adalah perkebunan eukaliptus dan sawit, bukan hutan primer, dan Forest Watch Indonesia menghitung 1.663 ha deforestasi antara 2022 dan Juni 2023 (Kaltimkece). Dua catatan jujur menyusul. "Vegetasi berdiri" saya mencakup perkebunan, jadi saya menyebutnya vegetasi, bukan hutan. Dan angka Forest Watch mencakup area dan periode yang berbeda, jadi orde besarnya sama dengan angka saya, bukan cocok persis.

4. Berapa air di danau? Danau Sentarum

Danau Sentarum di Kalimantan Barat adalah danau musiman: tergenang sekitar sembilan atau sepuluh bulan setahun dan sebagian besar kering pada Juli sampai September. Ini ujian paling bersih untuk indeks air, karena jawabannya jelas dari gambar. Sentinel-2 gagal di sini (citra musim keringnya berkabut), jadi saya memakai Landsat, yang punya citra bersih 7 Agustus.

Danau Sentarum dengan Landsat: danau gelap di musim hujan pada 11 Mei 2026 dan dasar danau yang pucat dan terbuka pada 7 Agustus 2026. Peta menunjukkan air terbuka yang hilang.

Landsat 8/9, MNDWI di atas 0
Musim hujan (11 Mei 2026)~12.639 ha
Musim kemarau (7 Agu 2026)~155 ha
Terlihat di kedua tanggal77% area

Angka musim hujan adalah batas bawah: citranya dari Mei, bukan Februari (Februari terlalu berawan), awan menutupi sebagian, dan hutan tergenang dihitung sebagai air. Penurunan 99% antara kedua tanggal cukup besar sehingga tidak satu pun dari catatan itu mengubah kesimpulan.

Pembanding. Mongabay Indonesia menggambarkan danau ini tergenang sembilan sampai sepuluh bulan setahun dan sebagian besar kering pada Juli sampai September (Mongabay). Prosiding LIPI menyebut perubahan tinggi muka air antarmusim 3 sampai 5 m (LIPI). Keduanya klimatologi, bukan pengamatan 2026, dan kedua sumber berbeda soal besarnya, jadi saya mengutipnya sebagai konteks. BMKG memperkirakan Agustus 2026 menjadi puncak kemarau terluas, yang sejalan dengan danau yang nyaris lenyap.

5. Ke mana banjir mengalir? Demak, Februari 2024

Untuk banjir, satelit optik adalah alat yang keliru, karena banjir datang bersama awan. Radar Sentinel-1 menembusnya, dan air terbuka tampak gelap di hamburan balik radar. Saya mengambil dua citra dari orbit yang sama, supaya satelit melihat tanah dari sudut yang sama: 27 Januari 2024 (sebelum) dan 8 Februari (saat banjir), lalu memetakan di mana hamburan balik VV turun di bawah -15 dB.

Radar Sentinel-1 di atas Karanganyar, Demak: sebelum dan saat banjir Februari 2024, serta peta air terbuka baru di sepanjang Sungai Wulan.

Area18 km × 18 km di sekitar Karanganyar (32.192 ha)
Air terbuka sebelum / saat162 ha / 1.013 ha
Air terbuka baru (orbit 76: 27 Jan vs 8 Feb)1.003 ha
Air terbuka baru (orbit 127: 19 Jan vs 12 Feb)1.281 ha

Dua orbit berbeda, dua tanggal berbeda, dan jawaban yang sama besar, yang menenangkan. Namun keduanya adalah batas bawah. Radar membaca air di bawah padi, tanaman, pohon, dan bangunan sebagai terang, bukan gelap, jadi ini hanya air terbuka, dan banjir sebenarnya lebih luas.

Pembanding. Media Indonesia melaporkan tanggul Sungai Wulan jebol di Ketanjung, Karanganyar, sekitar pukul 06.00 pada 8 Februari 2024 (Metro TV); citra "saat banjir" diambil pukul 05.17 pada 9 Februari waktu setempat, sekitar 23 jam kemudian. WIKA menutup dua titik jebol itu antara 11 dan 14 Februari (WIKA). Republika, dari Antara, melaporkan sementara 1.400 ha padi tergenang per 9 Februari (Republika), dan Mongabay Indonesia mencatat 84.270 warga terdampak dan 22.860 mengungsi (Mongabay). Saya tidak menemukan angka resmi luas banjir dalam hektar, jadi saya hanya bisa bilang angka saya sebesar yang dilaporkan, bukan bahwa angkanya cocok.

Bertanya ke Deep Agent

Skripnya sama, entah dijalankan manusia atau agen. Versi LangChain Deep Agents memuat SKILL.md yang sama, jadi perbaikan pada skill sampai ke keduanya. Ia berjalan dengan langganan ChatGPT lewat provider sign in with ChatGPT, jadi tidak perlu API key.

git clone https://github.com/dzakybd/open-satellite-analysis
cd open-satellite-analysis && uv sync
 
# sekali saja: masuk dengan akun ChatGPT
uv run python -c "from langchain_openai.chatgpt_oauth \
  import login_chatgpt; login_chatgpt()"
 
uv run python agent/run.py runs/pulangpisau \
  "How much land burned this fire season within about 7 km of -2.8, 114.05 in Pulang Pisau, Central Kalimantan, since the end of August 2026? Check the burn map against this week's fire hotspots." \
  --effort low

Inti agent/run.py pendek. Disederhanakan:

from deepagents import create_deep_agent
from deepagents.backends import LocalShellBackend
from langchain_openai.chat_models.codex import _ChatOpenAICodex
 
model = _ChatOpenAICodex(model="gpt-6-luna", reasoning={"effort": "low"})
agent = create_deep_agent(
    model=model,
    system_prompt=SYSTEM,
    skills=["work/skills"],  # menemukan skills/open-satellite-analysis/SKILL.md
    backend=LocalShellBackend(root_dir="work", virtual_mode=False),
)
agent.invoke({"messages": [{"role": "user", "content": question}]})

Percobaan pertama: jawaban jujur untuk pertanyaan yang salah. Agen (gpt-6-luna, reasoning effort rendah) menjawab 177 ha, dengan hampir seluruh area terlihat. Ia mencari maju dari 31 Agustus untuk citra bersih pertama dan menemukan 11 September, berminggu-minggu sebelum kebakaran Oktober. Patut dihargai, ia menyebut bahwa hotspotnya berada di luar rentang tanggal perbandingannya. Skill sebelumnya berbunyi "ambil citra terbaru yang memperlihatkan area", yang bisa dibaca agen dengan dua cara.

Perbaikannya cukup beberapa baris instruksi dan satu baris keluaran. Skill kini menyatakan: cari citra "sesudah" mundur dari hari ini dengan batas awan yang lebih longgar, jangan pernah maju dari tanggal awal. Dan find_scene.py kini mencetak citra lebih baru yang dilewati karena awan, supaya pertimbangannya terlihat.

Percobaan kedua, pertanyaan yang sama:

About 2,925 ha of confident burn signal from 29 Aug to 21 Oct 2026, plus 1,508 ha of lower-severity change that is less certain. Only 33.9% of the area was visible on both dates, so these figures apply to the comparable portion, not the full area. Of 504 hotspots between the scene dates on jointly visible pixels, 424 (84.1%) were within 190 m of a confident-burn pixel.

Hasilnya sama persis dengan yang saya jalankan manual sampai ke hektarnya. Waktunya 272 detik, 7 tool call, dan sekitar 47 ribu token input. Pelajarannya sama dengan pid-parser: yang membuat agen andal bukan model yang lebih besar, tapi skrip yang melakukan pengukuran dan instruksi yang tidak memberi ruang untuk salah tafsir.

Yang Disembunyikan Asap

Sekitar 50 km dari kotak Pulang Pisau, di sel hotspot terpadat minggu itu (2.226 deteksi dalam tujuh hari), pendekatan optik hampir gagal, dan itu juga layak ditunjukkan. Dari pertengahan September sampai 24 Oktober, setiap citra Sentinel-2 untuk tile itu tercatat berawan 96 sampai 100%, kecuali satu lintasan berkabut pada 1 Oktober. Kebakarannya menciptakan selimutnya sendiri.

Begitulah wujud jujur pemantauan kebakaran dari satelit: sensor panas melihat api saat menyala, dan citra optik mengukur bekasnya setelah asap hilang. Alat yang berpura-pura sebaliknya akan memberi angka salah dengan penuh percaya diri.

Batasan dan yang Ingin Saya Perbaiki

  • Asap dan kabut. Saat puncak kebakaran, tanah bisa tertutup berminggu-minggu, dan kabut tipis yang tidak tertangkap masker apa pun membelokkan indeks vegetasi. Landsat di hari lain dan radar membantu; untuk perubahan lintas tahun, ukur hal yang muncul, bukan hal yang menghilang.
  • Kelas keparahan. FIREMON dikalibrasi untuk hutan beriklim sedang. Di gambut tropis, tempat api membakar sampai ke dalam tanah, kelasnya adalah keparahan relatif, bukan ukuran kedalaman.
  • Radar hanya melihat air terbuka. Tanaman, pohon, dan bangunan yang tergenang terlewat, jadi hektar banjir adalah batas bawah.
  • Resolusi. Piksel 20 sampai 30 m melewatkan perubahan di bawah sekitar setengah hektar.
  • Ambang batas. NBR 0,3, MNDWI 0, dan -15 dB adalah bawaan dari literatur. Nilainya bergeser menurut musim dan sensor, itu sebabnya setiap hasil disertai gambarnya.
  • Riwayat hotspot. File FIRMS gratis hanya mencakup tujuh hari terakhir; hotspot yang lebih lama butuh key (gratis).
  • Atribusi. Perubahan indeks menunjukkan bahwa permukaan berubah, bukan kenapa atau siapa penyebabnya. Skill ini menyebutkannya di setiap jawaban.

Coba Sendiri

  • Pasang skill: npx skills add dzakybd/open-satellite-analysis, lalu tanyakan ke agen Anda, misalnya "berapa luas yang terbakar di sekitar Pulang Pisau sejak Agustus?" atau "apakah area ini banjir minggu lalu?"
  • Jelajahi kelima kasus di Space demo: gambar, keparahan kebakaran, angka, dan bukti lapangan, langsung di browser.
  • Baca skrip dan runner Deep Agents: dzakybd/open-satellite-analysis. Semua yang dipakainya gratis.

Space demo: lima tab kasus, kebakaran Pulang Pisau dengan 2.925 ha terbakar pasti, 34% area terlihat, 83,6% hotspot terlihat ada di area terbakar, gambar inframerah gelombang pendek dan tabel keparahan kebakaran.

Kartu tautan demo di Hugging Face Spaces: jelajahi lima kasus, tanpa instalasi.

Kartu tautan kode di GitHub: skill, skrip, dan runner Deep Agents, MIT.

Jika Anda bekerja dengan pemantauan lahan, air, atau api: tempat mana yang akan Anda tanyakan lebih dulu, dan apa di sana yang akan membuat ini gagal? Saya ingin tahu di mana ini cocok dan di mana tidak.

Referensi

  • Montero, D. dkk. (2023). A standardized catalogue of spectral indices to advance the use of remote sensing in Earth system research. Scientific Data. (Awesome Spectral Indices, spyndex)
  • Key, C. H. & Benson, N. C. (2006). Landscape Assessment: Sampling and Analysis Methods. USDA Forest Service, FIREMON.
  • Earth Search, Element 84: STAC API untuk Sentinel-2 di AWS Registry of Open Data. Microsoft Planetary Computer: Landsat Collection 2 Level-2 (USGS) dan Sentinel-1 RTC. NASA FIRMS: produk kebakaran aktif VIIRS 375 m.
  • Data Copernicus Sentinel 2019 sampai 2026, diproses oleh ESA.
  • Berita dan laporan yang dipakai sebagai pembanding ditautkan di tiap bagian di atas: Berita Sampit, BMKG, Climate Rights International, Mongabay, iNews, Kaltimkece, Metro TV (Media Indonesia), WIKA, Republika (Antara), dan prosiding LIPI 2017.