Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Lake HRU handling logic to all emulators #352

Open
huard opened this issue Mar 11, 2024 · 1 comment
Open

Add Lake HRU handling logic to all emulators #352

huard opened this issue Mar 11, 2024 · 1 comment

Comments

@huard
Copy link
Collaborator

huard commented Mar 11, 2024

Description

One of RavenPy's objectives is to simplify the setup of semi-distributed model configurations. Those configuration will typically include lakes, but not all emulators are designed to handle them.

We propose to add basic lake-related processes in each emulator that doesn't have something built-in already. This would change nothing to outputs when models are run in "global" mode.

TODO: Find the minimal configuration change that can be applied to emulators missing lake HRU handling.

@lou-a
Copy link
Collaborator

lou-a commented Mar 26, 2024

There are multiple different ways to represent lakes in Raven model emulators, and configurations are model-dependent. I have run several tests with HBV-EC, which is a unique model in that "HBV treats all landscapes as if they have some presence of lakes, but does not explicitly treat LAKE HRUs" (Raven manual v3.7).

(a) To implicitly handle the presence of lake HRUs in HBV-EC (the bottom soil layer stores excess water and acts as a delay to mimic the presence of lakes), all we need to do is adding this to the emulator:

class LakeHRU(HRU):
land_use_class: str = "WATER"
veg_class: str = "WATER"
soil_profile: str = "LAKE"
aquifer_profile: str = "[NONE]"
terrain_class: str = "[NONE]"
hru_type: str = "lake"

The land use and vegetation classes may be slightly different and depend on the user's HRU shapefile: "All Lake HRUs should be assigned (1) a LAKE soil profile (except wetlands), (2) a WATER/LAKE land use type and (3) an OPEN/BARREN (or similar) vegetation type with zero LAI" (Raven manual v3.7).

For other models (which do not treat all landscapes as if they have some presence of lakes), hydrological processes may additionally need to be altered to handle lake evaporation and baseflow from the lake storage to the river network properly.

(b) To explicitly handle the presence of lake HRUs and treat them as natural lakes or managed reservoirs with their own storage, more changes are needed.

As this is very model-dependent and to not diverge from the original emulators, my suggestion would be to keep the emulators as they are. For the model emulators that do not handle lake HRUs, we could add a more detailed error message when the model fails. Example error message: "This model does not explicitly treat lake HRUs. Different options exist to represent lakes and are discussed in the Raven manual (see section 4.5 for manual v3.7). You can find examples of the HBV-EC emulator that has been altered to handle lake HRUs here: ". I would be happy to share my examples in a public folder somewhere (they are now on PAVICS).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants