The map ranks every 10×10 km cell of Kalimantan by how likely it is to be burning hard in the coming days. No machine learning, no training data — three physically meaningful factors, measured fresh every few hours, multiplied together.
Every fire detection from the last 7 days is collected from NASA FIRMS — the VIIRS instruments on the Suomi-NPP and NOAA-20 satellites, which flag any 375 m pixel significantly hotter than its surroundings on every pass over the island.
Each detection is weighted two ways before being summed into its grid cell:
0.5^(age / 2d). A fire seen this morning says far more about tomorrow
than one seen last week.ln(1 + FRP). The log stops a single flaring pixel from
drowning out everything else.A cell surrounded by burning cells is riskier than an isolated one of the same intensity, because fire complexes creep outward through connected dry fuel. Each cell's score is boosted by the persistence of its eight neighbors:
That is why ranks 1, 2, 3 and several others cluster around Palangka Raya: they are not independent fires but one contiguous complex, and the model scores them accordingly.
Peat fire danger is not about last week's rain — it tracks months of cumulative deficit, because the question is how deep into the peat column a fire can bite. The model computes the FWI Drought Code (DC) per cell: the same slow moisture bookkeeping used by Canada's fire-danger system and by Indonesia's own SPBK ratings. Each day the code rises with temperature-driven evaporation and falls when meaningful rain (>2.8 mm) recharges the deep layer:
It runs over ~120 days of observed weather (Open-Meteo's historical archive, bridged to yesterday with recent observations). DC above ~300 means the deep peat is dry enough to sustain smoldering; 400+ is severe. The score enters the risk as:
— so a long-drought cell keeps nearly all of its fire score, while one about to receive a real downpour is discounted however hard it burns today. Each cell's current DC is shown in the ranking (“drought 412”).
For each top cell the model reads the current 10 m wind from Open-Meteo and applies two small corrections:
1 + 0.2 · min(speed/5, 1.5) · alignment.1 + 0.15 · min(speed/8, 1).Every cell's three factors multiply into one score; the top 15 are ranked, scaled so the worst cell reads 100, and drawn as the numbered markers on the map. The ranking recomputes every 4 hours, and the separate live fires layer (glowing dots) refreshes every 30 minutes from the latest satellite passes.
| Source | What it provides | Cadence |
|---|---|---|
| NASA FIRMS | VIIRS 375 m fire detections, Suomi-NPP + NOAA-20, 7-day and 24-hour feeds | each satellite pass (~4×/day) |
| Open-Meteo | per-cell wind + rain forecast; ~120-day weather archive for the Drought Code | hourly / daily |
| CAMS (Copernicus) | PM2.5 forecast behind the city haze outlook | twice daily |
| NASA GIBS | daily true-color imagery and the date-stepped fire overlay | daily |
| Esri / SRTM | hi-res archive imagery and 3D terrain (visual context only — not model inputs) | static |
Every model run files its top-15 predictions. Twenty-four hours later, the next run checks what really happened: a predicted cell counts as a hit if the satellites recorded at least 5 new detections inside it during those 24 hours. The same test is run against a naive baseline — simply picking the 15 cells with the most hotspots, ignoring recency, drought, spread and wind.
The rolling hit rates (last 60 scored runs) are published on the main page and in the API
(/api/skill). If the model can't beat the naive baseline, you'll see that too
— the point of the scoreboard is that every future change to the model has to earn its
place in the number, not in an argument.
Separate from the risk ranking, the map shows a 4-day PM2.5 forecast for eight major cities, from the Copernicus CAMS atmosphere model (via Open-Meteo). Bands follow the standard daily-mean breakpoints: good ≤12, moderate ≤35, unhealthy-for-sensitive ≤55, unhealthy ≤150, very unhealthy ≤250, hazardous above — µg/m³. This is what the fire situation means for people breathing downwind of it.
Built on open data. Rankings are indicative — for operational decisions follow BNPB/BPBD guidance. ← live map