Inspiration

Wildfires are one of the clearest, most measurable ways technology can protect ecosystems — faster detection and clearer risk signals directly shorten response time. I wanted to build something that didn't just visualize a static dataset, but actually pulled live data and was upfront about what a small model can and can't predict.

What it does

Habitat Sentinel has two parts. First, a live map that pulls open wildfire events directly from NASA's EONET (Earth Observatory Natural Event Tracker) API in the visitor's browser — real-time, no key, no backend. Second, an interactive risk gauge: move sliders for vegetation health (NDVI) and land surface temperature (LST), and see a live fire-risk estimate from a logistic regression model trained on 1,713 real MODIS satellite observations.

How we built it

The risk model was trained offline in Python (pandas + scikit-learn) on a public MODIS-derived dataset, evaluated on a genuine 25% held-out test split, then exported as coefficients + scaler parameters to JSON. The frontend is plain HTML/CSS/JavaScript with no build step — it re-implements the exact same sigmoid calculation client-side, so the live gauge runs the actual trained model, not an approximation. The map uses Leaflet.js with a dark basemap and fetches NASA's EONET API directly from the browser.

Challenges we ran into

The first model I trained (unweighted logistic regression) had 78% accuracy but only 13% recall — it was basically predicting "no fire" most of the time and getting away with it because the dataset is imbalanced. That's a useless model for an early-warning tool. I re-trained with class-weighting, which dropped accuracy to 65% but raised recall to 70%. I decided to keep that trade-off and explain it openly on the page instead of hiding behind the prettier accuracy number.

Accomplishments that we're proud of

Every number on the page is real. The live map is genuinely live. The model metrics come from an actual test split, not cherry-picked. And instead of hiding the model's limitations, the page has a dedicated section explaining exactly what it can't do.

What we learned

That an honest, imperfect model with a clearly stated trade-off is more useful — and more trustworthy — than a polished-looking one with hidden weaknesses. Also spent real time learning NASA's open data ecosystem (EONET, FIRMS, MODIS/LP DAAC) and how differently each one is licensed and accessed.

What's next for Habitat Sentinel

Adding more features to the risk model (humidity, wind, fuel load) if I can find open datasets that include them, and expanding the live map to let users filter by region or subscribe to alerts for a specific area.

Share this project:

Updates