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

to_stac for creating STAC catalog from HydroMT catalog #405

Closed
Jaapel opened this issue Jun 15, 2023 · 6 comments · Fixed by #617
Closed

to_stac for creating STAC catalog from HydroMT catalog #405

Jaapel opened this issue Jun 15, 2023 · 6 comments · Fixed by #617
Assignees
Labels
Enhancement New feature or request
Milestone

Comments

@Jaapel
Copy link
Contributor

Jaapel commented Jun 15, 2023

Kind of request

Adding new functionality

Enhancement Description

I want to share my HydroMT catalog with STAC users.

This can either be performed by making a HydroMT catalog readable with STAC APIS, however, this would complicate HydroMT users.
Instead, if I can create a STAC catalog using some HydroMT python function (and perhaps a CLI option?), I can easily create and update my STAC catalog using a HydroMT catalog.

About STAC spec: https://stacspec.org/en/about/stac-spec/

Use case

I have a HydroMT catalog that should be readable via STAC.

Additional Context

No response

@Jaapel Jaapel added Enhancement New feature or request Needs refinement issue still needs refinement labels Jun 15, 2023
@DirkEilander
Copy link
Contributor

I don't remember discussing this option, but that would be interesting addition as well especially to use a STAC browsers to search the data. The first step to do this would be to identify the minimum required information for a STAC catalog entry and see if that is compatible with the HydroMT data catalog and/or whether we can get this from the data itself. Also, to my mind this functionality would fit better in a to_stac for the DataCatalog class.

@Jaapel Is that also what you had in mind? If so, could you point us to a description of STAC which lists the minimal required fields. And if you see more use cases could you add these to the description.

@Jaapel
Copy link
Contributor Author

Jaapel commented Jun 19, 2023

Ok I thought we discussed both the STAC -> HydroMT catalog and HydroMT catalog -> STAC approaches. This one is about the latter. About the spec of STAC: https://stacspec.org/en/about/stac-spec/
There is also a stac-validator in python, maybe good for writing tests? https://github.com/stac-utils/stac-validator

@DirkEilander DirkEilander changed the title from_yaml for creating STAC catalog from HydroMT catalog to_stac for creating STAC catalog from HydroMT catalog Jun 19, 2023
@alimeshgi alimeshgi added this to the Q3 milestone Jul 17, 2023
@savente93
Copy link
Contributor

So I've looked into this and the stac spec requies that you describe spatial and temporal bounds for stac items which I'm not sure we have for all stuff that's in hydromt. Perhaps this is a good thing to add into hydromt as well, but that will require more work. However, this could also go well together with the work of #356 Otherwise I'm not sure this is possible or at least feasable without that, so we might have to reject this after all. @hboisgon @DirkEilander what do you think?

@DirkEilander
Copy link
Contributor

Those would indeed be nice attributes to add. However it would strictly speaking not be necessary if we are ok with inferring this information from the datasets when creating the stac items. I propose to add the attributes to the current data catalog specs and make a method that can infer these from the data.

@alimeshgi alimeshgi modified the milestones: Q3, Q4 Aug 30, 2023
@Jaapel
Copy link
Contributor Author

Jaapel commented Aug 30, 2023

Don't forget that STAC enabled extensions: https://github.com/radiantearth/stac-spec/tree/master/extensions#overview
This basically means that you can add your domain metadata (for for example hydrology) and have STAC services (e.g. catalogues and webservers) interact with your extension.

@savente93 savente93 self-assigned this Oct 5, 2023
@savente93
Copy link
Contributor

My other issues are blocked, so I'm picking this up next.

@savente93 savente93 removed the Needs refinement issue still needs refinement label Oct 16, 2023
@savente93 savente93 mentioned this issue Oct 25, 2023
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants