diff --git a/.github/workflows/ci_examples.yaml b/.github/workflows/ci_examples.yaml index fa098b99..15a603e8 100644 --- a/.github/workflows/ci_examples.yaml +++ b/.github/workflows/ci_examples.yaml @@ -46,7 +46,7 @@ jobs: uses: mamba-org/setup-micromamba@v1.9.0 with: micromamba-version: '1.5.10-0' - environment-file: environment.yml + environment-file: environment_w_jupyter.yml cache-environment: true cache-downloads: true diff --git a/doc/api/flow_graph.rst b/doc/api/flow_graph.rst index 381f49cc..248bd76a 100644 --- a/doc/api/flow_graph.rst +++ b/doc/api/flow_graph.rst @@ -13,9 +13,9 @@ FlowGraph base classes and subclasses. See :class:`FlowGraph` for an overview of FlowGraph FlowNode FlowNodeMaker - PassThroughNode + PassThroughFlowNode PassThroughNodeMaker - ObsInNode + ObsInFlowNode ObsInNodeMaker StarfitFlowNode StarfitFlowNodeMaker diff --git a/doc/api/hydrology.rst b/doc/api/hydrology.rst index fe62ef07..3b2544a8 100644 --- a/doc/api/hydrology.rst +++ b/doc/api/hydrology.rst @@ -1,6 +1,6 @@ .. currentmodule:: pywatershed - + ---------- Hydrology ---------- @@ -13,7 +13,10 @@ Hydrologic model components. PRMSCanopy PRMSSnow PRMSRunoff + PRMSRunoffNoDprst PRMSSoilzone + PRMSSoilzoneNoDprst PRMSGroundwater + PRMSGroundwaterNoDprst PRMSChannel Starfit diff --git a/doc/index.rst b/doc/index.rst index e38a26ea..32d5ad64 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -66,24 +66,26 @@ and the `extended release notes `__ (NHM, Regan et al., -2018). +2018): Dunnian flow in Soilzone is 2-way coupled to PRMSRunoff, preferential flows is implemented +in PRMSSoilzone, and depression storage can be optionally selected (across PRMSRunoff, PRMSSoilzone, +and PRMSGroundwater). Version 2.0.0 also includes capabilties to translate :class:`PRMSChannel` simulations -into 1-D diffusive wave simulations in MODFLOW 6's development branch. +into 1-D diffusive wave simulations in MODFLOW 6's development branch using :class:`MmrToMf6Dfw`. For more information on version 2.0.0 see the `release notes `_ -and the `extended release notes `_. +and the `extended release notes `_. ============================================ -Upcoming development in 2024 +Upcoming development ============================================ The broad goal is to reproduce GSFLOW coupling using the MODFLOW 6 API. This will include gridded configurations and cascading flows. diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 1a64e8e4..2b64ce66 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -12,9 +12,9 @@ What's New np.random.seed(123456) -.. _whats-new.1.2.0: +.. _whats-new.2.0.0: -v2.0.0 (Unreleased) +v2.0.0 (14 November 2024) --------------------- New Features @@ -23,7 +23,7 @@ New Features combine different kinds flow solutions in arbitrary order on a "flow graph". The accompanying base classes :class:`FlowNode` and :class:`FlowNodeMaker` are introduced along with their subclasses for modeling - :class:`PassThroughNode`\ s, :class:`ObsInNode`\ s (flow replacement by + :class:`PassThroughFlowNode`\ s, :class:`ObsInFlowNode`\ s (flow replacement by observations with sink and source tracking in mass balance), :class:`PRMSChannelFlowNode`\ s, and :class:`StarfitFlowNode`\ s. A new example notebook, @@ -37,26 +37,21 @@ New Features conditions. A new notebook runs the Delaware River Basin using MF6 DFW: `examples/07_mmr_to_mf6_chf_dfw.ipynb `__. (:pull:`290`) By `James McCreight `_. -- The depression storage option for PRMSRunoff is implemented and tested. - (:pull:`279`) By `James McCreight `_. - No depression storage subclasses are available for PRMSRunoff, PRMSSoilzone, and PRMSGroundwater by adding "NoDprst" to the end of the names. Depression storage is switched off in sagehen_5yr and in new nhm_no_dprst configurations. (:pull:`288`) By `James McCreight `_. -- Dunnian flow is implemented (in PRMSSoilzone) and tested for sagehen_5yr - whereas it was effectively off in all NHM configurations and its effect - on the sroff variable (in PRMSRunoff) incorrect. +- Dunnian flow is implemented (in PRMSSoilzone) and tested for sagehen_5yr. (:pull:`288`) By `James McCreight `_. -- Preferential flow is implemented (in PRMSSoilzone) and tested for sagehen_5yr - whereas it was effectively off in all NHM configurations. +- Preferential flow is implemented (in PRMSSoilzone) and tested for sagehen_5yr. (:pull:`288`) By `James McCreight `_. - Control instances have a diff method to compare with other instances. (:pull:`288`) By `James McCreight `_. - Feature to standardize subsetting input data (parameters and forcings) in space and time either from file (:func:`utils.netcdf_utils.subset_netcdf_file`) or in memory (:func:`utils.netcdf_utils.subset_xr`). - (:pull:`304`) By `James McCreight `_. + (:pull:`304`) By `James McCreight `_. Breaking Changes ~~~~~~~~~~~~~~~~ diff --git a/environment.yml b/environment.yml index 4814ac39..a9649563 100644 --- a/environment.yml +++ b/environment.yml @@ -5,7 +5,6 @@ channels: - pyviz - bioconda dependencies: - - bash_kernel - cartopy - dataretrieval - contextily @@ -18,8 +17,6 @@ dependencies: - holoviews - hvplot - ipython - - ipywidgets - - nb_conda_kernels - nbconvert - netCDF4 - networkx diff --git a/environment_w_jupyter.yml b/environment_w_jupyter.yml index 81077bd3..f27880f7 100644 --- a/environment_w_jupyter.yml +++ b/environment_w_jupyter.yml @@ -5,7 +5,6 @@ channels: - pyviz - bioconda dependencies: - - bash_kernel - cartopy - dataretrieval - contextily @@ -21,7 +20,6 @@ dependencies: - ipywidgets - jupyter - jupyterlab - - nb_conda_kernels - nbconvert - netCDF4 - networkx diff --git a/pywatershed/base/flow_graph.py b/pywatershed/base/flow_graph.py index 47a7a2c8..0727e0b9 100644 --- a/pywatershed/base/flow_graph.py +++ b/pywatershed/base/flow_graph.py @@ -182,7 +182,7 @@ class FlowGraph(ConservativeProcess): :func:`prms_channel_flow_graph_to_model_dict` and :func:`prms_channel_flow_graph_postprocess`. - For developers looking to add new :class:`FlowNode`s, please read the + For developers looking to add new :class:`FlowNode`\s, please read the :class:`FlowNode` base class code and also the code for :class:`FlowNodeMaker`. diff --git a/pywatershed/hydrology/prms_soilzone.py b/pywatershed/hydrology/prms_soilzone.py index 578186a4..e328dc57 100644 --- a/pywatershed/hydrology/prms_soilzone.py +++ b/pywatershed/hydrology/prms_soilzone.py @@ -35,6 +35,10 @@ class PRMSSoilzone(ConservativeProcess): Techniques and Methods, 6, B7. `__ + Note that as of pywatershed version 2.0.0, pref_flow_infil_frac is a + required parameters which is optional in PRMS. Specifying zeros for all + HRUs gives the same behavior as not supplying the parameter to PRMS. + Args: control: a Control object discretization: a discretization of class Parameters diff --git a/pywatershed/hydrology/prms_soilzone_no_dprst.py b/pywatershed/hydrology/prms_soilzone_no_dprst.py index 31751547..b5968ebf 100644 --- a/pywatershed/hydrology/prms_soilzone_no_dprst.py +++ b/pywatershed/hydrology/prms_soilzone_no_dprst.py @@ -22,6 +22,10 @@ class PRMSSoilzoneNoDprst(PRMSSoilzone): Techniques and Methods, 6, B7. `__ + Note that as of pywatershed version 2.0.0, pref_flow_infil_frac is a + required parameters which is optional in PRMS. Specifying zeros for all + HRUs gives the same behavior as not supplying the parameter to PRMS. + Args: control: a Control object discretization: a discretization of class Parameters