Skip to content

Commit 656cf81

Browse files
Merge pull request #340 from radiantearth/dev
[WIP] Release 0.6.0 final
2 parents 96ee207 + fb46bf6 commit 656cf81

11 files changed

+248
-176
lines changed

.circleci/config.yml

+24-13
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,38 @@
1-
21
version: 2
32
jobs:
43
build:
54
docker:
6-
- image: circleci/node:4
5+
- image: circleci/python:3.6.4
76

8-
working_directory: ~/repo
7+
working_directory: ~/stac
98

109
steps:
1110
- checkout
12-
11+
- run: sudo chown -R circleci:circleci /usr/local/bin
12+
- run: sudo chown -R circleci:circleci /usr/local/lib/python3.6/site-packages
13+
- restore_cache:
14+
key: v2-python-requirements-{{ checksum "requirements.txt" }}
1315
- run:
1416
name: install
1517
command: |
16-
cd validation
17-
npm install
18-
18+
git clone git@github.com:sparkgeo/stac-validator.git ~/stac-validator
19+
cd ~/stac-validator
20+
pip install -r requirements.txt
21+
pip install .
22+
- save_cache:
23+
key: v2-python-requirements-{{ checksum "requirements.txt" }}
24+
paths:
25+
- "~/.cache/pip"
26+
- "/usr/local/lib/python3.6/site-packages"
1927
- run:
2028
name: validate
2129
command: |
22-
cd validation
23-
npm run validate_catalog -- -d ../catalog-spec/examples/catalog.json
24-
npm run validate_collection -- -d ../collection-spec/examples/sentinel2.json
25-
npm run validate_extension -- -s ../extensions/scientific/schema.json -d ../extensions/scientific/example-merraclim.json
26-
npm run validate_item -- -d ../item-spec/examples/sample.json
27-
# ToDo: More files should be validated
30+
python ~/stac-validator/stac_validator.py catalog-spec/examples/catalog.json
31+
python ~/stac-validator/stac_validator.py collection-spec/examples/sentinel2.json
32+
python ~/stac-validator/stac_validator.py item-spec/examples/sample.json
33+
python ~/stac-validator/stac_validator.py item-spec/examples/sample-full.json
34+
python ~/stac-validator/stac_validator.py item-spec/examples/sentinel2-sample.json
35+
python ~/stac-validator/stac_validator.py item-spec/examples/planet-sample.json
36+
python ~/stac-validator/stac_validator.py item-spec/examples/landsat8-sample.json
37+
python ~/stac-validator/stac_validator.py item-spec/examples/digitalglobe-sample.json
38+
python ~/stac-validator/stac_validator.py item-spec/examples/CBERS_4_MUX_20181029_177_106_L4.json

CHANGELOG.md

+17-18
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,39 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
77
## [Unreleased]
88

99

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

1212
### Fixed
13-
- Reorganized and cleaned up repository
14-
- Fixed examples throughout
13+
- Reorganized and cleaned up repository.
14+
- Fixed examples throughout.
1515

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

3131
### Changed
32-
- **Endpoints**: Main catalog endpoint at /stac, search endpoint now at /stac/search
33-
- **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.
34-
- **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.
32+
- **API**: Main catalog endpoint at `/stac`, search endpoint now at `/stac/search`.
33+
- **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.
34+
- **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.
3535
- **links**: The links fields are now an array rather than a dictionary.
3636
- **properties**: Fields with the data type array or objects are allowed inside the `properties` in a STAC Item.
3737
- **description**: Description fields now allow formatting with CommonMark.
38-
- **assets**: Fields changed names: name to title and mime_type to type.
39-
- **Providers Object in collections**: added a `description` field., renamed `type` to `roles`, change `roles` from string to array and added a `licensor` role.
38+
- **assets**: Fields changed names: `name` to `title` and `mime_type` to `type`.
4039

4140
### Removed:
42-
* **provider**: Provider field in Items got removed. Use Collections instead.
43-
* **license**: License field in Items got removed. Use Collections instead.
41+
* **provider**: Provider field in Items got removed. Use Collections or the Single Item extension instead.
42+
* **license**: License field in Items got removed. Use Collections or the Single Item extension instead.
4443

4544

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

108107

109108
[Unreleased]: https://github.com/radiantearth/stac-spec/compare/master...dev
110-
[v0.6.0-rc2]: https://github.com/radiantearth/stac-spec/compare/v0.5.2...v0.6.0-rc2
109+
[v0.6.0]: https://github.com/radiantearth/stac-spec/compare/v0.5.2...v0.6.0
111110
[v0.5.2]: https://github.com/radiantearth/stac-spec/compare/v0.5.1...v0.5.2
112111
[v0.5.1]: https://github.com/radiantearth/stac-spec/compare/v0.5.0...v0.5.1
113112
[v0.5.0]: https://github.com/radiantearth/stac-spec/compare/v0.4.1...v0.5.0

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Vendors can extend those core fields for the metadata they want to make availabl
108108

109109
#### UML Diagram
110110

111-
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.
111+
A UML diagram of the [STAC model](STAC-060-uml.pdf) is provided to help with navigating the specification.
112112

113113
## Contributing
114114

extensions/eo/README.md

