-
Notifications
You must be signed in to change notification settings - Fork 5
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
recipes that require input from different MIP tables not supported by forcing.generate() #418
Comments
Yeah it would be nice to fix this so we can use variables from multiple mip tables. I think defining it as a dict (mapping variables to mips) could be a good way to structure in the input. For wflow this would be the definition by the way: "mip": {"tas": "day", "pr": "day", "orog": "fx", "rsdt", "CFday"}, |
Will you make the change and PR? Or should I? |
But the forcing object knows which vars it needs, right? By specifying vars explicitly, will the user then overwrite the forcing object internals? |
Yeah actually for wflow it should work fine: partial.add_variables(["tas", "pr", "psl", "rsds"])
.add_variable("orog", mip="fx", start_year=False, end_year=False)
.add_variable("rsdt", mip="CFday") However, the UserForcing classes currently do not support this yet. This makes adding another generic forcing (like the Makkink forcing) more difficult, as it only allows variables from one MIP table. |
doesn't this assume that all data sources have the same variables in the same MIP tables, ie. "orog" must always be in "fx". Is that universally true? If ERA5 is hosted through ESGF than orog is in the same table as all the other variables. Wouldn't allowing the use to specify not be better? (potentially as an overwrite?) |
This is fixed now, right? If so: @BSchilperoort will you close this? |
Yes. That should always be true. Variables can be in multiple tables, but that is generally only when these are on different frequencies (hourly, daily, monthly).
Well it works well for the complicated recipes, but not for the newer custom forcings (like the Makkink forcing). I'll keep it open for that use case. |
foricing.generate() makes the assumption that all the variables that the recipe needs are available in a unique set of information contained in a dict, for example:
followed by
When generating forcing for WFLOW we discovered that sometimes some variables are not stored in the same MIP table as others. (Case in point:
orog
).Suggested fix (though I would not know how to implement) would be to allow a nested dict in the dataset specificy this for expert users, for example:
This could be an option for any field in the dict. When a single string is provided this automatically the value for all the variables.
The text was updated successfully, but these errors were encountered: