2.6 Use of Python to Streamline and Refactor the WRF-Hydro Forcing Engine for Community Use

Monday, 13 January 2020: 3:15 PM
157AB (Boston Convention and Exhibition Center)
Logan Karsten, NCAR, Boulder, CO; and D. Gochis, Y. Zhang, and R. Cabell

The WRF-Hydro community modeling system is a spatially distributed modeling system that simulates hydrologic processes across the landscape, within streamflow channel networks, and below the surface within the soil column. One key component of the modeling chain is the preparation of input forcing products that drive the physics at the surface. These inputs contain basic meteorological forcing variables such as precipitation, radiation fluxes, wind speed, surface pressure, humidity, and temperature. As WRF-Hydro is a fully distributed modeling system, tools are necessary to process inputs from raw numerical weather prediction (NWP) files to the modeling domain. Prior tools for WRF-Hydro utilized various NCAR Command Language (NCL) programs and bash scripts to process files and generate final forcing input files. However, there were significant limitations to this approach, including difficulty handling different WRF-Hydro grids, scalability with larger WRF-Hydro domains, and frozen NCL development moving forward. Over this past year, the WRF-Hydro team has taken these existing forcing processing tools, and refactored them into a set of streamlined Python code. The work presented takes advantage of several existing Python APIs for handling the interpolation and regridding of various input grids to the WRF-Hydro modeling domain in a parallized environment. Specifically, the new Forcing Engine (FE) utilizes the Python API to the Earth System Modeling Framework (ESMF), along with the API to Message Passage Interface (MPI) software installed in a high performance computing (HPC) environment. Additional scientific packages used include NumPy for handling array processing and the NetCDF package for input/output functionality. The FE code was written in an object-oriented framework to give the framework flexibility in handling different run configurations in an HPC environment scaled out to dozens or hundreds of processors. This flexibility includes the potential use of different meteorological downscaling methods on coarse input products, different bias correction methods for removing structural input biases, and the use of multiple input products for layering into final output forcing files. This work will present the overall structure of the FE code, along with an overview of case studies ranging from a simple small WRF-Hydro domain, to a continental-scale domain ingesting multiple input products. The goal of this work is to offer a set of streamlined code to WRF-Hydro users that will allow them to quickly pre-process input forcing while offering freedom to experiment with different input forcings and methods to optimize their WRF-Hydro simulations.
- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner