@@ -38,56 +38,80 @@ The following motivations are taken from our [AGU poster from December
3838which provides additional details on motivations, project status, and current
3939directions of this project as of approximately January 2023.
4040
41- Goals of the USGS Enterprise Capacity (EC) project include: * A sustainable
42- integrated, hydrologic modeling framework for the U.S. Geological Survey (USGS)
43- * Interoperable modeling across the USGS, partner agencies, and academia
44-
45- Goals for EC Watershed Modeling: * Couple the Precipitation-Runoff Modeling
46- System (PRMS, e.g. Regan et al, 2018) with MODFLOW 6 (MF6, e.g. Langevin et al,
47- 2017 ) in a sustainable way * Redesign PRMS to be more modern and flexible *
48- Prioritize process representations in the current National Hydrological Model
49- (NHM) based on PRMS 5.2.1
50-
51- Prototype an EC watershed model: "pywatershed" * Redesign PRMS quickly in python
52- * Couple to MF6 via BMI/XMI interface (Hughes et al, 2021; Hutton et al, 2020) *
53- Establish a prototyping ground for EC codes that couples to the compiled
54- framework: low cost proof of concepts (at the price of potentially less
55- computational performance) * Enable process representation hypothesis testing *
56- Use cutting-edge techniques and technologies to improve models * Machine
57- learning, automatic differentiation * Address challenges of modeling across
58- space and time scales * Transition prototype watershed model to compiled EC code
41+ Goals of the USGS Enterprise Capacity (EC) project include:
5942
60- ## Installation
43+ * A sustainable integrated, hydrologic modeling framework for the U.S.
44+ Geological Survey (USGS)
45+ * Interoperable modeling across the USGS, partner agencies, and academia
46+
47+ Goals for EC Watershed Modeling:
6148
62- To install the software you will need Python 3.9 or 3.10.
49+ * Couple the Precipitation-Runoff Modeling System (PRMS, e.g. Regan et al,
50+ 2018) with MODFLOW 6 (MF6, e.g. Langevin et al, 2017) in a sustainable
51+ way
52+ * Redesign PRMS to be more modern and flexible
53+ * Prioritize process representations in the current National Hydrological
54+ Model (NHM) based on PRMS 5.2.1
6355
64- We currently recommend dependencies be installed with
65- [ Mamba] ( https://mamba.readthedocs.io/en/latest/ ) which will be much faster than
66- Ananconda (but the conda command can also be used). An environment containing
67- all core and optional dependencies can be created from the project root with:
56+ Prototype an EC watershed model: "pywatershed"
6857
69- ``` mamba env create -f environment_w_jupyter.yml ```
58+ * Redesign PRMS quickly in python
59+ * Couple to MF6 via BMI/XMI interface (Hughes et al, 2021; Hutton et al, 2020)
60+ * Establish a prototyping ground for EC codes that couples to the compiled
61+ framework: low cost proof of concepts (at the price of potentially less
62+ computational performance) * Enable process representation hypothesis testing
63+ * Use cutting-edge techniques and technologies to improve models
64+ * Machine learning, automatic differentiation
65+ * Address challenges of modeling across space and time scales
66+ * Transition prototype watershed model to compiled EC code
7067
71- (The environment ` environment.yml ` does not contain jupyter or jupyterlab
72- in order to not interfere with installation in WholeTale, see Example
73- Notebooks seection below.)
68+
69+ ## Installation
70+
71+ ` pywatershed ` uses Python 3.9 or 3.10.
7472
7573The ` pywatershed ` package is [ available on
76- PyPI] ( https://pypi.org/project/pywatershed/ ) . At the moment, the installation
77- may not be reliable on all platforms and we are working to fix this.
74+ PyPI] ( https://pypi.org/project/pywatershed/ ) but installation of dependencies
75+ may not be reliable on all platforms.
7876
79- Using PyPI (with the above caveat), ` pywatershed ` can be installed with:
77+ We recommend dependencies be first installed with
78+ [ Mamba] ( https://mamba.readthedocs.io/en/latest/ ) . This will be much faster than
79+ Ananconda (but the conda command could also be used). We hope to provide
80+ ` pywatershed ` installation with all its dependencies on conda-forge in the
81+ near future.
8082
81- ``` pip install pywatershed ```
83+ If you wish to use the stable release, you will use ` main ` in place of
84+ ` <branch> ` in the following commands. If you want to follow developemnt, you'll
85+ use ` develop ` instead.
8286
83- A number of extra dependencies are needed to run the example notebooks. These
84- can be installed with pip with
87+ Without using ` git ` (directly), you may:
88+ ```
89+ curl -L -O https://raw.githubusercontent.com/EC-USGS/pywatershed/<branch>/environment_w_jupyter.yml
90+ mamba env create -f environment_w_jupyter.yml
91+ conda activate pws
92+ pip install git+https://github.com/EC-USGS/pywatershed.git@<branch>
93+ ```
8594
86- ``` pip install "pywatershed[optional]" ```
95+ Or to use ` git ` and to be able to develop:
8796
88- These installation steps are suitable for ` pywatershed ` end users. See the
89- [ developer documentation] ( ./DEVELOPER.md ) for detailed instructions on
90- configuring a development environment.
97+ ```
98+ git clone https://github.com/EC-USGS/pywatershed.git
99+ cd pywatershed
100+ mamba env create -f environment_w_jupyter.yml
101+ activate pws
102+ pip install -e .
103+ ```
104+
105+ (If you want to name the environment other than the default ` pws ` , use the
106+ command
107+ ` mamba env update --name your_env_name --file environment_w_jupyter.yml --prune `
108+ you will also need to activate this environment by name.)
109+
110+
111+ We install the ` environment_w_jupyter.yml ` to provide all known dependencies
112+ including those for running the eample notebooks. (The ` environment.yml `
113+ does not contain jupyter or jupyterlab because this interferes with installation
114+ on WholeTale, see Example Notebooks seection below.)
91115
92116## Contributing
93117
@@ -116,10 +140,11 @@ to register.
116140There are containers for both the ` main ` and ` develop ` branches.
117141
118142[ ![ WholeTale] ( https://raw.githubusercontent.com/whole-tale/wt-design-docs/master/badges/wholetale-explore.svg )] ( https://dashboard.wholetale.org )
119- * [ WholeTale container for latest release (main
120- branch)] ( https://dashboard.wholetale.org/run/64ae29e8a887f48b9f173678?tab=metadata )
121- * [ WholeTale container for develop
122- branch] ( https://dashboard.wholetale.org/run/64ae25c3a887f48b9f1735c8?tab=metadata )
143+
144+ * [ WholeTale container for latest release (main
145+ branch)](https://dashboard.wholetale.org/run/64ae29e8a887f48b9f173678?tab=metadata)
146+ * [ WholeTale container for develop
147+ branch](https://dashboard.wholetale.org/run/64ae25c3a887f48b9f1735c8?tab=metadata)
123148
124149WholeTale will give you a jupyter-lab running in the root of this
125150repository. You can navigate to ` examples/ ` and then open and run the notebooks
0 commit comments