Coupling Hydrologic Models with Data Services in an Interoperable Modeling Framework
Computational models are important tools that aid process understanding, hypothesis testing, and data interpretation. The ability to easily couple models from various domains such as, surface-water and groundwater, to form integrated models will aid studies in water resources. This project investigates the use of the Community Surface Dynamics Modeling System (CSDMS) Modeling Framework (CMF) to couple existing USGS hydrologic models into integrated models. The CMF provides a Basic Model Interface (BMI), in a range of common computer languages, that enables model coupling. In addition, the CMF also provides a Python wrapper for any model that adopts the BMI. In this project the Precipitation-Runoff Modeling System (PRMS) was split into 4 BMIs for the following domains: Surface, Soil, Groundwater, and Streamflow. In a simple test of the CMF coupling ability, the 4 domain BMIs were coupled back into a single model and successfully compared with PRMS itself.
Principal Investigator : Richard R McDonald
Co-Investigator : Steve L Markstrom
Cooperator/Partner : Mark Piper, Eric Hutton
Related links.—
The following FORTRAN BMIs are developed from PRMS6 (6.0.0_bmi_dev branch): https://github.com/nhm-usgs/prms/tree/6.0.0_bmi_dev
- bmi-prms6-surface: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-surface · GitLab (usgs.gov)
- bmi-prms6-soil: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-soil · GitLab (usgs.gov)
- bmi-prms6-groundwater: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-groundwater · GitLab (usgs.gov)
- bmi-prms6-streamflow: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-streamflow · GitLab (usgs.gov)
BMI testing projects and Jupyter Notebook documentation: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms-demo · GitLab (usgs.gov)
CMF Python component:
- pymt-lab/pymt_prms_surface: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Surface component (github.com)
- pymt-lab/pymt_prms_soil: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Soil component (github.com)
- pymt-lab/pymt_prms_groundwater: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Groundwater component (github.com)
- pymt-lab/pymt_prms_streamflow: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Streamflow component (github.com)
Image caption: Example FORTRAN program that couples the four PRMS6 BMIs. The resulting segment outflow, for the last stream segment in the model is compared with PRMS6 and shows the coupled outflow equals the PRMS6 outflow.
- Source: USGS Sciencebase (id: 5cd30b8de4b09b8c0b7a5cc1)
Computational models are important tools that aid process understanding, hypothesis testing, and data interpretation. The ability to easily couple models from various domains such as, surface-water and groundwater, to form integrated models will aid studies in water resources. This project investigates the use of the Community Surface Dynamics Modeling System (CSDMS) Modeling Framework (CMF) to couple existing USGS hydrologic models into integrated models. The CMF provides a Basic Model Interface (BMI), in a range of common computer languages, that enables model coupling. In addition, the CMF also provides a Python wrapper for any model that adopts the BMI. In this project the Precipitation-Runoff Modeling System (PRMS) was split into 4 BMIs for the following domains: Surface, Soil, Groundwater, and Streamflow. In a simple test of the CMF coupling ability, the 4 domain BMIs were coupled back into a single model and successfully compared with PRMS itself.
Principal Investigator : Richard R McDonald
Co-Investigator : Steve L Markstrom
Cooperator/Partner : Mark Piper, Eric Hutton
Related links.—
The following FORTRAN BMIs are developed from PRMS6 (6.0.0_bmi_dev branch): https://github.com/nhm-usgs/prms/tree/6.0.0_bmi_dev
- bmi-prms6-surface: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-surface · GitLab (usgs.gov)
- bmi-prms6-soil: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-soil · GitLab (usgs.gov)
- bmi-prms6-groundwater: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-groundwater · GitLab (usgs.gov)
- bmi-prms6-streamflow: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms6-streamflow · GitLab (usgs.gov)
BMI testing projects and Jupyter Notebook documentation: Water Mission Area / National IWAAs / NHM / prms-bmi / bmi-prms-demo · GitLab (usgs.gov)
CMF Python component:
- pymt-lab/pymt_prms_surface: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Surface component (github.com)
- pymt-lab/pymt_prms_soil: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Soil component (github.com)
- pymt-lab/pymt_prms_groundwater: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Groundwater component (github.com)
- pymt-lab/pymt_prms_streamflow: PyMT plugin for the USGS Precipitation-Runoff Modeling System (PRMS) v6 Streamflow component (github.com)
Image caption: Example FORTRAN program that couples the four PRMS6 BMIs. The resulting segment outflow, for the last stream segment in the model is compared with PRMS6 and shows the coupled outflow equals the PRMS6 outflow.
- Source: USGS Sciencebase (id: 5cd30b8de4b09b8c0b7a5cc1)