Skip to content
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

[WIP] Release 0.6.0 final #340

Merged
merged 40 commits into from
Nov 7, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
9edfcd0
Fixes to the changelog
m-mohr Oct 26, 2018
a195267
Allow null for eo:epsg in JSON schema
m-mohr Oct 26, 2018
313e957
Fixed link to the UML diagram, which is invalid on master.
m-mohr Oct 26, 2018
26045ea
Merge pull request #332 from radiantearth/m-mohr-patch-3
matthewhanson Oct 26, 2018
46cb7c2
Removed null valued fields from examples
m-mohr Oct 26, 2018
61f8f17
Merge branch 'dev' into m-mohr-patch-2
m-mohr Oct 26, 2018
fd37408
Merge pull request #333 from radiantearth/m-mohr-patch-3
m-mohr Oct 26, 2018
e8ad11f
Merge branch 'dev' into m-mohr-patch-2
m-mohr Oct 26, 2018
8f5e576
Merge pull request #331 from radiantearth/m-mohr-patch-2
m-mohr Oct 26, 2018
268c1a4
Merge branch 'dev' into m-mohr-patch-1
m-mohr Oct 26, 2018
845c1f6
Merge pull request #328 from radiantearth/m-mohr-patch-1
m-mohr Oct 26, 2018
acec442
added circle ci config
Oct 29, 2018
062605b
added more tests
Oct 29, 2018
80edde0
updated boundless stac implementation endpoint
Oct 30, 2018
83394d1
Updating CBERS implementation info
fredliporace Oct 31, 2018
fbe42fe
Updating CBERS example with data from actual STAC catalog
fredliporace Oct 31, 2018
17f56b0
Removing required asset field from examples
fredliporace Oct 31, 2018
3b4f6d0
Merge pull request #335 from joshfix/dev
cholmes Oct 31, 2018
3b6481d
Merge branch 'dev' into dev
matthewhanson Oct 31, 2018
e866c5b
Merge pull request #336 from fredliporace/dev
matthewhanson Oct 31, 2018
48369ab
Merge branch 'dev' into ci
matthewhanson Oct 31, 2018
1802c54
Merge pull request #334 from jbants/ci
matthewhanson Oct 31, 2018
ba5a01c
Update Implementations.md for 0.6.0
dlindenbaum Nov 2, 2018
781713f
updated implementations
matthewhanson Nov 5, 2018
dd2a14a
updated changelog for 0.6.0 final
matthewhanson Nov 6, 2018
c0338b3
Merge pull request #337 from dlindenbaum/patch-1
matthewhanson Nov 6, 2018
4fed3bc
Merge branch 'dev' into devseed_implementations
matthewhanson Nov 6, 2018
af2944f
Merge pull request #338 from radiantearth/devseed_implementations
matthewhanson Nov 6, 2018
43a12a4
Merge branch 'dev' into publish_0.6.0_final
matthewhanson Nov 6, 2018
b2bc8af
Merge pull request #339 from radiantearth/publish_0.6.0_final
matthewhanson Nov 6, 2018
6307cc3
fix implementation URLs
matthewhanson Nov 6, 2018
d1cdd72
Merge pull request #341 from radiantearth/implementation-update
matthewhanson Nov 6, 2018
d0f67b9
Updated validation readme with python validator
jbants Nov 6, 2018
00519f4
Updated validation readme with python validator
jbants Nov 6, 2018
cc5b777
added new CBERS example to cirlceCI
jbants Nov 6, 2018
e45a889
added deprecation notice
jbants Nov 6, 2018
70c5f74
Update for Planet catalog, other tweaks
cholmes Nov 7, 2018
34315f0
Merge pull request #342 from jbants/validator_readme
matthewhanson Nov 7, 2018
d9d2098
Merge branch 'dev' into impl-updates
matthewhanson Nov 7, 2018
fb46bf6
Merge pull request #343 from radiantearth/impl-updates
matthewhanson Nov 7, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 24 additions & 13 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,38 @@

version: 2
jobs:
build:
docker:
- image: circleci/node:4
- image: circleci/python:3.6.4

working_directory: ~/repo
working_directory: ~/stac

steps:
- checkout

- run: sudo chown -R circleci:circleci /usr/local/bin
- run: sudo chown -R circleci:circleci /usr/local/lib/python3.6/site-packages
- restore_cache:
key: v2-python-requirements-{{ checksum "requirements.txt" }}
- run:
name: install
command: |
cd validation
npm install

git clone git@github.com:sparkgeo/stac-validator.git ~/stac-validator
cd ~/stac-validator
pip install -r requirements.txt
pip install .
- save_cache:
key: v2-python-requirements-{{ checksum "requirements.txt" }}
paths:
- "~/.cache/pip"
- "/usr/local/lib/python3.6/site-packages"
- run:
name: validate
command: |
cd validation
npm run validate_catalog -- -d ../catalog-spec/examples/catalog.json
npm run validate_collection -- -d ../collection-spec/examples/sentinel2.json
npm run validate_extension -- -s ../extensions/scientific/schema.json -d ../extensions/scientific/example-merraclim.json
npm run validate_item -- -d ../item-spec/examples/sample.json
# ToDo: More files should be validated
python ~/stac-validator/stac_validator.py catalog-spec/examples/catalog.json
python ~/stac-validator/stac_validator.py collection-spec/examples/sentinel2.json
python ~/stac-validator/stac_validator.py item-spec/examples/sample.json
python ~/stac-validator/stac_validator.py item-spec/examples/sample-full.json
python ~/stac-validator/stac_validator.py item-spec/examples/sentinel2-sample.json
python ~/stac-validator/stac_validator.py item-spec/examples/planet-sample.json
python ~/stac-validator/stac_validator.py item-spec/examples/landsat8-sample.json
python ~/stac-validator/stac_validator.py item-spec/examples/digitalglobe-sample.json
python ~/stac-validator/stac_validator.py item-spec/examples/CBERS_4_MUX_20181029_177_106_L4.json
35 changes: 17 additions & 18 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,39 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]


## [v0.6.0-rc2] - 2018-10-25
## [v0.6.0] - 2018-11-06

### Fixed
- Reorganized and cleaned up repository
- Fixed examples throughout
- Reorganized and cleaned up repository.
- Fixed examples throughout.

### Added
- **Changelog**: This changelog added
- **Changelog**: This changelog added.
- **Collections added**: Collections are a type of Catalog with additional fields, such as provider and license. Items must belong to a single Collection.
- **Extension maturity**: Protocol for providing maturity classification for extensions based on stability and implementations.
- **Commons extension**: The previous 'Collections' extension is now the 'Commons' extension and allows an Item to inherit properties from it's Collection.
- **Commons extension**: The previous 'Collections' extension is now the 'Commons' extension and allows an Item to inherit properties from its Collection.
- **Datetime-range extension**: Extension for providing start and end datetimes.
- **Scientific extension**: Extension for providings links to scientific publications relating to the data.
- **rel types**: A list of supported 'rel' types are provided for use when specifying links, 'derived_from' and 'license' types added.
- **rel types**: A list of supported `rel` types are provided for use when specifying links, `derived_from` and `license` types added.
- **eo:constellation**: A new field in the EO specification to specify a grouping of platforms.
- **stac_version**: The stac_version field is required on all Catalogs (and Collections)
- **stac_version**: The `stac_version` field is required on all Catalogs (and Collections).
- **JSON schemas**: Added JSON schemas where they were missing.
- **Single Item extension**: Extension to supply License and Providers for single Items when no collection.
- **UML Diagram**: See STAC-060-uml.pdf
- **Development Process**: See process.md for information on the STAC development process
- **Single Item extension**: Extension to supply License and Providers for single Items when no collection is used.
- **UML Diagram**: See STAC-060-uml.pdf.
- **Development Process**: See process.md for information on the STAC development process.

