Ideally there would be single link structure that we could trust to get from a collection to its parent API that has a rel=item-search link. It's fine to go to the rel=root in most cases, but CMR STAC is different because the root link is https://cmr.earthdata.nasa.gov/stac which does not have an item-search endpoint.
Example: a collection in the GES_DISC sub-catalog
{
"type": "Collection",
"id": "SNDRJ1CrISL1B_2",
"title": "JPSS-1 CrIS Level 1B Full Spectral Resolution V2 (SNDRJ1CrISL1B) at GES DISC",
"description": "...",
"stac_version": "1.0.0",
"stac_extensions": [
"https://stac-extensions.github.io/storage/v2.0.0/schema.json"
],
"extent": {...},
"assets": {...},
"providers": [...],
"links": [
{
"rel": "self",
"href": "https://cmr.earthdata.nasa.gov/stac/GES_DISC/collections/SNDRJ1CrISL1B_2",
"type": "application/json"
},
{
"rel": "root",
"href": "https://cmr.earthdata.nasa.gov/stac",
"type": "application/json",
"title": "Root Catalog"
},
{
"rel": "parent",
"href": "https://cmr.earthdata.nasa.gov/stac/GES_DISC/collections",
"type": "application/json",
"title": "Provider Collections"
},
...
{
"rel": "items",
"href": "https://cmr.earthdata.nasa.gov/stac/GES_DISC/collections/SNDRJ1CrISL1B_2/items",
"type": "application/geo+json",
"title": "Collection Items"
}
],
"license": "proprietary",
"keywords": [...],
"summaries": {...},
"storage:schemes": {...}
}
Ideally CMR STAC would advertise the link to the GES_DISC STAC API (https://cmr.earthdata.nasa.gov/stac/GES_DISC) which is where you need to go to do an item search but instead it links to the total root API (https://cmr.earthdata.nasa.gov/stac) which is not capable of item searches.
Is there a correct way to specify these links? I don't think it is wrong to say that the root api url is https://cmr.earthdata.nasa.gov/stac, so maybe we need to rely on a different method to resolve the API url for item searches.
cc @wildintellect @sujen1412
Ideally there would be single link structure that we could trust to get from a collection to its parent API that has a
rel=item-searchlink. It's fine to go to therel=rootin most cases, but CMR STAC is different because therootlink ishttps://cmr.earthdata.nasa.gov/stacwhich does not have an item-search endpoint.Example: a collection in the GES_DISC sub-catalog
{ "type": "Collection", "id": "SNDRJ1CrISL1B_2", "title": "JPSS-1 CrIS Level 1B Full Spectral Resolution V2 (SNDRJ1CrISL1B) at GES DISC", "description": "...", "stac_version": "1.0.0", "stac_extensions": [ "https://stac-extensions.github.io/storage/v2.0.0/schema.json" ], "extent": {...}, "assets": {...}, "providers": [...], "links": [ { "rel": "self", "href": "https://cmr.earthdata.nasa.gov/stac/GES_DISC/collections/SNDRJ1CrISL1B_2", "type": "application/json" }, { "rel": "root", "href": "https://cmr.earthdata.nasa.gov/stac", "type": "application/json", "title": "Root Catalog" }, { "rel": "parent", "href": "https://cmr.earthdata.nasa.gov/stac/GES_DISC/collections", "type": "application/json", "title": "Provider Collections" }, ... { "rel": "items", "href": "https://cmr.earthdata.nasa.gov/stac/GES_DISC/collections/SNDRJ1CrISL1B_2/items", "type": "application/geo+json", "title": "Collection Items" } ], "license": "proprietary", "keywords": [...], "summaries": {...}, "storage:schemes": {...} }Ideally CMR STAC would advertise the link to the GES_DISC STAC API (https://cmr.earthdata.nasa.gov/stac/GES_DISC) which is where you need to go to do an item search but instead it links to the total root API (https://cmr.earthdata.nasa.gov/stac) which is not capable of item searches.
Is there a correct way to specify these links? I don't think it is wrong to say that the root api url is https://cmr.earthdata.nasa.gov/stac, so maybe we need to rely on a different method to resolve the API url for item searches.
cc @wildintellect @sujen1412