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.
Log in or sign up for Devpost to join the conversation.