Inspiration

Ever year, wildfires destroy millions of acres, cause billions in damages and injure thousands of people. As our climate warms, these fires burn hotter and longer. Currently, firefighters use a combination of risk-assessment and fire spread models to combat wildfires; however, they are difficult to predict with pinpoint accuracy. I wanted to create a rudimentary fire spread model to learn more about wildfires and how they're fought.

What it does

This basic model allows you to draw trees and empty space (i.e. firebreaks) to see how a fire spreads. You can change the wind direction and use the lighter to draw different fire patterns. See the README in the linked repo for more instructions.

How it's built

I created a grid of cells with each representing trees, empty space, or fire. I used a cellular automata model to predict fire spread. Depending on the wind, weights are assigned to each direction to determine the spread. I also used the tkinter module to create the GUI.

Challenges

This was the first time I tried to create a GUI. It was difficult to properly organize the GUI and also show the fire predictions without lagging super hard. Also, I tried to create a better model using PyQT5 and a bunch of ellipses, but I realized I needed a LOT more time to finish... so I set it aside.

What I learned

Coding for 12 hours straight is NOT fun, but it gets work done. I learned how to create a basic GUI and how to apply the cellular automata model. This was my first experience with both.

What's next

There are so many more aspects to wildfire modelling! Conditions such as fuel moisture and quantity, vegetation, elevation, wind speed, and other geographical factors impact wildfire rate of spread. Furthermore, the cellular automata model is too basic to model these factors. My next goal is to successfully create the elliptical model based on Rothermel's fire equations and other empirical methods. So much more research needed...

Built With

Share this project:

Updates