Automated production forecasting system for Southwestern Ontario. Features hourly GCNGRU predictions stored in BigQuery with rolling 30-day evaluation metrics.
Key Features:
- Automated Forecasts: Hourly execution at :15 past each hour
- Multi-Horizon: 1, 6, 12, 18, 24, 36, 48-hour predictions
- Live Dashboard: Real-time forecast visualization with auto-refresh
- CLI Tools: Manual inference and batch prediction capabilities
- Evaluation: Daily rolling 30-day RMSE/MAE metrics
This project uses uv for dependency management and requires Python 3.12+.
If you don't have uv installed, install it using:
curl -LsSf https://astral.sh/uv/install.sh | sh# Clone the repository
git clone https://github.com/VectorInstitute/gaca-early-warning.git
cd gaca-early-warning
# Install all dependencies
uv sync --dev --group docs
# Activate the virtual environment
source .venv/bin/activateThe backend runs automated hourly forecasts and daily evaluations using APScheduler:
Forecasting Schedule:
- Runs hourly at :15 (after NOAA data availability)
- Automatically stores predictions to BigQuery
- CSV outputs saved to configurable directory
Evaluation Schedule:
- Runs daily at 00:30 UTC
- Computes rolling 30-day metrics (RMSE/MAE)
- SQL-based aggregation for efficiency
Dashboard:
- Auto-refreshes every 30 minutes
- Smart polling checks for new data before fetching
- Displays scheduler status and last update time
- Manual refresh button available
Environment Variables:
FORECAST_OUTPUT_DIR=forecasts/ # Output directory for CSVs
GCP_PROJECT_ID=your-project-id # BigQuery project (optional)
BIGQUERY_DATASET=gaca_evaluation # BigQuery dataset nameThe CLI remains unchanged and works independently of the automated system:
# Single forecast
gaca-ews predict --config config.yaml --output results/
# Batch predictions for date range
gaca-ews batch-predict --start-date "2024-02-06 12:00" --end-date "2024-02-10 12:00" --interval 24
# Model information
gaca-ews info
# Version
gaca-ews versionJoud El-Shawa - Vector Institute for AI & Western University
This repository is intended for early deployment testing of the GACA forecasting pipeline.
