Skip to content
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

/file_formats support #1

Open
m-mohr opened this issue Jul 19, 2021 · 7 comments
Open

/file_formats support #1

m-mohr opened this issue Jul 19, 2021 · 7 comments
Assignees

Comments

@m-mohr
Copy link
Member

m-mohr commented Jul 19, 2021

Right now /file_formats doesn't expose any file formats. Is that intentional?

@jdries
Copy link
Contributor

jdries commented Aug 5, 2021

No, can be fixed. I propose to return the union of file formats and their parameters. (And evaluate how that looks.)
Backends will then throw an error if a certain format or parameter is not supported, which will point to further alignment needs.

@soxofaan
Copy link
Member

Just pushed an initial/naive implementation (union of formats)

Two questions that already came up:

  • VITO backend defines output format NetCDF, while EODC defines netCDF. Current implementation of aggregator is case sensitive and will list both NetCDF and netCDF, which is not ideal of course.
    • openEO spec says "Format names and parameters MUST be fully aligned with the GDAL codes if available", and "NetCDF" is listed there as netCDF so I guess the quick fix is to change to netCDF in VITO backend.
    • Still, it would be better to enforce that format names are to be handled in case insensitive manner. API at the moment just notes "Format names are allowed to be case insensitive throughout the API." which is not very enforcing
  • for GTiff format VITO lists a couple of (custom) parameters (ZLEVEL, tile_grid, feature_id_property, sample_by_feature), while EODC has none. I'm not sure at the moment what the best approach of merging this is.

@soxofaan
Copy link
Member

(internal ticket EP-3984)

@m-mohr
Copy link
Member Author

m-mohr commented Aug 16, 2021

I can confirm that this works on the homepage: https://docs.openeo.cloud/file-formats/

I agree that VITO should expose NetCDF as netCDF. If the VITO implementation is API compliant, this shouldn't break anything as format names must be accepted case-insensitive anyway in processes etc.

Still, it would be better to enforce that format names are to be handled in case insensitive manner. API at the moment just notes "Format names are allowed to be case insensitive throughout the API." which is not very enforcing

What do you mean?

for GTiff format VITO lists a couple of (custom) parameters (ZLEVEL, tile_grid, feature_id_property, sample_by_feature), while EODC has none. I'm not sure at the moment what the best approach of merging this is.

Long-term these should be aligned between backends and for those which are only present on one back-end maybe only list what is available on both? For now, maybe just add something to the description that states "Parameter only available for collections provided by VITO and Sinergise"?

@soxofaan
Copy link
Member

API at the moment just notes "Format names are allowed to be case insensitive throughout the API." which is not very enforcing

What do you mean?

sorry I was looking at the master version of the spec, we already addressed my concern in Open-EO/openeo-api#371 :

    Format names MUST be accepted in a *case insensitive* manner throughout the API.

soxofaan added a commit to Open-EO/openeo-geopyspark-driver that referenced this issue Aug 16, 2021
soxofaan added a commit that referenced this issue Aug 16, 2021
Also give first backend higher priority when merging
@soxofaan
Copy link
Member

The netCDF/NetCDF issue should now be addressed.

@soxofaan soxofaan changed the title No file formats? /file_formats support Aug 18, 2021
@soxofaan
Copy link
Member

soxofaan commented Aug 18, 2021

basic implementation is in place now

Still open or up for discussion, but lower priority

  • currently the union of file formats across backends is returned, for pragmatic reasons. However in principle the intersection should be taken?
  • regarding format parameters: current implementation takes parameters from first/primary backend (VITO at the moment). In principle the intersection of parameters should be taken?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants