Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stac_check-1.0.3.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

stac_check-1.0.3-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file stac_check-1.0.3.tar.gz.

File metadata

  • Download URL: stac_check-1.0.3.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for stac_check-1.0.3.tar.gz
Algorithm Hash digest
SHA256 3d89e46ddc9133832e3802614570d30aeb1e1c93672f2257f9a88c9cc9c8039a
MD5 94a7546c0d4e63f5c7940c3769005016
BLAKE2b-256 fc8feda1eadc252629541307185d3d8bb2855cb354c0a120ff7ae9cd30659be0

See more details on using hashes here.

File details

Details for the file stac_check-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: stac_check-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for stac_check-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 71415fbaa961a86bd2e97ec14aa1ef65da9ea7fa0298b2bde017df044e65e60f
MD5 70ccfff1fd9a1aa7a0cec1f372f9bf94
BLAKE2b-256 1bcd1bf14c16822830341ae5d1d5e11754915a20126dce0c90cd744e6b930746

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page