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

Possible ways to add RWH function #94

Open
zzzzy9 opened this issue Mar 26, 2024 · 1 comment
Open

Possible ways to add RWH function #94

zzzzy9 opened this issue Mar 26, 2024 · 1 comment

Comments

@zzzzy9
Copy link
Collaborator

zzzzy9 commented Mar 26, 2024

possibly subclass of Surface would make more sense
or a subclass of Storage or a subclass of Demand with varying capacity (e.g., TimevaryingDemand in Lea_GW setup)

@barneydobson
Copy link
Collaborator

barneydobson commented Mar 26, 2024

If you are implementing RainwaterHarvesting (RWH) separately and just want to create a timeseries of demand then TimevaryingDemand seems appropriate.

If you want an explicit representation within your WSIMOD model that you can dynamically change - something else is needed. I'd probably be inclined to make a subclass of Surface since a land node already has access to precipitation and ImperviousSurface with which there will be interactions.

If it is just for garden irrigation then it makes sense to be linked with GardenSurface and can probably be handled entirely in that subclass.

If there are indoors uses - you probably want the following:

  • Subclass of Land that introduces the handler - self.push_set_handler[("Demand", "RWH")] = <new_function>.
  • New_function should pull from ImperviousSurface. You will probably need some state variable to track amount pulled, since Land.run is called after Demand.create_demand in default orchestration.
  • Subclass of ResidentialDemand - with a Tank object, that calls pull for RWH to the Land.

Though possibly if you move the RWH Tank into the new Land node, you don't need to worry as much about tracking/interfering with orchestration etc.

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