Rencana Tim EWS Gambut
Briefing tim · AI Builder Cup 2026 · tema Sustainability & Social Impact

ASAPify: rencana tim EWS karhutla gambut

ASAPify adalah WebGIS ringan untuk peringatan dini kebakaran lahan gambut. Sistem memetakan risiko setiap hari, mendeteksi titik api setiap jam, lalu agen Gemini menyusun peringatan yang rapi dan mudah dipahami. Peringatan baru terbit setelah disetujui operator.

27 Sepmulai kerja
11 Oktregistrasi tim ditutup
16 Oktfitur dibekukan
18 Oktbatas submit
7 Novpengumuman finalis
4 Desfinal di Singapura

Diputuskan minggu ini (paling lambat 30 Sep)

Sudah diputuskan: nama produk ASAPify. asap = smoke dalam bahasa Indonesia, ASAP = as soon as possible, dan -ify dari notify. Artinya: peringatan soal asap yang sampai secepatnya, dan sudah terverifikasi. Tagline: "In Indonesian, asap means smoke. We make sure responders hear about it ASAP, and know it's real."

  1. Anggota tim, 2 sampai 4 orang. Semuanya profesional bekerja dan berusia 21 tahun ke atas.
  2. Provinsi percontohan: Kalimantan Tengah (lokasi validasi jurnal ToPeCAl) atau Kalimantan Barat (area terbakar terluas 2026).
  3. Satu tanggal demo di Agustus atau September 2026 yang punya citra Landsat cerah di atas insiden nyata.
01 · Aturan main

Yang wajib ada dan cara juri menilai

Bobot 40% ada di teknik dan pemakaian GenAI. Karena itu Gemini harus menjadi bagian inti sistem, bukan tempelan di akhir.

Wajib

Model Gemini atau Gemma
Dibangun dengan Agent Platform (ADK), Antigravity, atau AI Studio
Prototipe live di Google Cloud: Cloud Run atau Firebase
Deck proposal dalam format PDF
Video demo 3 menit (YouTube, Vimeo, atau Google Drive)
Semua materi submit dalam bahasa Inggris

Halaman dan deck ini untuk tim, jadi berbahasa Indonesia. Deck submit dibuat terpisah dalam bahasa Inggris.

Bobot penilaian

Teknik & implementasi GenAI
40%
Kesesuaian masalah & dampak
25%
Inovasi & kreativitas
25%
Pengalaman pengguna & desain
10%

Cara menjawab tiap kriteria: agen dengan tools dan output terstruktur (40%), data karhutla 2026 (25%), ToPeCAl dari riset Indonesia ditambah alert yang disetujui manusia (25%), peta yang enak dipakai di HP (10%).

02 · Konsep

Satu kalimat yang harus bisa diucapkan semua anggota tim

"ASAPify memetakan risiko kebakaran gambut setiap hari, mendeteksi titik api setiap jam, memverifikasinya dengan metode riset Indonesia bila citra tersedia, lalu agen Gemini menyusun peringatan Waspada, Siaga, atau Awas yang siap dikirim setelah disetujui operator."

Lapisan 1 · harian

Pencegahan

Peta risiko per grid: gambut, hari tanpa hujan, angin, riwayat hotspot. Muncul sebelum ada api.

Lapisan 2 · tiap jam

Deteksi

Hotspot FIRMS dikelompokkan jadi insiden. Aturan memberi level awal.

Lapisan 3 · bila ada citra

Verifikasi

ToPeCAl di Earth Engine membaca kanal SWIR dan termal Landsat.

Agen AI + manusia

Peringatan

Gemini menyusun alasan, tindakan, dan pesan. Operator menyetujui sebelum terbit.

03 · Alur sistem

Yang terjadi setiap jam

Satu job berjalan tiap jam. Jalur putus-putus berarti proses berhenti atau diberi label, tanpa alert. Peta risiko dan sitrep berjalan terpisah sekali sehari.

