Inspiration

With a constant increase of forest fires across Canada and existing wildfire tracking tools lacking forecasting, not being user-friendly, or not easily accessible to the public, we saw a need for an accessible tool to warn people.

What it does

Provides an interactive map with real-time fire data from satellites. For each fire, it predicts its path for up to 3 days using the position, weather, and vegetation.

How we built it

Machine Learning: To train our prediction model, we integrated satellite data from NASA’s FIRMS API which provides historical hotspot/fire locations along with the government of Canada's historical wildfire perimeter data. For each fire, across every date, we chose 4 points with max/min longitude and latitudes and used Open-Meteo API to assign each point a temperature, humidity, wind direction, wind speed and precipitation along with vegetation data from NASA. We trained our model using XGBoost.

Backend: We used Flask to build a /predict-spread REST API endpoint to allow the frontend to request wildfire spread predictions from our model.

Frontend: We built the interface using Bootstrap and Leaflet.js to display an interactive map. To enhance user experience, we integrated additional libraries such as Supercluster for grouping hotspots, Turf.js for showing predictions, and noUiSlider for timeline-based filtering.

Challenges we ran into

When getting fire data, we initially struggled as while FIRMS provides active fire detections or hotspots, it doesn’t group them into individual fires. We tried clustering, but the results lacked consistency and accuracy. Instead, we found a more reliable approach using the 2024 fire perimeter shapefile and hotspot shapefile and identified intersections as well as cross-checked dates to assign each hotspot to a specific fire.

We ran into another issue when integrating weather data. Each fire point needed weather context, but with over 131,000 rows, using Open-Meteo's API was impractical especially since it has a daily limit of 10,000 requests. To work around this, we reduced the data size strategically. We calculated the bounding box for each fire using the largest and smallest latitude and longitude values for a given day and filtered out fires with fewer than three points. This cut our dataset down to around 5000 making it possible to retrieve weather data in a reasonable time.

Accomplishments that we're proud of

We’re especially proud that, despite having no prior background in AI or machine learning, we built a working wildfire risk prediction tool from scratch. We taught ourselves how to collect, clean, and preprocess complex data, and used what we learned to train an XGBoost model with 32 different variables. On top of that, we designed a user-friendly frontend that makes our results clear and accessible to everyone. By combining new skills in AI, data science, and interactive mapping, we turned an ambitious idea into a functional tool all within the tight timeframe of this hackathon.

What we learned

We gained hands-on experience with advanced data preprocessing, handling missing values, scaling, and feature engineering for real-world geospatial and weather datasets. We learned how to fine-tune and interpret XGBoost, and how to deploy it effectively. On the frontend side, we learned how to build an interactive map with Leaflet, clustering thousands of data points and adding smooth UX elements like dynamic side panels. Most importantly, we learned how to collaborate efficiently under time pressure, divide tasks, and adapt to unexpected challenges. One example being how we all learned the hard way to work together on a single GitHub repo with some people's changes mysteriously disappearing after merge conflicts arose...

What's next for Blaze Watch

We want to launch a mobile version of our app to quickly alert citizens who are at risk of wildfires via notifications. We also plan to scale the model globally and introduce a playback feature to explore historical fire movements. Additionally, we want to improve our model by adding topography for prediction accuracy. Our model also only uses current weather data to predict the spread of wildfires, so incorporating future weather conditions in our predictions would be mandatory. Finally, our fire spread prediction assumes no human intervention so moving forward, we plan to incorporate the fire's status into our prediction model to improve its accuracy.

Built With

Share this project:

Updates