Inspiration
Quite recently, in January of 2025, the Palisades Fire ravaged through the Pacific Palisades, burning thousands of acres and damaging homes and buildings. During the height of the fire, firefighters actively fought the fire using hydrants and water resources they could find fast enough to extinguish it. Unfortunately, over radio communications, crews reported that the “hydrants were down” and that storage tanks containing water ran dry. This led to situations where physically present at burning homes and had hoses deployed, however, could not sustain water flow to extinguish the flames. Areas burned not because crews didn’t arrive but because water failed. AquaResponse is built to prevent exactly this failure.
What it does
AquaResponse is a software that firefighters can use to determine how a fire will spread given the historical data of that location. They can also see where the nearest water source (natural or manmade) is from a given location. There is additional information on the site that details the level of risk zones based on the elevation, topography, wind levels, and fuel sources of certain locations.
How we built it
We built an XGBoost model to predict wildfire risk across an H3 hexagonal grid covering the Los Angeles and Orange County region. The area was divided into H3 cells and 12 spatial features were extracted for each individual cell. Labels were generated by checking whether each cell’s centroid falls within the predicted burn radius of any historical fire in the region. The labeled dataset was then split into an 80:20 ratio and an XGBClassifier was trained. The classifier model was trained with 300 estimators with a maximum depth of 6, a learning rate of 0.05, and 80% subsampling on both rows and columns to prevent overfitting.
Challenges we ran into
We wanted to use several shapefiles to visualize our data, but the library only supports Python 3.11. Since all of our teammates had newer versions of Python installed, we had to set up virtual environments and effectively run Python 3.11 locally on each machine to execute the program. Building the pipeline to connect the backend to the frontend, as well as integrating the machine learning model, was a challenge and took significant time to complete. Identifying a meaningful problem worth building a project around took time. Additionally, finding reliable datasets that aligned with exactly what we wanted to implement was also a challenge.
Accomplishments that we're proud of
Figuring out which model will sufficiently display the data and implementing it - we used the XG Boost Model Sleek frontend and the data visualization model (portion that shows how high the risk is in a certain area) Integrating and using multiple datasets within our website, for example, California Fire Incidents, Fire Hazard Data in Los Angeles
What we learned
Learned how to implement and use an XG Boost Model Instead of traditional CSV files, we decided to use the shape files to generate an actual visualization How to use multitude and different types of data to create a cohesive model
What's next for AquaResponse
The next step to make this model even more accurate is to add a water reliability score, so that each water source is assigned a rating based on the amount of water available, distance from the source, and the type of water. This ensures that firefighters don’t head toward a nearby hydrant that may run out in 10 minutes, when they could instead go in the opposite direction to a slightly farther lake that provides a more reliable supply. This approach would also incorporate historical data on fire hydrants in the area.
Built With
- css
- geopandas
- html
- joblib
- python
- scikit-learn
- shapely
- typescript
- xgboost
Log in or sign up for Devpost to join the conversation.