-
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
Create external timeseries table specific for concentration timeseries results #1125
Comments
After a discussion with @visr, this is an attempt to have a generic design for all issues involved (#1123), with a scope of waterquality; so substance + concentrations. NeedFor any substance/concentration calculations (whether in Delwaq or internal), we need:
DesignTo add any number of substances and their concentrations, we think a long format works best, as we can hardcode the column names and thus use them in our code. Any table (1,2 or 3) would thus have at least the following columns.
Any substance name will do, it can be a valid substance code used in Delwaq, where any other name is accepted as a tracer like substance. As long as we do passive tracing, this (and the unit of concentration) doesn't matter. For active tracers, we might need to be clearer about the allowed substances (and prefix tracers or similar solutions) and the unit of concentration (SI). The above table is enough to implement 1 and 3b, and could be merged(!) as one in a name like Case 2 requires more schemas. We can repeat the above table as |
Hi @evetion, For the (vertical) basin fluxes, I would recommend a table |
For what it's worth, I'm having trouble following this. The Fews adapter could just append to the Time table, with newer timestamps? Ribasim will figure out which ones to use based on start and end time. (This is a bit stream-of-consciousness-y, please indulge me:) I feel it's probably smart to make a clear distinction between the concentration as a boundary for the control to act upon, and actually simulating conservative solute /tracer transport in Ribasim. As a boundary, there's no need for an initial condition right? The concentration at any given moment is just defined by the transient table. In case of simulating transport, it's another state. In that case, we do need an initial state (just like the basin levels). And indeed, we need to concentrations per boundary. But do you really need to mix both use cases? Dumb question maybe: Why not support the external concentrations (Delwaq results) as just an abstracted ExternalTimeSeries (or whatever). It's just a lever for control; solute concentrations are obviously relevant, but it could also be something else (electricity price). Anyway, I guess my suggestions are:
E.g. for the basin concentrations:
(And bikeshed about whether "substance" should be called "species" or w/e, and the table name) |
For sure, Ribasim will be able to pick the right moment in time from a An alternative could be that we skip the notion of a state file and transfer the State as a (set of) timeseries value handed over by Fews (via NetCDF-->Arrow). This is pretty easy for Fews config to cope with, and it simplifies the adapter (now it conly becomes a file converter NetCDF-->Arrow, Shp+CSV-->gpkg). In that case we can have a
Indeed boundary concentrations can just be a transient table. I would recommend to call these something like |
The output from Delwaq is a concentration timeseries (possibly multiple per substance) per basin. We should be able to access it from a control node.
Relates to #520, but in discussion with Martijn, I propose to expand the Basin with an extra table, instead of having a new External node that somehow links to the same basin for a better user experience.
Added complexity, these fields would ideally be re-used in the online coupling via BMI later on.
The text was updated successfully, but these errors were encountered: