2023 CSDMS meeting-020: Difference between revisions

From CSDMS
(Created page with "{{CSDMS meeting personal information template-2023 |CSDMS meeting first name=james |CSDMS meeting last name=mccreight |CSDMS Pronouns=he |CSDMS meeting institute=UCAR/USGS |CSDMS meeting city=Boulder |CSDMS meeting country=United States |CSDMS meeting state=Colorado |CSDMS meeting email address=jamesmcc@ucar.edu }} {{CSDMS meeting select clinics1 2023 |CSDMS_meeting_select_clinics1_2023=1) What can CSDMS do for you? A clinic on CSDMS Products and Services }} {{CSDMS meet...")
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{CSDMS meeting personal information template-2023
{{CSDMS meeting personal information template-2023
|CSDMS meeting first name=james
|CSDMS meeting first name=James
|CSDMS meeting last name=mccreight
|CSDMS meeting last name=McCreight
|CSDMS Pronouns=he
|CSDMS meeting institute=UCAR & USGS
|CSDMS meeting institute=UCAR/USGS
|CSDMS meeting city=Boulder
|CSDMS meeting city=Boulder
|CSDMS meeting country=United States
|CSDMS meeting country=United States
|CSDMS meeting state=Colorado
|CSDMS meeting state=Colorado
|CSDMS meeting email address=jamesmcc@ucar.edu
|CSDMS meeting email address=jmccreight@usgs.gov
|CSDMS meeting phone=8312615149
}}
}}
{{CSDMS meeting select clinics1 2023
{{CSDMS meeting select clinics1 2023
|CSDMS_meeting_select_clinics1_2023=1) What can CSDMS do for you? A clinic on CSDMS Products and Services
|CSDMS_meeting_select_clinics1_2023=3) Using GPUs to Solve Science Problems Faster
}}
}}
{{CSDMS meeting select clinics2 2023
{{CSDMS meeting select clinics2 2023
Line 19: Line 19:
}}
}}
{{CSDMS meeting abstract yes no 2023
{{CSDMS meeting abstract yes no 2023
|CSDMS meeting abstract submit 2023=No
|CSDMS meeting abstract submit 2023=Yes
}}
{{CSDMS meeting abstract poster Epub 2023
|CSDMS meeting poster Epub submit 2023=Poster & Epub
}}
{{CSDMS meeting abstract title temp2023
|CSDMS meeting abstract title=pywatershed: A Python package for developing and prototyping hydrologic process representations
|Working_group_member_WG_FRG=Hydrology Focus Research Group
}}
{{CSDMS meeting authors template
|CSDMS meeting coauthor first name abstract=Joseph
|CSDMS meeting coauthor last name abstract=Hughes
|CSDMS meeting coauthor institute / Organization=USGS
|CSDMS meeting coauthor town-city=Chicago
|CSDMS meeting coauthor country=United States
|State=Illinois
|CSDMS meeting coauthor email address=jdhughes@usgs.gov
}}
{{CSDMS meeting authors template
|CSDMS meeting coauthor first name abstract=Christian
|CSDMS meeting coauthor last name abstract=Langevin
|CSDMS meeting coauthor institute / Organization=USGS
|CSDMS meeting coauthor town-city=Minneapolis
|CSDMS meeting coauthor country=United States
|State=Minnesota
|CSDMS meeting coauthor email address=langevin@usgs.gov
}}
{{CSDMS meeting abstract template 2023
|CSDMS meeting abstract=The U.S. Geological Survey is tasked with developing sustainable integrated hydrologic models that are interoperable with models from partner agencies and academia. 
As a steppingstone towards integrating hydrologic models in a compiled code framework, we have developed a Python package for hydrologic process development and prototyping. This code base, named “pywatershed”, can seamlessly interact with our compiled code framework (MODFLOW 6) via its BMI interface. One can obtain numerically identical results from a model enhancement prototyped in Python or implemented in compiled code. 
The advantages of code prototyped in Python are lower cost (person*hours) and greater approachability (less specialized programming knowledge required). The drawback of prototype code is that it may be slower to run for certain applications. A prototyping approach supports proof-of-concept development and model hypothesis testing, particularly for domain experts who may be more comfortable in Python and who bring new approaches or novel data to integrated model applications. The prototyping approach supports a cost-benefit analysis for making decisions to implement certain hydrologic process representations within the compiled code base.
The current state of this evolving Python package will be described, including: 1) the modular, self-describing design based on control volumes and conservation of mass and energy, 2) numerical performance based on the numpy Python package, the numba Python package (just in time compiling), and compiled Fortran modules called from python, 3) goals and challenges of developing flexibility in the space and time representation of hydrologic processes and the management of fluxes and states between process representations, and 4) the current and upcoming set of hydrologic process representations.
Example notebooks will demonstrate many features of pywatershed. Planned developments will be described and community participation is welcomed.
}}
}}
{{CSDMS meeting abstract poster Epub 2023}}
{{CSDMS meeting abstract title temp2023}}
{{CSDMS meeting abstract template 2023}}
{{blank line template}}
{{blank line template}}

Latest revision as of 07:32, 1 April 2023



(if you haven't already)




Log in (or create account for non-CSDMS members)
Forgot username? Search or email:CSDMSweb@colorado.edu


Browse  abstracts


pywatershed: A Python package for developing and prototyping hydrologic process representations


James McCreight, UCAR & USGS Boulder Colorado, United States. jmccreight@usgs.gov
Joseph Hughes, USGS Chicago Illinois, United States. jdhughes@usgs.gov
Christian Langevin, USGS Minneapolis Minnesota, United States. langevin@usgs.gov



The U.S. Geological Survey is tasked with developing sustainable integrated hydrologic models that are interoperable with models from partner agencies and academia.

As a steppingstone towards integrating hydrologic models in a compiled code framework, we have developed a Python package for hydrologic process development and prototyping. This code base, named “pywatershed”, can seamlessly interact with our compiled code framework (MODFLOW 6) via its BMI interface. One can obtain numerically identical results from a model enhancement prototyped in Python or implemented in compiled code.

The advantages of code prototyped in Python are lower cost (person*hours) and greater approachability (less specialized programming knowledge required). The drawback of prototype code is that it may be slower to run for certain applications. A prototyping approach supports proof-of-concept development and model hypothesis testing, particularly for domain experts who may be more comfortable in Python and who bring new approaches or novel data to integrated model applications. The prototyping approach supports a cost-benefit analysis for making decisions to implement certain hydrologic process representations within the compiled code base.

The current state of this evolving Python package will be described, including: 1) the modular, self-describing design based on control volumes and conservation of mass and energy, 2) numerical performance based on the numpy Python package, the numba Python package (just in time compiling), and compiled Fortran modules called from python, 3) goals and challenges of developing flexibility in the space and time representation of hydrologic processes and the management of fluxes and states between process representations, and 4) the current and upcoming set of hydrologic process representations.

Example notebooks will demonstrate many features of pywatershed. Planned developments will be described and community participation is welcomed.