An AI-driven web tool that predicts wildfire spread across Canada and visualizes risk zones on an interactive map. It helps local communities to stay alert and take early action.
- AI-Powered Risk Prediction Predicts wildfire spread based on weather, satellite, and vegetation data
- Interactive Heatmap Visual heatmap overlay with colour-coded markers
- Detailed Information Clickable map points with risk details
- User-Friendly Fast, simple, and accessible interface
- Clone the repo:
git clone https://github.com/AustinBao/blaze-watch
- Install pip packages
pip install -requirements
- Run Flask
flask run
- Trained on satellite, weather, and vegetation data to predict fire spread
- Fire boundaries defined by max/min latitude and longitude points (N/E/S/W edges)
- Model predicts next-day boundary coordinates for each fire area
- Uses an XGBoost multi-output regression model
- Outputs 8 coordinate values representing updated fire edges
- Evaluated with Root Mean Square Error (RMSE) in lat/lon degrees
- Applies cross-validation to ensure accuracy and prevent overfitting
- Serves pages:
/(landing),/map,/about - API
/predict-spread:- Takes fire cluster bounds
- Fetches weather & vegetation data
- Runs ML model to predict 3-day fire spread
- Returns prediction JSON
- Map centered on Canada with Esri World Imagery
- Fetches daily fire points from NASA FIRMS (fallback to local CSV)
- Clusters fires using Supercluster at zoom 4
- Cluster colors: yellow (small), orange (medium), red (large)
- Clicking cluster:
- Expands points
- Sends bounds to backend for predictions
- Shows 3-day spread polygons & circles
- Side panel shows risk %, coordinates, and day slider
- Smooth map controls with loading indicators
- NASA FIRMS (hotspot detection via LANDSAT, MODIS, VIIRS)
- Open-Meteo API (Weather features like wind speed, temperature, humidity)
- NASA GISS (Vegetation data)
- Natural Resources Canada (historical wildfire perimeter data)
pandas,geopandas,numpy,matplotlibscikit-learn,xgboost,pickleopenmeteo-requests,retry-requests,requests-cachecontextily
Flask
HTML,CSS,JavaScriptBootstrapLeaflet.jsSuperclusterTurf.jsnoUiSlider
