Flask web dashboard that generates on-demand weekly SARIMAX forecasts for Australian locations and renders a temporal Folium map for the selected location.
app.py— Flask app, weekly resampling, SARIMAX forecasting, and MAE/RMSE validationindex.html— UI page (must be placed undertemplates/for Flask)cleaned_climate_data.csv— prepared dataset used by the applocation_coordinates.csv— latitude/longitude lookup per locationlocations.py— helper script (geocoding list of locations)static/css/styles.css— stylingstatic/images/image.png— image asset
- Location selection (from the dataset’s available locations)
- Weekly resampling + interpolation of climate series
- SARIMAX forecasting for:
MinTemp(forecast horizon: 26 weeks)MaxTemp(forecast horizon: 26 weeks)
- Validation (only when history is sufficient):
- MAE/RMSE computed on MinTemp when there are at least 104 weekly observations
- Outputs:
- Forecast plot saved to
static/<Location>_forecast.png - JSON response including avg forecast values and validation metrics (when available)
- Temporal Folium map endpoint for the chosen location
- Forecast plot saved to
Run:
pip install flask pandas numpy statsmodels scikit-learn matplotlib folium geopy
Flask expects templates under templates/.
Mac/Linux:
mkdir -p templatesmv index.html templates/index.html
Windows PowerShell:
New-Item -ItemType Directory -Force templatesMove-Item index.html templates/index.html
python app.py
Then open:
http://127.0.0.1:5000/
/— main UI/forecast— returns forecast stats + image path for a location/temporal_map— renders a timestamped Folium map for the selected location
Open a GitHub Issue titled: Review: climate-policy-forecasting-dashboard and tell me:
- If the run steps are clear and reproducible on first try
- Whether the endpoints and response fields are well named
- What you would change to make the UX feel “dashboard-ready”