Alur tiap jam: pemicu, tarik hotspot, kelompokkan insiden, cek gambut, level aturan, cek Landsat, ToPeCAl, agen Gemini, operator, terbit LAPISAN 2Deteksi LAPISAN 3Verifikasi AGEN AIGemini MANUSIAOperator ya ya ya tidak tidak tidak Cloud Scheduler memicu job (tiap jam) Tarik hotspot FIRMS untuk 1 provinsi VIIRS S-NPP · NOAA-20 · NOAA-21 Kelompokkan jadi insiden radius 1 km · jendela 24 jam Di lahan gambut? Tampil di peta saja, tanpa alert Aturan menentukan level awal Waspada · Siaga · Awas (tabel di bagian 04) Ada Landsat ±1 hari? Label "belum terverifikasi citra" level tetap dari aturan ToPeCAl di Earth Engine + thumbnail SWIR + termal · buffer 1 km Agen Gemini menyusun draf alert alasan · tindakan · pesan ID/EN (JSON) Operator setuju? Edit lalu setujui, atau tolak keputusan tercatat untuk evaluasi Terbit di WebGIS publik kartu insiden · notifikasi web (opsional)

Geser diagram ke samping bila terpotong.

Aturan (deterministik) Verifikasi citra Agen Gemini Terbit ke publik Berhenti atau diberi label
04 · Tiga lapisan

Aturan yang dipakai, cukup detail untuk mulai ngoding

Semua angka ambang di bawah adalah titik awal. Nilai finalnya disesuaikan lewat backtest di minggu pertama, kecuali ambang ToPeCAl yang diambil langsung dari jurnal.

Lapisan 1 · pencegahan

Skor risiko harian per grid 5 km

risiko (0–100) = 40 × di_gambut (0 atau 1) + 30 × min(hari_tanpa_hujan / 10, 1) + 20 × min(hotspot_7_hari_10km / 5, 1) + 10 × min(angin_kmj / 30, 1)
Rendah< 30
Sedang30–54
Tinggi55–74
Sangat tinggi≥ 75

Cuaca dari Open-Meteo per titik grid 0,25°, lalu dibagikan ke sel 5 km di dalamnya. Dihitung sekali sehari pukul 06.00 WIB.

Lapisan 2 · deteksi

Level awal insiden ditentukan aturan

LevelSyarat (semua di lahan gambut)
PantauHotspot di luar gambut. Tampil di peta, tanpa alert.
Waspada1 deteksi di gambut dalam 24 jam.
Siaga≥ 2 deteksi dalam 24 jam, atau 1 deteksi di sel berisiko Sangat tinggi.
AwasSyarat Siaga terpenuhi, ada desa ≤ 5 km, dan ToPeCAl menemukan api dalam 1 km atau ≥ 3 deteksi dalam 24 jam.

Gemini tidak boleh mengubah level. Yang boleh mengubah hanya operator, dan perubahannya tercatat.

Lapisan 3 · verifikasi

ToPeCAl: empat ambang dari jurnal Sofan dkk. (2019), Tabel 3

Dihitung di Landsat-8/9 TOA. Kanal yang dipakai: B1 (aerosol, penanda asap), B6 (SWIR-1), B7 (SWIR-2), B10 (suhu kecerahan termal, Kelvin). SICI = B7 ÷ B6. Jurnal melaporkan akurasi 82%, naik jadi 93% setelah area perkotaan di-mask.

Kelas apiSICIKondisi (B1)Reflektansi SWIR-2 (B7)Suhu termal (B10)
Langit cerah · B1 < 0,27
S · membara (smouldering)> 1cerah0,09 – 0,31≥ 297 K
FS · campuran> 1cerah> 0,31> 300 K
F · menyala (flaming)> 1 atau ≤ 1*cerah≥ 0,68≥ 307 K
Berasap · B1 ≥ 0,27
S · membara> 1berasap0,11 – 0,32≥ 297 K
FS · campuran> 1berasap0,32 – 0,47> 297 K
F · menyala> 1 atau ≤ 1*berasap≥ 0,47≥ 303 K
* SICI ≤ 1 terjadi pada piksel yang mendekati jenuh di kedua kanal SWIR. Karena itu kelas F tidak mensyaratkan SICI. Bila kriteria tumpang tindih, prioritasnya F, lalu FS, lalu S.
Sketsa ToPeCAl untuk Earth Engine (Python)topecal.py
import ee