### Changed
- **Endpoints**: Main catalog endpoint at /stac, search endpoint now at /stac/search
- **eo:bands**: The eo:bands field is now an array rather than a dictionary, and has been moved inside of 'properties' in a STAC Item.
- **Catalog fields**: Catalogs have a smaller number of basic fields: id, stac_version, title (optional), description, and links. The new Collections type contains additional fields.
- **API**: Main catalog endpoint at `/stac`, search endpoint now at `/stac/search`.
- **eo:bands**: The `eo:bands` field is now an array rather than a dictionary, and has been moved inside of `properties` in a STAC Item.
- **Catalog fields**: Catalogs have a smaller number of basic fields: `id`, `stac_version`, `title` (optional), `description`, and `links`. The new Collections type contains additional fields.
- **links**: The links fields are now an array rather than a dictionary.
- **properties**: Fields with the data type array or objects are allowed inside the `properties` in a STAC Item.
- **description**: Description fields now allow formatting with CommonMark.
- **assets**: Fields changed names: name to title and mime_type to type.
- **Providers Object in collections**: added a `description` field., renamed `type` to `roles`, change `roles` from string to array and added a `licensor` role.
- **assets**: Fields changed names: `name` to `title` and `mime_type` to `type`.

### Removed:
* **provider**: Provider field in Items got removed. Use Collections instead.
* **license**: License field in Items got removed. Use Collections instead.
* **provider**: Provider field in Items got removed. Use Collections or the Single Item extension instead.
* **license**: License field in Items got removed. Use Collections or the Single Item extension instead.


## [v0.5.2] - 2018-07-12
Expand Down Expand Up @@ -107,7 +106,7 @@ Thanks @hgs-msmith, @matthewhanson, @hgs-trutherford, @rouault, @joshfix, @alkam


[Unreleased]: https://github.com/radiantearth/stac-spec/compare/master...dev
[v0.6.0-rc2]: https://github.com/radiantearth/stac-spec/compare/v0.5.2...v0.6.0-rc2
[v0.6.0]: https://github.com/radiantearth/stac-spec/compare/v0.5.2...v0.6.0
[v0.5.2]: https://github.com/radiantearth/stac-spec/compare/v0.5.1...v0.5.2
[v0.5.1]: https://github.com/radiantearth/stac-spec/compare/v0.5.0...v0.5.1
[v0.5.0]: https://github.com/radiantearth/stac-spec/compare/v0.4.1...v0.5.0
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Vendors can extend those core fields for the metadata they want to make availabl

#### UML Diagram

