PEST++
Software suite aimed at supporting complex numerical models in the context of decision support, with a focus on supporting environmental models like groundwater or surface water.
https://github.com/usgs/pestpp
Category: Natural Resources
Sub Category: Water Supply and Quality
Keywords
ensemble-methods ensembles global-sensitivity-analysis non-intrusive optimization optimization-tools parallel-computing parameter-estimation sensitivity-analysis uncertainty-quantification
Keywords from Contributors
groundwater modflow earth-science hydrology
Last synced: about 10 hours ago
JSON representation
Repository metadata
tools for scalable and non-intrusive parameter estimation, uncertainty analysis and sensitivity analysis
- Host: GitHub
- URL: https://github.com/usgs/pestpp
- Owner: usgs
- Created: 2019-03-07T22:16:47.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-04-07T21:59:40.000Z (20 days ago)
- Last Synced: 2025-04-25T22:33:22.621Z (2 days ago)
- Topics: ensemble-methods, ensembles, global-sensitivity-analysis, non-intrusive, optimization, optimization-tools, parallel-computing, parameter-estimation, sensitivity-analysis, uncertainty-quantification
- Language: C++
- Homepage:
- Size: 1.09 GB
- Stars: 148
- Watchers: 25
- Forks: 79
- Open Issues: 30
- Releases: 61
-
Metadata Files:
- Readme: README.md
README.md
PEST++
a Software Suite for Parameter Estimation, Uncertainty Analysis, Management Optimization and Sensitivity Analysis
PEST++ is a software suite aimed at supporting complex numerical models in the decision-support context. Much focus has been devoted to supporting environmental models (groundwater, surface water, etc) but these tools are readily applicable to any computer model.
Documentation
The latest official report documenting PEST++ is available from the USGS:
https://pubs.er.usgs.gov/publication/tm7C26
Suggested Citation:
White, J.T., Hunt, R.J., Fienen, M.N., and Doherty, J.E., 2020, Approaches to Highly Parameterized Inversion: PEST++ Version 5, a Software Suite for Parameter Estimation, Uncertainty Analysis, Management Optimization and Sensitivity Analysis: U.S. Geological Survey Techniques and Methods 7C26, 52 p., https://doi.org/10.3133/tm7C26.
User's Manual
The lastest PEST++ users manual is available here or as a word document.
Links to latest binaries
As of version 4.3.11, PEST++ pre-compiled binaries for windows and linux are available as a github release:
https://github.com/usgs/pestpp/releases
Compiling
The develop branch includes a Visual Studio solution, as well as CMake files for building on all operating systems using g++, MSVC, and/or intel C++.
See details here to compile using CMake.
Overview
The PEST++ software suite includes several stand-alone tools for model-independent (non-intrusive) computer model parameter estimation and uncertainty analysis. Codes include:
-
pestpp-glm
: deterministic GLM parameter estimation using "on-the-fly" subspace reparameterization, effectively reproducing the SVD-Assist methodology of PEST without any user intervention and FOSM-based parameter and (optional) forecast uncertainty estimation with support for generating Bayes-linear posterior parameter realizations. -
pestpp-sen
: Global sensitivity analysis using either Morris or Sobol -
pestpp-swp
: a generic parallel run utility driven by a CSV file of parameter values -
pestpp-opt
: chance-constrained linear programming -
pestpp-ies
: iterative ensemble smoother implementation of GLM (based on the work Chen and Oliver 2013) with support for generic localization (local analysis and/or covariance localization) -
pestpp-mou
: multi-objective optimization under uncertainty using evolutionary algorithms (single objective also!) -
pestpp-da
: model-independent ensemble-based sequential and batch iterative data assimilation with options to use standard Kalman update, multiple data assimilation (MDA), or the GLM algorithm of Chen and Oliver (2013).
All members of the software suite can be compiled for PC, MAC, or Linux and have several run managers to support parallelization. Windows users with older OS versions should use the iwin
binaries (starting "i", compiled with intel C++) to avoid the dreaded MSVC missing runtime DLL issue.
Funding
Funding for PEST++ has been provided by the U.S. Geologial Survey. The New Zealand Strategic Science Investment Fund as part of GNS Science’s (https://www.gns.cri.nz/) Groundwater Research Programme has also funded contributions 2018-present. Intera, Inc. also provides ongoing support for PEST++.
PEST++ References:
White, J.T., Hunt, R.J., Fienen, M.N., and Doherty, J.E., 2020, Approaches to Highly Parameterized Inversion: PEST++ Version 5, a Software Suite for Parameter Estimation, Uncertainty Analysis, Management Optimization and Sensitivity Analysis: U.S. Geological Survey Techniques and Methods 7C26, 52 p., https://doi.org/10.3133/tm7C26.
White, J. T., 2018, A model-independent iterative ensemble smoother for efficient history-matching and uncertainty quantification in very high dimensions. Environmental Modelling & Software. 109. 10.1016/j.envsoft.2018.06.009. http://dx.doi.org/10.1016/j.envsoft.2018.06.009.
White, J. T., Fienen, M. N., Barlow, P. M., and Welter, D.E., 2017, A tool for efficient, model-independent management optimization under uncertainty. Environmental Modeling and Software. http://dx.doi.org/10.1016/j.envsoft.2017.11.019.
Welter, D.E., White, J.T., Hunt, R.J., and Doherty, J.E., 2015, Approaches in highly parameterized inversion— PEST++ Version 3, a Parameter ESTimation and uncertainty analysis software suite optimized for large environmental models: U.S. Geological Survey Techniques and Methods, book 7, chap. C12, 54 p., http://dx.doi.org/10.3133/tm7C12.
Welter, D.E., Doherty, J.E., Hunt, R.J., Muffels, C.T., Tonkin, M.J., and Schreüder, W.A., 2012, Approaches in highly parameterized inversion—PEST++, a Parameter ESTimation code optimized for large environmental models: U.S. Geological Survey Techniques and Methods, book 7, section C5, 47 p., available only at http://pubs.usgs.gov/tm/tm7c5.
Related Links:
- https://www.usgs.gov/software/pest-parameter-estimation-code-optimized-large-environmental-models
- http://www.pesthomepage.org
- https://github.com/pypest/pyemu
Testing
The benchmarks
folder contains a simple worked example and basic testing routines that are used for basic CI testing. Many full-worked test problems of varying sizes are now located in separate repos:
- pestpp-glm benchmarks
- pestpp-ies benchmarks
- pestpp-opt benchmarks
- pestpp-mou benchmarks
- pestpp-da benchmarks
Dependencies
Much work has been done to avoid additional external dependencies in PEST++. As currently designed, the project is fully self-contained.
++
arguments
optional please see the PEST++ users manual in the documentation
directory for a current and complete description of all ++
options
USGS disclaimer
This software has been approved for release by the U.S. Geological Survey (USGS). Although the software has been subjected to rigorous review, the USGS reserves the right to update the software as needed pursuant to further analysis and review. No warranty, expressed or implied, is made by the USGS or the U.S. Government as to the functionality of the software and related material nor shall the fact of release constitute any such warranty. Furthermore, the software is released on condition that neither the USGS nor the U.S. Government shall be held liable for any damages resulting from its authorized or unauthorized use
Owner metadata
- Name: U.S. Geological Survey
- Login: usgs
- Email: [email protected]
- Kind: organization
- Description: By integrating our diverse scientific expertise, we understand complex natural science phenomena and provide scientific products that lead to solutions.
- Website: https://www.usgs.gov/
- Location: Reston, VA, USA
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/1091434?v=4
- Repositories: 159
- Last ynced at: 2024-04-12T10:04:34.273Z
- Profile URL: https://github.com/usgs
GitHub Events
Total
- Create event: 6
- Release event: 6
- Issues event: 5
- Watch event: 18
- Member event: 1
- Issue comment event: 18
- Push event: 12
- Pull request event: 12
- Fork event: 11
Last Year
- Create event: 6
- Release event: 6
- Issues event: 5
- Watch event: 18
- Member event: 1
- Issue comment event: 18
- Push event: 12
- Pull request event: 12
- Fork event: 11
Committers metadata
Last synced: 7 days ago
Total Commits: 2,049
Total Committers: 21
Avg Commits per committer: 97.571
Development Distribution Score (DDS): 0.555
Commits in past year: 128
Committers in past year: 3
Avg Commits per committer in past year: 42.667
Development Distribution Score (DDS) in past year: 0.055
Name | Commits | |
---|---|---|
jtwhite79 | j****0@g****m | 912 |
jdub | J****e@l****l | 526 |
jwhite-usgs | j****s@g****m | 467 |
Ayman Alzraiee | a****e@g****m | 47 |
Matthew Knowling | m****g@a****u | 30 |
Zachary Stanko | z****o@u****v | 21 |
Mike Taves | m****s@g****m | 20 |
jdhughes-dev | j****1@g****m | 6 |
Mike Fienen | m****n@u****v | 3 |
Damian Merrick | d****k@h****m | 3 |
[email protected] | g****t | 3 |
jwhite | j****e@i****v | 2 |
Chris Nicol | c****l@g****m | 1 |
Randy Hunt | r****t@u****v | 1 |
Tim Cera | t****m@c****t | 1 |
Wes Kitlasten | w****n@u****v | 1 |
adam siade | a****e@u****u | 1 |
jwhite | j****e@j****l | 1 |
briochh | b****s@.****z | 1 |
Parallels | p****s@c****d | 1 |
jdhughes-dev | j****9@g****m | 1 |
Committer domains:
- usgs.gov: 4
- centos-7.shared: 1
- .gns.cri.nz: 1
- uwa.edu.au: 1
- cerazone.net: 1
- groundwaterlogic.com: 1
- igskahcmgslih04.cr.usgs.gov: 1
- hydroalgorithmics.com: 1
- adelaide.edu.au: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 99
Total pull requests: 117
Average time to close issues: 4 months
Average time to close pull requests: 6 days
Total issue authors: 48
Total pull request authors: 12
Average comments per issue: 4.62
Average comments per pull request: 0.31
Merged pull request: 109
Bot issues: 0
Bot pull requests: 0
Past year issues: 10
Past year pull requests: 10
Past year average time to close issues: about 13 hours
Past year average time to close pull requests: 5 days
Past year issue authors: 8
Past year pull request authors: 4
Past year average comments per issue: 2.5
Past year average comments per pull request: 0.2
Past year merged pull request: 8
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- wkitlasten (20)
- BJEANNOT0 (12)
- laat0003 (7)
- jbensabat (5)
- mwtoews (3)
- RyanConway91 (2)
- DStrom1987 (2)
- oscarfasanchez (2)
- BJeannot1 (2)
- ckikuchi (2)
- ghost (2)
- Kumbaka (2)
- cnicol-gwlogic (2)
- kyledavis-usgs (2)
- flydream0428 (1)
Top Pull Request Authors
- jtwhite79 (64)
- jwhite-usgs (31)
- mwtoews (13)
- siadicus (1)
- MJKnowling (1)
- mmorphew (1)
- damianmerrick (1)
- cnicol-gwlogic (1)
- joshbode (1)
- ghost (1)
- jdhughes-dev (1)
- briochh (1)
Top Issue Labels
Top Pull Request Labels
Dependencies
- actions/checkout v2.3.4 composite
- ilammy/msvc-dev-cmd v1 composite
- mamba-org/setup-micromamba v1 composite
- seanmiddleditch/gha-setup-ninja master composite
- matplotlib *
- numpy *
- pandas *
- pyproj *
- pyshp *
- coveralls
- flopy
- git
- imp
- jinja2
- matplotlib >=1.4.0
- mfpymake
- nbmake
- nose
- nose-timer
- numpy >=1.15.0
- pandas
- pip
- pyshp
- pytest-xdist
- python <=3.11
- scipy
- shapely
Score: 8.226305988015508