def topecal(img):
    """0 = bukan api, 1 = membara (S), 2 = campuran (FS), 3 = menyala (F)."""
    b1, sw1, sw2, bt = (img.select(b) for b in ['B1', 'B6', 'B7', 'B10'])
    sici  = sw2.divide(sw1)
    asap  = b1.gte(0.27)
    cerah = asap.Not()

    s = sici.gt(1).And(bt.gte(297)).And(
            cerah.And(sw2.gte(0.09)).And(sw2.lte(0.31))
            .Or(asap.And(sw2.gte(0.11)).And(sw2.lte(0.32))))
    fs = sici.gt(1).And(
            cerah.And(sw2.gt(0.31)).And(bt.gt(300))
            .Or(asap.And(sw2.gte(0.32)).And(sw2.lte(0.47)).And(bt.gt(297))))
    f = (cerah.And(sw2.gte(0.68)).And(bt.gte(307))
            .Or(asap.And(sw2.gte(0.47)).And(bt.gte(303))))

    kelas = ee.Image(0).where(s, 1).where(fs, 2).where(f, 3)
    # mask area terbangun (sumber alarm palsu menurut jurnal)
    terbangun = ee.ImageCollection('ESA/WorldCover/v200').first().select('Map').eq(50)
    return kelas.updateMask(terbangun.Not()).rename('topecal')

def cari_landsat(titik, waktu):
    # waktu: ee.Date saat insiden terdeteksi
    koleksi = (ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
               .merge(ee.ImageCollection('LANDSAT/LC09/C02/T1_TOA'))
               .filterBounds(titik)
               .filterDate(waktu.advance(-1, 'day'), waktu.advance(1, 'day'))
               .sort('system:time_start', False))
    return koleksi  # cek koleksi.size() dulu; 0 berarti "belum terverifikasi citra"

Jurnal memakai Landsat-8 Collection 1. Kita memakai Collection 2 TOA, jadi cek hasilnya secara visual pada 1–2 scene dulu sebelum dipercaya. Landsat melintas jarang, sehingga sebagian besar insiden akan berlabel "belum terverifikasi citra". Ini wajar dan perlu dijelaskan terus terang saat pitch.

05 · Agen Gemini

AI menyusun peringatan, aturan dan manusia yang memutuskan

Agen dibangun dengan ADK dan berjalan di Cloud Run. Ada dua tugas utama: draf alert untuk setiap insiden baru atau yang naik level, dan sitrep harian untuk satgas.

Tools yang dipanggil agen
get_incident(id)jumlah deteksi, FRP, level aturan
get_peat_context(lat, lon)nama KHG, di gambut atau tidak
get_weather(lat, lon)hari tanpa hujan, angin, hujan 3 hari ke depan
get_verification(id)hasil ToPeCAl, tanggal citra, URL thumbnail
get_nearby_villages(lat, lon, km)desa dan jaraknya
save_alert_draft(json)simpan ke Firestore berstatus draft
Contoh keluaran (data fiktif)JSON
{
  "incident_id": "KT-0912-042",
  "level": "SIAGA",
  "judul": "Titik api berulang di lahan gambut",
  "alasan": [
    "3 deteksi VIIRS dalam 18 jam",
    "di dalam KHG contoh",
    "11 hari tanpa hujan, angin 14 km/jam",
    "desa terdekat 3,2 km"
  ],
  "verifikasi": "belum ada citra Landsat",
  "tindakan": {
    "bpbd": "kirim tim cek lapangan",
    "mpa": "siagakan pompa di desa terdekat",
    "warga": "hindari membakar, laporkan asap"
  },
  "pesan": { "id": "…", "en": "…" },
  "status": "draft"
}
Operator

