This FAQ is valid for a Stac Fast API set-up with elastic search as backend and a stac browser as GUI.
Nesting or no nesting?
- A catalog of catalogs is not possible within the STAC API. The entry level is the only catalog. A catalog shall only contain collections.
- A collection can contain childs of different types. A child can be a collection.
- A collection of collections is
- useful to show a landing page for upper level hierarchy elements like institution which can display everything this element is connected to
- does not improve search functionality. Afaik, the stac browser's search does not follow a nest of collections.
Which collections should have items?
To avoid duplication of items in the data base, it is key to define a lowest collection level at which items (whatever items will be) are added to a collection. In Warmworld, "experiment" is the collection level which contains items.
From a CMIP perspective, that means that DRS elements that follow deeper in the hierarchy, like realm
or variable_id
, would not be represented in the STAC hierarchy of catalog,collection and item but rather become a queryable. Users would need to search for variables and realizations instead of getting it through browsing only.
What names should assets have?
The data base cannot handle differently named assets within a collection. Therefore, an asset should not be named like a file since this is usually unique. The file name can be an attribute of the asset while the asset will have a name like data0001
. See the CEDA API for an example.
How to add queryables?
Needs to be added at two points in the source code:
stac_fastapi/core/stac_fastapi/core/core.py
stac_fastapi/core/stac_fastapi/core/extensions/filter.py
How to customize the browser to suit project theme?
The variables.css under stac-browser/src/theme can be modified to add a logo, change background color so that they mach the project theme.
How to get a project catalog enlisted in DKRZ STAC browser?
Please prepare a JSON file as follows and provide it to the catalog curator:
{
"id":16,
"url":"https://eod-catalog-svc-prod.astraea.earth/",
"slug":"astraea-earth-ondemand",
"title":"Astraea Earth OnDemand",
"summary":"Astraea Earth OnDemand geospatial imagery query and analysis tool",
"access":"public",
"created":"2020-09-02T19:21:50.464Z",
"updated":"2020-09-02T19:21:50.464Z",
"isPrivate":false,
"isApi":true,
"accessInfo":null
}
id : The count of already existing catalogs + 1, to be unique.
url : The link to the catalog/API.
slug:
title : Title to be displayed in the listing.
summary : A brief summary about the contents of the catalog/API.
access : Indicate if the access type.
created : The date of creation.
update : The date of last update.
isPrivate : To indicate if the catalog has limited access (no ingestion etc.).
isApi : Flag to distinguish between catalog and API.
accessInfo : Access credentials, if any.
How to ingest various project catalogs into DKRZ STAC browser?
Please update all the project catalog JSON files in the format specified above, into the DKRZ catalog json file(all_dkrz-apis.json) hosted at data-infrastructure-services.
Subsequently, these are to be read in 'created()' method in 'src/views/SelectDataSource.vue' , instead of querying STACIndex.