A UML diagram of the [STAC model](https://github.com/radiantearth/stac-spec/blob/uml-diagram/STAC-060-uml.pdf) is provided to help with navigating the specification.
A UML diagram of the [STAC model](STAC-060-uml.pdf) is provided to help with navigating the specification.

## Contributing

Expand Down
10 changes: 3 additions & 7 deletions extensions/eo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,14 +116,12 @@ See [landsat8-merged.json](examples/landsat8-merged.json) for a full example.
"assets" :{
"B1": {
"href": "http://landsat-pds.s3.amazonaws.com/L8/153/025/LC81530252014153LGN00/LC81530252014153LGN00_B1.TIF",
"type": "GeoTIFF",
"required": true,
"type": "image/vnd.stac.geotiff",
"eo:bands": [0]
},
"B2": {
"href": "http://landsat-pds.s3.amazonaws.com/L8/153/025/LC81530252014153LGN00/LC81530252014153LGN00_B2.TIF",
"type": "GeoTIFF",
"required": true,
"type": "image/vnd.stac.geotiff",
"eo:bands": [1]
},
...
Expand All @@ -133,15 +131,13 @@ See [landsat8-merged.json](examples/landsat8-merged.json) for a full example.
"name": "1",
"common_name": "coastal",
"gsd": 30.0,
"accuracy": null,
"wavelength": 0.44,
"full_width_half_max": 0.02
},
{
"name": "2",
"common_name": "blue",
"gsd": 30.0,
"accuracy": null,
"wavelength": 0.48,
"full_width_half_max": 0.06
},
Expand Down Expand Up @@ -207,4 +203,4 @@ The [extensions page](../README.md) gives an overview about related extensions.
### Placing common fields in Collections
A lot of EO data will have common metadata across many Items. It is not necessary, but recommended
to use the [Commons extension](../commons/README.md) in combination with [STAC Collections](../../collection-spec/README.md).
The exact metadata that would appear in a STAC Collection record will vary depending on the dataset.
The exact metadata that would appear in a STAC Collection record will vary depending on the dataset.
7 changes: 5 additions & 2 deletions extensions/eo/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,10 @@
},
"eo:epsg": {
"title": "EPSG code",
"type": "integer"
"type": [
"integer",
"null"
]
},
"eo:cloud_cover": {
"title": "Cloud Cover",
Expand Down Expand Up @@ -121,4 +124,4 @@
]
}
}
}
}
68 changes: 49 additions & 19 deletions implementations.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,41 @@ Browsable online version are usually powered by [stac-browser](https://github.co

## Static Catalog Examples

### Spacenet (STAC 0.5)
### Spacenet (STAC 0.6)

[Spacenet](https://spacenetchallenge.github.io/) has made all their imagery available as STAC.

- Catalog: https://s3.amazonaws.com/spacenet-stac/spacenet-dataset.json
- Browsable online version: https://vigilant-heyrovsky-0d9af8.netlify.com/
- Catalog: https://s3.amazonaws.com/spacenet-stac/spacenet-repository.json
- Browsable online version: https://spacenet-stac.netlify.com/
- Source code: https://github.com/SpaceNetChallenge/stac-implementation

### CBERS (STAC 0.5)
### CBERS-4 (STAC 0.6 and 0.5)

[CBERS](https://en.wikipedia.org/wiki/China%E2%80%93Brazil_Earth_Resources_Satellite_program) is maintaining
a full STAC Catalog, and keeping it up to date with the spec.
[CBERS-4](https://en.wikipedia.org/wiki/China%E2%80%93Brazil_Earth_Resources_Satellite_program) is maintaining
a full STAC Catalog, and keeping it up to date with the spec for versions 0.6 and 0.5.

The source code is available from https://github.com/fredliporace/cbers-2-stac

STAC items are published to public SNS topics as soon as new scenes are ingested into AWS.

#### STAC 0.6

- Catalog: https://cbers-stac-0-6.s3.amazonaws.com/catalog.json
- SNS topic: arn:aws:sns:us-east-1:769537946825:cbers-2-stac-0-6-CBERSSTACItemTopic-X1VTPGK5HBZ5

#### STAC 0.5

- Catalog: https://cbers-stac.s3.amazonaws.com/catalog.json
- SNS topic: arn:aws:sns:us-east-1:769537946825:cbers-2-stac-CBERSSTACItemTopic-N0MZUA5EIQC9
- Browsable online version: http://cbers-stac.netlify.com/
- Source code: https://github.com/fredliporace/cbers-2-stac

### Landsat-8 on AWS (STAC 0.6.0)

This catalog contains all Landsat-8 metadata from the [Earth on AWS](https://aws.amazon.com/earth/) program.

- Catalog: https://landsat-stac.s3.amazonaws.com/catalog.json
- SNS topic: arn:aws:sns:us-west-2:552188055668:landsat-stac


### ISERV (STAC 0.4.1)

Expand All @@ -34,13 +53,12 @@ a full STAC Catalog, and keeping it up to date with the spec.
- Browsable online version: http://iserv-stac.netlify.com/
- Source code: https://github.com/raster-foundry/pystac

### Planet Disaster Data (STAC 0.5)
### Planet Disaster Data (STAC 0.6)

[Planet](http://planet.com) maintains a very small, hand-built catalog to serve as a reference example
of the spec.

- Catalog: https://storage.googleapis.com/pdd-stac/disasters/catalog.json
- Browsable online version: http://planet-stac.netlify.com/
- Raw catalog files: https://console.cloud.google.com/storage/browser/pdd-stac/disasters/hurricane-harvey/0831/
- Source code: https://github.com/cholmes/pdd-stac/tree/master/disasters/hurricane-harvey

Expand All @@ -51,33 +69,45 @@ of the spec.
- Examples: https://github.com/TDG-Platform/dg-stac/tree/master/examples

## API (Active Catalog) Examples
### Boundless STAC Server
### Boundless STAC Server (0.6.0)

* Items call: http://stac.boundlessgeo.io/stac/search/stac
* OpenAPI Document: https://app.swaggerhub.com/apis/joshfix/STAC/1.0.0-RC34
* Search endpoint: https://stac.boundlessgeo.io/search/stac
* Root catalog: https://stac.boundlessgeo.io/stac

### Harris STAC Server
### sat-api (0.6.0)

Contains a number of Landsat records:
Development Seed's [sat-api](https://github.com/sat-utils/sat-api) is an easily deployable open-source API that can ingest data from any STAC static catalog. Development Seed also runs a deployed instance that contains publicly available satellite imagery available on AWS.

* Items call: http://35.160.175.42:8081/items/?limit=10
* Can see a particular Landsat item at: http://35.160.175.42:8081/items/LC08_L1TP_040032_20170415_20170501_01_T1
* Latest release: https://sat-api.developmentseed.org/stac
* Development release: https://sat-api-dev.developmentseed.org/stac

### Other implementations
The latest API should contain the latest available STAC version, while the development API will contain the next version (and may not include all items).

* [Geocatalogo](https://github.com/go-spatial/geocatalogo) is a Go implementation of STAC.

## Ecosystem

Other software related to STAC like validators, crawlers etc.

* [STAC Validator](https://github.com/sparkgeo/stac-validator) is a Python library for validating STAC catalogs and items.
* [sat-stac](https://github.com/sat-utils/sat-stac]) is a Python library and CLI for creating and updating static STAC catalogs.
* [sat-search](https://github.com/sat-utils/sat-search) is a Python library and CLI for searching (and saving) a dynamic STAC API.
* [Serverless STAC Crawler](https://github.com/fredliporace/stac-crawler) is a static STAC crawler that runs on Lambda and SQS integration.
* [STAC Browser](https://github.com/radiantearth/stac-browser/) generates/renders browsable HTML versions of STAC catalogs.

## Early prototypes / outdated
## Early prototypes / not updated

A list of software developed as early prototypes for the proof of concept or seem to be outdated (no activity in more than six months).

### Harris STAC Server

Contains a number of Landsat records:

* Items call: http://35.160.175.42:8081/items/?limit=10
* Can see a particular Landsat item at: http://35.160.175.42:8081/items/LC08_L1TP_040032_20170415_20170501_01_T1

### Others

* [Geocatalogo](https://github.com/go-spatial/geocatalogo) is a Go implementation of STAC.
* [Catalog Crawler](https://github.com/radiantearth/community-sprints/tree/master/10252017-boulder-co/catalog-crawler) was done during the [Boulder Sprint](https://github.com/radiantearth/community-sprints/tree/master/10252017-boulder-co), as an early proof of concept.
* [py-stac](https://github.com/raster-foundry/pystac) was used to create the ISERV catalog. It is still pretty tied to that data type.
* [go-stac](https://github.com/planetlabs/go-stac) does validation of static catalogs.
Expand Down
Loading