-
Notifications
You must be signed in to change notification settings - Fork 8
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
Time ordering of Coverages in a Collection #170
Comments
Thanks for your question and the supporting info! I think I understand the use case, and I can see that it is an attractive solution to "factor out" the time dimension into the CoverageCollection. However, this does bring the potential for the information in the Collection to be inconsistent with its constituent Coverages, as the information in the Collection would be redundant. Although it is perhaps not elegant to traverse the Coverages, do you have reason to believe that this causes significant problems with efficiency? I would think that if the Coverages are all in memory, it would be just a few lines of code and a quick operation to extract the timestamps. You might even be able to do it with JSONPath, although I've never tried it! |
thanks, justification: my feeling is it is more resource-consuming to put them in order than traverse. |
No, there is no ordering requirement on the Coverages in a Collection. But I could imagine having some kind of a tag on the Collection that asserts that the Coverages are in order of time. (This could be a kind of restrictive profile, as you suggest in your original post.) I'm still not sure it would be worth the effort, unless there was evidence that the indexing/resorting process really is a bottleneck in a system. Would the Coverages not usually be in time order in your case anyway, as that would seem to be the natural ordering that a system would use? |
Yes, that would be natural ordering, while that assumption on the client application could be faulty:). ok, do not want to be stubborn on that. we'll put it in our case in the template description for the moment:) cheers |
Great! I think your proposal is a good idea, but I'm just a bit wary of introducing redundant information into the structure. If you face practical issues with the current spec, we can certainly return to this. |
@pzaborowski @jonblower If the coverages are expected to be ordered in time, surely then time is being used as a dimension/coordinate? Of course it could be a second or multiple time dimension, different from a declared time dimension. Or are the timestamps actually coverage values, along with other values, in a multivalue rangeset? |
@chris-little There is no dimension (of any kind) at the level of the collection, which is really just an array of coverages with a bit of extra metadata. The dimensions are on the Coverages, and of course at the level of the Coverage the time dimension is (probably) ordered. |
@pzaborowski there hasn't been further discussion of this issue for a while. Are you happy if we close this, and we can always re-open it if necessary? For summary, I think the options identified were:
Personally I'm in favour of doing nothing because I'm keen to keep the spec minimal, but I'm aware this isn't too helpful for you! If you would like to pursue one of the other options, it would be great if you could make a proposal. |
(For ease of future discovery, it might be worth renaming this issue to "Time ordering of Coverages in a Collection" or something like that.) |
In the particle tracking use case and drift models, the usual outcome is set of:
Here is the covjson schema compliant second representation as CoverageCollection of MultiPoint, each Multipoint at different time:
ILIAD-ocean-twin/data_access_api#12
Traversing through all the Coverages/frames to know what are the timestamps and to order them does not feel like elegant.
So example has additional time domain (not breaking the schema nor mentioned in spec as MAY for CoverageCollection) on the collection level where all the timestamps are listed and sorted. It is redundant to timestamps in the Coverages while allowing to construct timescale, potentiallyy faster (all timestamps in one block, no need to traverse all the Coverages, esp they does not have to be in order).
Is that a good case to say what is the domain of the coverage collection if exists?
Is it a good candidate for #161 type profile?
The text was updated successfully, but these errors were encountered: