Our team is composed of individuals from Alberta and California. Both of these areas have had several severe wildfires, which have had immense consequences on the property and the native ecosystem. In 2019, California had an estimated 2,019,800 properties at risk due to extreme wildfires and over 259,148 acres of land burned while Alberta had a total of 1,985,228 acres of land burned. Such fires cost a total of over 3.4 billion dollars to suppress and manage the fires. On top of this, global warming is becoming even more of a pressing issue and has caused wildfires to become progressively more severe and frequent. In California, 14 of the 20 largest wildfires ever recorded have occurred in the last 15 years and the U.S. has recorded 10 of the warmest years in that time. Learning about these statistics inspired our team to make a solution to reduce the adverse effects of these forest fires and hopefully help our very own communities.

What it does

BlueSky-AI has the goal of clearing forest fires as efficiently as possible to make the sky blue as quickly as possible! Taking, the latitude, longitude, start cause and discovery date, BlueSky-AI uses advanced machine learning to predict the acreage and date the wildfire will be under control. To do this, the neural network takes data from 1.88 million U.S. Wildfires which have been collected between 1992 and 2015 and trains a deep neural network. Using this data, BlueSky-AI can be used by fire departments to estimate the expected severity of the forest fire before it becomes too large. Citizens that happen to be close to the fire will be able to input the data as soon as they see the fire and this will enable firefighters to determine a proper course of action to deal with it. If it is in a location that has historical data for not creating very large fires, the firefighters may prioritize other locations or send out resources that match the severity of the potential fire.

How I built it

Using Panda's and SQLite3, we parsed the SQLITE file the dataset was packaged in. We loaded everything into a data frame, where we normalized the dataset into an integer value between 0 and 1 in order to feed it into the neural network. We then coded the model in TensorFlow and trained it. After saving the model weights, we used tf.js, Tensorflow’s Javascript implementation, to load the model as well as predict using the model in Javascript.

Challenges I ran into

The dataset was EXTREMELY large and in the SQLite configuration contained 1.88 million rows of entries in the largest table, meaning we could not use conventional methods to load data. None of our team members have used SQL, but the dataset was an SQLITE file, so we had some trouble parsing it. We also had some trouble with the sheer size of the dataset when training. We first used Pytorch, but our model would not fit properly. Metrics such as accuracy and cumulative loss also didn’t work due to integer overflow, and just showed NaN. After a few hours of debugging, and no progress, we switched to Tensorflow/Keras, which is a more high-level framework. This came with it some deployment issues, as the Tensorflow library was very large. We tried to use Flask alongside React.js to use python for Tensorflow, but the package size was too large for our web hosting. We finally settled on tf.js along with React for our web application. None of our group members knew both TensorFlow as well as Javascript, so we had to learn to translate our python Tensorflow code into tf.js.

Accomplishments that I'm proud of

We did not use any pre-trained models or premade architectures for our model. Going from not knowing any SQL or Javascript to using both to train and deploy a model. For a machine learning model, our tf.js application is extremely fast and runs in the browser.

What I learned

The nature of a hackathon requires quick development. We made many attempts to use faster and lower level libraries and frameworks, such as Pytorch, which costed us lots of time when we couldn’t debug them in time. In the future, we plan to use high level libraries as well as reduce complexity by using one language, rather than trying to integrate Flask and React.js.

What's next for BlueSky-AI

Because BlueSky-AI is intended to help fire departments efficiently stop wildfires, the next step for the program would be to make it even more accurate. Although the program is already 91% accurate when testing sample data, aspects such as wind, temperature and humidity could help the program. By adding these, the neural network would be able to estimate the direction of a wildfire and provide a clear picture to firefighters if it is going to reach property or important parts of the forest. The accuracy would also immensely increase and enable firefighters to plan better by incorporating more of the factors of forest fire severity. Besides this, the program could incorporate a progression system where fires size can be tracked based on day since the start. By doing this, the neural network would be able to estimate how future fires would grow as days progress. Lastly, BlueSky-AI could be implemented in other countries by using a database pertaining to that area. This would enable countries all over the world to use our program to deal with forest fires efficiently based on their location.

How to run locally

  1. Open up a command line interface (terminal)
  2. Change Directories to get to the place where you want to set up the app
  3. Run the following command git clone
  4. Then run cd react-app
  5. Run npm install
  6. Run the following npm start

Your Default Browser should pop-up the app on localhost:3000, if not type in localhost:3000 into your default browser (Chrome has the best support)

Built With

Share this project:


posted an update

Just realized our "How to run locally" section isn't properly formatted in markdown. Here it is:

Open up a command line interface(terminal) Change Directories to get to the place where you want to set up the app Run the following command git clone (There is a space between git and clone, and another space between clone and the link) Then run cd react-app Run the following npm start Your Default Browser should popup the app on localhost:3000, if not type in <localhost:3000> into your default browser (Chrome has the best support)

Log in or sign up for Devpost to join the conversation.