+3-7
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,12 @@ See [landsat8-merged.json](examples/landsat8-merged.json) for a full example.
116116
"assets" :{
117117
"B1": {
118118
"href": "http://landsat-pds.s3.amazonaws.com/L8/153/025/LC81530252014153LGN00/LC81530252014153LGN00_B1.TIF",
119-
"type": "GeoTIFF",
120-
"required": true,
119+
"type": "image/vnd.stac.geotiff",
121120
"eo:bands": [0]
122121
},
123122
"B2": {
124123
"href": "http://landsat-pds.s3.amazonaws.com/L8/153/025/LC81530252014153LGN00/LC81530252014153LGN00_B2.TIF",
125-
"type": "GeoTIFF",
126-
"required": true,
124+
"type": "image/vnd.stac.geotiff",
127125
"eo:bands": [1]
128126
},
129127
...
@@ -133,15 +131,13 @@ See [landsat8-merged.json](examples/landsat8-merged.json) for a full example.
133131
"name": "1",
134132
"common_name": "coastal",
135133
"gsd": 30.0,
136-
"accuracy": null,
137134
"wavelength": 0.44,
138135
"full_width_half_max": 0.02
139136
},
140137
{
141138
"name": "2",
142139
"common_name": "blue",
143140
"gsd": 30.0,
144-
"accuracy": null,
145141
"wavelength": 0.48,
146142
"full_width_half_max": 0.06
147143
},
@@ -207,4 +203,4 @@ The [extensions page](../README.md) gives an overview about related extensions.
207203
### Placing common fields in Collections
208204
A lot of EO data will have common metadata across many Items. It is not necessary, but recommended
209205
to use the [Commons extension](../commons/README.md) in combination with [STAC Collections](../../collection-spec/README.md).
210-
The exact metadata that would appear in a STAC Collection record will vary depending on the dataset.
206+
The exact metadata that would appear in a STAC Collection record will vary depending on the dataset.

extensions/eo/schema.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@
8282
},
8383
"eo:epsg": {
8484
"title": "EPSG code",
85-
"type": "integer"
85+
"type": [
86+
"integer",
87+
"null"
88+
]
8689
},
8790
"eo:cloud_cover": {
8891
"title": "Cloud Cover",
@@ -121,4 +124,4 @@
121124
]
122125
}
123126
}
124-
}
127+
}

implementations.md

+49-19
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,41 @@ Browsable online version are usually powered by [stac-browser](https://github.co
88

99
## Static Catalog Examples
1010

11-
### Spacenet (STAC 0.5)
11+
### Spacenet (STAC 0.6)
1212

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

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

19-
### CBERS (STAC 0.5)
19+
### CBERS-4 (STAC 0.6 and 0.5)
2020

21-
[CBERS](https://en.wikipedia.org/wiki/China%E2%80%93Brazil_Earth_Resources_Satellite_program) is maintaining
22-
a full STAC Catalog, and keeping it up to date with the spec.
21+
[CBERS-4](https://en.wikipedia.org/wiki/China%E2%80%93Brazil_Earth_Resources_Satellite_program) is maintaining
22+
a full STAC Catalog, and keeping it up to date with the spec for versions 0.6 and 0.5.
23+
24+
The source code is available from https://github.com/fredliporace/cbers-2-stac
25+
26+
STAC items are published to public SNS topics as soon as new scenes are ingested into AWS.
27+
28+
#### STAC 0.6
29+
30+
- Catalog: https://cbers-stac-0-6.s3.amazonaws.com/catalog.json
31+
- SNS topic: arn:aws:sns:us-east-1:769537946825:cbers-2-stac-0-6-CBERSSTACItemTopic-X1VTPGK5HBZ5
32+
33+
#### STAC 0.5
2334

2435
- Catalog: https://cbers-stac.s3.amazonaws.com/catalog.json
36+
- SNS topic: arn:aws:sns:us-east-1:769537946825:cbers-2-stac-CBERSSTACItemTopic-N0MZUA5EIQC9
2537
- Browsable online version: http://cbers-stac.netlify.com/
26-
- Source code: https://github.com/fredliporace/cbers-2-stac
38+
39+
### Landsat-8 on AWS (STAC 0.6.0)
40+
41+
This catalog contains all Landsat-8 metadata from the [Earth on AWS](https://aws.amazon.com/earth/) program.
42+
43+
- Catalog: https://landsat-stac.s3.amazonaws.com/catalog.json
44+
- SNS topic: arn:aws:sns:us-west-2:552188055668:landsat-stac
45+
2746

2847
### ISERV (STAC 0.4.1)
2948

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

37-
### Planet Disaster Data (STAC 0.5)
56+
### Planet Disaster Data (STAC 0.6)
3857

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

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

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

5371
## API (Active Catalog) Examples
54-
### Boundless STAC Server
72+
### Boundless STAC Server (0.6.0)
5573

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

59-
### Harris STAC Server
77+
### sat-api (0.6.0)
6078

61-
Contains a number of Landsat records:
79+
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.
6280

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

66-
### Other implementations
84+
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).
6785

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

7087
## Ecosystem
7188

7289
Other software related to STAC like validators, crawlers etc.
7390

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

77-
## Early prototypes / outdated
97+
## Early prototypes / not updated
7898

7999
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).
80100

101+
### Harris STAC Server
102+
103+
Contains a number of Landsat records:
104+
105+
* Items call: http://35.160.175.42:8081/items/?limit=10
106+
* Can see a particular Landsat item at: http://35.160.175.42:8081/items/LC08_L1TP_040032_20170415_20170501_01_T1
107+
108+
### Others
109+
110+
* [Geocatalogo](https://github.com/go-spatial/geocatalogo) is a Go implementation of STAC.
81111
* [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.
82112
* [py-stac](https://github.com/raster-foundry/pystac) was used to create the ISERV catalog. It is still pretty tied to that data type.
83113
* [go-stac](https://github.com/planetlabs/go-stac) does validation of static catalogs.

0 commit comments

Comments
 (0)