Setujui, edit, atau tolak

Draf muncul di antrean panel operator. Setelah disetujui, statusnya menjadi approved dan kartu insiden tampil di peta publik.

Keputusan operator disimpan. Data ini dipakai untuk evaluasi dan tampil di deck.

Aturan untuk agen (masuk ke system prompt)

  • Level diambil dari aturan dan tidak boleh diubah.
  • Setiap angka harus berasal dari hasil tools. Kalau datanya kosong, tulis "tidak tersedia".
  • Bahasa sederhana, kalimat pendek, maksimal 60 kata per pesan.
  • Tidak menyebut api "pasti" kalau belum ada verifikasi citra.

Validator setelah Gemini menjawab (kode Python biasa)

  • JSON sesuai skema (structured output).
  • Level di JSON sama dengan level dari aturan.
  • Setiap angka di teks cocok dengan data tools.
  • Kalau gagal, ulangi sekali. Kalau masih gagal, tandai draf "perlu dicek".

Jalankan pada 20–30 insiden historis dan catat persentase yang lolos. Angka ini menjadi bukti kualitas GenAI di deck.

06 · Arsitektur

Lima komponen, semuanya di Google Cloud

Satu service Cloud Run (asapify-api) melayani peta publik, aksi operator, dan agen. Browser tidak membaca Firestore langsung. Detail endpoint ada di halaman Backend & API, konfigurasi layanan di Konfigurasi Cloud.

1

Job ingest (tiap jam)

Cloud Scheduler → Cloud Run job

Tarik FIRMS, kelompokkan insiden, hitung level, panggil ToPeCAl dan agen untuk insiden baru.

2

Job harian

Cloud Scheduler → Cloud Run job

Peta risiko grid 5 km dan sitrep harian lewat agen.

3

Verifikasi citra

Earth Engine (Python API)

ToPeCAl dan thumbnail komposit 7-6-4 untuk bukti visual.

4

API + agen alert

FastAPI + ADK + Gemini · Cloud Run service

Endpoint publik dan operator, agen dengan tools, validator.

5

WebGIS

Firebase Hosting · Auth

MapLibre, peta publik, panel operator. Data lewat API; layer statis dari Cloud Storage.

Koleksi FirestoreIsiDitulis olehDibaca oleh
incidentstitik pusat, jumlah deteksi, FRP maks, di_gambut, desa terdekat + jarak, level aturan, hasil verifikasijob ingestAPI, agen
alertsJSON dari agen, status draft / approved / rejected, siapa yang menyetujuiagen, API (aksi operator)API
risk_daystanggal + tautan GeoJSON grid risiko di Cloud Storagejob harianAPI
sitrepsringkasan harian per provinsijob harian (agen)API
Aturan keamanan: aturan Firestore menolak semua akses dari browser. API hanya mengembalikan alert berstatus approved ke publik, dan hanya akun operator (Firebase Auth) yang bisa mengubah status.

Mode replay: semua job menerima parameter tanggal, misalnya --replay 2026-09-12. Dengan ini demo bisa diputar ulang pada hari kebakaran nyata, walaupun saat penjurian hotspot sedang sepi.

07 · Tampilan WebGIS

Tiga layar saja, dirancang untuk HP

Sketsa kasar sebagai pegangan frontend. Detail visual bisa berubah saat dibangun.

Peta publikKalteng · 12 Sep
Risiko hari iniInsiden 24 jamBatas gambut
Grid risiko diwarnai, insiden berwarna sesuai level. Pengguna bisa memilih layer.
Kartu insidenSiaga
Titik api berulang di lahan gambut
Deteksi 24 jam3
Desa terdekat3,2 km
Tanpa hujan11 hari
Citrabelum tersedia
Alasan, tindakan, dan bukti citra dalam satu kartu. Contoh data fiktif.
Panel operatorlogin
AwasKT-0912-051 · ToPeCAl: menyala
SetujuiEditTolak
SiagaKT-0912-042 · 3 deteksi
SetujuiEditTolak
WaspadaKT-0912-060 · 1 deteksi
Antrean draf dari agen, diurutkan dari level tertinggi.
08 · Jadwal

