-
Notifications
You must be signed in to change notification settings - Fork 23
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
timestep, timehorizon, timeseries need new place and def #267
Comments
delete to leave out in first release |
I don't like the term temporal region. I just googled it to see if thats something you can say in English and its actually a term for a part of the brain ;-) |
temporal region is an already implemented class of the bfo with the definition: "A temporal region is an occurrent entity that is part of time as defined relative to some reference frame". |
I agree, classes |
on further thinking I think time step should actually be a quantity value? |
I think there are two perspectives on time steps: on the one hand a description of a model or scenario (e.g. "how many time steps of what duration does this model calculate?"), and on the other hand the description of data (e.g. "to which time step does this specific datum belong?"). Since both need to be accommodated, the model description either needs to list all time steps that are calculated -- tedious for 35040 15-minute time-slices to a year -- or we need two different "time step" classes. For the "data perspective", a time step is defined by start and end, because it is a fixed moment in time (or rather, a region of time). The denomination of the time steps is arbitrary and differs between fields. E.g. in meteorology, observations are designated by the end-time of the time interval (so for 15-minute time steps, 08:15 would be the observations between 08:00 and 08:15, if I remember this discussion correctly @carstenhoyerklick), the IPCC data sets for the Assessment Reports uses the mid-point (so 2035 refers to data from the beginning of 2033 to the end of 2037). So
I don't know what the crucial characteristics for the "model perspective" are. I guess number and size of time steps. I just want to point out that these need not be homogeneous. Our model uses five-, ten- and twenty-year time steps at the same time (because it is computationally cheaper and the temporal resolution is important for the short term, but not so much when you look 100 years out). |
Related to #474. |
these are two perspectives, yes, one that looks at a single time step and one that looks at all time steps in a model. The underlying concept of „timestep“ remains the same though and should be treated as one concept. That one can have the start and end time you proposed which are used directly for your data perspective. It can also have a duration property, so to describe your model perspective we can just relate the model to the time steps, eg „model has x instances of the timestep class“ and those instances have y duration. So
|
No, I think
|
This makes me cringe a little, because |
use case would be that instead of giving start end end time of every timestep used in a model when looking at the model view we can just state the duration (that is typically the same for all). |
One doesn't need a class for that. One could also just give the model
Fixed. 😎
I'm not sure if this has to be addressed in the ontology. Users will always find a way to define nonsensical data. If a "generic time step" having only duration proves useful, then go for it and make the attributes optional. If not, personally, I would default to |
Ok, here comes a differentiation to not mix up
We need
Do you agree? |
I for one do in principle agree, but this is not sufficient. tl;dr: Time series are not necessarily homogenous (composed of time steps of identical duration), nor continuous. Therefore a time series is not always completely identified by
If "has part some A concrete example: the REMIND model uses 19 time steps that vary between five and 20 years in duration. We don't care about the precise start and end times and durations in our work, especially not down to the second, but this would be the formal definition.
Other IAMs do this differently. E.g.
(From the Model Diagnostic Exercise – Study Protocol of the ADVANCE Project) The Assessment Report data of the IPCC on the other hand is not specific about what a time step like 2030 actually refers to. But one interpretation (held by the people at IIASA, who are hosting the data) is that it denotes that specific year, in which case the time series is not continuous, but has ten-year gaps in-between:
I still don't see the use for the generic
Sure. |
I agree. Any ideas for further relations?
Indeed. If the relation is has part some
What would be your choice? |
|
So-called "attributes" (not really an ontological term, though) are implemented also as classes (often as |
How do you plan on representing the hub height of a wind turbine (to use a popular example from the dev meetings)? Is there going to be a class for it, with subclasses for every possible hub height? |
Yes, there is going to be a class |
My understanding is that data like that will not be stored in the OEO but in the OEP database as one major use case of the OEO is to annotate the data in the OEP. |
Ping @christian-rli : Any thoughts? |
I would go with the the time step, as especially for irradiation you need to know when this time interval was or is, e.g. if you need to relate it to solar geometry.
In an ideal world yes, if we could force everyone to and that would be perfect. The second best ist let them define the and the , then it would be equivalent. So it is alternatives. |
🤔
switch (timestamp_meaning) {
case TS_BEGIN:
start_time = timestamp;
end_time = timestamp + duration;
break;
case TS_END:
start_time = timestamp - duration;
end_time = timestamp;
break;
case TS_MIDDLE:
start_time = timestamp - duration / 2;
end_time = timestamp + duration / 2;
break;
case TS_INSTANTANEOUS:
start_time = timestamp;
end_time = timestamp;
break;
} and anybody who can't manage that will fail several times over in other areas with the ontology.
Good point. I yield to the expert ;) |
Sorry I edited directly on GitHub, .. I misinterpreted the coding style. I am mostly convinced, with the only exception, we can force for new data sets, but what do we do if want to annotate old existing data sets? Convert them to |
p.s. also holds true for platforms that already regulary publish data as transparancy plattforms. We would need to force them to different publishing formats. |
You seem to assume some automatic connection between the data set and the ontology. As I understand it, all these connections have to be explicitly states, so "old" and "new" makes no difference.
What do these data sets look like? I don't know, but I imagine something like
with meta data attached specifying that "time stamp" means "the middle of the time step" and "time step duration is 1 hour". Then there has to be a link detailing the connection between the data item "11:30" and the ontology element "a I'm not sure how this connection is to be made (see LOD-GEOSS Redmine, maybe @Ludee can calrify), but I don't see any difference between "old" and "new" data sets. If the data set had the format
there still would be to have a link saying "this specific line concerns "a |
Maybe this might need a wider discussion or explanation on a OEO dev call. My understanding (that might be incorrect) is that the ontology is agnostic to the format data is in, but used to annotate the meaning of the data. But if different formats are needed, isn't (automatic) republishing in "better" formats a core feature of the Databus? ;) |
To my understanding, we may need all the definitions be able to anntoate all the data, also before republishing it. To be able to interprete the time information, we may need also the |
What's also missing is a concept for time standards like UTC, CET, ... |
I think this is a good way wich |
Currently we have (among others) the following axioms for
In order to make We also need definitions for the classes:
|
In General, it sounds very reasonable, only that the second option also needs a |
|
Yes, but also |
this issue has 42 comments. Maybe it is a good idea to define an upper limit like 30 comments, after which an issue should be discussed in a dev meeting as it got too complex? |
I think, we are more or less done in this discussion. I think we may just call it to a close in the next dev meeting. |
For |
Maybe we can leave that part out at the moment. We can still implement it when we find someone who does use it. After we discussed this issue in dev-meeting 10, I will implement the part concerning |
Description of the issue
TimeStep, TimeHorizon and TimeSeries are currently variables and without a definition.
Ideas of solution
TimeStep: A TimeStep is a temporal region (?) stating the time between two calculations or measurements made.
TimeHorizon: A TimeHorizon is a temporal region (?) stating a specific point in time at which specific events will be reviewed or should end.
TimeSeries: A TimeSeries is a data set storing data indexed by time.
Workflow checklist
I am aware that
The text was updated successfully, but these errors were encountered: