-
Notifications
You must be signed in to change notification settings - Fork 188
Unique ids #883
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
Merged
Merged
Unique ids #883
Changes from 4 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
d2f0c48
Added more information to make ID's unique
cholmes 3d0c1d3
merge from dev
cholmes 9f7cc1b
updates based on PR comments, added h4s for linking
cholmes a9c6fe3
changelog update
cholmes 0210213
Update item-spec/item-spec.md
cholmes 8a620b7
Update collection-spec/collection-spec.md
cholmes 9fe980e
Merge branch 'dev' into unique-ids
cholmes File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 hidden or 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 hidden or 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 |
|---|---|---|
|
|
@@ -31,7 +31,7 @@ inherited from GeoJSON. | |
| | ---------- | -------------------------------------------------------------------------- | ----------- | | ||
| | stac_version | string | **REQUIRED.** The STAC version the Item implements. | | ||
| | stac_extensions | \[string] | A list of extensions the Item implements. | | ||
| | id | string | **REQUIRED.** Provider identifier. As most geospatial assets are already defined by some identification scheme by the data provider it is recommended to simply use that ID. Data providers are advised to include sufficient information to make their IDs globally unique, including things like unique satellite IDs. | | ||
| | id | string | **REQUIRED.** Provider identifier. The ID should be unique within the [Collection](../collection-spec/README.md) that contains the item. | | ||
| | type | string | **REQUIRED.** Type of the GeoJSON Object. MUST be set to `Feature`. | | ||
| | geometry | [GeoJSON Geometry Object](https://tools.ietf.org/html/rfc7946#section-3.1) \| [null](https://tools.ietf.org/html/rfc7946#section-3.2) | **REQUIRED.** Defines the full footprint of the asset represented by this item, formatted according to [RFC 7946, section 3.1](https://tools.ietf.org/html/rfc7946#section-3.1). The footprint should be the default GeoJSON geometry, though additional geometries can be included. Coordinates are specified in Longitude/Latitude or Longitude/Latitude/Elevation based on [WGS 84](http://www.opengis.net/def/crs/OGC/1.3/CRS84). | | ||
| | bbox | \[number] | **REQUIRED if `geometry` is not `null`.** Bounding Box of the asset represented by this item, formatted according to [RFC 7946, section 5](https://tools.ietf.org/html/rfc7946#section-5). | | ||
|
|
@@ -40,12 +40,33 @@ inherited from GeoJSON. | |
| | assets | Map<string, [Asset Object](#asset-object)> | **REQUIRED.** Dictionary of asset objects that can be downloaded, each with a unique key. | | ||
| | collection | string | The `id` of the STAC Collection this Item references to (see [`collection` relation type](#relation-types)). This field is *required* if such a relation type is present. This field provides an easy way for a user to search for any Items that belong in a specified Collection. | | ||
|
|
||
| **stac_version**: In general, STAC versions can be mixed, but please keep the [recommended best practices](../best-practices.md#mixing-stac-versions) in mind. | ||
| ### Additional Field Information | ||
|
|
||
| **stac_extensions**: A list of extensions the Item implements. The list contains URLs to the JSON Schema files it can be validated against. For official [extensions](../extensions/README.md#list-of-stac-extensions), a "shortcut" can be used. This means you can specify the folder name of the extension, for example `pointcloud` for the Point Cloud extension. This does *not* apply for API extensions. If the versions of the extension and the item diverge, you can specify the URL of the JSON schema file. | ||
| #### stac_version | ||
|
|
||
| In general, STAC versions can be mixed, but please keep the [recommended best practices](../best-practices.md#mixing-stac-versions) in mind. | ||
|
|
||
| #### id | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd align with the order in the table and move this below the stac_extensions.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @cholmes I guess you've not seen this? |
||
|
|
||
| It is important that an Item identifier is unique within a collection, and that the | ||
| [Collection identifier](../collection-spec/collection-spec.md#id) in turn is unique globally. Then the two can be combined to | ||
| give a globally unique identifier. Items are *[strongly recommended](#collections)* to have collections, and not having one makes | ||
| it more difficult to be used in the wider STAC ecosystem. If an Item does not have a collection then it should strive to provide | ||
| a globally unique identifier, with a long, unique prefix, to have a better chance of being globally unique. | ||
cholmes marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| As most geospatial assets are already uniquely defined by some | ||
| identification scheme from the data provider it is recommended to simply use that ID. Data providers are advised to include sufficient information to make their | ||
| IDs globally unique, including things like unique satellite IDs. See the [id section of best practices](../best-practices.md#field-and-id-formatting) for | ||
| additional recommendations. | ||
|
|
||
| #### stac_extensions | ||
|
|
||
| A list of extensions the Item implements. The list contains URLs to the JSON Schema files it can be validated against. For official [extensions](../extensions/README.md#list-of-stac-extensions), a "shortcut" can be used. This means you can specify the folder name of the extension, for example `pointcloud` for the Point Cloud extension. This does *not* apply for API extensions. If the versions of the extension and the item diverge, you can specify the URL of the JSON schema file. | ||
| This list must only contain extensions that extend the Item itself, see the the 'Scope' column in the list of extensions. If an extension such as the `tiled-assets` extension has influence on multiple parts of the whole catalog structure, it must be listed in all affected parts (e.g. Catalog, Collection and Item for the `tiled-assets` extension). | ||
|
|
||
| **assets**: Dictionary of asset objects that can be downloaded, each with a unique key. | ||
| #### assets | ||
|
|
||
| Dictionary of asset objects that can be downloaded, each with a unique key. | ||
| 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](#asset-object). | ||
|
|
@@ -56,7 +77,9 @@ by multiple files - all should be linked to. It is generally recommended that di | |
| levels or formats are not exhaustively listed in an Item, but instead are represented by related | ||
| Items that are linked to, but the best practices around this are still emerging. | ||
|
|
||
| **bbox**: Bounding Box of the asset represented by this item using either 2D or 3D geometries, formatted according to [RFC 7946, section 5](https://tools.ietf.org/html/rfc7946#section-5). The length of the array must be 2*n where n is the number of dimensions. The array contains all axes of the southwesterly most extent followed by all axes of the northeasterly most extent specified in Longitude/Latitude or Longitude/Latitude/Elevation based on [WGS 84](http://www.opengis.net/def/crs/OGC/1.3/CRS84). When using 3D geometries, the elevation of the southwesterly most extent is the minimum depth/height in meters and the elevation of the northeasterly most extent is the maximum. This field enables more naive clients to easily index and search geospatially. STAC compliant APIs are required to compute intersection operations with the item's geometry field, not its bbox. | ||
| #### bbox | ||
|
|
||
| Bounding Box of the asset represented by this item using either 2D or 3D geometries, formatted according to [RFC 7946, section 5](https://tools.ietf.org/html/rfc7946#section-5). The length of the array must be 2\*n where n is the number of dimensions. The array contains all axes of the southwesterly most extent followed by all axes of the northeasterly most extent specified in Longitude/Latitude or Longitude/Latitude/Elevation based on [WGS 84](http://www.opengis.net/def/crs/OGC/1.3/CRS84). When using 3D geometries, the elevation of the southwesterly most extent is the minimum depth/height in meters and the elevation of the northeasterly most extent is the maximum. This field enables more naive clients to easily index and search geospatially. STAC compliant APIs are required to compute intersection operations with the item's geometry field, not its bbox. | ||
|
|
||
| ### Properties Object | ||
|
|
||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.