Description
First off, thank you all for your hard work! We're using STAC with great success and it's been a terrific tool for organizing our data.
Next, sorry @m-mohr for missing your response and question in #1255. My bad and I see this has already gone ahead. I'm a bit concerned that #1280 introduces a logical flaw into the spec which is that it makes it impossible to represent a time series where every instant in time is covered by exactly one item. Feel free to close this if you don't think the topic needs any more discussion, but I just wanted to advocate for an exclusive end_datetime once more.
@m-mohr You raised this question in #1280:
Let's say I have a capture that takes two seconds: 2022-01-01T00:00:00Z - 2022-01-01T00:00:02Z (that's what I get from the source metdata).
How am I supposed to make this exclusive?
In this case, the end date in the source's metadata is already exclusive isn't it? The period [2022-01-01T00:00:00Z,2022-01-01T00:00:02Z) with an exclusive end date has a duration of exactly 2 seconds.
But what happens if there is another capture for the next 2 seconds of 2022-01-01T00:00:02Z - 2022-01-01T00:00:04Z? If the end date is inclusive then two items claim to cover the 2022-01-01T00:00:02Z instant in time whereas an exclusive end date handles it cleanly. If the end date is inclusive then you can't have a time series with exactly one item for every instant in time.
From #1280
[From @LiamBindle] Just wanted to voice my support for the end date being exclusive. I find it easier to work with intervals that have an exclusive end date because it means a collection of items can have complete temporal coverage without needing to tweak the end date by an undefined amount of time (e.g., a second or a microsecond).
[From @m-mohr] Isn't that an argument for having the end date inclusive? If it's exclusive and you create data (i.e. this is not the search use case), then you need to tweak the end date by an undefined amount of time.
I don't think so. Say you have an item that represents an average for the year 2018. When start is inclusive and end is exclusive you have start_datetime="2018-01-01T00:00:00.000000000Z" and end_datetime="2019-01-01T00:00:00.000000000Z". If the end date is inclusive then you need to subtract an undefined amount of time (1ns?) from the ending date. I.e., should it be end_datetime="2018-12-31T23:59:59.999999999Z"?