Capability 03 · Observation

Live observation, on the historical record.

Satellite fire detections from NASA FIRMS, fire-weather alerts from the National Weather Service, and air quality from EPA AirNow — refreshed continuously and read against the historical baseline. This is observation, not incident command: the platform deliberately does not track fire response, dispatch, or containment operations. For what has burned and where fire belongs in the record, the atlas's history layers are the authority.

Active detections
Weather alerts
FIRMS · NWS
Sources
Retrieved
Live maploading…
Detection & alert feed Refresh
Connecting…
Air quality — EPA AirNow loading…
Checking island stations…
The source · NASA FIRMS

How satellites see the fire

The live detections come from NASA's Fire Information for Resource Management System (FIRMS) — the same near-real-time satellite feed used by fire agencies worldwide. Here is exactly what it is, what we pull, and how it reaches the map above.

What FIRMS actually detects

Polar-orbiting satellites carry instruments that read thermal infrared radiation. When a pixel on the ground is markedly hotter than its surroundings, the algorithm flags it as a likely active fire or "thermal anomaly." FIRMS distributes those detections within roughly three hours of the satellite overpass.

Each detection is a point — the center of a pixel where heat was sensed — not a fire perimeter. A single large fire produces many adjacent detections; a hot roof or flare can produce a false one. That's why the platform labels them detections, not confirmed fires.

The scale will not catch every burn. At 375 m resolution, small or short-lived fires can fall below the detection threshold, burn between satellite overpasses, or hide under cloud. An absence of detections is not an absence of fire — this feed complements ground reporting; it does not replace it.

instrument VIIRS satellite Suomi-NPP resolution 375 m latency ~3 hr (NRT)

What we request

ProductVIIRS_SNPP_NRT
RegionHawaiʻi bbox
Bounds−160.3, 18.8 → −154.7, 22.3
Windowlast 1 day
FormatCSV → GeoJSON
Refresh5-min cache
GET firms.modaps.eosdis.nasa.gov/api/area/csv/{key}/VIIRS_SNPP_NRT/−160.3,18.8,−154.7,22.3/1

The FIRMS area API, returning every VIIRS detection inside the Hawaiʻi bounding box for the last day.

The fields behind each detection

Every point the map plots carries these attributes straight from FIRMS — the same values shown in the dossier when you click a live detection:

latitude / longitude — pixel center acq_date / acq_time — overpass time (UTC) confidence — low / nominal / high frp — fire radiative power (MW) daynight — day or night pass

Fire radiative power (FRP) estimates the rate of radiant heat output — a rough proxy for fire intensity. A higher FRP means a more energetic burn at that pixel.

How it reaches the map

01 · Request
Server-side fetch
An edge function calls the FIRMS API with a secret key — never the browser, so the key stays protected.
02 · Parse
CSV → GeoJSON
The CSV response is parsed into clean GeoJSON points with typed properties.
03 · Cache
Store + dedupe
Detections are cached to the database for 5 minutes, respecting FIRMS' rate limit (5000 req / 10 min).
04 · Serve
To the map
The frontend requests this proxy, gets cached GeoJSON, and renders each detection as a point you can click.
Why a proxy, and why this matters

The platform never calls FIRMS from your browser. A Supabase edge function fetches it server-side because the FIRMS MAP_KEY must stay secret and the service is rate-limited. Responses are cached so many users share one fetch, and the raw CSV is normalized into GeoJSON before it ever reaches you.

Alongside FIRMS, the same function pulls active fire-weather alerts from the National Weather Service (api.weather.gov), filtering for red-flag warnings, fire-weather watches, and high-wind events — so the live picture combines where heat is detected now with where conditions favor ignition and spread.