How to omit a process without providing the relevant output for downstream processes? #334
-
I have a model that includes the SolarGeometry, Atmosphere, Canopy, Runoff, and Soilzone processes. The Snow process is omitted because snow is negligible in my area of interest. I know I can omit the Snow process from the supplied process list, but downstream processes still expect the relevant fluxes and state variables, e.g., from files on disk. I can create these files and fill them with dummy data representing a system without snow, but that is cumbersome and error-prone. Also, for our large model (30 years, daily time step, with over 100,000 HRUs), this is very costly. Is there an easier way to tell Pywatershed to internally use dummy data representing an omitted process, as required by downstream processes? I saw in the code that there is a |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Cas, this is a good question. I was a bit off in my previous response, which you can ignore. I forgot that, while Following on Cas' question, here is a proof of concept about how to fake required process inputs. While Below, the full NHM model is run on the Delaware River Basin in June. It is checked that there is no snow. Then a submodel which drops THe submodel is run and its outputs are verified to match the outputs of the full model run, proving that the we can quite easily fake required inputs for model processes not provided elsewhere in the model or externally. This example is intended to be run in the |
Beta Was this translation helpful? Give feedback.
Cas, this is a good question. I was a bit off in my previous response, which you can ignore. I forgot that, while
Adapters
can be passed to individual processes, usingModel
really only allows files for inputs at the current time. I happened to be working on something else that was a perfect starting point for doing a hack based on what you are looking for. It was pretty straight forward. I have some comments in the preamble to the notebook gist that I'll copy here:Following on Cas' question, here is a proof of concept about how to fake required process inputs.
While
Adapters
or inputs toAdapters
can be passed to individual processes, usingModel
really only allows files for inputs at …