Enam sprint dalam 21 hari

Setiap sprint punya definisi selesai. Kalau sprint molor, potong fitur di sprint berikutnya, jangan geser tanggal freeze.

  1. 27–28 SepSprint 0

    Tim dan akun

    • Daftarkan tim di Hack2Skill
    • Project GCP, billing, daftar Earth Engine
    • Repo, pilih provinsi dan tanggal demo
    Selesai jika: semua anggota bisa deploy "hello" ke Cloud Run.
  2. 29 Sep – 3 OktSprint 1

    Data dan aturan

    • Layer gambut dan titik desa untuk 1 provinsi
    • Ingest FIRMS, pengelompokan insiden, level aturan
    • Grid risiko v0 dan notebook backtest Agustus–September 2026
    Selesai jika: tabel insiden untuk tanggal demo sudah keluar, lengkap dengan level.
  3. 4–8 OktSprint 2

    Verifikasi dan agen

    • ToPeCAl di Earth Engine dan thumbnail
    • Agen ADK: tools, skema JSON, validator
    • Simpan ke Firestore
    Selesai jika: satu insiden nyata menghasilkan draf alert yang lolos validator.
  4. 9–13 OktSprint 3

    WebGIS dan integrasi

    • Peta publik, kartu insiden, panel operator
    • Scheduler, mode replay, sitrep harian
    • Registrasi tim ditutup 11 Okt: pastikan sudah terdaftar
    Selesai jika: alur lengkap berjalan di URL publik.
  5. 14–16 OktSprint 4

    Uji dan freeze

    • Evaluasi agen pada 20–30 insiden
    • Perbaiki bug, rapikan tampilan di HP
    • Fitur dibekukan 16 Okt malam
    Selesai jika: tidak ada error selama tiga kali replay berturut-turut.
  6. 17–18 OktSprint 5

    Submit

    • Rekam video 3 menit
    • Deck PDF bahasa Inggris
    • Submit 17 Okt, tanggal 18 sebagai cadangan
    Selesai jika: konfirmasi submit diterima.
09 · Pembagian peran

Empat peran, bisa dirangkap sesuai jumlah anggota

PeranTugas utamaKeluaran
A · Data & GISLayer gambut, titik desa, ingest FIRMS, pengelompokan insiden, grid risiko, backtestTabel insiden + grid risiko untuk tanggal demo
B · Citra satelitToPeCAl di Earth Engine, pencarian Landsat, thumbnail, cek visual hasilFungsi verify(incident) + contoh gambar
C · Backend & agen AICloud Run job dan service, Scheduler, ADK + Gemini, validator, Firestore, aturan keamananDraf alert otomatis + sitrep
D · WebGIS & pitchMapLibre, tiga layar, Firebase Hosting, video, deck bahasa InggrisURL publik, video, deck PDF
2 orang: A+B dan C+D. 3 orang: A+B, C, D. 4 orang: satu peran per orang. Semua ikut latihan pitch di Sprint 4.
10 · Naskah video 3 menit

Ceritakan satu insiden dari awal sampai peringatan terbit

Rekam dengan mode replay pada tanggal demo. Tampilkan pemanggilan tools oleh agen di layar, karena bagian itulah yang dinilai 40%.

WaktuYang tampilYang diucapkan (inti)
0:00–0:20Angka karhutla 2026Musim 2026 parah, dan api di gambut membara di bawah permukaan.
0:20–0:45Peta risiko harianSebelum ada api, kami sudah tahu sel mana yang paling rawan.
0:45–1:30Hotspot → insiden → ToPeCAl → agen memanggil toolsAturan menentukan level. Riset Indonesia memverifikasi. Gemini merangkai alasannya.
1:30–2:00Operator menyetujui → kartu muncul di peta publikManusia tetap memegang keputusan akhir.
2:00–2:30Sitrep harianSatgas mendapat ringkasan satu halaman setiap pagi.
2:30–3:00Arsitektur + hasil evaluasiLima komponen di Google Cloud dan hasil evaluasi agen.
11 · Risiko

