|
1 | | -# Template Extension Specification |
| 1 | +# Item Assets Extension Specification |
2 | 2 |
|
3 | | -- **Title:** Template |
4 | | -- **Identifier:** <https://stac-extensions.github.io/template/v1.0.0/schema.json> |
5 | | -- **Field Name Prefix:** template |
6 | | -- **Scope:** Item, Collection |
| 3 | +- **Title:** Item Assets |
| 4 | +- **Identifier:** <https://stac-extensions.github.io/item-assets/v1.0.0/schema.json> |
| 5 | +- **Field Name Prefix:** n/a |
| 6 | +- **Scope:** Collection |
7 | 7 | - **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Proposal |
8 | | -- **Owner**: @your-gh-handles @person2 |
| 8 | +- **Owner**: @matthewhanson |
9 | 9 |
|
10 | | -This document explains the Template Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification. |
11 | | -This is the place to add a short introduction. |
| 10 | +This document explains the Item Assets Extension to the |
| 11 | +[SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification. |
| 12 | + |
| 13 | +This extension serves two purposes: |
| 14 | + |
| 15 | +1. Provide a human-readable definition of assets available in any Items |
| 16 | + belonging to this Collection so that the user can determine the key(s) |
| 17 | + of assets they are interested in. |
| 18 | +2. Provide a way to programmatically determine what assets are available |
| 19 | + in any member Item. Otherwise a random Item needs to be examined to |
| 20 | + determine assets available, but a random Item may not be representative of the set. |
12 | 21 |
|
13 | 22 | - Examples: |
14 | | - - [Item example](examples/item.json): Shows the basic usage of the extension in a STAC Item |
15 | | - - [Collection example](examples/collection.json): Shows the basic usage of the extension in a STAC Collection |
| 23 | + - [Landsat-8 Collection Example](examples/example-landsat8.json): Shows the basic usage of the extension in a STAC Collection |
16 | 24 | - [JSON Schema](json-schema/schema.json) |
17 | 25 | - [Changelog](./CHANGELOG.md) |
18 | 26 |
|
19 | | -## Item Properties and Collection Fields |
| 27 | +## Collection Fields |
20 | 28 |
|
21 | | -| Field Name | Type | Description | |
22 | | -| -------------------- | ------------------------- | ----------- | |
23 | | -| template:new_field | string | **REQUIRED**. Describe the required field... | |
24 | | -| template:xyz | [XYZ Object](#xyz-object) | Describe the field... | |
25 | | -| template:another_one | \[number] | Describe the field... | |
| 29 | +This extension introduces a single new field, `item_assets` at the top level of a Collection. |
| 30 | +An Asset Object defined at the Collection level is nearly the same as the |
| 31 | +[Asset Object in Items](https://github.com/radiantearth/stac-spec/tree/v1.0.0-rc.1/item-spec/item-spec.md#asset-object), except for two differences. |
| 32 | +The `href` field is not required, because Collections don't point to any data by themselves, but at least two other fields must be present. |
26 | 33 |
|
27 | | -### Additional Field Information |
| 34 | +| Field Name | Type | Description | |
| 35 | +| ----------- | ------------------------------------------ | ----------- | |
| 36 | +| item_assets | Map<string, [Asset Object](#asset-object)> | **REQUIRED.** A dictionary of assets that can be found in member Items | |
28 | 37 |
|
29 | | -#### template:new_field |
| 38 | +### Asset Object |
30 | 39 |
|
31 | | -This is a much more detailed description of the field `template:new_field`... |
| 40 | +An asset is an object that contains details about the datafiles that will be included in member Items. |
| 41 | +Assets included at the Collection level do not imply that all assets are available from all Items. |
| 42 | +However, it is recommended that the Asset Definition is a complete set of all assets that may be available from any member Items. |
32 | 43 |
|
33 | | -### XYZ Object |
| 44 | +| Field Name | Type | Description | |
| 45 | +| ----------- | --------- | ----------- | |
| 46 | +| title | string | The displayed title for clients and users. | |
| 47 | +| description | string | A description of the Asset providing additional details, such as how it was processed or created. [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for rich text representation. | |
| 48 | +| type | string | [Media type](https://github.com/radiantearth/stac-spec/tree/v1.0.0-rc.1/catalog-spec/catalog-spec.md#media-types) of the asset. | |
| 49 | +| roles | \[string] | The [semantic roles](https://github.com/radiantearth/stac-spec/tree/v1.0.0-rc.1/item-spec/item-spec.md#asset-role-types) of the asset, similar to the use of `rel` in links. | |
34 | 50 |
|
35 | | -This is the introduction for the purpose and the content of the XYZ Object... |
| 51 | +Other custom fields, or fields from other extensions may also be included in the Asset object. |
36 | 52 |
|
37 | | -| Field Name | Type | Description | |
38 | | -| ----------- | ------ | ----------- | |
39 | | -| x | number | **REQUIRED**. Describe the required field... | |
40 | | -| y | number | **REQUIRED**. Describe the required field... | |
41 | | -| z | number | **REQUIRED**. Describe the required field... | |
| 53 | +Any property that exists for a Collection-level asset object must also exist in the corresponding assets object in |
| 54 | +each Item. If a collection's asset object contains properties that are not explicitly stated in the Item's asset |
| 55 | +object then that property does not apply to the item's asset. Item asset objects at the Collection-level can |
| 56 | +describe any of the properties of an asset, but those assets properties and values must also reside in the item's |
| 57 | +asset object. To consolidate item-level asset object properties in an API setting, consider storing the STAC Item |
| 58 | +objects without the larger properties internally as 'invalid' STAC items, and merge in the desired properties at |
| 59 | +serving time from the Collection-level. |
42 | 60 |
|
43 | | -## Relation types |
| 61 | +At least two fields (e.g. `title` and `type`) are required to be provided, in order for it to adequately describe Item assets. |
| 62 | +The two fields must not necessarily be taken from the list above and may include any custom field. |
44 | 63 |
|
45 | | -The following types should be used as applicable `rel` types in the |
46 | | -[Link Object](https://github.com/radiantearth/stac-spec/tree/master/item-spec/item-spec.md#link-object). |
| 64 | +## Implementations |
47 | 65 |
|
48 | | -| Type | Description | |
49 | | -| ------------------- | ----------- | |
50 | | -| fancy-rel-type | This link points to a fancy resource. | |
| 66 | +- AWS Public Dataset catalogs, [landsat-8](http://landsat-stac.s3.amazonaws.com/landsat-8-l1/catalog.json) |
| 67 | +- and [sentinel-2](http://sentinel-stac.s3.amazonaws.com/sentinel-2-l1c/catalog.json) define an Asset definition at the Collection level. |
0 commit comments