openapi: 3.0.3 info: title: OpenAPI for OAPI POC - MeteoSwiss description: Sample OpenAPI definition of OGC API & STAC API for MeteoSuiss termsOfService: https://github.com/camptocamp/oapi-poc#terms-of-service version: 0.1.0 servers: - url: "http://localhost:8484/root/" description: "Local development server" - url: "https://poc.meteoschweiz-poc.swisstopo.cloud/root/" description: "Public test server" tags: - name: Capabilities description: Essential characteristics of the information available from the API. - name: Collections description: Description of the information available from the collections - name: Collection data queries description: Data queries available. - name: Item Search description: essential characteristics of a STAC API paths: /: get: tags: - Capabilities summary: landing page of this API description: "The landing page provides links to the API definition, the Conformance statements and the metadata about the feature data in this dataset." operationId: getLandingPage responses: "200": description: links to the API capabilities content: application/json: schema: $ref: "#/components/schemas/landingPage" text/html: schema: type: string parameters: - $ref: "#/components/parameters/f" /conformance: get: tags: - Capabilities summary: information about standards that this API conforms to description: list all requirements classes specified in a standard that the server conforms to operationId: getRequirementsClasses responses: "200": description: the URIs of all requirements classes supported by the server content: application/json: schema: $ref: "#/components/schemas/confClasses" text/html: schema: type: string parameters: - $ref: "#/components/parameters/f" /collections: get: tags: - Collections summary: List the avialable collections from the service operationId: listCollections responses: "200": description: Metdata about the Environmental data collections shared by this API. content: application/json: schema: $ref: "#/components/schemas/collections" text/html: schema: type: string default: $ref: "#/components/responses/exception" parameters: - $ref: "#/components/parameters/bbox" - $ref: "#/components/parameters/datetime" - $ref: "#/components/parameters/f" /collections/{collectionId}: get: tags: - Collections summary: List query types supported by the collection description: This will provide information about the query types that are supported by the chosen collection Use content negotiation to request HTML or JSON. operationId: getQueries responses: "200": description: "Metadata about the {collectionId} collection shared by this API." content: application/json: schema: $ref: "#/components/schemas/collection" text/html: schema: type: string default: description: An error occured. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string parameters: - $ref: "#/components/parameters/collectionId" - $ref: "#/components/parameters/f" # /collections/{collectionId}/position: # get: # tags: # - Collection data queries # summary: "Query end point for position queries of collection {collectionId}" # description: Query end point for position queries # operationId: getDataForPoint # parameters: # - $ref: "#/components/parameters/collectionId" # - $ref: "#/components/parameters/positionCoords" # - $ref: "#/components/parameters/z" # - $ref: "#/components/parameters/datetime" # - $ref: "#/components/parameters/parameter-name" # - $ref: "#/components/parameters/crs" # - $ref: "#/components/parameters/f" # responses: # "200": # description: Data ranges required to construct valid queries for the choosen data collection # content: # application/geo+json: # schema: # $ref: "#/components/schemas/featureCollectionGeoJSON" # application/x-netcdf: {} # text/xml: {} # default: # $ref: "#/components/responses/exception" /collections/{collectionId}/items: get: tags: - Collection data queries summary: List available items description: List the items available in the collection accessible via a unique identifier operationId: ListDataItems parameters: - $ref: "#/components/parameters/collectionId" - $ref: "#/components/parameters/limit" - $ref: "#/components/parameters/bbox" - $ref: "#/components/parameters/datetime" responses: "200": description: List of pre-existing items available for retrieval content: application/geo+json: schema: $ref: "#/components/schemas/featureCollectionGeoJSON" default: description: An error occured. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string /collections/{collectionId}/items/{itemId}: get: tags: - Collection data queries summary: Return item {itemId} from collection {collectionId} description: "Query end point to retrieve data from collection {collectionId} using a unique identifier" operationId: GetDataForItem parameters: - $ref: "#/components/parameters/collectionId" - $ref: "#/components/parameters/itemId" responses: "200": description: Data ranges required to construct valid queries for the choosen data collection content: application/json: {} text/xml: {} default: description: An error occured. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string /search: get: summary: Search STAC items with simple filtering. operationId: getItemSearch description: |- Retrieve Items matching filters. Intended as a shorthand API for simple queries. This method is required to implement. If this endpoint is implemented on a server, it is required to add a link referring to this endpoint with `rel` set to `search` to the `links` array in `GET /`. As `GET` is the default method, the `method` may not be set explicitly in the link. tags: - Item Search parameters: - $ref: "#/components/parameters/bbox" - $ref: "#/components/parameters/intersects" - $ref: "#/components/parameters/datetime" - $ref: "#/components/parameters/limit" - $ref: "#/components/parameters/ids" - $ref: "#/components/parameters/collectionsArray" responses: "200": description: A feature collection. content: application/geo+json: schema: $ref: "#/components/schemas/featureCollectionGeoJSON" default: description: An error occured. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string post: summary: Search STAC items with full-featured filtering. operationId: postItemSearch description: |- Retrieve items matching filters. Intended as the standard, full-featured query API. This method is optional to implement, but recommended. If this endpoint is implemented on a server, it is required to add a link referring to this endpoint with `rel` set to `search` and `method` set to `POST` to the `links` array in `GET /`. tags: - Item Search requestBody: content: application/json: schema: $ref: "#/components/schemas/searchBody" responses: "200": description: A feature collection. content: application/geo+json: schema: $ref: "#/components/schemas/featureCollectionGeoJSON" default: description: An error occured. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string components: headers: Content-Crs: description: a URI, in angular brackets, identifying the coordinate reference system used in the content / payload schema: type: string example: "" parameters: areaCoords: name: coords in: query description: |- Only data that has a geometry that intersects the area defined by the polygon are selected. The polygon is defined using a Well Known Text string following coords=POLYGON((x y,x1 y1,x2 y2,...,xn yn x y)) which are values in the coordinate system defined by the crs query parameter (if crs is not defined the values will be assumed to be WGS84 longitude/latitude coordinates). For instance a polygon that roughly describes an area that contains South West England in WGS84 would look like: coords=POLYGON((-6.1 50.3,-4.35 51.4,-2.6 51.6,-2.8 50.6,-5.3 49.9,-6.1,50.3)) see http://portal.opengeospatial.org/files/?artifact_id=25355 and https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry The coords parameter will only support 2D POLYGON definitions required: true schema: type: string bbox: name: bbox in: query description: >- Only resources that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (elevation or depth): * Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Lower left corner, coordinate axis 3 (optional) * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2 * Upper right corner, coordinate axis 3 (optional) If the value consists of four numbers, the coordinate reference system is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in the parameter `bbox-crs`. If the value consists of six numbers, the coordinate reference system is WGS 84 longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h) unless a different coordinate reference system is specified in a parameter `bbox-crs`. For WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge). If the vertical axis is included, the third and the sixth number are the bottom and the top of the 3-dimensional bounding box. If a resource has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries. required: false schema: type: array minItems: 4 maxItems: 6 items: type: number style: form explode: false bbox-crs: name: bbox-crs description: |- Asserts the CRS used for the coordinate values of the bbox parameter. The default is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) for a value with 4 numbers and WGS 84 longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h) for a value with 6 numbers. in: query required: false schema: type: string format: uri style: form explode: false collectionId: name: collectionId in: path description: local identifier of a collection required: true schema: type: string collectionsArray: name: collections in: query description: | Array of Collection IDs to include in the search for items. Only Item objects in one of the provided collections will be searched required: false schema: $ref: "#/components/schemas/collectionsArray" explode: false corridor-height: name: corridor-height in: query description: |+ height of the corridor The height value represents the whole height of the corridor where the trajectory supplied in the `coords` query parameter is the centre point of the corridor `corridor-height={height}` e.g. corridor-height=100 Would be a request for a corridor 100 units high with the coords parameter values being the centre point of the requested corridor, the request would be for data values 50 units either side of the trajectory coordinates defined in the coords parameter. The height units supported by the collection will be provided in the API metadata responses required: true schema: type: string corridor-width: name: corridor-width in: query description: |+ width of the corridor The width value represents the whole width of the corridor where the trajectory supplied in the `coords` query parameter is the centre point of the corridor `corridor-width={width}` e.g. corridor-width=100 Would be a request for a corridor 100 units wide with the coords parameter values being the centre point of the requested corridor, the request would be for data values 50 units either side of the trajectory coordinates defined in the coords parameter. The width units supported by the collection will be provided in the API metadata responses required: true schema: type: string crs: name: crs description: |- If the parameter is specified, then the coordinates of all geometry-valued properties in the response document are in the requested CRS. Otherwise the coordinates are in the default CRS, that is http://www.opengis.net/def/crs/OGC/1.3/CRS84 for coordinates without height and http://www.opengis.net/def/crs/OGC/0/CRS84h for coordinates with ellipsoidal height. in: query required: false schema: type: string format: uri style: form explode: false cube-z: name: z in: query description: |+ Define the vertical levels to return data from The value will override any vertical values defined in the BBOX query parameter A range to return data for all levels between and including 2 defined levels i.e. z=minimum value/maximum value for instance if all values between and including 10m and 100m z=10/100 A list of height values can be specified i.e. z=value1,value2,value3 for instance if values at 2m, 10m and 80m are required z=2,10,80 An Arithmetic sequence using Recurring height intervals, the difference is the number of recurrences is defined at the start and the amount to increment the height by is defined at the end i.e. z=Rn/min height/height interval so if the request was for 20 height levels 50m apart starting at 100m: z=R20/100/50 When not specified data from all available heights SHOULD be returned required: false schema: type: string datetime: name: datetime in: query description: >- Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots. Examples: * A date-time: "2018-02-12T23:20:50Z" * A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z" * Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z" Only features that have a temporal property that intersects the value of `datetime` are selected. If a feature has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties. required: false schema: type: string style: form explode: false f: name: f in: query description: format to return the data response in required: false schema: type: string featureId: name: featureId in: path description: local identifier of a feature required: true schema: type: string height-units: name: height-units in: query description: Distance units for the corridor-height parameter required: true example: KM schema: type: string ids: name: ids in: query description: |- Array of Item ids to return. required: false schema: $ref: "#/components/schemas/ids" explode: false intersects: name: intersects in: query description: |- The optional intersects parameter filters the result Items in the same was as bbox, only with a GeoJSON Geometry rather than a bbox. required: false schema: $ref: "#/components/schemas/geometryGeoJSON" style: form explode: false itemId: name: itemId in: path required: true description: "Retrieve data from the collection using a unique identifier." schema: type: string limit: name: limit in: query description: |- The optional limit parameter limits the number of items that are presented in the response document. Only items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items shall not be counted. Minimum = 1. Maximum = 10000. Default = 10. required: false schema: type: integer minimum: 1 maximum: 10000 default: 10 style: form explode: false locId: name: locId in: path required: true description: Retreive data for the location defined by locId (i.e. London_Heathrow, EGLL, 03772 etc) schema: type: string parameter-name: name: parameter-name in: query description: comma delimited list of parameters to retrieve data for. Valid parameters are listed in the collections metadata schema: type: string style: form explode: false required: false positionCoords: name: coords in: query description: |+ location(s) to return data for, the coordinates are defined by a Well Known Text (wkt) string. to retrieve a single location : POINT(x y) i.e. POINT(0 51.48) for Greenwich, London And for a list of locations MULTIPOINT((x y),(x1 y1),(x2 y2),(x3 y3)) i.e. MULTIPOINT((38.9 -77),(48.85 2.35),(39.92 116.38),(-35.29 149.1),(51.5 -0.1)) see http://portal.opengeospatial.org/files/?artifact_id=25355 and https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry the coordinate values will depend on the CRS parameter, if this is not defined the values will be assumed to WGS84 values (i.e x=longitude and y=latitude) required: true schema: type: string radiusCoords: name: coords in: query description: | location(s) to return data for, the coordinates are defined by a Well Known Text (wkt) string. to retrieve a single location : POINT(x y) i.e. POINT(0 51.48) for Greenwich, London see http://portal.opengeospatial.org/files/?artifact_id=25355 and https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry the coordinate values will depend on the CRS parameter, if this is not defined the values will be assumed to WGS84 values (i.e x=longitude and y=latitude) required: true schema: type: string resolution-x: name: resolution-x in: query description: |+ Defined it the user requires data at a different resolution from the native resolution of the data along the x-axis If this is a single value it denotes the number of intervals to retrieve data for along the x-axis i.e. resolution-x=10 would retrieve 10 values along the x-axis from the minimum x coordinate to maximum x coordinate (i.e. a value at both the minimum x and maximum x coordinates and 8 values between). required: false schema: items: type: string resolution-y: name: resolution-y in: query description: |+ Defined it the user requires data at a different resolution from the native resolution of the data along the y-axis If this is a single value it denotes the number of intervals to retrieve data for along the y-axis i.e. resolution-y=10 would retrieve 10 values along the y-axis from the minimum y coordinate to maximum y coordinate (i.e. a value at both the minimum y and maximum y coordinates and 8 values between). required: false schema: items: type: string resolution-z: name: resolution-z in: query description: |+ Defined it the user requires data at a different resolution from the native resolution of the data along the z-axis If this is a single value it denotes the number of intervals to retrieve data for along the z-axis i.e. resolution-z=10 would retrieve 10 values along the z-axis from the minimum z coordinate to maximum z coordinate (i.e. a value at both the minimum z and maximum z coordinates and 8 values between). required: false schema: items: type: string trajectoryCoords: name: coords in: query description: |- Only data that has a geometry that intersects the area defined by the linestring are selected. The trajectory is defined using a Well Known Text string following A 2D trajectory, on the surface of earth with no time or height dimensions: coords=LINESTRING(-2.87 51.14 , -2.98 51.36,-3.15 51.03 ,-3.48 50.74 ,-3.36 50.9 ) A 2D trajectory, on the surface of earth with all for the same time and no height dimension, time value defined in ISO8601 format by the `datetime` query parameter : coords=LINESTRING(-2.87 51.14 , -2.98 51.36 ,-3.15 51.03 ,-3.48 50.74 ,-3.36 50.9 )&time=2018-02-12T23:00:00Z A 2D trajectory, on the surface of earth with no time value but at a fixed height level, height defined in the collection height units by the `z` query parameter : coords=LINESTRING(-2.87 51.14 , -2.98 51.36 ,-3.15 51.03 ,-3.48 50.74 ,-3.36 50.9 )&z=850 A 2D trajectory, on the surface of earth with all for the same time and at a fixed height level, time value defined in ISO8601 format by the `datetime` query parameter and height defined in the collection height units by the `z` query parameter : coords=LINESTRING(-2.87 51.14 , -2.98 51.36 ,-3.15 51.03 ,-3.48 50.74 ,-3.36 50.9 )&time=2018-02-12T23:00:00Z&z=850 A 3D trajectory, on the surface of the earth but over a time range with no height values: coords=LINESTRINGM(-2.87 51.14 1560507000,-2.98 51.36 1560507600,-3.15 51.03 1560508200,-3.48 50.74 1560508500,-3.36 50.9 1560510240) A 3D trajectory, on the surface of the earth but over a time range with a fixed height value, height defined in the collection height units by the `z` query parameter : coords=LINESTRINGM(-2.87 51.14 1560507000,-2.98 51.36 1560507600,-3.15 51.03 1560508200,-3.48 50.74 1560508500,-3.36 50.9 1560510240)&z=200 A 3D trajectory, through a 3D volume with height or depth, but no defined time: coords=LINESTRINGZ(-2.87 51.14 0.1,-2.98 51.36 0.2,-3.15 51.03 0.3,-3.48 50.74 0.4,-3.36 50.9 0.5) A 3D trajectory, through a 3D volume with height or depth, but a fixed time time value defined in ISO8601 format by the `datetime` query parameter: coords=LINESTRINGZ(-2.87 51.14 0.1,-2.98 51.36 0.2,-3.15 51.03 0.3,-3.48 50.74 0.4,-3.36 50.9 0.5)&time=2018-02-12T23:00:00Z A 4D trajectory, through a 3D volume but over a time range: coords=LINESTRINGZM(-2.87 51.14 0.1 1560507000,-2.98 51.36 0.2 1560507600,-3.15 51.03 0.3 1560508200, -3.48 50.74 0.4 1560508500, -3.36 50.9 0.5 1560510240) (using either the `time` or `z` parameters with a 4D trajectory wil generate an error response) where Z in `LINESTRINGZ` and `LINESTRINGZM` refers to the height value. `If the specified CRS does not define the height units, the heights units will default to metres above mean sea level` and the M in `LINESTRINGM` and `LINESTRINGZM` refers to the number of seconds that have elapsed since the Unix epoch, that is the time 00:00:00 UTC on 1 January 1970. See https://en.wikipedia.org/wiki/Unix_time required: true schema: type: string width-units: name: width-units in: query description: Distance units for the corridor-width parameter required: true example: KM schema: type: string within: name: within in: query description: Defines radius of area around defined coordinates to include in the data selection required: true example: 10 schema: type: number within-units: name: within-units in: query description: Distance units for the within parameter required: true example: KM schema: type: string z: name: z in: query description: |+ Define the vertical level to return data from i.e. z=level for instance if the 850hPa pressure level is being queried z=850 or a range to return data for all levels between and including 2 defined levels i.e. z=minimum value/maximum value for instance if all values between and including 10m and 100m z=10/100 finally a list of height values can be specified i.e. z=value1,value2,value3 for instance if values at 2m, 10m and 80m are required z=2,10,80 An Arithmetic sequence using Recurring height intervals, the difference is the number of recurrences is defined at the start and the amount to increment the height by is defined at the end i.e. z=Rn/min height/height interval so if the request was for 20 height levels 50m apart starting at 100m: z=R20/100/50 When not specified data from all available heights SHOULD be returned required: false schema: type: string style: form explode: false responses: ConformanceDeclaration: description: |- The URIs of all conformance classes supported by the server. To support "generic" clients that want to access multiple OGC API Features implementations - and not "just" a specific API / server, the server declares the conformance classes it implements and conforms to. content: application/json: schema: $ref: "#/components/schemas/confClasses" example: conformsTo: - "http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/core" - "http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/landingPage" - "http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/oas30" - "http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/html" - "http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/json" text/html: schema: type: string FeatureCollection: description: Paginated GeoJSON feature collection headers: Content-Crs: $ref: "#/components/headers/Content-Crs" content: application/geo+json: schema: $ref: "#/components/schemas/featureCollectionGeoJSON" Feature: description: GeoJSON feature of a collection headers: Content-Crs: $ref: "#/components/headers/Content-Crs" content: application/geo+json: schema: $ref: "#/components/schemas/featureGeoJSON" LandingPage: description: |- The landing page provides links to the API definition (link relations `service-desc` and `service-doc`), and the Conformance declaration (path `/conformance`, link relation `conformance`). content: application/json: schema: $ref: "#/components/schemas/landingPage" text/html: schema: type: string exception: description: An error occurred. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string 200: description: |- General Success response. 400: description: |- General HTTP error response. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string 500: description: |- A server error occurred. content: application/json: schema: $ref: "#/components/schemas/exception" text/html: schema: type: string schemas: collectionsArray: type: array description: |- Array of Collection IDs to include in the search for items. Only Item objects in one of the provided collections will be searched. items: type: string collectionsFilter: type: object description: Only returns the collections specified properties: collections: $ref: "#/components/schemas/collectionsArray" collectionDesc: type: object required: - id - links properties: id: description: identifier of the collection used, for example, in URIs type: string example: address title: description: human readable title of the collection type: string example: address description: description: a description of the features in the collection type: string example: An address attribution: type: string title: attribution for the collection links: type: array items: $ref: "#/components/schemas/link" extent: $ref: "#/components/schemas/extent" itemType: description: An indicator about the type of the items in the collection type: string crs: description: |- the list of coordinate reference systems supported by the API; the first item is the default coordinate reference system type: array items: type: string default: - http://www.opengis.net/def/crs/OGC/1.3/CRS84 example: - http://www.opengis.net/def/crs/OGC/1.3/CRS84 - http://www.opengis.net/def/crs/EPSG/0/4326 storageCrs: description: |- the CRS identifier, from the list of supported CRS identifiers, that may be used to retrieve features from a collection without the need to apply a CRS transformation type: string format: uri storageCrsCoordinateEpoch: description: |- point in time at which coordinates in the spatial feature collection are referenced to the dynamic coordinate reference system in `storageCrs`, that may be used to retrieve features from a collection without the need to apply a change of coordinate epoch. It is expressed as a decimal year in the Gregorian calendar type: number example: "2017-03-25 in the Gregorian calendar is epoch 2017.23" bbox: description: |- One or more bounding boxes that describe the spatial extent of the dataset. In the Core only a single bounding box is supported. Extensions may support additional areas. The first bounding box describes the overall spatial extent of the data. All subsequent bounding boxes describe more precise bounding boxes, e.g., to identify clusters of data. Clients only interested in the overall spatial extent will only need to access the first bounding box in the array. type: array minItems: 1 items: description: |- Each bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth): * Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Minimum value, coordinate axis 3 (optional) * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2 * Maximum value, coordinate axis 3 (optional) If the value consists of four numbers, the coordinate reference system is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in `crs`. If the value consists of six numbers, the coordinate reference system is WGS 84 longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h) unless a different coordinate reference system is specified in `crs`. For WGS 84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge). If the vertical axis is included, the third and the sixth number are the bottom and the top of the 3-dimensional bounding box. If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries. type: array oneOf: - minItems: 4 maxItems: 4 - minItems: 6 maxItems: 6 items: type: number example: - -180 - -90 - 180 - 90 bboxFilter: type: object description: Only return items that intersect the provided bounding box. properties: bbox: $ref: "#/components/schemas/bbox" collection: type: object required: - links - id - extent - parameter_names properties: links: type: array items: $ref: "#/components/schemas/link" id: description: id of the collection type: string example: Metar data title: description: title of the collection type: string example: Metar observations description: description: description of the collection type: string example: Last 24 hours Metar observations keywords: description: List of keywords which help to describe the collection type: array items: type: string extent: $ref: "#/components/schemas/extent" # data_queries: # description: Detailed information relevant to individual query types # type: object # properties: # position: # type: object # properties: # link: # $ref: "#/components/schemas/positionLink" # radius: # type: object # properties: # link: # $ref: "#/components/schemas/radiusLink" # area: # type: object # properties: # link: # $ref: "#/components/schemas/areaLink" # cube: # type: object # properties: # link: # $ref: "#/components/schemas/cubeLink" # trajectory: # type: object # properties: # link: # $ref: "#/components/schemas/trajectoryLink" # corridor: # type: object # properties: # link: # $ref: "#/components/schemas/corridorLink" # locations: # type: object # properties: # link: # $ref: "#/components/schemas/locationsLink" # items: # type: object # properties: # link: # $ref: "#/components/schemas/itemsLink" crs: description: list of the coordinate reference systems the collection results can support type: array items: type: string # output_formats: # description: list of formats the results can be presented in # type: array # items: # type: string # example: # - CoverageJSON # - GeoJSON # - IWXXM # - GRIB # parameter_names: # description: list of the data parameters available in the collection # type: object # additionalProperties: # items: # $ref: "#/components/schemas/parameterNames" collections: type: object required: - links - collections properties: links: type: array items: $ref: "#/components/schemas/link" timeStamp: type: string format: date-time numberMatched: type: integer minimum: 0 numberReturned: type: integer minimum: 0 crs: description: |- a global list of CRS identifiers that are supported by spatial feature collections offered by the service type: array items: type: string format: uri collections: type: array items: $ref: "#/components/schemas/collectionDesc" confClasses: type: object required: - conformsTo properties: conformsTo: type: array items: type: string example: http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/core # crsObject: # type: object # required: # - crs # - wkt # properties: # crs: # description: name of the coordinate reference system, used as the value in the crs query parameter to define the required output CRS # type: string # example: native # wkt: # description: Well Known text description of the coordinate reference system # type: string # example: 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]' datetime_interval: type: string description: |- Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots. Examples: * A date-time: "2018-02-12T23:20:50Z" * A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z" * Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z" Only features that have a temporal property that intersects the value of `datetime` are selected. If a feature has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties. example: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z" datetimeFilter: description: An object representing a date+time based filter. type: object properties: datetime: $ref: "#/components/schemas/datetime_interval" exception: title: Exception Schema description: JSON schema for exceptions based on RFC 7807 type: object required: - type properties: type: type: string title: type: string status: type: integer detail: type: string instance: type: string extent: description: |- The extent of the features in the collection. In the Core only spatial and temporal extents are specified. Extensions may add additional members to represent other extents, for example, thermal or pressure ranges. The first item in the array describes the overall extent of the data. All subsequent items describe more precise extents, e.g., to identify clusters of data. Clients only interested in the overall extent will only need to access the first item in each array. type: object properties: spatial: description: |- The spatial extent of the features in the collection. type: object properties: bbox: $ref: "#/components/schemas/bbox" crs: description: |- Coordinate reference system of the coordinates in the spatial extent (property `bbox`). The default reference system is WGS 84 longitude/latitude. In the Core the only other supported coordinate reference system is WGS 84 longitude/latitude/height for coordinates with height. Extensions may support additional coordinate reference systems and add additional enum values. type: string enum: - "http://www.opengis.net/def/crs/OGC/1.3/CRS84" - "http://www.opengis.net/def/crs/OGC/0/CRS84h" default: "http://www.opengis.net/def/crs/OGC/1.3/CRS84" temporal: description: |- The temporal extent of the features in the collection. type: object properties: interval: description: |- One or more time intervals that describe the temporal extent of the dataset. In the Core only a single time interval is supported. Extensions may support multiple intervals. The first time interval describes the overall temporal extent of the data. All subsequent time intervals describe more precise time intervals, e.g., to identify clusters of data. Clients only interested in the overall extent will only need to access the first item in each array. type: array minItems: 1 items: description: |- Begin and end times of the time interval. The timestamps are in the temporal coordinate reference system specified in `trs`. By default this is the Gregorian calendar. The value `null` is supported and indicates an open time interval. type: array minItems: 2 maxItems: 2 items: type: string format: date-time nullable: true example: - "2011-11-11T12:22:11Z" - null trs: description: |- Coordinate reference system of the coordinates in the temporal extent (property `interval`). The default reference system is the Gregorian calendar. In the Core this is the only supported temporal coordinate reference system. Extensions may support additional temporal coordinate reference systems and add additional enum values. type: string enum: - "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian" default: "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian" featureCollectionGeoJSON: type: object required: - type - features properties: type: type: string enum: - FeatureCollection features: type: array items: $ref: "#/components/schemas/featureGeoJSON" links: type: array items: $ref: "#/components/schemas/link" timeStamp: type: string format: date-time numberMatched: type: integer minimum: 0 numberReturned: type: integer minimum: 0 featureGeoJSON: type: object required: - type - geometry - properties properties: type: type: string enum: - Feature geometry: $ref: "#/components/schemas/geometryGeoJSON" properties: type: object nullable: true id: oneOf: - type: string - type: integer links: type: array items: $ref: "#/components/schemas/link" geometryGeoJSON: oneOf: - $ref: "#/components/schemas/pointGeoJSON" - $ref: "#/components/schemas/multipointGeoJSON" - $ref: "#/components/schemas/linestringGeoJSON" - $ref: "#/components/schemas/multilinestringGeoJSON" - $ref: "#/components/schemas/polygonGeoJSON" - $ref: "#/components/schemas/multipolygonGeoJSON" - $ref: "#/components/schemas/geometrycollectionGeoJSON" geometrycollectionGeoJSON: type: object required: - type - geometries properties: type: type: string enum: - GeometryCollection geometries: type: array items: $ref: "#/components/schemas/geometryGeoJSON" ids: type: array description: |- Array of Item ids to return. items: type: string idsFilter: type: object description: Only returns items that match the array of given ids properties: ids: $ref: "#/components/schemas/ids" intersectsFilter: type: object description: Only returns items that intersect with the provided polygon. properties: intersects: $ref: "#/components/schemas/geometryGeoJSON" # itemsDataQuery: # description: # Property to contain any extra metadata information that is specific # to an individual data queries # type: object # properties: # title: # description: title of the query # type: string # example: Items query # description: # description: description of the query # type: string # example: Query to return data for a defined well known text point # query_type: # description: Type of EDR query # type: string # enum: [items] # example: items # itemsLink: # allOf: # - $ref: "#/components/schemas/link" # properties: # href: # type: string # example: http://data.example.com/collections/monitoringsites/items # variables: # $ref: "#/components/schemas/itemsDataQuery" landingPage: type: object required: - links properties: title: type: string title: The title of the API. description: While a title is not required, implementers are strongly advised to include one. example: Buildings in Bonn description: type: string example: Access to data about buildings in the city of Bonn via a Web API that conforms to the OGC API Common specification. attribution: type: string title: attribution for the API description: The `attribution` should be short and intended for presentation to a user, for example, in a corner of a map. Parts of the text can be links to other resources if additional information is needed. The string can include HTML markup. links: type: array items: $ref: "#/components/schemas/link" limit: type: integer minimum: 1 example: 10 default: 10 maximum: 10000 description: |- The optional limit parameter limits the number of items that are presented in the response document. If the limit parameter value is greater than advertised limit maximum, the server must return the maximum possible number of items, rather than responding with an error. Only items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items must not be counted. Minimum = 1. Maximum = 10000. Default = 10. limitFilter: type: object description: Only returns maximum number of results (page size) properties: limit: $ref: "#/components/schemas/limit" linestringGeoJSON: type: object required: - type - coordinates properties: type: type: string enum: - LineString coordinates: type: array minItems: 2 items: type: array minItems: 2 items: type: number link: type: object required: - href - rel properties: href: type: string description: Supplies the URI to a remote resource (or resource fragment). example: http://data.example.com/buildings/123 rel: type: string description: The type or semantics of the relation. example: alternate type: type: string description: A hint indicating what the media type of the result of dereferencing the link should be. example: application/geo+json hreflang: type: string description: A hint indicating what the language of the result of dereferencing the link should be. example: en title: type: string description: Used to label the destination of a link such that it can be used as a human-readable identifier. example: Trierer Strasse 70, 53115 Bonn length: type: integer multilinestringGeoJSON: type: object required: - type - coordinates properties: type: type: string enum: - MultiLineString coordinates: type: array items: type: array minItems: 2 items: type: array minItems: 2 items: type: number multipointGeoJSON: type: object required: - type - coordinates properties: type: type: string enum: - MultiPoint coordinates: type: array items: type: array minItems: 2 items: type: number multipolygonGeoJSON: type: object required: - type - coordinates properties: type: type: string enum: - MultiPolygon coordinates: type: array items: type: array items: type: array minItems: 4 items: type: array minItems: 2 items: type: number numberMatched: description: |- The number of features of the feature type that match the selection parameters like `bbox`. type: integer minimum: 0 example: 127 numberReturned: description: |- The number of features in the feature collection. A server may omit this information in a response, if the information about the number of features is not known or difficult to compute. If the value is provided, the value shall be identical to the number of items in the "features" array. type: integer minimum: 0 example: 10 # observedPropertyCollection: # type: object # title: name of property # description: Description of the property # required: # - label # properties: # id: # description: >- # URI linking to an external registry which contains the definitive # definition of # the observed property # type: string # label: # oneOf: # - type: string # - type: object # required: # - en # # patternProperties: # # ".+": # # type: string # description: # type: string # categories: # type: array # items: # minItems: 1 # type: object # required: # - id # - label # properties: # id: # description: >- # URI linking to an external registry which contains the definitive # definition of # the observed property # type: string # label: # oneOf: # - type: string # - type: object # required: # - en # # patternProperties: # # ".+": # # type: string # description: # oneOf: # - type: string # - type: object # required: # - en # properties: # en: # type: string # example: # id: http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/ # label: Sea Ice Concentration # parameterNames: # type: object # title: Parameter name # description: Definition of data parameter # required: # - type # - observedProperty # properties: # type: # description: type # enum: # - Parameter # description: # oneOf: # - type: string # - type: object # # patternProperties: # # ".+": # # type: string # label: # type: string # data-type: # description: Data type of returned parameter # enum: # - integer # - float # - string # unit: # $ref: "#/components/schemas/units" # observedProperty: # $ref: "#/components/schemas/observedPropertyCollection" # categoryEncoding: # type: object # additionalProperties: # oneOf: # - type: integer # - type: array # items: # type: integer # minItems: 1 # uniqueItems: true # extent: # $ref: "#/components/schemas/extent" # id: # description: Unique ID of the parameter, this is the value used for querying the data # type: string # measurementType: # type: object # title: Parameter measurement approach # description: Approach to calculating the data values # required: # - method # properties: # method: # type: string # example: mean # duration: # type: string # title: Measurement time duration # description: # The time duration that the value was calculated for as an RFC3339 # duration value. If the method value is instantaneous this value is # not required. # example: PT10M # example: # type: Parameter # id: sea_ice # description: Sea Ice concentration (ice=1;no ice=0) # unit: # label: Ratio # symbol: # value: "1" # type: http://www.opengis.net/def/uom/UCUM/ # observedProperty: # id: http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/ # label: Sea Ice Concentration pointGeoJSON: type: object required: - type - coordinates properties: type: type: string enum: - Point coordinates: type: array minItems: 2 items: type: number polygonGeoJSON: type: object required: - type - coordinates properties: type: type: string enum: - Polygon coordinates: type: array items: type: array minItems: 4 items: type: array minItems: 2 items: type: number # positionDataQuery: # description: # Property to contain any extra metadata information that is specific # to an individual data queries # type: object # properties: # title: # description: title of the query # type: string # example: Position query # description: # description: description of the query # type: string # example: Query to return data for a defined well known text point # query_type: # description: Type of EDR query # type: string # enum: [position] # example: position # output_formats: # description: list of output formats supported by the Position query # type: array # items: # type: string # example: # - CoverageJSON # - GeoJSON # - IWXXM # - GRIB # default_output_format: # description: default output format for the Position query # type: string # crs_details: # description: List of key/value definitions for the CRS's supported by the Position query. The key is the query parameter and the value is the Well Known Text description # type: array # items: # $ref: "#/components/schemas/crsObject" # positionLink: # allOf: # - $ref: "#/components/schemas/link" # properties: # href: # type: string # example: http://data.example.com/collections/monitoringsites/position # variables: # $ref: "#/components/schemas/positionDataQuery" searchBody: description: The search criteria type: object allOf: - $ref: "#/components/schemas/bboxFilter" - $ref: "#/components/schemas/datetimeFilter" - $ref: "#/components/schemas/intersectsFilter" - $ref: "#/components/schemas/collectionsFilter" - $ref: "#/components/schemas/idsFilter" - $ref: "#/components/schemas/limitFilter" # units: # type: object # title: unit name # description: definition of data units # anyOf: # - required: # - label # - required: # - symbol # - required: # - label # - symbol # properties: # label: # oneOf: # - type: object # additionalProperties: # type: string # - type: string # symbol: # title: Describe unit symbol # oneOf: # - type: object # description: Information about the symbol used to describe the units # required: # - value # - type # properties: # value: # description: representation of the units symbol # type: string # type: # description: uri to detailed desxcription of the units # type: string # - type: string # example: # value: hPa # type: http://www.opengis.net/def/uom/UCUM/ # id: # type: string # example: # label: # en: Kelvin # symbol: # value: K # type: http://www.opengis.net/def/uom/UCUM/