Inspiration

A few months ago, I learned about the Southern California wildfires of January 2025. The fires destroyed lots of infrastructure, and acres of land. I wanted to build a software that could help people know whether their area was at risk for a wildfire.

What it does

My app takes information including temperature, humidity, and windspeed, and uses a Random Forest Classifier model to predict whether that area is at risk for wildfires based on those conditions

How we built it

First I collected open source data, including wildfire occurrence data from the USFS, and local weather data from the NOAA, and extracted them using geopandas and pandas. Next, I merged the data by making columns called "Avg_TempF", "AvgHumidity", and "AvgWindSpeed", and added a new column for fire occurrence on that day. Then I trained a Random Forest Classifier model to predict based of the conditions, and evaluated it using a confusion matrix and a precision, recall, and f1-score test. Next, I created a python flask app to take in user input and use custom threshold levels to predict if there is a high or low risk of a wildfire occurring. Finally, I created html and css templates to format it, and I ran the flask app.

Challenges we ran into

One thing that was wrong however was there was a clear imbalance of the data, as most days don't have wildfires occur, so I used SMOTE to synthetically generate days where fires occurred

Accomplishments that we're proud of

One thing I am very proud of is my ability to address issues including the imbalanced nature of the data. The project had many problems like that, and I had to stay calm and try and think of solutions.

What we learned

When working with the data, I hadn't expected it to be as big as it was, with it having a shape of over 500,000. I had to filter the data, including taking out certain years, and only using certain layers. I also had to merge and convert both my datasets, as one was a CSV file, while the other was a GDB file. So, I learned that even the data collection and merging is just as important as actually building the model.

One thing we would add

If I could choose to add one thing, I would work to make the model prediction more accurate. For example, some areas aren't the most accurate when it comes to wildfire risk, so I would like to make them better.

User input handling

In my project, users have to input the temperature, wind speed, and humidity, and that data is sent to the flask backend to process and it uses the model to predict if based on those conditions a wildfire may occur.

What's next for Wildfire Risk Predictor

One thing I would want to add is a location tracker in order to give data not just for the present, but also to give predictions for the future, and also so I can get even more accurate readings from the NOAA.

Share this project:

Updates