-
Notifications
You must be signed in to change notification settings - Fork 45
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
Extend list of format codes. #467
base: master
Are you sure you want to change the base?
Conversation
Please consider #395 (comment) before merging. Thanks. |
I'd also like to propose these values that I am currently using to distinguish various OGC API / STAC API JSON structures: |
SWG meeting from 25.11.2024: Peter will add the codes that @fmigneault mentioned here and will merge the PR. |
@@ -123,6 +123,9 @@ The <<jsonschemavalidation,JSON Schema specification>> defines a https://json-sc | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/cql2-text-filter |cql2-text |Indicates that the string value is a filter expression encoded using the text representation of the https://docs.ogc.org/is/21-065r2/21-065r2.html[Common Query Language (CQL2)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/cql2-json-filter |cql2-json |Indicates that the string value is a filter expression encoded using the JSON representation of the https://docs.ogc.org/is/21-065r2/21-065r2.html[Common Query Language (CQL2)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/collection-id |collection-id |Indicates that the string value is a https://docs.ogc.org/DRAFTS/20-024.html#collection-description[collection identifier] (e.g. a feature collection identifier). | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/stac-collection |stac-collection |Indicates that the string value is a https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md[STAC collection]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got yet one more to propose while we are at it: stac-items
Just encountered that case earlier.
The idea being, that you can request the STAC Items themselves as application/geo+json
.
Because STAC Items have nested media-types as Assets, doing a request with only type
is ambiguous (is it the items or the assets they describe?)
ie:
some-input:
collection: https://server.com/stac/api/v1/collection/something
type: application/geo+json # Should this be the Items FeatureCollection, or a Vector file found in Assets?
format: stac-items # specifically asking for the items, needed to disambiguate from OA Features
some-input:
collection: https://server.com/stac/api/v1/collection/something
type: image/tiff; application=geotiff; profile=cloud-optimized
format: stac-collection # STAC Assets matching the COG media-type
# but why 'stac-collection'? -> properties to find them (therefore, not a OA Coverages)
filter: properties.eo:cloud_cover > 0.5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Relates to crim-ca/weaver#770
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In STAC thats named ItemCollection, so maybe use stac-itemcollection instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And what about a single item or a catalog? We discussed a longer list here:
#428
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we can align with OpenEO definitions if they actually mean the same.
I'm mostly trying to map with the results from pystac-client
operations CollectionClient, CollectionSearch, and ItemSearch.
For the moment format: stac-collection
would be the first, and stac-items
(=> stac-itemcollection
) would be the last (I think?). Is there other representations applicable in STAC?
What if the STAC Assets themselves should be provided, is there a stac-assetcollection
or similar that is already defined?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's nothing to align to in STAC right now, I think. There's just different specifications which for all there could be a usecase to pass them to processes.
In openEO we just have a generic STAC type (i.e. item, collection, catalog). ItemCollection is missing, not sure whether that's intentional: Open-EO/openeo-processes#523 (but it's also a slightly different usecase, I think).
We discussed that already in another issue, which listed potential options, I think. Here's the list of options again:
- stac -> The union of all of the types below, i.e. any STAC entity
- stac-item -> STAC Item Spec (static or /collections/:id/items/:id)
- stac-collection -> STAC Collection Spec (static or /collections/:id)
- stac-catalog -> STAC Catalog spec (static or API landing page)
- stac-itemcollections -> ItemCollection fragment in STAC API (/collections/:id/item or /search)
- (stac-api -> a STAC API landing page, could potentially be captured by stac-catalog?)
- (stac-collectioncollection -> What you get returned in /collections - but I don't have a usecase for this, so can be omitted)
Providing STAC assets on its own doesn't make a lot of sense to me as usually the assets depend on the STAC container, e.g. if an asset has a relativ link you need to get the self link. Also, STAC asset metadata inherits from the properties/top-level metadata since STAC 1.1. So I'd not define a separate stac-asset format. Better pass the asset key in addition to the STAC entity if you want to process a specific asset.
@@ -118,6 +118,14 @@ The <<jsonschemavalidation,JSON Schema specification>> defines a https://json-sc | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/geojson-feature |geojson-feature |Indicates that the object is an instance of a GeoJSON feature http://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureGeoJSON.yaml[(featureGeoJSON.yaml)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/geojson-geometry |geojson-geometry |Indicates that the object is an instance of a GeoJSON geometry http://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/geometryGeoJSON.yaml[(geometryGeoJSON.yaml)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/ogc-bbox |ogc-bbox |Indicates that the object is an instance of an OGC bounding box https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/bbox.yaml[(bbox.yaml)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/epgc-code |epsg-code |Indicates that the value is a code from the https://epsg.io/[EPSG registry]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo:
|http://www.opengis.net/def/format/ogcapi-processes/0/epgc-code |epsg-code |Indicates that the value is a code from the https://epsg.io/[EPSG registry]. | |
|http://www.opengis.net/def/format/ogcapi-processes/0/epsg-code |epsg-code |Indicates that the value is a code from the https://epsg.io/[EPSG registry]. |
@@ -118,6 +118,14 @@ The <<jsonschemavalidation,JSON Schema specification>> defines a https://json-sc | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/geojson-feature |geojson-feature |Indicates that the object is an instance of a GeoJSON feature http://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureGeoJSON.yaml[(featureGeoJSON.yaml)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/geojson-geometry |geojson-geometry |Indicates that the object is an instance of a GeoJSON geometry http://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/geometryGeoJSON.yaml[(geometryGeoJSON.yaml)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/ogc-bbox |ogc-bbox |Indicates that the object is an instance of an OGC bounding box https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/bbox.yaml[(bbox.yaml)]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/epgc-code |epsg-code |Indicates that the value is a code from the https://epsg.io/[EPSG registry]. | |||
|http://www.opengis.net/def/format/ogcapi-processes/0/wkt2-def |wkt2-def |Indicates that the string value is a https://docs.ogc.org/is/18-010r11/18-010r11.pdf[well-known text representation of a coordinate reference system]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe wkt2-definition? Then it would be aligned with openEO.
|http://www.opengis.net/def/format/ogcapi-processes/0/wkt2-def |wkt2-def |Indicates that the string value is a https://docs.ogc.org/is/18-010r11/18-010r11.pdf[well-known text representation of a coordinate reference system]. | |
|http://www.opengis.net/def/format/ogcapi-processes/0/wkt2-definition |wkt2-definition |Indicates that the string value is a https://docs.ogc.org/is/18-010r11/18-010r11.pdf[well-known text representation of a coordinate reference system]. |
Closes #395