The project forecasts monthly rainfall for March to October 2026 and estimates which days in a selected month have the highest chance of rainfall based on historical daily behavior.
- compares multiple forecasting models with a time-aware validation setup
- selects the final model using validation metrics instead of test leakage
- saves forecasts, evaluation tables, figures, and model metadata
- serves the results through a clean Streamlit app
- keeps training dependencies separate from lightweight app deployment
- Model:
BiLSTM - Validation RMSE:
88.26 - Test RMSE:
110.92 - Forecast output: outputs/forecasts/future_forecasts.csv
rainfall-timeseries-forecasting/
|-- app.py
|-- streamlit_app.py
|-- train.py
|-- evaluate.py
|-- forecasting_pipeline.py
|-- data_module.py
|-- daily_rainfall_profiles.py
|-- lightning_module.py
|-- models.py
|-- project_paths.py
|-- data/
| |-- raw/
| |-- processed/
| `-- study_area/
|-- outputs/
| |-- forecasts/
| |-- evaluation/
| `-- figures/
|-- artifacts/
| |-- models/
| |-- checkpoints/
| `-- metadata/
|-- docs/
|-- scripts/
|-- .streamlit/
|-- requirements.txt
|-- requirements-training.txt
`-- runtime.txt
data/raw/: original daily rainfall datasetdata/processed/: monthly dataset and daily climatology tables used by the appdata/study_area/: geospatial boundary files for the study areaoutputs/forecasts/: saved future rainfall forecastsoutputs/evaluation/: model comparison tables and backtest predictionsoutputs/figures/: charts generated by the forecasting pipelineartifacts/models/: trained model files saved after trainingartifacts/checkpoints/: sequence-model checkpointsartifacts/metadata/: selected-model metadata for the app and reportsdocs/: deployment notes and social sharing copyscripts/: supporting scripts, including the Google Earth Engine export script
- Local app: app.py
- App implementation: streamlit_app.py
- Training pipeline: train.py
- Evaluation summary: evaluate.py
For the Streamlit app only:
pip install -r requirements.txt
python -m streamlit run app.pyIf Streamlit is installed in a different Python environment:
C:\ProgramData\Anaconda3\python.exe -m streamlit run app.pyFor the full training and evaluation workflow:
pip install -r requirements-training.txt
python train.py
python evaluate.py- Forecasts: outputs/forecasts/future_forecasts.csv
- Evaluation metrics: outputs/evaluation/evaluation_metrics.csv
- Horizon-wise metrics: outputs/evaluation/evaluation_metrics_by_horizon.csv
- Backtest predictions: outputs/evaluation/backtest_predictions.csv
- Monthly dataset: data/processed/monthly_rainfall_dataset.csv
- Daily climatology: data/processed/daily_rainfall_climatology.csv
- Best model metadata: artifacts/metadata/best_model.json
- Forecast figure: outputs/figures/future_forecast_march_october_2026.png
- Deployment guide: docs/DEPLOY_STREAMLIT_CLOUD.md
- LinkedIn post draft: docs/LINKEDIN_POST.md
- GEE export script: scripts/gee_export.js
- License: LICENSE