-
Notifications
You must be signed in to change notification settings - Fork 18
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
Source of truth for band (dimension) metadata #86
Comments
To clarify that directly: It's the way it is because STAC is designed this way. Some things overlap, because the data cube extension can't define all details about some specific fields. cube:dimensions should NEVER diverge from other metadata for the same collection. I'm currently trying to improve the data cube extension for STAC in PR radiantearth/stac-spec#607 though.
cube:dimension is your data you need to look for when doing data cube related operations. Look at eo:bands if you need further information to work with specific bands.
Yes, you are correct. Not an optimal constellation, but hard to avoid as common names are not necessarily unique.
Indeed, reduce doesn't know anything about bands, just dimensions. That's something different than you do in filter_bands.
I don't think so. The only redundancy (for bands) are the band names. But cube:dimensions is basically only an index of the names available in the bands, which you can't get easily without walking through the whole bands array. So expect for #77, I don't know how I could really improve the situation. On the other thing, I don't really see a big problem here. Maybe it needs better documentation in some places. In this case, please tell me at which place you'd like to see a clarification. |
I was afraid that would be the answer :)
Indeed, it can probably be alleviated with documentation, e.g.:
|
I just recently changed the API description in a way that the keys in objects are named. For example, the cube:dimensions keys is now named
Probably not in the process description. It seems I need to find a place where I can document the connection between processes and the discovery metadata for implementers. I feel that making this connection for the user is more up to the client. |
Transferred as I see more room for improvement for the processes, not the API itself. |
Made minor clarifications. |
While working on band (metadata) related issues in python client and driver, I'm bit confused about the "best" source to find band metadata:
from the collection metadata example in the openEO spec:
There is:
properties > cube:dimensions
which can have a dimension of type "bands", called "spectral" in the example, listing the names of the bands undervalues
properties > eo:bands
which is a list of objects with band name, common name and even wavelengthThis metadata is used in processes, e.g.:
filter_bands
process there is a (recommended) argumentcommon_names
, for which the common names fromproperties > eo:bands
must be used (I assume, I'm not sure if this is specified somewhere).reduce
process there is adimension
argument, for which a key from from theproperties > cube:dimensions
object should be used (as specified in spec)Is there a way to better centralize this band/dimension metadata and have a single source of truth without duplication/redundancy?
related: Open-EO/openeo-api#208, Open-EO/openeo-python-client#76, Open-EO/openeo-python-client#77, Open-EO/openeo-python-client#93, Open-EO/openeo-python-driver#25
The text was updated successfully, but these errors were encountered: