PyForecast
A statistical modeling tool used by Reclamation water managers and reservoir operators to train and build predictive models for seasonal inflows and streamflows.
https://github.com/doi-bor/pyforecast
Category: Natural Resources
Sub Category: Water Supply and Quality
Keywords
forecasting hydrology machine-learning python statistical-models
Keywords from Contributors
water-resources oracle-database
Last synced: about 2 hours ago
JSON representation
Repository metadata
PyForecast is a statistical modeling tool used by Reclamation water managers and reservoir operators to train and build predictive models for seasonal inflows and streamflows. PyForecast allows users to make current water-year forecasts using models developed with the program.
- Host: GitHub
- URL: https://github.com/doi-bor/pyforecast
- Owner: DOI-BOR
- License: other
- Created: 2019-01-24T17:32:26.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2026-04-22T16:11:39.000Z (3 days ago)
- Last Synced: 2026-04-22T18:14:48.207Z (3 days ago)
- Topics: forecasting, hydrology, machine-learning, python, statistical-models
- Language: Python
- Homepage:
- Size: 44 MB
- Stars: 30
- Watchers: 8
- Forks: 12
- Open Issues: 22
- Releases: 3
-
Metadata Files:
- Readme: README.md
- License: license.txt
README.md
PyForecast 
Develop and analyze high-performing seasonal streamflow forecasts using PyForecast,
developed by Reclamation's MB-ART and CPN Regions. PyForecast takes advantage of
multi-threading and multiple processor cores to analyze thousands of forecasts in
minutes using cutting-edge statistical techniques.
Table of Contents
Quick Start
User Manual
Installation and Updates
The latest release of PyForecast can be downloaded from the
Releases Page of this repository.
Simply download and run the installer (FOR WINDOWS MACHINES ONLY!).
PyForecast can automatically check for and download any updates using the
"Check for Updates" button in the File Menu.
Software Overview
PyForecast is a statistical modeling tool useful in predicting seasonal inflows and
streamflows. The tool collects meterological and hydrologic datasets, analyzes hundreds
to thousands of predictor subsets, and returns well-performing statistical regressions
between predictors and streamflows.
Datasets are collected from web services located at NOAA, RCC-ACIS, NRCS,
Reclamation, and USGS servers, and is stored locally on the user’s machine. Data can be
updated with current values at any time, allowing the user to make current water-year
forecasts using equations developed with the program.
After potential predictor datasets are downloaded and manipulated, the tool allows the
user to develop statistically significant regression equations using multiple regression,
principal components regression, and z-score regression. Models are developed using a
combination of sequential feature selection and cross validation, both described in the
Scientific Background section of this document.
Datasets Tab
The Datasets Tab allows users to locate datasets that may be valuable for their analysis.
Users can find SNOTEL stations and snow courses, reservoirs, stream gages, as well as
PRISM and NRCC data gridded temperature and precipitation data, and climate indices.
Datasets are found by navigating in the datasets map to the area of interest and browsing
through the dataset markers. If the user decides that a particular dataset might be
useful in their analysis, they can choose the Add Site button in the dataset pop-up to
add the dataset to the selected datasets table. (datasets can later be removed from the
selected datasets table by right-clicking one or more datasets and choosing
Remove Dataset(s)).
Note that removing datasets will also remove any forecasts or models that depend on that
dataset.
Additionally, users can click within a watershed boundary to add the PRISM gridded
average temperature and humidity values to their analysis. Users can also use the
map-legend in the top right corner of the map to enable climate divisions and add
climate-division averaged Palmer Drought Severity values to their analysis.
Right clicking the bottom of the datasets list will allow the user to
Add Climate Datasets.
Double clicking or right clicking and choosing Open Dataset on a selected dataset will
open the View Dataset dialog window allowing the user to change properties of the
dataset.
Dataset options can be adjusted to retrieve alternative datasets from dataloaders
(for example, a user could change the HydroMet parameter in a USBR dataset to retrieve
reservoir forebay elevation instead of inflow). Users can also specify the units in
which they want to display data. Users can also specify a file where data should be
loaded from.
Adding a CSV / Flat File dataset
To add a dataset from a flat file, right click in the dataset list and choose
Add new dataset. Fill out the dataset description, and check the box labeled
Flat-file source?. The File Path field is now enabled and you can choose the flat
file contianing your data. Note that the only supported file format is a CSV file with
2 columns: The first column contains dates, and the second column contains data. There
should be colum headers.
Data Tab
The Data Tab allows users to download data for the selected datasets. Data is downloaded
in the dataset's Raw Unit and displayed to the user in the Display Unit.
The Download all data button will download data for datasets using a start date of
1970-Oct-01, and ending today. The Download recent data button downloads data from
45-days before the datasets last datapoint until now. (Note that the 45-day parameter
and the default start date of 1970-Oct-01 can both be adjusted in the
application settings)
Data for selected datasets can be edited by pressing the Edit Data in Excel button at
the bottom left of the Data tab. A dialog will appear instructing the user how to save
any changes.
Model Configurations Tab
The Model Configuration Tab allows you to set up
Saved Models Tab
File Menu
Best Practices
Example Forecast Development
Scientific Background
Datasets
Model Search
Uncertainty
Experimental Features
Programming Guide
Owner metadata
- Name: Bureau of Reclamation
- Login: DOI-BOR
- Email: jellson@usbr.gov
- Kind: organization
- Description: Bureau of Reclamation DOI GitHub
- Website: https://www.usbr.gov/
- Location: United States of America
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/102251442?v=4
- Repositories: 1
- Last ynced at: 2024-02-07T00:32:47.740Z
- Profile URL: https://github.com/DOI-BOR
GitHub Events
Total
- Delete event: 10
- Member event: 1
- Pull request event: 10
- Watch event: 2
- Push event: 19
- Create event: 10
Last Year
- Delete event: 10
- Member event: 1
- Pull request event: 10
- Watch event: 1
- Push event: 19
- Create event: 10
Committers metadata
Last synced: 7 days ago
Total Commits: 448
Total Committers: 8
Avg Commits per committer: 56.0
Development Distribution Score (DDS): 0.46
Commits in past year: 8
Committers in past year: 2
Avg Commits per committer in past year: 4.0
Development Distribution Score (DDS) in past year: 0.125
| Name | Commits | |
|---|---|---|
| jrocha | j****a@u****v | 242 |
| dloney | d****y@u****v | 104 |
| Foley | k****y@u****v | 79 |
| dependabot[bot] | 4****] | 13 |
| jslanini | 4****i | 4 |
| Beau Uriona | b****a@u****v | 4 |
| Bob Lounsbury | b****y@u****v | 1 |
| Beau Uriona | b****a@g****m | 1 |
Committer domains:
- usbr.gov: 5
Issue and Pull Request metadata
Last synced: 26 days ago
Total issues: 0
Total pull requests: 2
Average time to close issues: N/A
Average time to close pull requests: N/A
Total issue authors: 0
Total pull request authors: 1
Average comments per issue: 0
Average comments per pull request: 0.0
Merged pull request: 0
Bot issues: 0
Bot pull requests: 2
Past year issues: 0
Past year pull requests: 2
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 1
Past year average comments per issue: 0
Past year average comments per pull request: 0.0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 2
Top Issue Authors
Top Pull Request Authors
- dependabot[bot] (2)
Top Issue Labels
Top Pull Request Labels
- javascript (2)
- dependencies (2)
Dependencies
- 276 dependencies
- browserify ^14.5.0 development
- browserify-shim ^3.8.14 development
- watchify ^3.11.0 development
- cached-path-relative ^1.0.2
- leaflet-editable ^1.1.0
- leaflet.path.drag 0.0.6
- bitarray 1.5.3
- openpyxl 3.0.5
- pip >=20.1.1
- python 3.6
- requests 2.24.0
- scikit-learn 0.23.2
- scipy 1.5.2
- tqdm 4.49.0
- xlrd 1.2.0
Score: 6.030685260261263