Skip to content
Merged
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
356 commits
Select commit Hold shift + click to select a range
bceddc1
Clarifications
m-mohr Jun 11, 2019
ab83ef2
limit: number => integer
m-mohr Jun 11, 2019
3d39bc4
global vs local NPM package install; fixing typos
fredliporace Jun 12, 2019
abb45d2
update limit description
Jun 12, 2019
ae83237
Update schema.json
m-mohr Jun 12, 2019
839b4b7
update doc with number->integer
Jun 12, 2019
14416e1
fixed fields api extension example
joshfix Jun 13, 2019
a6e7a71
Changed key name from id to name to match eo extension
kbgg Jun 13, 2019
9fa4be1
Merge branch 'dev' into fix-eo-bands-examples
m-mohr Jun 13, 2019
02e25dd
Merge pull request #494 from kbgg/fix-eo-bands-examples
m-mohr Jun 13, 2019
b432eb5
Merge branch 'dev' into extension/training_data
cholmes Jun 13, 2019
ffa0ac7
fix API Query Extension OpenAPI spec examples, remove time predicate
Jun 14, 2019
7ccc2f6
Merge branch 'dev' into api-document
cholmes Jun 17, 2019
cbe2ca0
Merge branch 'dev' into extension-search
cholmes Jun 17, 2019
a958509
Merge branch 'dev' into pv/itemcollection
cholmes Jun 17, 2019
8525194
Merge pull request #467 from fredliporace/api-document
m-mohr Jun 17, 2019
9041e0b
integrate itemcollection spec into item spec
Jun 17, 2019
dac236b
Merge branch 'dev' into fields-example-fix
matthewhanson Jun 17, 2019
89d6d81
remove ItemCollection properties
Jun 17, 2019
d67b14f
Merge branch 'dev' into pv/itemcollection
Jun 17, 2019
94959fd
Merge branch 'dev' into api-stac-search-post
Jun 17, 2019
dcb9d81
Merge pull request #493 from joshfix/fields-example-fix
joshfix Jun 17, 2019
81ef8dc
Merge branch 'dev' into extension-search
Jun 17, 2019
35be8f2
move search extension into api extensions
Jun 17, 2019
d41df36
Merge branch 'extension-search' of github.com:philvarner/stac-spec in…
Jun 17, 2019
8a79ec8
Merge branch 'dev' into extension/training_data
cholmes Jun 18, 2019
ad9af5a
cleaning up examples and removing label:version
nrweir Jun 18, 2019
3c0c578
Merge pull request #502 from nrweir/extension/label_nw
m-mohr Jun 18, 2019
58ba934
Changes for consistency with other extension specs.
m-mohr Jun 18, 2019
38c50af
Fixed examples and applied formatting.
m-mohr Jun 18, 2019
dcd1802
fix links to ItemCollection
Jun 18, 2019
e7dbfaa
prevent POST JSON for WFS 3 endpoints, clarify transaction API behavior
Jun 18, 2019
de604e5
Merge branch 'dev' into api-stac-search-post
Jun 18, 2019
22e0423
fix ItemCollection link
Jun 18, 2019
2b76dac
add Item and ItemCollection sections
Jun 18, 2019
37ee3cd
re add warning
Jun 18, 2019
1ad37aa
Merge pull request #489 from philvarner/api-stac-search-post
joshfix Jun 18, 2019
c915011
Merge branch 'dev' into extension/training_data
m-mohr Jun 19, 2019
0c6e935
changing class_name and stat_name to name
nrweir Jun 19, 2019
da8e972
Applied changes again that got reverted by the previous commit.
m-mohr Jun 18, 2019
95dcbb4
update api spec STAC.yaml via generate-all
Jun 19, 2019
a8ddd88
Transaction Extension Status Codes are more REST conventional
Jun 19, 2019
6ac55e5
add 'in' operator over strings to query extension
Jun 19, 2019
7c1a665
Merge pull request #362 from radiantearth/extension/training_data
matthewhanson Jun 19, 2019
bd728ed
Update API Fields Extension with more precise semantics and behavior
Jun 20, 2019
eb178d9
Merge branch 'dev' into pv/itemcollection
Jun 20, 2019
2500894
fix description of flat vs. nested properties
Jun 20, 2019
ba14b18
Merge branch 'dev' into extension-search
Jun 20, 2019
90b345d
split itemcollection into separate spec
Jun 20, 2019
138b0a9
revert changes to item spec
Jun 20, 2019
1dd649c
Merge branch 'dev' into query-extension-in-operator
cholmes Jun 21, 2019
30ca8e1
Merge branch 'dev' into transaction-status-codes
cholmes Jun 21, 2019
67d97d3
Merge branch 'dev' into update-api-spec-STACyaml
cholmes Jun 21, 2019
c011b0c
Merge pull request #505 from philvarner/update-api-spec-STACyaml
cholmes Jun 21, 2019
2e68b8f
Merge pull request #507 from philvarner/query-extension-in-operator
m-mohr Jun 21, 2019
a209921
Merge branch 'dev' into extension-search
joshfix Jun 21, 2019
d6c0d7d
Merge pull request #482 from philvarner/extension-search
joshfix Jun 21, 2019
9d24724
fix error response 503->500, add Location header upon POST (create)
Jun 21, 2019
dc42931
use 5XX for error
Jun 21, 2019
4694056
Merge branch 'dev' into transaction-status-codes
Jun 21, 2019
36ac102
Merge branch 'dev' into pv/itemcollection
joshfix Jun 21, 2019
3488e99
Merge pull request #487 from philvarner/pv/itemcollection
joshfix Jun 21, 2019
c2b592f
Merge branch 'dev' into transaction-status-codes
joshfix Jun 21, 2019
27324c9
Merge pull request #506 from philvarner/transaction-status-codes
joshfix Jun 21, 2019
72eef54
fix cut-and-paste typo with GET/POST descriptions
Jun 21, 2019
1a3dc39
Merge branch 'dev' into api-fields-extension-semantics
joshfix Jun 21, 2019
ac372e1
Merge pull request #508 from philvarner/api-fields-extension-semantics
joshfix Jun 21, 2019
0d16d04
Merge branch 'dev' into pv/fix-api-query-ext-time-and-examples
Jun 21, 2019
27826cc
add WFS 3 /api endpoint to docs, and reformat some tables (#509)
Jun 21, 2019
6ab84fb
Merge branch 'dev' into pv/fix-api-query-ext-time-and-examples
Jun 21, 2019
71aaec4
clarify meaning of GSD (#510)
Jun 21, 2019
4caabb6
Merge branch 'dev' into pv/fix-api-query-ext-time-and-examples
cholmes Jun 21, 2019
73973f4
Merge pull request #495 from philvarner/pv/fix-api-query-ext-time-and…
cholmes Jun 21, 2019
d6b924b
make clear api should only have one of bbox or intersects
Jun 24, 2019
6abc809
remove /api endpoint from WFS 3 description, as it is no longer required
Jun 25, 2019
05624f9
Merge pull request #511 from philvarner/intersects-and-bbox
joshfix Jun 25, 2019
ce51dcd
Clarify EO items platform, constellation, and instrument
Jun 25, 2019
24b25dd
Merge branch 'dev' into remove-api-endpoint
m-mohr Jun 25, 2019
e8d120e
Merge pull request #514 from philvarner/remove-api-endpoint
m-mohr Jun 25, 2019
fd22ca5
Merge branch 'dev' into eo-clarifications
matthewhanson Jun 25, 2019
163b4b5
rename search extension found to matched per WFS3 terms (#515)
Jun 26, 2019
955336b
fix mismerge with query 'in' operator and 'time' operator
Jun 26, 2019
a127bf5
update eo:bands example to clarify index array over name
Jun 26, 2019
db34fae
Merge pull request #518 from philvarner/fix-mismerge-with-query-in-op…
matthewhanson Jul 5, 2019
0a252dd
Merge branch 'dev' into eo-example-clarification
matthewhanson Jul 5, 2019
bdcfbcb
Merge pull request #520 from philvarner/eo-example-clarification
matthewhanson Jul 5, 2019
d92596d
Merge branch 'dev' into eo-clarifications
matthewhanson Jul 5, 2019
04799c0
adding etag support to transactions
Jul 10, 2019
0e6fbcd
adding ETag header to patch and put responses
Jul 11, 2019
efd9b9c
Updated WFS API specification to draft 2.
m-mohr Jul 17, 2019
945b3b0
Updated API spec documentation.
m-mohr Jul 17, 2019
f9f5985
Added reference to ISO8601 for periods. RFC3339 doesn't specify perio…
m-mohr Jul 17, 2019
8001196
Clarifications for/Fixes the API examples.
m-mohr Jul 17, 2019
873b040
Updated Collection specification and fixed all collection examples.
m-mohr Jul 17, 2019
2b57922
Fixed WFS3 spec issue, aligned and cleaned up STAC API.
m-mohr Jul 17, 2019
7615bd6
Updated to recent changes in the WFS repo.
m-mohr Jul 17, 2019
4c04dfd
There was a duplicate of the field `schema` in the PC extension.
m-mohr Jul 18, 2019
77696a8
Removed fields from Single Item extension (will be removed).
m-mohr Jul 18, 2019
bf055e8
First draft of the summaries for catalogs.
m-mohr Jul 18, 2019
0b52f52
Absolute links changed to relative in JSON schemas (#528) and clean-up.
m-mohr Jul 18, 2019
6cd274c
Updated changelog.
m-mohr Jul 18, 2019
7f9db01
Updated CHANGELOG
m-mohr Jul 18, 2019
7a89e2f
Fixed links and outdated information on APIs on the front-page of the…
m-mohr Jul 18, 2019
e806abe
Extension supported, first draft.
m-mohr Jul 22, 2019
fab43c0
Fixed Label extension examples.
m-mohr Jul 22, 2019
e5a814e
Re-generated STAC API files, which seem to be outdated.
m-mohr Jul 22, 2019
be31585
Collections: Inherit JSON Schema from Catalog (partial fix for #533).
m-mohr Jul 22, 2019
85e32c3
copy changes to SAR extension
Jul 22, 2019
ce08f4e
Removed time parameter, focus on datetime parameter.
m-mohr Jul 23, 2019
e952231
Fixed API link example as discussed with @philvarner.
m-mohr Jul 23, 2019
1659ce1
Merge pull request #532 from radiantearth/misc-fixes
m-mohr Jul 23, 2019
a944720
Merge branch 'dev' into feature/eTag
m-mohr Jul 23, 2019
03fa07e
Merge branch 'dev' into wfs3-draft2
m-mohr Jul 23, 2019
65de982
Added transaction extension to extension YAML and fixed rendering.
m-mohr Jul 23, 2019
791882c
Regenerated YAML files to reflect latest changes.
m-mohr Jul 23, 2019
1dee6dc
Merge remote-tracking branch 'origin/add-transaction-to-extensions' i…
m-mohr Jul 23, 2019
6ea257f
Added YAML fragment for API search extension.
m-mohr Jul 23, 2019
4c7caa8
Added transaction extension to extension YAML and fixed rendering.
m-mohr Jul 23, 2019
893728e
Merge branch 'dev' into eo-clarifications
Jul 24, 2019
0e80d41
update sar examples
Jul 24, 2019
7b9cd4f
Merge branch 'dev' into fix-api-links
Jul 25, 2019
3151a82
Merge pull request #530 from radiantearth/fix-api-links
m-mohr Jul 25, 2019
b76b163
Merge branch 'dev' into eo-clarifications
Jul 30, 2019
450054e
add API reserved parameter language, clarification on the form of GET…
Jul 31, 2019
e9567a7
Merge branch 'dev' into yaml-for-search-extension
Jul 31, 2019
398e50d
Merge branch 'dev' into feature/eTag
Jul 31, 2019
9a3e1d3
Merge pull request #538 from radiantearth/yaml-for-search-extension
cholmes Jul 31, 2019
23eff52
Merge branch 'dev' into feature/eTag
m-mohr Jul 31, 2019
1c33665
Updated changelog
m-mohr Jul 31, 2019
0ebb6de
Merge branch 'dev' into eo-clarifications
Jul 31, 2019
1cdffb1
Merge pull request #534 from radiantearth/feature/eTag
m-mohr Jul 31, 2019
80088e9
fix example with _LV1B
Jul 31, 2019
0ef066d
Merge branch 'dev' into eo-clarifications
Jul 31, 2019
77e8571
Merge branch 'dev' into json-schema-paths-cleanup
cholmes Aug 1, 2019
48e4b45
Merge branch 'dev' into stac-extensions-field
m-mohr Aug 1, 2019
4530ae0
Merge branch 'dev' into summaries
m-mohr Aug 1, 2019
e16bbc5
Merge remote-tracking branch 'origin/dev' into wfs3-draft2
m-mohr Aug 1, 2019
c9cbe16
Merge branch 'dev' into fix-pc-extension-schema
cholmes Aug 1, 2019
d335a6c
Merge pull request #526 from radiantearth/fix-pc-extension-schema
cholmes Aug 1, 2019
3ce3be4
Merge branch 'dev' into reserved-parameter-language
matthewhanson Aug 1, 2019
d99570b
Merge branch 'dev' into json-schema-paths-cleanup
matthewhanson Aug 1, 2019
f71d126
Merge pull request #529 from radiantearth/json-schema-paths-cleanup
matthewhanson Aug 1, 2019
297ab42
Merge branch 'dev' into wfs3-draft2
matthewhanson Aug 1, 2019
b41074d
Merge branch 'dev' into eo-clarifications
matthewhanson Aug 1, 2019
6f0a2e9
Merge branch 'dev' into summaries
cholmes Aug 1, 2019
e818847
Merge branch 'dev' into stac-extensions-field
matthewhanson Aug 1, 2019
c440e26
Merge branch 'dev' into reserved-parameter-language
matthewhanson Aug 1, 2019
a0710d8
Replaced /time with /datetime
m-mohr Aug 1, 2019
bd5eca7
changelog, or -> |
Aug 1, 2019
bcca1f5
Merge pull request #525 from radiantearth/wfs3-draft2
cholmes Aug 1, 2019
d815f00
Merge branch 'dev' into reserved-parameter-language
Aug 1, 2019
82caede
update value constraint recommendations
Aug 1, 2019
4d4c6b6
Merge branch 'dev' into eo-clarifications
Aug 1, 2019
ee026bf
Merge pull request #540 from philvarner/reserved-parameter-language
matthewhanson Aug 1, 2019
816524f
Merge branch 'dev' into eo-clarifications
matthewhanson Aug 1, 2019
b0a5425
update changelog
Aug 1, 2019
4539b2d
Merge branch 'eo-clarifications' of github.com:philvarner/stac-spec i…
Aug 1, 2019
ba0d666
Updated JSON Schema to have relative link.
m-mohr Aug 1, 2019
fa539ff
Merge remote-tracking branch 'origin/dev' into stac-extensions-field
m-mohr Aug 1, 2019
302fa4b
Merge remote-tracking branch 'origin/dev' into summaries
m-mohr Aug 1, 2019
401ce06
Moved range further down, fixed tables/typos, removed relative self l…
m-mohr Aug 1, 2019
59f830b
Explained summaries a bit more.
m-mohr Aug 1, 2019
41fa369
Added stac_version and stac_extensions to Items, changes definitions …
m-mohr Aug 5, 2019
649178f
remove naming recommendations
Aug 7, 2019
1b8eb94
Merge pull request #516 from philvarner/eo-clarifications
m-mohr Aug 8, 2019
006b1d1
Merge branch 'dev' into stac-extensions-field
matthewhanson Aug 14, 2019
2d579e9
Merge branch 'dev' into summaries
matthewhanson Aug 14, 2019
4d18337
Merge pull request #527 from radiantearth/summaries
matthewhanson Aug 14, 2019
f3aff16
Merge remote-tracking branch 'origin/dev' into stac-extensions-field
m-mohr Aug 14, 2019
1aec1ec
Merge pull request #531 from radiantearth/stac-extensions-field
m-mohr Aug 14, 2019
ea21e22
moved best practices to root, so it can capture all best practices, n…
cholmes Aug 14, 2019
0301300
edits to make this general for STAC, not catalog specific
cholmes Aug 14, 2019
252cc89
Updated version numbers (#543)
m-mohr Aug 14, 2019
677afde
added info on ids and fields
cholmes Aug 14, 2019
c01c2bc
Merge branch 'dev' into stac-best-practices
cholmes Aug 14, 2019
1d122a8
Make license and providers consistent between Collection and Item (#544)
m-mohr Aug 14, 2019
de3177f
Fixed invalid example
m-mohr Aug 14, 2019
4e7aca3
Added links to chapters to improve navigation / UI (#541).
m-mohr Aug 14, 2019
6a7bca4
Merge pull request #549 from radiantearth/license-provider-issues
cholmes Aug 14, 2019
4104267
Merge branch 'dev' into version-numbers
matthewhanson Aug 14, 2019
59c220a
Merge pull request #547 from radiantearth/version-numbers
matthewhanson Aug 14, 2019
e0bb9cb
Merge branch 'dev' into better-navigation
m-mohr Aug 14, 2019
fb3320c
Merge branch 'dev' into better-navigation
m-mohr Aug 14, 2019
73d8216
Merge pull request #550 from radiantearth/better-navigation
m-mohr Aug 14, 2019
5944dac
Allow summaries to specify Stats (#542)
m-mohr Aug 14, 2019
d476a99
asset definition extension added
matthewhanson Aug 15, 2019
93d3b5b
update changelog
matthewhanson Aug 15, 2019
534bd06
Merge branch 'dev' of github.com:radiantearth/stac-spec into asset_de…
matthewhanson Aug 15, 2019
164a05b
asset def ext - remove prefix and add note on other fields
matthewhanson Aug 15, 2019
a4273dd
update common bands table
matthewhanson Aug 15, 2019
9504555
update changelog with new common band names
matthewhanson Aug 15, 2019
c1068b9
add single file STAC extension
matthewhanson Aug 15, 2019
2e7bcf7
update CHANGELOG with older commits
matthewhanson Aug 15, 2019
43f5803
Merge branch 'dev' into common_band_names
matthewhanson Aug 15, 2019
006f862
asset def ext: update json schema and example
matthewhanson Aug 15, 2019
697f213
common_band_names: small fixes
matthewhanson Aug 16, 2019
5eaf756
Merge branch 'common_band_names' of github.com:radiantearth/stac-spec…
matthewhanson Aug 16, 2019
418c7df
Fixed JSON Schema, improved/fixed links in README.
m-mohr Aug 16, 2019
7b8c1a4
Merge branch 'dev' into stac-best-practices
cholmes Aug 18, 2019
1301851
Merge pull request #554 from radiantearth/common_band_names
cholmes Aug 18, 2019
72f9483
Merge branch 'dev' into update_changelog
cholmes Aug 18, 2019
ce16e5c
Merge pull request #559 from radiantearth/update_changelog
cholmes Aug 18, 2019
e08fcc6
Fixed typo.
m-mohr Aug 19, 2019
394760c
Merge branch 'dev' into stats-object
m-mohr Aug 19, 2019
d09d199
Merge pull request #551 from radiantearth/stats-object
m-mohr Aug 19, 2019
063cd8a
Allow scientific extension in collections and other improvements.
m-mohr Aug 19, 2019
7b6d655
Updated Changelog.
m-mohr Aug 19, 2019
71c6559
Fixed media type table (didn't render correctly) and added some wordi…
m-mohr Aug 19, 2019
3068f02
Merge branch 'dev' into stac-best-practices
cholmes Aug 19, 2019
306f98a
Merge pull request #562 from radiantearth/scientific-collections
matthewhanson Aug 19, 2019
3bbd527
Merge branch 'dev' into media-type-table
cholmes Aug 19, 2019
4c95450
Merge pull request #563 from radiantearth/media-type-table
matthewhanson Aug 19, 2019
6ade633
Issue #352: add z-axis to item spec for bbox and geometry
joshfix Aug 19, 2019
9a7ea8c
Add info about mixed version catalogs to best practices (#546)
m-mohr Aug 20, 2019
836c43d
Merge branch 'dev' into stac-best-practices
m-mohr Aug 20, 2019
f3f1a6b
Fixed typo.
m-mohr Aug 20, 2019
a76d904
Merge pull request #548 from radiantearth/stac-best-practices
matthewhanson Aug 20, 2019
d65e1eb
resolve merge
matthewhanson Aug 20, 2019
c9f30c4
updated api and collection spec for consitency
joshfix Aug 20, 2019
c2a3251
Merge branch 'dev' into dev
m-mohr Aug 20, 2019
815f960
single file stac - updated readmes
matthewhanson Aug 20, 2019
d9bd6c0
Merge branch 'dev' of github.com:radiantearth/stac-spec into asset_de…
matthewhanson Aug 20, 2019
9ee1be0
updated readme
matthewhanson Aug 20, 2019
3535655
Merge branch 'asset_definition' of github.com:radiantearth/stac-spec …
matthewhanson Aug 20, 2019
7767bae
single-file-stac ext: update readme
matthewhanson Aug 20, 2019
ff67e2a
single-file-stac: update changelog
matthewhanson Aug 20, 2019
a35e106
Merge pull request #564 from joshfix/dev
cholmes Aug 20, 2019
56ad0bf
Merge branch 'dev' into single_file_stac
m-mohr Aug 20, 2019
1d7b9f7
Merge pull request #558 from radiantearth/single_file_stac
m-mohr Aug 20, 2019
e18781d
Merge branch 'dev' into asset_definition
cholmes Aug 20, 2019
094c109
Fixed example
m-mohr Aug 20, 2019
ad896cd
Merge pull request #552 from radiantearth/asset_definition
m-mohr Aug 20, 2019
4ef6540
Update UML diagram
hgs-msmith Aug 21, 2019
e77b009
EO extension MD changes: moved eo:bands into properties object and up…
anayeaye Aug 21, 2019
b0cd0cc
Merge pull request #569 from anayeaye/eo-bands-ext-update-readme-v2
cholmes Aug 22, 2019
d2da701
Fixed JSON schema for stac_extensions (thanks @a-kirk).
m-mohr Aug 22, 2019
795ea9d
Merge branch 'dev' into fix-stac-extensions-schema
m-mohr Aug 23, 2019
d690334
Merge branch 'dev' into update-UML
cholmes Aug 23, 2019
a41dcbd
Merge pull request #570 from radiantearth/fix-stac-extensions-schema
cholmes Aug 23, 2019
156f6ac
Merge branch 'dev' into update-UML
cholmes Aug 23, 2019
a1c0c4b
Merge pull request #568 from radiantearth/update-UML
matthewhanson Aug 23, 2019
0aa4228
Set to 0.8.0 and re-ordered a bit
cholmes Aug 23, 2019
d42a30b
changed to reflect how we did things previously
cholmes Aug 23, 2019
ad11af6
Updated version to 0.8.0-RC1
cholmes Aug 23, 2019
4f35f43
Merge branch 'dev' into changelog-for-080
cholmes Aug 23, 2019
aa21516
Merge pull request #571 from radiantearth/changelog-for-080
cholmes Aug 23, 2019
936af54
Merge remote-tracking branch 'origin/master' into dev
m-mohr Aug 23, 2019
7398077
Fixed merge.
m-mohr Aug 23, 2019
cd2aa0a
Merge pull request #573 from radiantearth/align-dev-to-master
m-mohr Aug 23, 2019
c7fb69c
Merge remote-tracking branch 'origin/master' into dev
m-mohr Aug 23, 2019
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,5 @@ typings/

# next.js build output
.next

.DS_Store
1 change: 1 addition & 0 deletions extensions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ An extension can add new fields to STAC entities (content extension), or can add
| [Data Cube](datacube/README.md) (`cube`) | Item | Data Cube related metadata, especially to describe their dimensions. | *Proposal* |
| [Datetime Range](datetime-range//README.md) (`dtr`) | Item | An extension to provide datetime ranges with a start and an end datetime stamp in a consistent way. | *Proposal* |
| [EO](eo/README.md) (`eo`) | Item | Covers electro-optical data that represents a snapshot of the earth for a single date and time. It could consist of multiple spectral bands, for example visible bands, infrared bands, red edge bands and panchromatic bands. The extension provides common fields like bands, cloud cover, off nadir, sun angle + elevation, gsd and more. | *Pilot* |
| [Label](label/README.md) (`label`) | Item | Items that relate labeled AOIs with source imagery | *Proposal* |
| [Point Cloud](pointcloud/README.md) (`pc`) | Item | Provides a way to describe point cloud datasets. The point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as LiDAR or coincidence-matched imagery. | *Proposal* |
| [SAR](sar/README.md) (`sar`) | Item | Covers synthetic-aperture radar data that represents a snapshot of the earth for a single date and time. | *Proposal* |
| [Scientific](scientific/README.md) (`sci`) | Item | Scientific metadata is considered to be data that indicate from which publication data originates and how the data itself should be cited or referenced. | *Proposal* |
Expand Down
163 changes: 163 additions & 0 deletions extensions/label/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Label Extension Specification (`label`)

**Extension [Maturity Classification](../README.md#extension-maturity): Proposal**

This extension is meant to support using labeled AOIs with Machine Learning models, particularly training data sets, but can be used in any application where labeled AOIs are needed.

This document explains the fields of the STAC Label Extension to a STAC Item. It is used to describe labeled Areas of Interest (AOIs) that are used with earth observation imagery. These labels can take several forms, though all are expected to be contained with a GeoJSON `FeatureCollection`:
- **Tile classification labels:** A GeoJSON `FeatureCollection` with a single `Feature`. This feature's geometry should match the bounds of the labeled image tile, and a `Feature` property should define the class (see below).
- **Tile regression labels:** A GeoJSON `FeatureCollection` with a single `Feature`. This feature's geometry should match the bounds of the labeled image tile, and a `Feature` property should define the regression value (see below).
- **Object detection labels:** A GeoJSON `FeatureCollection` containing rectangular bounding boxes (as `Polygon` geometry `Feature`s) defining the bounds of an object of interest (e.g. a car). A `Feature` property **must** define the class of the object labeled. Additional `Feature` properties may be defined for additional metadata.
- **Segmentation labels:** A GeoJSON `FeatureCollection` containing `Polygon` geometry `Feature`s that trace the boundaries of objects of interest (e.g. buildings, vegetation, bodies of water), or raster-formatted pixel masks defining pixel classes. (See [raster label notes](#raster-label-notes))

## Examples

**Roads:**
- [Example Roads Item](examples/spacenet-roads/roads_item.json)
- [Example Roads Asset (labels)](examples/spacenet-roads/spacenetroads_AOI_3_Paris_img101.geojson)
- [Example Roads Source Imagery Item](examples/spacenet-roads/roads_source.json)
- [Example Roads Collection](examples/spacenet-roads/roads_collection.json)

**Buildings:**
- [Example Collection of Two Building Footprint Label Catalogs](examples/multidataset/catalog.json)
- [Example SpaceNet Buildings Catalog](examples/multidataset/spacenet-buildings/catalog.json)
- [Example SpaceNet Buildings (Vegas) Item](examples/multidataset/spacenet-buildings/AOI_2_Vegas_img2636.json)
- [Example SpaceNet Buildings (Paris) Item](examples/multidataset/spacenet-buildings/AOI_3_Paris_img1648.json)
- [Example SpaceNet Buildings (Shanghai) Item](examples/multidataset/spacenet-buildings/AOI_4_Shanghai_img3344.json)
- [Example World Bank Zanzibar Buildings Catalog](examples/multidataset/zanzibar/catalog.json)
- [Example World Bank Zanzibar Building Item 1](examples/multidataset/zanzibar/znz001.json)
- [Example World Bank Zanzibar Building Item 2](examples/multidataset/zanzibar/znz029.json)
## Schema
- [JSON Schema](schema.json)

## Item fields

A Label Item represents a polygon, set of polygons, or raster data defining labels and label metadata and should be part of a Collection. See the [raster label notes](#raster-label-notes) section below for details on raster-formatted labels. It is up to the data provider how to group their catalog, but a typical use might have a Collection of a series of label sets (Items) that are related. For example a "Building" collection might have 50 Items, each one was a set of building AOIs for a single country. The Collection holds details on the data providers and the license.

Like other content extensions, the Label extension adds additional fields to a STAC Item, which are detailed after some additional clarification on what the core fields mean with respect to a Label Item.

### Core Item fields
Some additional notes are given here for some of the core STAC Item fields and what they represent for label.

- **bbox** and **geometry**: The bounding box and the geometry of a Label Item represents the region for which the label(s) is/are valid. This could be the extent of all the AOIs in the dataset, or could be the region the provider believes the label is representative.
- **properties.datetime**: The datetime of a Label Item is the nominal datetime for which the label applies, typically this is the datetime of the source imagery used to generate the labels. If the label applies over a range of datetimes (e.g., generated from multiple source images) then use the datetime-range (dtr) extension to indicate start and end datetimes.
- **assets**: The label assets are GeoJSON FeatureCollection assets containing the actual label features. As with the core STAC Item a thumbnail asset is also strongly encouraged.

### New Item properties
| element | type info | name | description |
|-------------------|----------------------|----------------------------|--------------------------------------------------------------------------------------------------|
| label:property | [string\|null] | Name | **REQUIRED** These are the names of the property field(s) in each `Feature` of the label asset's `FeatureCollection` that contains the classes (keywords from `label:classes` if the property defines classes). If labels are rasters, use `null`. |
| label:classes | Class Object | Classes | **REQUIRED** if using categorical data. A Class Object defining the list of possible class names for each `label:property`. (e.g., tree, building, car, hippo)|
| label:description | string | Description | **REQUIRED** A description of the label, how it was created, and what it is recommended for |
| label:type | string | Type | **REQUIRED** An ENUM of either `vector` label type or `raster` label type |
| label:task | [string] | Task | Recommended to be a subset of 'regression', 'classification', 'detection', or 'segmentation', but may be an arbitrary value |
| label:method | [string] | Method | Recommended to be a subset of 'automated' or 'manual', but may be an arbitrary value. |
| label:overview | Label Overview Object| Overview | An Object storing counts (for classification-type data) or summary statistics (for continuous numerical/regression data). |

#### Class Object
| Field Name | Type | name | description |
|-----------------|----------------------|----------------------------|--------------------------------------------------------------------------------------------------|
| name | string\|null | Name | The property key within the asset's each `Feature` corresponding to class labels. If labels are raster-formatted, use null.|
| classes | [string\|number] | Classes | The different possible class values within the property `name`. |

#### Label Overview Object

| Field Name | Type | name | description |
|-----------------|-----------------|----------------------------|--------------------------------------------------------------------------------------------------|
| property_key | string | Property Key | The property key within the asset corresponding to class labels. |
| counts | [Count Object] | Counts | An object containing counts for categorical data. |
| statistics | [Stats Object] | Statistics | An object containing statistics for regression/continuous numeric value data. |

`label:overview ` generally won't have both counts and statistics, but one of the two.

#### Count Object

| Field Name | Type | name | description |
|-----------------|-----------------|----------------------------|--------------------------------------------------------------------------------------------------|
| name | string | Class Name | The different possible classes within the property `name`. |
| count | integer | Count | The number of occurrences of the class.


```json
{
"property_key": "road_type",
"counts": [
{
"name": "dirt",
"count": 10
},
{
"name": "paved",
"count": 99
}
]
}

```

#### Stats Object

| Field Name | Type | name | description |
|-----------------|------------|----------------------------|--------------------------------------------------------------------------------------------------|
| name | string | Stat Name | The name of the statistic being reported. |
| value | number | Value | The value of the statistic `name`. |

```json
{
"property_key": "elevation",
"statistics": [
{
"name": "mean",
"value": 100.1
},
{
"name": "median",
"value": 102.3
},
{
"name": "max",
"value": 100000
}
]
}

```

#### Assets

##### labels (required)
The Label Extension requires at least one asset that uses the key "labels". The asset will contain a link to the actual label data. The asset has these requirements:

- is a GeoJSON FeatureCollection
- if `label:tasks` is tile_classification, object_detection, or segmentation, each feature should have one or more properties containing the label(s) for the class (one of `label:classes`). the name of the property can be anything (use "label" if making from scratch), but needs to be specified in the `Item` with the `label:property` field.
- if `label:tasks` is tile_regression, each feature should have one or more properties defining the value for regression. the name of the property can be anything (use "label" if making from scratch), but needs to be specified in the `Item` with the `label:property` field.

##### Raster Label Notes

If the labels are formatted as rasters - for example, a pixel mask with 1s where there is water and 0s where there is land - the following approach is recommended for including those data.

The raster label file (e.g. a GeoTIFF) should be included as an asset under the item. Along with the image file, a GeoJSON `FeatureCollection` asset should be included. That `FeatureCollection` should contain a single `Feature`, ideally a polygon geometry defining the extent of the raster.

##### Rendered images (optional)
The source imagery used for creating the label is linked to under `links` (see below). However the source imagery is likely to have been rendered in some way when creating the training data. For instance, a byte-scaled true color image may have been created from the source imagery. It may be useful to save this image and include it as an asset in the `Item`.


#### Links: source imagery
A Label Item links to any source imagery that the AOI applys to by linking to the STAC Item representing the imagery. Source imagery is indicated by using a `rel` type of "source" and providing the link to the STAC Item.

In addition the link has a new Label specific field:

| element | type info | name | description |
|-----------------|-----------------|----------------------------|--------------------------------------------------------------------------------------------------|
| label:assets | [string] | Assets | The keys for the assets to which the label applies |


## Implementations
Example implementations can be found in [Examples](#Examples). The Roads implementation provides an example item for labels from the [SpaceNet Road Network Extraction Challenge Dataset](https://spacenet.ai/spacenet-roads-dataset/), providing segmentation labels for road networks. The Misc Samples implementation provides an example catalog of collections with sample label items from several training datasets, [SpaceNet Buildings](https://spacenet.ai/spacenet-buildings-dataset-v2/) and [Open AI Tanzania Building Footprint Segmentation Challenge](https://competitions.codalab.org/competitions/20100) for now, providing segmentation labels for buildings.

Raster Foundry will support exporting STAC-compliant training data label items, assets, and sources all in `json` format contained in a `zip` file for a project layer. There is a [Pull Request](https://github.com/raster-foundry/raster-foundry/pull/5018) for the backend support in its repository. Frontend support is on the roadmap.



## Extensions
Label Items may often use the `datetime-range` extension if the label set applies over a range of dates. While the EO extension doesn't make sense within a Label Item itself, most Label Items will link to source data which will frequently use the EO Extension. The [extensions page](../README.md) gives an overview about these and other extensions.
25 changes: 25 additions & 0 deletions extensions/label/examples/multidataset/catalog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"id": "label_extension_demo",
"title": "label extension demo",
"description": "Sample ML training data labels in the STAC format",
"stac_version": "0.7",
"links":
[
{
"rel": "self",
"href": "catalog.json"
},
{
"rel": "root",
"href": "./catalog.json"
},
{
"rel": "child",
"href": "zanzibar/catalog.json"
},
{
"rel": "child",
"href": "spacenet-buildings/catalog.json"
}
]
}
Loading