Inspiration
A hurricane’s path tells us where it traveled, but it does not tell the full story of what happened on the ground. Water-level measurements, storm observations, and damage reports often live in separate places, making them difficult to connect. We started with Hurricane Katrina and a question: Can we bring those sources together so people can explore a storm and understand the evidence behind its impacts? That idea became SurgeSafety—a historical hurricane explorer that connects environmental data with reported damage.
What it does
SurgeSafety combines an interactive map with a source-linked damage extraction workflow. Users can:
- Explore historical hurricane tracks, with each observation colored by storm intensity.
- Play a storm’s recorded timeline alongside available coastal water-level measurements.
- Click water gauges to see when and where a reading was recorded, its height, and a visual representation of that height.
- Explore damage reports through map markers colored by reported severity.
- Submit a public source URL or paste text for NVIDIA Nemotron to extract damage insights and identify the source type.
- Inspect supporting quotations and available source links behind those insights. AI-generated damage insights are labeled as unreviewed drafts. Damage severity represents our interpretation of reported impacts, rather than an official rating.
How we built it
We built the frontend with React, TypeScript, and Vite, using Leaflet for the interactive map. A Python FastAPI backend serves storm data, retrieves water-level records, and manages Nemotron requests. Our hurricane observations come from NOAA’s IBTrACS archive, while coastal water levels come from NOAA CO-OPS. Our curated damage examples use public National Hurricane Center and National Weather Service sources. For damage extraction, the backend prepares readable source text and asks Nemotron for structured insights: a damage summary, supporting quotation, location, severity rationale, and reported timing. Validation checks quotations and numerical claims against the supplied evidence before adding results. API keys stay temporarily in server memory instead of being written into project files or committed to GitHub.
Challenges we ran into
The hardest part was connecting data without implying more certainty than the sources supported. Storm observations and water gauges use different recording intervals. Some stations have missing historical measurements, and water height relative to a tidal reference is different from flood depth above the ground. We had to make those distinctions visible. Document extraction introduced another challenge. Long passages can exceed processing time or response budgets, and model output can contain malformed fields or unsupported quotations. We added validation and specific failure messages; processing longer documents reliably remains an area for improvement.
Accomplishments that we're proud of
We brought storm tracks, coastal measurements, and documented impacts into one working historical explorer. We also built a damage extraction workflow around traceable evidence. Users can inspect the passage behind an insight, distinguish curated reports from AI drafts, and see when a location cannot be mapped confidently. Automated tests cover data handling, extraction validation, session security, and key interactions across the application.
What we learned
We learned that useful storm intelligence depends on more than collecting data. Time alignment, measurement references, missing records, and source attribution all affect what a visualization actually means. We also learned that an AI model’s response is only the beginning. A useful insight needs supporting evidence, clear limitations, and a way for someone to review it.
What's next for SurgeSafety
Our next priorities are processing long documents in smaller sections, combining duplicate findings, expanding location coverage, and adding a clearer human-review workflow. We also want to investigate hurricane-path, wind-intensity, and water-level prediction through separate experiments with untouched test data and careful evaluation of selection and survivorship bias. The current explorer will remain useful independently of those forecasting experiments.
Built With
- fastapi
- leaflet.js
- noaa-co-ops
- noaa-ibtracs
- nvidia-nemotron
- pydantic
- pypdf
- pytest
- python
- react
- typescript
- vite
- vitest
Log in or sign up for Devpost to join the conversation.