-
Notifications
You must be signed in to change notification settings - Fork 1
/
meteo.json
81 lines (80 loc) · 5.52 KB
/
meteo.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
{
"type": "Catalog",
"stac_version": "1.0.0",
"stac_extensions": [],
"id": "root",
"title": "PoC MeteoSchweiz",
"description": "# OAPI - POC\n\nProof of concept (POC) to ingest geospatial datasets from [MeteoSuisse](https://www.meteoswiss.admin.ch/home.html) into a [SpatioTemporal Asset Catalog (STAC)](https://stacspec.org/), expose as [OGC API Features](https://ogcapi.ogc.org/features) and offer [OGC API Environmental Data Retrieval (EDR)](https://ogcapi.ogc.org/edr) capabilities.\n\n## Documentation\n\nOGC API and STAC are designed to be explorable through `links` and a good starting point is the [`Landing Page (aka Root Catalog)`](https://poc.meteoschweiz-poc.swisstopo.cloud/) which links to capabilities, descriptions and fundamental resources of the services.\n\nThe `OpenAPI` definition can be consumed through the [`SwaggerUI`](https://poc.meteoschweiz-poc.swisstopo.cloud/swagger). Select the appropriate server and authorization (for endpoints except GET) to try it out.\n\nBe aware that the api definition is not in sync with the service implementation. There are addinonally transactional endpints for `Collection` and `Feature/Item` resources and the schemas/definitions might diverge from the actual implementation by the services.\n\n## Usage\n\nFor now the basic use case is uploading a `STAC Asset` through the [`load-asset`](https://poc.meteoschweiz-poc.swisstopo.cloud/processes/load-asset) process. The input schema describes the json `body` of the `post` request passed to it's `./execute` endpoint. It requires the file as base64 encoded string, some asset properties, the collection id and the item id or an item object to create.\n\nExample python scripts for loading an asset to an existing collection as well as extracting & creating a collection resource from a `geocat.ch` entry are in the [scripts](scripts) folder.\n\n## Consumption\n\nThe created resources can for example be consoumed with the [STAC Browser](https://radiantearth.github.io/stac-browser/#/external/poc.meteoschweiz-poc.swisstopo.cloud/). The assets contents accessible through the `href` reside on a [S3 bucket](http://met-oapi-poc.s3.amazonaws.com/).\n\n## Caveats\n\n* Only the data on S3 is persisted, the rest lives in the containers of the docker composition.\n* The asset content is not parsed, nor are any attributes derived.\n* Only `base64` encoded string are supported as file value for now. Alternatively a `URI` to an acessible resource can be used to link or upload from a local file.\n* An asset can be replaced by specifying the asset `id`, the S3 `key` and the `item id` as value in the inputs.\n* It is currently not possible to updat the Feature/Item on upload.\n* The `landing page` respectively `root catalog` is defined statically and loaded on startup/compilation.\n\n## Catalog Trees\n\nCatalog trees can be created by adding collection resources with the property `type` set to `Catalog` and links with the relations `parent`, `child` and/or `item`. Naturally these relations should be reflected on the linked ressources as well.\n",
"links": [
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/collections",
"rel": "child",
"type": "application/json",
"title": "Figlio"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/collections",
"rel": "data",
"type": "application/json",
"title": "Metadata about the resource collections"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/processes",
"rel": "processes",
"type": "application/json",
"title": "Metadata about the processes"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/",
"rel": "self",
"type": "application/json",
"title": "This document"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/",
"rel": "root",
"type": "application/json",
"title": "This document"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/api",
"rel": "service-desc",
"type": "application/vnd.oai.openapi+json;version=3.0",
"title": "The Open API definition"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/swagger",
"rel": "service-doc",
"type": "text/html",
"title": "The Open API definition (Swagger UI)"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/conformance",
"rel": "conformance",
"type": "application/json",
"title": "OGC conformance classes implemented by this API"
},
{
"href": "https://poc.meteoschweiz-poc.swisstopo.cloud/search",
"rel": "search",
"type": "application/json",
"title": "URI for the STAC API - Item Search endpoint"
}
],
"conformsTo": [
"https://api.stacspec.org/v1.0.0-rc.1/item-search",
"https://api.stacspec.org/v1.0.0-rc.1/ogcapi-features",
"https://api.stacspec.org/v1.0.0-rc.1/collections",
"http://www.opengis.net/spec/ogcapi-common-1/1.0/req/core",
"http://www.opengis.net/spec/ogcapi-common-2/1.0/req/collections",
"http://www.opengis.net/spec/ogcapi_common-2/1.0/req/json",
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core",
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30",
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson",
"http://www.opengis.net/spec/ogcapi-features-2/1.0/conf/crs",
"http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/core",
"http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/ogc-process-description",
"http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/json",
"http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/dismiss"
]
}