Linting and validation tool for STAC assets
Project description
stac-check
A linting and validation tool for STAC assets
The intent of this project is to provide a validation tool that also follows the official STAC Best Practices document: https://github.com/radiantearth/stac-spec/blob/master/best-practices.md
Install
$ pip install stac-check
or for local development
$ pip install -e .
Usage
Usage: stac_check [OPTIONS] FILE
Options:
--version Show the version and exit.
-l, --links Validate links for format and response.
-a, --assets Validate assets for format and response.
-r, --recursive Validate all assets in a collection or catalog.
--help Show this message and exit.
Docker
$ make build
$ make shell
Examples
stac_check https://raw.githubusercontent.com/stac-utils/pystac/main/tests/data-files/examples/0.9.0/collection-spec/examples/landsat-collection.json --recursive
____ ____ __ ___ ___ _ _ ____ ___ __ _
/ ___)(_ _)/ _\ / __)___ / __)/ )( \( __)/ __)( / )
\___ \ )( / \( (__(___)( (__ ) __ ( ) _)( (__ ) (
(____/ (__)\_/\_/ \___) \___)\_)(_/(____)\___)(__\_)
stac-check: STAC spec validaton and linting tool
Please upgrade from version 0.9.0 to version 1.0.0!
Validator: pystac 1.1.0
Recursive: Validate all assets in a collection or catalog
Valid COLLECTION: True
Schemas validated:
https://cdn.staclint.com/v0.9.0/collection.json
STAC Best Practices:
Object should be called 'collection.json' not 'landsat-collection.json'
A STAC collection should contain a summaries field
It is recommended to store information like eo:bands in summaries
Links in catalogs and collections should always have a 'title' field
Recursive validation has failed!
Recursive validation error message:
Exception Could not read uri https://landsat-stac.s3.amazonaws.com/landsat-8-l1/paths/catalog.json
This object has 4 links
stac_check sample_files/0.9.0/landsat8-sample.json
stac-check: STAC spec validaton and linting tool Please upgrade from version 0.9.0 to version 1.0.0! Validator: stac-validator 2.3.0 Valid ITEM: True Schemas validated: https://cdn.staclint.com/v0.9.0/extension/eo.json https://cdn.staclint.com/v0.9.0/extension/view.json https://cdn.staclint.com/v0.9.0/item.json STAC Best Practices: Item name 'LC81530252014153LGN00' should only contain Searchable identifiers Identifiers should consist of only lowercase characters, numbers, '_', and '-' https://github.com/radiantearth/stac-spec/blob/master/best-practices.md#searchable-identifiers Item file names should match their ids: 'landsat8-sample' not equal to 'LC81530252014153LGN00 A link to 'self' in links is strongly recommended This object has 4 links
stac_check sample_files/1.0.0/core-item.json --assets
stac-check: STAC spec validaton and linting tool Thanks for using STAC version 1.0.0! Validator: stac-validator 2.3.0 Valid ITEM: True Schemas validated: https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json STAC Best Practices: Item name '20201211_223832_CS2' should only contain Searchable identifiers Identifiers should consist of only lowercase characters, numbers, '_', and '-' https://github.com/radiantearth/stac-spec/blob/master/best-practices.md#searchable-identifiers Item file names should match their ids: 'core-item' not equal to '20201211_223832_CS2 Please avoid setting the datetime field to null, many clients search on this field A link to 'self' in links is strongly recommended No ASSET format errors! ASSET request errors: http://cool-sat.com/catalog/20201211_223832_CS2/20201211_223832_CS2.EPH This object has 4 links
stac_check sample_files/1.0.0/core-item-bad-links.json --links --assets
stac-check: STAC spec validaton and linting tool Thanks for using STAC version 1.0.0! Validator: stac-validator 2.3.0 Valid ITEM: True Schemas validated: https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json STAC Best Practices: Item name '20201211_223832_CS2' should only contain Searchable identifiers Identifiers should consist of only lowercase characters, numbers, '_', and '-' https://github.com/radiantearth/stac-spec/blob/master/best-practices.md#searchable-identifiers Item file names should match their ids: 'core-item-bad-links' not equal to '20201211_223832_CS2 Please avoid setting the datetime field to null, many clients search on this field A link to 'self' in links is strongly recommended ASSET format errors: https:/storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.jpg ASSET request errors: https:/storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.jpg http://cool-sat.com/catalog/20201211_223832_CS2/20201211_223832_CS2.EPH LINK format errors: http:/remotdata.io/catalog/20201211_223832_CS2/index.html LINK request errors: http://catalog/collection.json http:/remotdata.io/catalog/20201211_223832_CS2/index.html This object has 4 links
stac_check sample_files/0.9.0/bad-item.json
stac-check: STAC spec validaton and linting tool Please upgrade from version 0.9.0 to version 1.0.0! Validator: stac-validator 2.3.0 Valid : False Schemas validated: https://cdn.staclint.com/v0.9.0/item.json STAC Best Practices: A link to 'self' in links is strongly recommended Validation error type: ValidationError Validation error message: 'id' is a required property of the root of the STAC object This object has 5 links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for stac_check-1.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a8c0188e5479404939663e8220f7dc93372839700851fa287643c73c7824dd1 |
|
MD5 | bca52c732316e7ce3ceabbf17886d5e4 |
|
BLAKE2b-256 | ab20fb8fde22969ab267126568e45b4395ebb4138da4695140384534ab269cb3 |