Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
197 commits
Select commit Hold shift + click to select a range
ef2a338
Related to Issue #373
fredliporace Mar 5, 2019
2509020
self as strongly required
fredliporace Mar 5, 2019
a38bd74
Including catalog and collection
fredliporace Mar 5, 2019
4f6a8e7
Fixing bad copy'n'paste
fredliporace Mar 5, 2019
fc31304
redefinend fields extension to allow filtering on any property in doc…
Mar 5, 2019
6ba966f
removed ide files
Mar 5, 2019
c57ae4a
Update to JSON Schema draft 07
mojodna Nov 21, 2018
d6fe93b
Remove JavaScript validator
mojodna Mar 5, 2019
9768913
Clean up validation README
mojodna Mar 5, 2019
7dac6c3
Merge pull request #360 from mojodna/json-schema-draft-07
cholmes Mar 5, 2019
a8521d4
Update item-spec/item-spec.md
mojodna Mar 5, 2019
2032fd1
Update item-spec/item-spec.md
mojodna Mar 5, 2019
17382f5
Update item-spec/item-spec.md
mojodna Mar 5, 2019
e5a189e
Update item-spec/item-spec.md
mojodna Mar 5, 2019
6754166
root as strongly recommended
fredliporace Mar 5, 2019
003f817
Merge branch 'self' of github.com:fredliporace/stac-spec into self
fredliporace Mar 5, 2019
254b6c5
Merge branch 'dev' into self
fredliporace Mar 5, 2019
4d60c3d
[STAC-417] Added href to the asset called index
jbants Mar 7, 2019
5fefb33
Fixed band schema for SAR
m-mohr Mar 8, 2019
3516e10
Updated outdated summary of the scientific extension.
m-mohr Mar 11, 2019
6e28995
Fixed descriptions.
m-mohr Mar 11, 2019
a46569d
Merge pull request #414 from fredliporace/self
cholmes Mar 12, 2019
d5d0ed4
Merge branch 'dev' into STAC-417
cholmes Mar 12, 2019
6da7706
Merge pull request #418 from jbants/STAC-417
cholmes Mar 12, 2019
fee4249
Merge branch 'dev' into sar-bands-description-fix
cholmes Mar 12, 2019
5175efc
Merge pull request #419 from radiantearth/sar-bands-description-fix
cholmes Mar 12, 2019
1ed9673
Merge branch 'dev' into dev
cholmes Mar 12, 2019
acbc643
Merge branch 'dev' into scientific-extension-desctiption
cholmes Mar 12, 2019
d38b84a
remove reference to self being required
cholmes Mar 12, 2019
21bc51e
First outline of best practice doc
cholmes Mar 12, 2019
4b48b93
Merge pull request #420 from radiantearth/scientific-extension-descti…
m-mohr Mar 13, 2019
b927b73
Updated href description
cholmes Mar 13, 2019
2524dfd
More updates
cholmes Mar 14, 2019
1773634
Add observation_direction to SAR extension (#404)
m-mohr Mar 20, 2019
5dc1fa3
SAR: Added incidence_angle (#405), replaced absolute_orbit with relat…
m-mohr Mar 20, 2019
6120495
Renamed incidence_angle_center.
m-mohr Mar 20, 2019
ed91673
SAR: Avoid array fields in favor of primitive types (#422)
m-mohr Mar 20, 2019
ed67a60
Updates
cholmes Mar 20, 2019
998408e
Merge branch 'dev' into catalog-best-practices
m-mohr Mar 20, 2019
f6ba67d
Add collection property to STAC Items (#384).
m-mohr Mar 20, 2019
6312810
Field is required if a collection rel type is present.
m-mohr Mar 20, 2019
7275ece
Added absolute_orbit back, removed off_nadir.
m-mohr Mar 21, 2019
06e5de3
Minor Spelling
and-viceversa Mar 25, 2019
31c6533
Merge branch 'dev' into dev
matthewhanson Mar 26, 2019
50aef2c
Merge branch 'dev' into master
matthewhanson Mar 26, 2019
b8a7c49
Merge pull request #431 from and-viceversa/master
matthewhanson Mar 26, 2019
b18d7d4
Merge branch 'dev' into dev
matthewhanson Mar 27, 2019
dedf054
Merge branch 'dev' into item-collection-property-384
matthewhanson Mar 27, 2019
b73cbce
Merge branch 'dev' into sar-incidence-angle-center-405
m-mohr Mar 28, 2019
6f43683
Merge branch 'dev' into sar-primitives-422
m-mohr Apr 3, 2019
86398a8
Merge branch 'dev' into sar-observcation-direction-404
m-mohr Apr 3, 2019
51d383c
Updated aboslute and relative orbit.
m-mohr Apr 3, 2019
d3194a7
Merge branch 'dev' into catalog-best-practices
cholmes Apr 17, 2019
246e82a
Updates based on feedback
cholmes Apr 17, 2019
5d1e694
added links to catalog best practices document
cholmes Apr 17, 2019
30f1f20
refactored catalog types to best practices, as its more appropriate t…
cholmes Apr 17, 2019
6466294
initial draft consolidating API documentation
matthewhanson Apr 20, 2019
07fe700
reorg API specification, remove redundancies and cleanup
matthewhanson Apr 20, 2019
4ad4e60
add in autogenerated OpenAPI spec docs for core and full (core + exte…
matthewhanson Apr 20, 2019
ad9a3bb
Merge pull request #429 from radiantearth/item-collection-property-384
cholmes Apr 20, 2019
c9b754c
Merge branch 'dev' into dev
cholmes Apr 20, 2019
7096914
Merge branch 'dev' into sar-primitives-422
cholmes Apr 20, 2019
c4117f3
Merge branch 'dev' into sar-incidence-angle-center-405
cholmes Apr 20, 2019
65df312
Merge branch 'dev' into sar-observcation-direction-404
cholmes Apr 20, 2019
51f58fd
Merge pull request #415 from joshfix/dev
matthewhanson Apr 22, 2019
8aae2ab
Merge branch 'dev' into sar-observcation-direction-404
cholmes Apr 22, 2019
7741097
Merge branch 'dev' into catalog-best-practices
cholmes Apr 22, 2019
482964b
fixed link
cholmes Apr 22, 2019
0a9d6e1
Merge pull request #425 from radiantearth/sar-observcation-direction-404
cholmes Apr 22, 2019
65ab2e8
Removed roadmap #296
cholmes Apr 22, 2019
5f9e143
Merge branch 'dev' into catalog-best-practices
cholmes Apr 22, 2019
959a218
Merge pull request #428 from radiantearth/catalog-best-practices
cholmes Apr 22, 2019
9df264b
Added HTML section to catalog best practices
cholmes Apr 22, 2019
e5f6810
Some language improvements
cholmes Apr 22, 2019
5c42541
added info about html
cholmes Apr 22, 2019
4531eef
resolve merge conflict
matthewhanson Apr 23, 2019
2822884
updated auto-generated STAC OpenAPI docs
matthewhanson Apr 23, 2019
1ade01f
some readme updates and new STAC API spec document
matthewhanson Apr 23, 2019
d3e2095
README formatting + combine STAC fragments
matthewhanson Apr 23, 2019
aa5e0db
API docs; merge WFS3 into STAC
matthewhanson Apr 23, 2019
2505134
rename WFS3-core.yaml to WFS3.yaml
matthewhanson Apr 23, 2019
4f9669a
Merge branch 'dev' into sar-primitives-422
m-mohr Apr 23, 2019
15eb0c3
Merge pull request #427 from radiantearth/sar-primitives-422
m-mohr Apr 23, 2019
dfd106a
Merge branch 'dev' into sar-incidence-angle-center-405
m-mohr Apr 23, 2019
ebfb809
Merge branch 'dev' into remove-roadmap.md
m-mohr Apr 23, 2019
0eff721
Merge pull request #435 from radiantearth/remove-roadmap.md
m-mohr Apr 23, 2019
7bd45b4
Merge branch 'dev' into sar-incidence-angle-center-405
cholmes Apr 23, 2019
8e49d5b
Merge branch 'dev' into html-practices
cholmes Apr 23, 2019
4053b83
Merge pull request #426 from radiantearth/sar-incidence-angle-center-405
m-mohr Apr 23, 2019
c4bd055
Merge branch 'dev' into html-practices
cholmes Apr 23, 2019
96fa260
cleanup README
matthewhanson Apr 24, 2019
dde4a48
update API readme and spec
matthewhanson Apr 25, 2019
c6fcbbf
add API extension readme
matthewhanson Apr 25, 2019
be60ffe
move transaction extension to api-spec folder
matthewhanson Apr 25, 2019
d896118
add folder for each API extension
matthewhanson Apr 25, 2019
a969119
add links to API extensions from README
matthewhanson Apr 25, 2019
3210737
Merge branch 'dev' of github.com:radiantearth/stac-spec into feature/…
matthewhanson Apr 25, 2019
e35a3e9
update extension readmes
matthewhanson Apr 25, 2019
2baaaa1
rename api definitions to openapi-schemas
matthewhanson Apr 25, 2019
16a9dc7
rename openapi files
matthewhanson Apr 25, 2019
b93e285
update changelog
matthewhanson Apr 25, 2019
fdc1e1f
remove unncessary info about the API in catalog and collection readmes
matthewhanson Apr 25, 2019
92dc3dd
some initial examples
matthewhanson Apr 26, 2019
cd5f843
cleaned up API spec
matthewhanson Apr 26, 2019
214f4d9
final pass through API readme
matthewhanson Apr 26, 2019
3c02e83
add info for creating fragments for new extensions
matthewhanson Apr 26, 2019
0c58b6d
fix some typos
matthewhanson Apr 26, 2019
314b951
expand API examples
matthewhanson Apr 26, 2019
93bea10
add intersects filter to core spec (it is in the core YAML doc)
matthewhanson Apr 26, 2019
94a87b7
fix typo
matthewhanson Apr 26, 2019
01f05ad
update API Query extension readme
matthewhanson Apr 26, 2019
429f466
readme typo
matthewhanson Apr 26, 2019
86aa57e
add page parameter to core STAC
matthewhanson Apr 26, 2019
c81c8cb
Edits for clarity
cholmes Apr 27, 2019
e0c48fb
Updates to language
cholmes Apr 27, 2019
76c91aa
remove prefix from API extensions header
matthewhanson Apr 27, 2019
13275fd
update transaction API ext readme
matthewhanson Apr 27, 2019
aad824d
remove code block from table
matthewhanson Apr 27, 2019
417fd6a
add link for datetime format
matthewhanson Apr 27, 2019
9de0b3a
add note about Catalog and links for API
matthewhanson Apr 27, 2019
3bc995f
add link to API extensions from content extensions
matthewhanson Apr 28, 2019
022ae4e
change openapi schema to openapi definition
matthewhanson Apr 28, 2019
e9438f4
Updated dependencies to solve vulnerabilities and fixed URL to STAC h…
m-mohr Apr 29, 2019
14006c3
Merge pull request #432 from radiantearth/feature/cleanup_api
m-mohr Apr 29, 2019
71bc2b7
Merge remote-tracking branch 'origin/dev' into feature/add_page
m-mohr Apr 29, 2019
8f777d6
References to some fragments were invalid - not sure why this didn't …
m-mohr Apr 29, 2019
0ad227b
Added search link to spec (implements #430).
m-mohr Apr 29, 2019
c603d20
changed wording to make POST /stac/search not always mandatory.
m-mohr Apr 29, 2019
13e3859
Making the Commons extension Core as optional field in the collection…
m-mohr Apr 29, 2019
52e42bd
Fixing data type errors for include/exclude for fields, fixed path er…
m-mohr Apr 29, 2019
064cf3a
Add language how to combine (standalone) collections with extensions …
m-mohr Apr 29, 2019
3c1e5ff
Merge branch 'dev' into html-practices
cholmes Apr 29, 2019
c506412
Merge pull request #441 from radiantearth/feature/search_link
cholmes Apr 29, 2019
eb34a0d
Merge branch 'dev' into commons-core
cholmes Apr 29, 2019
ddc2835
Merge branch 'dev' into api-fixes
cholmes Apr 29, 2019
8a95423
Merge pull request #443 from radiantearth/api-fixes
m-mohr Apr 29, 2019
d4a2c7b
Merge branch 'dev' into feature/add_page
m-mohr Apr 29, 2019
91e7a5b
Merge branch 'dev' into commons-core
m-mohr Apr 29, 2019
cf3a576
Fixed issues brought up by @cholmes.
m-mohr Apr 29, 2019
6bdf666
Merge pull request #442 from radiantearth/commons-core
m-mohr Apr 29, 2019
4ba6005
Merge branch 'dev' into feature/add_page
m-mohr Apr 29, 2019
9f930cd
Merge pull request #440 from radiantearth/feature/add_page
cholmes May 2, 2019
34abcb6
Merge branch 'dev' into html-practices
cholmes May 2, 2019
0ac93bd
edits on html best practices
cholmes May 2, 2019
317720e
Renamed STAC+extensions.yaml to STAC-extensions.yaml
m-mohr May 2, 2019
0c3570e
Merge pull request #437 from radiantearth/html-practices
matthewhanson May 2, 2019
21e25e8
Merge branch 'dev' into rename-stac-plus-extensions
matthewhanson May 2, 2019
0b6761d
Merge pull request #446 from radiantearth/rename-stac-plus-extensions
matthewhanson May 2, 2019
1d77d27
Adding collection to items, adding properties to Collections (not lin…
m-mohr May 2, 2019
12e2bdf
Updated link, renamed file to not include the version number.
m-mohr May 2, 2019
8439656
Merge pull request #447 from radiantearth/uml
m-mohr May 2, 2019
a99b817
added stac-validator from pip instead of github.
jbants May 2, 2019
067cde6
update schema to point to hosted copy of geojson schema
matthewhanson May 2, 2019
6534e60
Fixed small lint error reported by speccy.
m-mohr May 2, 2019
7a41f4e
Merge branch 'dev' into circleci
jbants May 2, 2019
eec26f4
Merge pull request #448 from radiantearth/geojson_schema
matthewhanson May 2, 2019
2f9cf95
Updated changelog for 0.7.0
cholmes May 2, 2019
eef95d6
Merge branch 'dev' into changelog-070
m-mohr May 2, 2019
d3a1266
Merge branch 'dev' into circleci
cholmes May 2, 2019
b8abe8f
update all geojson schema refs
matthewhanson May 2, 2019
43cb2c4
Clean up collection description formatting
mojodna May 2, 2019
1bcd9f5
Minor changes
m-mohr May 2, 2019
c88390a
Merge pull request #452 from radiantearth/update_geojson_schema
matthewhanson May 2, 2019
45752c7
Merge branch 'dev' into schema-formatting
mojodna May 2, 2019
7d833ee
Merge pull request #453 from mojodna/schema-formatting
m-mohr May 2, 2019
c22f7a6
Merge branch 'dev' into circleci
m-mohr May 2, 2019
93d5fa1
Merge branch 'dev' into changelog-070
cholmes May 2, 2019
b82330b
add ids and collections parameters to search
matthewhanson May 2, 2019
83b8402
update api spec
matthewhanson May 2, 2019
86da6b9
Updated CHANGELOG
m-mohr May 2, 2019
985ddac
Merge pull request #449 from jbants/circleci
m-mohr May 2, 2019
196f932
Merge branch 'dev' into changelog-070
cholmes May 2, 2019
f028e33
Merge pull request #451 from radiantearth/changelog-070
cholmes May 2, 2019
f330a8a
Updated readme
cholmes May 2, 2019
4d7441b
Minor improvements that takes extensions better into account.
m-mohr May 2, 2019
f73afb8
Merge branch 'dev' into add_api_params
m-mohr May 2, 2019
4feebbd
Merge branch 'dev' into api-spec-fix
cholmes May 2, 2019
333beea
Merge pull request #455 from radiantearth/add_api_params
cholmes May 2, 2019
28b8183
Updated version numbers
m-mohr May 2, 2019
daeb8c0
Merge branch 'dev' into api-spec-fix
cholmes May 2, 2019
28772fc
Add files via upload
hgs-msmith May 2, 2019
c204b22
Added links to catalog
hgs-msmith May 2, 2019
b7b3f28
Merge pull request #457 from radiantearth/uml-070
hgs-msmith May 2, 2019
3baac78
Merge branch 'dev' into api-spec-fix
cholmes May 2, 2019
4bc54f7
Converted UML diagram to draw.io
hgs-msmith May 2, 2019
b2cbb99
Merge pull request #456 from radiantearth/api-spec-fix
matthewhanson May 3, 2019
0dff94f
Merge branch 'dev' into uml-draw.io
m-mohr May 3, 2019
3d8498c
Merge pull request #459 from radiantearth/uml-draw.io
matthewhanson May 3, 2019
8554db7
Updates to dev process
cholmes May 3, 2019
e12a946
Merge pull request #460 from radiantearth/dev-process-updates
m-mohr May 3, 2019
2dcdc15
collection.json is also a valid catalog file name
fredliporace May 5, 2019
9ac7650
outdated upcoming version
fredliporace May 5, 2019
14aba42
Merge pull request #462 from fredliporace/review-0-7
cholmes May 6, 2019
15ed0ef
Merge branch 'dev' into eo_rev
cholmes May 6, 2019
d0ecb36
Merge pull request #463 from fredliporace/eo_rev
m-mohr May 6, 2019
6e39c2e
Added date to changelog.
m-mohr May 6, 2019
02cda58
Merge pull request #465 from radiantearth/changelog-date
matthewhanson May 6, 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
Prev Previous commit
Next Next commit
cleaned up API spec
  • Loading branch information
matthewhanson committed Apr 26, 2019
commit cd5f8437a781bef1f5f99653d08f5f0ce76617f1
49 changes: 14 additions & 35 deletions api-spec/api-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,9 @@

The Web Feature Service is a standard API that represents collections of geospatial data. The [Web Feature Service 3 API](https://github.com/opengeospatial/WFS_FES), currently under development, is the latest iteration of that standard. WFS3 defines the RESTful interface to query geospatial data, with GeoJSON as a main return type. With WFS you can return any `Feature`, which in the STAC specification is referred to as an `Item`. WFS also defines the concept of a Collection, which contains `Feature`s. A STAC `Collection` aligns with a WFS3 `Collection`; it contains `Item`s.

### Collections
In WFS3 Collections are the sets of data that can be queried ([7.11](https://rawgit.com/opengeospatial/WFS_FES/master/docs/17-069.html#_feature_collections_metadata)), and each describes basic information about the geospatial dataset, like its name and description, as well as the spatial and temporal extents of all the data contained. [STAC collections](../collections-spec/README.md) contain this same information, along with other STAC specific fields and thus are compliant with both WFS Collections and STAC Collections and is returnd from the `/collections/{collection_id}` endpoint.

In WFS3 Collections are the sets of data that can be queried ([7.11](https://rawgit.com/opengeospatial/WFS_FES/master/docs/17-069.html#_feature_collections_metadata)), and each describes basic information about the geospatial data collection, like its name and description, as well as the spatial and temporal extents of all the data contained.

[STAC collections](../collections-spec/README.md) contain this same information, along with other STAC specific fields and thus are compliant with both WFS Collections and STAC Collections.

```
GET /collections/{name}/items?bbox=160.6,-55.95,-170,-25.89
```

Requests all the data in the collection that is in New Zealand. The filtering is made to be compatible with the STAC API,
and the two specs seek to share the general query and filtering patterns. The key difference is that a STAC search endpoint
will do cross collection search. A typical WFS will have multiple collections, and each will just offer search for its particular
collection.



The STAC Collection spec is designed to be compatible with the WFS `/collections/{collectionId}` endpoint's response. This enables
WFS + STAC implementations to just extend the WFS collections with a bit more information to be STAC compliant Collection
definitions.
The scenario that using a WFS with a STAC search endpoint that makes the most sense is when a data provider wants to provide more
insight in to heterogenous data that is exposed on a STAC search. For example they might have imagery data from different satellite providers
and even some drone data. These will all have different fields. A single STAC endpoint can be used to expose them all. But it can be quite
useful to let users inspect a particular data type. That area of the `/collections/{name}` hierarchy can be used to expose additional
metadata and validation schemas that give more insight in to that data, as well as a place to query just that data.

In general it is recommended to provide as much information about different types of data as possible, so using WFS is recommended. But
the standalone option is there for those who just want to expose their data as quickly and easily as possible. Note a WFS can
provide heterogenous data from any of its collections endpoints, but the STAC API recommendation is to use one collection per
logical data type.
In WFS3 Features are the individual records within a Collection and are provided in GeoJSON format. [STAC Items](../item-spec/README.md) are analagous to WFS3 Features, are in GeoJSON, and are returned from the `/collections/{collection_id}/items/{item_id}` endpoint.

### WFS3 Endpoints

Expand All @@ -46,6 +19,17 @@ The core WFS3 endpoints are shown below, with details provided in an [OpenAPI sp
| /collections/{collection_id}/items | Items | GeoJSON FeatureCollection of Items in Collection |
| /collections/{collection_id}/items/{item_id} | Item | Returns single Item GeoJSON |

The `/collections/{collection_id}/items` endpoint accepts parameters for filtering the results.

### Filter Parameters

| Parameter | Type | Description |
| ------------ | ------------- | ---------------------- |
| bbox | [number] (x4) | Requested bounding box (minlat, minlon, maxlat, maxlon) |
| time | datetime string | Single date, date+time, or a range ('/' seperator)
| page | number | The page number of results. Defaults to 1) |
| limit | number | The maximum number of results to return (page size). Defaults to 10 |

## STAC Endpoints

STAC provides some additional endpoints for the root Catalog itself, as well as the capability to search the Catalog. Note that a STAC API does not need to implement WFS3, in which case it would only support the endpoints given below. See the [OpenAPI specification document](definitions/STAC-standalone.yaml).
Expand All @@ -57,9 +41,4 @@ STAC provides some additional endpoints for the root Catalog itself, as well as
| /stac/search | Items | GeoJSON FeatureCollection of Items found |
```

## Browsable API

An additional best practice is to use the WFS items available in `/collections/{collectionId}/items` as the "canonical" web
location. Then the STAC Catalogs returned from `/stac/` can either link directly to those (from the appropriate sub-catalog -
for example `/stac/landsat8/42/31/2017/` would be a catalog consisting of links to `/collections/`). Or it can return JSON
in the link structure (like `/stac/landsat8/42/31/2017/item203123.json`), and have that returned JSON use a link with `rel=canonical` that goes back to the `Item` that is in the collection.
The `stac/search` endpoint is similar to the `items` endpoint in WFS3 in that it accepts parameters for filtering, however it performs the filtering across all collections. The parameters accepted are the same as the Filter Parameters above, however the *[extensions](extensions/README.md)* also provide advanced querying parameters.