-
Notifications
You must be signed in to change notification settings - Fork 178
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
187 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# Collection Assets Extension Specification | ||
|
||
- **Title: Collection Assets** | ||
- **Identifier: collection-assets** | ||
- **Field Name Prefix: -** | ||
- **Scope: Collection** | ||
- **Extension [Maturity Classification](../README.md#extension-maturity): Proposal** | ||
|
||
A Collection extension to provide a way to specify assets available on the collection-level. | ||
|
||
- [Example](examples/example-esm.json) | ||
- [JSON Schema](json-schema/schema.json) | ||
|
||
... | ||
|
||
## Collection fields | ||
|
||
This extension introduces a single new field, `assets` at the top level of a collection. | ||
An Asset Object defined at the Collection level is the same as the [Asset Object in Items](../../item-spec/item-spec.md#asset-object). | ||
|
||
Collection-level assets MUST NOT list any files also available in items. | ||
If possible, item-level assets are always the preferable way to expose assets. | ||
To list what assets are available in items see the [Item Assets Definition Extension](../item-assets/README.md). | ||
|
||
Collection-level assets can be useful in some scenarios, for example: | ||
1. Exposing additional data that applies collection-wide and you don't want to expose it in each Item. This can be collection-level metadata or a thumbnail for visualization purposes. | ||
2. Individual items can't properly be distinguished for some data structures, e.g. [Zarr](https://zarr.readthedocs.io/) as it's a data structure not contained in single files. | ||
3. Exposing assets for "[Standalone Collections](https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md#standalone-collections)". | ||
|
||
|
||
| Field Name | Type | Description | | ||
| ---------- | ---------------------------------------------------------------------- | ----------- | | ||
| assets | Map<string, [Asset Object](../../item-spec/item-spec.md#asset-object)> | **REQUIRED.** Dictionary of asset objects that can be downloaded, each with a unique key. | | ||
|
||
**assets**: In general, the keys don't have any meaning and are considered to be non-descriptive unique identifiers. | ||
Providers may assign any meaning to the keys for their respective use cases, but must not expect that clients understand them. | ||
To communicate the purpose of an asset better use the `roles` field in the [Asset Object](../../item-spec/item-spec.md#asset-object). | ||
|
||
## Implementations | ||
|
||
- The [ESM collection spec](https://github.com/NCAR/esm-collection-spec) uses this extension to expose Zarr archives. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
{ | ||
"stac_version": "0.9.0", | ||
"stac_extensions": [ | ||
"collection-assets", | ||
"https://github.com/NCAR/esm-collection-spec/tree/v0.2.0/schema.json" | ||
], | ||
"id": "pangeo-cmip6", | ||
"title": "Google CMIP6", | ||
"description": "This is an ESM collection for CMIP6 Zarr data residing in Pangeo's Google Storage.", | ||
"extent": { | ||
"spatial": { | ||
"bbox": [[-180, -90, 180, 90]] | ||
}, | ||
"temporal": { | ||
"interval": [["1850-01-15T12:00:00Z", "2014-12-15T12:00:00Z"]] | ||
} | ||
}, | ||
"providers": [ | ||
{ | ||
"name": " World Climate Research Programme", | ||
"roles": ["producer","licensor"], | ||
"url": "https://www.wcrp-climate.org/wgcm-cmip/wgcm-cmip6" | ||
}, | ||
{ | ||
"name": "The Pangeo Project", | ||
"roles": ["processor"], | ||
"url": "https://console.cloud.google.com/pangeo.io" | ||
}, | ||
{ | ||
"name": "Google", | ||
"roles": ["host"], | ||
"url": "https://console.cloud.google.com/marketplace/details/noaa-public/cmip6" | ||
} | ||
], | ||
"license": "proprietary", | ||
"links": [ | ||
{ | ||
"href": "https://pcmdi.llnl.gov/CMIP6/TermsOfUse/TermsOfUse6-1.html", | ||
"type": "text/html", | ||
"rel": "license", | ||
"title": "CMIP6: Terms of Use" | ||
} | ||
], | ||
"assets": { | ||
"thumbnail": { | ||
"href": "logo.png", | ||
"title": "A preview image for visualization.", | ||
"type": "image/png", | ||
"roles": ["thumbnail"] | ||
}, | ||
"catalog": { | ||
"href": "sample-pangeo-cmip6-zarr-stores.csv", | ||
"title": "Catalog", | ||
"description": "Path to a the CSV file with the catalog contents.", | ||
"type": "text/csv", | ||
"roles": ["esm-catalog"], | ||
"esm:column_name": "path" | ||
}, | ||
"activity_id": { | ||
"href": "https://raw.githubusercontent.com/WCRP-CMIP/CMIP6_CVs/master/CMIP6_activity_id.json", | ||
"type": "application/json", | ||
"roles": ["esm-vocabulary"], | ||
"esm:column_name": "activity_id" | ||
}, | ||
"source_id": { | ||
"href": "https://raw.githubusercontent.com/WCRP-CMIP/CMIP6_CVs/master/CMIP6_source_id.json", | ||
"type": "application/json", | ||
"roles": ["esm-vocabulary"], | ||
"esm:column_name": "source_id" | ||
}, | ||
"institution_id": { | ||
"href": "https://raw.githubusercontent.com/WCRP-CMIP/CMIP6_CVs/master/CMIP6_institution_id.json", | ||
"type": "application/json", | ||
"roles": ["esm-vocabulary"], | ||
"esm:column_name": "institution_id" | ||
}, | ||
"experiment_id": { | ||
"href": "https://raw.githubusercontent.com/WCRP-CMIP/CMIP6_CVs/master/CMIP6_experiment_id.json", | ||
"type": "application/json", | ||
"roles": ["esm-vocabulary"], | ||
"esm:column_name": "experiment_id" | ||
}, | ||
"table_id": { | ||
"href": "https://raw.githubusercontent.com/WCRP-CMIP/CMIP6_CVs/master/CMIP6_table_id.json", | ||
"type": "application/json", | ||
"roles": ["esm-vocabulary"], | ||
"esm:column_name": "table_id" | ||
}, | ||
"grid_label": { | ||
"href": "https://raw.githubusercontent.com/WCRP-CMIP/CMIP6_CVs/master/CMIP6_grid_label.json", | ||
"type": "application/json", | ||
"roles": ["esm-vocabulary"], | ||
"esm:column_name": "grid_label" | ||
} | ||
}, | ||
"esm:attributes": ["activity_id", "source_id", "institution_id", "experiment_id", "member_id", "table_id", "variable_id", "grid_label"] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
{ | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "schema.json#", | ||
"title": "Collection Assets Extension Specification", | ||
"description": "STAC Collection-level assets Extension to a STAC Collection", | ||
"allOf": [ | ||
{ | ||
"$ref": "../../../collection-spec/json-schema/collection.json" | ||
}, | ||
{ | ||
"type": "object", | ||
"required": [ | ||
"assets" | ||
], | ||
"properties": { | ||
"assets": { | ||
"$ref": "../../../item-spec/json-schema/item.json#/definitions/assets" | ||
} | ||
} | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters