PRMS-Python: A Python framework for programmatic PRMS modeling and access to its data structures. (April 2019) - Volk, John M.; Turner, Matthew A.
Abstract: A persistent problem in numerical hydrologic modeling, is tracking provenance or how particular data came to be. With multiple modules available for individual flux parameterizations and over 100 parameters, the Precipitation-Runoff Modeling System (PRMS) is a perfect example of why it is such a challenge to track the history of input and output of complex models. We present a lightweight, object-oriented Python framework with programmatic tools for management and visualization using PRMS as an example platform. Within this framework, a modeler can write intuitive code for a myriad of basic or advanced applications. The framework also includes methods that, for example, apply systematic or stochastic parameter modifications while simultaneously saving metadata on which parameters were varied and with what improvement in performance. We include a case study that uses built in Monte Carlo parameter resampling for global sensitivity analysis of eight PRMS parameters related to estimation of shortwave solar radiation. Highlights: PRMS-Python is a framework for advanced modeling analyses with PRMS hydrologic model. Tools include modification of model input, visualization, and simulation management. Framework provides metadata for large model ensembles for sharing and reproducibility. PRMS-Python is used to conduct a global parameter sensitivity analysis case study.