Yang bisa menggagalkan kita, dan rencana cadangannya

RisikoRencana cadangan
Tim belum lengkap saat registrasi ditutup 11 OktSelesaikan di Sprint 0. Syaratnya 2–4 orang, profesional, 21+.
Pendaftaran Earth Engine lambat disetujuiDaftar di hari pertama. Cadangan: hitung ToPeCAl untuk tanggal demo lebih dulu, lalu simpan hasilnya.
Layer gambut sulit didapatCari di hari 1–2 dari sumber resmi atau data terbuka. Catat sumber dan lisensinya.
Tidak ada Landsat cerah di tanggal demoPilih tanggal demo di Sprint 0 justru berdasarkan ketersediaan Landsat.
Hotspot sepi saat penjurianMode replay dengan tanggal kebakaran nyata.
Gemini menulis angka yang salahStructured output, validator angka, level terkunci dari aturan.
Biaya atau kuota GeminiAgen hanya dipanggil untuk insiden baru atau yang naik level. Simpan hasilnya.
12 · Checklist submit

Sebelum menekan tombol submit

Materi

  • Kategori: Sustainability & Social Impact
  • Deck proposal PDF, bahasa Inggris
  • URL prototipe publik di Cloud Run / Firebase
  • Video 3 menit, bisa diputar tanpa login
  • Semua teks dan UI dalam bahasa Inggris (tambahkan toggle bahasa)

Teknis

  • Gemini dipanggil lewat ADK, dan terlihat di video
  • Mode replay berjalan tanpa error
  • Akun demo operator untuk juri, bila diminta
  • Kunci API di Secret Manager, tidak ada di repo
  • Tabel evaluasi agen ada di deck
13 · Istilah

Kamus singkat untuk tim

Hotspot (titik panas)
Piksel satelit yang jauh lebih panas dari sekitarnya. Belum tentu kebakaran.
NASA FIRMS
Layanan gratis yang mengirim data hotspot dari satelit VIIRS dan MODIS, beberapa jam setelah satelit lewat.
VIIRS
Sensor di tiga satelit (S-NPP, NOAA-20, NOAA-21). Resolusi 375 m, lewat beberapa kali sehari.
FRP
Fire Radiative Power, perkiraan besarnya energi api dalam megawatt.
KHG
Kesatuan Hidrologis Gambut, satuan wilayah gambut yang dipakai pemerintah.
Insiden
Kumpulan hotspot yang berdekatan (1 km) dalam 24 jam, dianggap satu kejadian.
Landsat TOA
Citra Landsat yang nilainya sudah dikonversi ke reflektansi di puncak atmosfer. Dipakai langsung oleh ToPeCAl.
SWIR dan termal
Kanal inframerah gelombang pendek (peka terhadap api) dan kanal suhu permukaan.
ToPeCAl
Tropical Peatland Combustion Algorithm dari Sofan dkk. (2019). Empat ambang untuk mengenali api menyala dan membara.
Membara vs menyala
Membara (smouldering) adalah api bersuhu rendah di bawah permukaan gambut. Lebih sulit dilihat satelit.
ADK
Agent Development Kit dari Google, kerangka untuk membangun agen Gemini yang bisa memanggil fungsi (tools).
Structured output
Gemini dipaksa menjawab dalam JSON sesuai skema, sehingga mudah diperiksa oleh kode.
Human-in-the-loop
Keputusan akhir tetap di tangan manusia. Di sistem ini perannya dipegang operator.
Sitrep
Situation report, ringkasan kondisi harian untuk satgas.
Mode replay
Menjalankan sistem seolah-olah pada tanggal lampau, untuk demo dan pengujian.
Cloud Run job vs service
Job berjalan sampai selesai lalu berhenti (cocok untuk tugas tiap jam). Service selalu siap menerima permintaan.