H004-0011
Coupling Hydrologic Models with Data Services in an Interoperable Modeling Framework
Abstract:
In this collaborative project, we factored the U.S. Geological Survey (USGS) Precipitation-Runoff Modeling System (PRMS) into four independent process components: surface, soil, groundwater, and streamflow. Each process component, written in Fortran, has a Basic Model Interface (BMI), which gives the model a standardized set of functions allowing it to be queried, modified, and updated in time. When compiled through Cython, the BMI-equipped components become Python packages, and can then be imported into Python with the Python Modeling Toolkit (pymt), which provides a framework and tools for running and coupling models. The addition of a Python interface for PRMS makes it easier to use, especially for researchers lacking experience in compiling and linking Fortran code, and pymt provides an easy collaboration platform for developing and prototyping complex integrated models.
In the next phase of the project, we developed a Python package for a data service to access gridMET climatological data distributed over the web by the University of Idaho. The data service has a BMI, so it can be used directly with pymt for model-data coupling.
Finally, using pymt, we coupled the PRMS process components and drove the coupled system with climate data from the gridMET data component. As a simple test, we were able to reproduce the results from running the standalone PRMS model. (The figure shows that outflow for the last stream segment in the coupled model system equals that from standalone PRMS.)
This project was a fruitful collaboration between USGS and University of Colorado researchers, showing that research and operational models written in different languages can be wrapped in Python and coupled in an integrated modeling framework, making them more easily accessible for a new generation of researchers.