The Universe Academy| Spot That Fire V3.0

Spot That Fire V3.0

Recent wildfires worldwide have demonstrated the importance of rapid wildfire detection, mitigation, and community impact assessment analysis. Your challenge is to develop and/or augment an existing application to detect, predict, and assess the economic impacts from actual or potential wildfires by leveraging high-frequency data from a new generation of geostationary satellites, data from polar-orbiting environmental satellites, and other open-source datasets.

Seize the Blaze

Summary

Seize the Blaze aims to leverage data provided by NASA to perform prediction of wildfires across multiple countries. Neural network is implemented to analyse data such as land temperature, solar insolation and rainfall to predict the occurrence of forest fire. When a wildfire is detected, the user will be provided with visualisation provided by the software from satellite view. This will certainly increase awareness of the user and he/she can evacuate from area close to the wildfire immediately if necessary. We provide high quality data in training the neural network as well to ensure high accuracy of the model. In addition, this neural network will be a robust solution in fire prediction.

How We Addressed This Challenge

Our Development

There were three key aspects in our development.

Firstly, we developed an interactive web application. The user can send an area of interest using two points on the Google map (forming a bounding box) to predict the occurrence of a wildfire. If a wildfire is detected by the machine learning algorithm, the user will be notified and he/she will be able to visualize the region where the wildfire has occurred. As a result, this gives the user an vital information to evacuate from the person's surrounding area immediately and it can save many lives.

Secondly, we developed some APIs and a back-end server. This back-end server is mainly responsible for processing the dataset provided by NASA in real time. Essentially, when the front-end user is calling the APIs, the server will automatically download some data from the official NASA server and process the data to get relevant information, such as land surface temperature, solar insolation and rainfall. Furthermore, the server is also able to download Fire Information for Resource Management System (FIRMS) data and return the information back to the front-end user. This back-end server is also hosted on Amazon Web Services (AWS). This allows everyone to access the services provided by our APIs.

Last but not least, we also developed a neural network to perform wildfire prediction. It will be able to predict a wildfire based on three input parameters, which are land surface temperature, solar insolation and rainfall. This neural network is completely designed and trained by our team. This neural network provides a robust solution in detecting wildfire with great accuracy.

An example of the web app is shown below. The user is able to select two points on the Google map to form a bounding box to detect wildfires in the specific region. Red fire icon indicates the real time Visible Infrared Imaging Radiometer Suite (VIIRS) ground truth retrieved from NASA EARTHDATA. On the other hand, the triangular warning sign indicates the prediction of our neural network within the area of interest for the current day.

How We Developed This Project

Our Inspiration

At the start of the year, wildfires were becoming a crisis to Australia, especially in the states of Victoria and New South Wales. A state of emergency was also declared by the Australian Capital Territory (ACT) regarding the long-lasting wildfires. As a result, some infrastructure was destroyed, some people lost their homes, and even some were killed during this undesirable crisis. Thanks to the wildfires, the air quality was deteriorating in those affected states. We are motivated and inspired to create a software system to solve this challenge. Ultimately, this system will be able to process data from relevant authorities, such as NASA, to perform real time wildfire prediction. We believe that this system will create a huge impact on the society and it may save thousands of life.

Our Approach and Tools

Firstly, React is used as front-end development framework. GoogleMap API is used for the general map visualisation. Google-GeoLocate API is also utilised to enable accurate fetching of longitude and latitude. The web application consisted of a MainPage which contain the general map display while further two pages are to be developed, i.e. Education and Charity. Future work involves educating public on how to escape or prevent a wildfire, and creating a platform for raising funds or finding volunteers for wildfires.

Secondly, a back-end server is developed with Flask. Remote Procedure Call (RPC) is implemented because it is great for performing actions in the back-end server, i.e. different functions on the back-end server can be called easily. Essentially, the user will be able to call some APIs to update assets on the server, perform wildfire prediction with our pretrained neural network model and process some data provided by the official NASA website. Additionally, this back-end server is hosted and deployed on Amazon Web Services (AWS) EC2 with instance type t2.micro (free tier version). The AWS EC2 is also able to provide sufficient computing power to the front-end users.

Furthermore, neural network is implemented with PyTorch and it is used to predict the probability of fire occurrence. We preprocess the dataset provided by NASA and design our own custom dataset to train the neural network. The dataset consists of 409,404 data points in total. This neural network takes in three input parameters, which are land temperature, solar insolation and rainfall. It has a total of four layers, i.e. one input layer, two hidden layers and one output layer, which is passed into a sigmoid function. Binary Cross Entropy loss and Adam optimiser are also used to train the network during training with 30 epochs. During testing time, this neural network is able to show 78.8% accuracy based on our custom dataset. An illustration of the Multi-Layer Perceptron (MLP), a.k.a. our neural network model, is shown in the figure below.

Problems We Faced

Due to lack of expertise in front-end development, we faced many great challenges in designing an interactive app with React. Although GoogleMap APIs could provide a general foundation for map visualisation in web application, the team still struggled for quite a long time to develop the front-end user interface based on the initial wireframe. Additionally, the front-end also experienced some issues when connecting to the AWS server. However, the team persevered and managed to design an interactive user interface.

We also faced some challenges in finding and analysing the relevant dataset provided by NASA. There were many available links for downloading the data but the team struggled to define proper input parameters to train the neural network. We had to do intensive literature review on wildfire detection on Google Scholar. As a result, we followed an approach to predict forest fire using AI proposed by Sakr et al. [1] The team uses Multi-Layer Perceptron (MLP), which is a more novel approach than Support Vector Machine (SVM),

[1] G. E. Sakr, I. H. Elhajj, G. Mitri and U. C. Wejinya, "Artificial Intelligence for Forest Fire Prediction", IEEE/ASME International Conference on Advanced Intelligent Mechatronics, 2010.

What We Achieved

As a team, we were able to achieve many great things.

First and foremost, we managed to build an interactive web application with React due to limited time and resources. As we had no prior knowledge in React, this posed a great challenge to us. Gladly, we were able to overcome many obstacles and showcase a React app.

Besides that, we were capable of designing some APIs for the back-end server. As we had little experience in Flask, we had to push ourselves out of comfort zones to learn the new framework. At the end of the day, some APIs were created successfully. Unit testing was also conducted in order to ensure that the APIs were working based on our design principles.

Most importantly, we were able to form a greater friendship within each other. We might have some conflicts during our discussion time due to different perspectives or ideas. Nonetheless, we were able to work together as a team to complete this challenge.

How We Used Space Agency Data in This Project

To gather land temperature and solar insolation data, we use the data provided by NASA Earth Observation (NEO). We leverage data from Dec 2019 to Jan 2020 to train the neural network. Moreover, the user can call APIs download to any valid data provided by NEO during deployment. Additionally, since the solar insolation data gives us an image, we first remove the alpha channel of the image. The image is then processed by computing the euclidean distance for each pixel in three channels.

To gather rainfall data, we use the data provided by NASA Global Precipitation Measurement . As the data comes in Network Common Data Form (netCDF) format, we preprocess it with netCDF4 python package to read all data. As a result, we are able to retrieve relevant rainfall data corresponding to different regions by specifying its latitude and longitude.

Some data from Fire Information for Resource Management System (FIRMS) are also downloaded and processed in the back-end server and some results are returned back to the end user.

Tags
#ML #NeuralNetwork #React #Flask #Python #JavaScript #PyTorch
Judging
This project was submitted for consideration during the Space Apps Judging process.