openapi: 3.0.2 info: title: EOC EO Products Service Capabilities Data API description: Provides interoperable access to metadata from EO collections and products of DLR's Earth Observation Center (EOC). contact: name: Geoservice Manager - Earth Observation Center (EOC), DLR email: geoservice@dlr.de version: 1.0.0 servers: - url: https://geoservice.dlr.de/eoc/ogc/stac/v1 description: This server tags: - name: Data description: access to data (features) paths: /collections/{collectionId}/items: get: tags: - Data summary: fetch features description: 'Fetch features of the feature collection with id `collectionId`. Every feature in a dataset belongs to a collection. A dataset may consist of multiple feature collections. A feature collection is often a collection of features of a similar type, based on a common schema. Use content negotiation to request HTML or GeoJSON.' operationId: getFeatures parameters: - $ref: '#/components/parameters/collectionId' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/bbox' - $ref: '#/components/parameters/datetime' - $ref: '#/components/parameters/filter' - $ref: '#/components/parameters/filter-lang' - $ref: '#/components/parameters/sortby' - $ref: '#/components/parameters/crs' - $ref: '#/components/parameters/bbox-crs' - $ref: '#/components/parameters/otherParameters' responses: '200': content: application/json: schema: type: string format: binary application/yaml: schema: type: string format: binary text/html: schema: type: string $ref: '#/components/responses/Features' '400': $ref: '#/components/responses/InvalidParameter' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' /collections/{collectionId}/items/{featureId}: get: tags: - Data summary: fetch a single feature description: 'Fetch the feature with id `featureId` in the feature collection with id `collectionId`. Use content negotiation to request HTML or GeoJSON.' operationId: getFeature parameters: - $ref: '#/components/parameters/collectionId' - $ref: '#/components/parameters/featureId' - $ref: '#/components/parameters/crs' - $ref: '#/components/parameters/otherParameters' responses: '200': content: application/json: schema: type: string format: binary application/yaml: schema: type: string format: binary text/html: schema: type: string $ref: '#/components/responses/Feature' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' components: schemas: timeStamp: type: string description: This property indicates the time and date when the response was generated. format: date-time numberMatched: minimum: 0 type: integer description: 'The number of features of the feature type that match the selection parameters like `bbox`.' example: 127 featureGeoJSON: required: - geometry - properties - type type: object 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' exception: required: - code type: object properties: code: type: string description: type: string description: 'Information about the exception: an error code plus an optional description.' link: required: - href type: object properties: href: type: string example: http://data.example.com/buildings/123 rel: type: string example: alternate type: type: string example: application/geo+json hreflang: type: string example: en title: type: string example: Trierer Strasse 70, 53115 Bonn length: type: integer polygonGeoJSON: required: - coordinates - type type: object properties: type: type: string enum: - Polygon coordinates: type: array items: minItems: 4 type: array items: minItems: 2 type: array items: type: number multipolygonGeoJSON: required: - coordinates - type type: object properties: type: type: string enum: - MultiPolygon coordinates: type: array items: type: array items: minItems: 4 type: array items: minItems: 2 type: array items: type: number 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' linestringGeoJSON: required: - coordinates - type type: object properties: type: type: string enum: - LineString coordinates: minItems: 2 type: array items: minItems: 2 type: array items: type: number multilinestringGeoJSON: required: - coordinates - type type: object properties: type: type: string enum: - MultiLineString coordinates: type: array items: minItems: 2 type: array items: minItems: 2 type: array items: type: number featureCollectionGeoJSON: required: - features - type type: object properties: type: type: string enum: - FeatureCollection features: type: array items: $ref: '#/components/schemas/featureGeoJSON' links: type: array items: $ref: '#/components/schemas/link' timeStamp: $ref: '#/components/schemas/timeStamp' numberMatched: $ref: '#/components/schemas/numberMatched' numberReturned: $ref: '#/components/schemas/numberReturned' geometrycollectionGeoJSON: required: - geometries - type type: object properties: type: type: string enum: - GeometryCollection geometries: type: array items: $ref: '#/components/schemas/geometryGeoJSON' pointGeoJSON: required: - coordinates - type type: object properties: type: type: string enum: - Point coordinates: minItems: 2 type: array items: type: number multipointGeoJSON: required: - coordinates - type type: object properties: type: type: string enum: - MultiPoint coordinates: type: array items: minItems: 2 type: array items: type: number numberReturned: minimum: 0 type: integer 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.' example: 10 parameters: featureId: name: featureId in: path description: local identifier of a feature required: true schema: type: string bbox: name: bbox in: query description: 'Only features 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 (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) The coordinate reference system of the values is WGS 84 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`. 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.' required: false style: form explode: false schema: maxItems: 6 minItems: 4 type: array items: type: number collectionId: name: collectionId in: path description: local identifier of a collection required: true schema: type: string enum: - CROPTYPES_DE_P1Y - CROPTYPES_DE_P1Y_V02 - D4H - DESIS_HSI_L2A - DatKI_LBMDE_2021 - ENMAP_HSI_L0_QL - ENMAP_HSI_L2A - FCCL_DE_P1M - FOREST_STRUCTURE_DE_AGBD_P1Y - FOREST_STRUCTURE_DE_COVER_P1Y - FOREST_STRUCTURE_DE_RH95_P1Y - GL_MOW_DE_P1Y_FC - GL_MOW_DE_P1Y_FREQ - GSP_SCDE_MEAN - GSP_SCDE_P1Y - GSP_SCDL_MEAN - GSP_SCDL_P1Y - GSP_SCD_MEAN - GSP_SCD_P1Y - GSP_SCE_P1D - GWP_P1D - GWP_P1M - GWP_P1Y - METOP_GOME2_L3_P1D_BRO - METOP_GOME2_L3_P1D_CF - METOP_GOME2_L3_P1D_H2O - METOP_GOME2_L3_P1D_HCHO - METOP_GOME2_L3_P1D_NO2 - METOP_GOME2_L3_P1D_NO2TROPO - METOP_GOME2_L3_P1D_O3 - METOP_GOME2_L3_P1D_SO2 - N2N_NOISE_AI_DE_2017 - N2N_NOISE_DE_2017 - S2-soilsuite-africa-2018-2021-P4Y - S2-soilsuite-europe-2018-2022-P5Y - S2_L2A_MAJA - S2_L2A_MAJA_v2 - S2_L3A_WASP - S2_L3A_WASP_V2 - S5P_TROPOMI_L3_P1D_AI_v2 - S5P_TROPOMI_L3_P1D_ALH_v2 - S5P_TROPOMI_L3_P1D_AOD_v2 - S5P_TROPOMI_L3_P1D_ASSA_v2 - S5P_TROPOMI_L3_P1D_CF - S5P_TROPOMI_L3_P1D_CF_v2 - S5P_TROPOMI_L3_P1D_COT - S5P_TROPOMI_L3_P1D_COT_v2 - S5P_TROPOMI_L3_P1D_CTH - S5P_TROPOMI_L3_P1D_CTH_v2 - S5P_TROPOMI_L3_P1D_H2O_v2 - S5P_TROPOMI_L3_P1D_HCHO - S5P_TROPOMI_L3_P1D_HCHO_v2 - S5P_TROPOMI_L3_P1D_O3 - S5P_TROPOMI_L3_P1D_O3_v2 - S5P_TROPOMI_L3_P1D_SO2 - S5P_TROPOMI_L3_P1D_SO2LH_v2 - S5P_TROPOMI_L3_P1D_SO2_v2 - S5P_TROPOMI_L3_P1D_UVI_v2 - S5P_TROPOMI_L4_P1D_NO2surf - SAR4TEC_ASCE - SAR4TEC_DESC - SUPERSITES - SWIM_WE - TDM_DEM_90 - TDM_FNF_50 - TIMELINE_AVHRR_P1M_LSTD - TIMELINE_AVHRR_P1M_SST - URBAN_DEGREE_DE - WSF3D_MATSTOCK - WSF_2015 - WSF_2019 - WSF_Evolution 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 style: form explode: false schema: type: string sortby: name: sortby in: query required: false style: form explode: false schema: minItems: 1 type: array items: pattern: '[+|-][A-Za-z_][A-Za-z_0-9]*' type: string filter-lang: name: filter-lang in: query description: Filter encoding used in the filter parameter schema: type: string enum: - cql-text - cql-json default: cql-text 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 style: form explode: false schema: maximum: 500 minimum: 1 type: integer default: 20 crs: name: crs in: query required: false style: form explode: false schema: type: string format: uri bbox-crs: name: bbox-crs in: query required: false style: form explode: false schema: type: string format: uri filter: name: filter in: query description: Defines a filter that will be applied on items, only items matching the filter will be returned schema: type: string otherParameters: name: otherParameters in: query description: Allows unrecognized parameters to be added in the query string without getting a 400 back (e.g., cache busters) style: form schema: type: object additionalProperties: true responses: Feature: description: 'fetch the feature with id `featureId` in the feature collection with id `collectionId`' content: application/geo+json: schema: $ref: '#/components/schemas/featureGeoJSON' example: type: Feature links: - href: http://data.example.com/id/building/123 rel: canonical title: canonical URI of the building - href: http://data.example.com/collections/buildings/items/123.json rel: self type: application/geo+json title: this document - href: http://data.example.com/collections/buildings/items/123.html rel: alternate type: text/html title: this document as HTML - href: http://data.example.com/collections/buildings rel: collection type: application/geo+json title: the collection document id: '123' geometry: type: Polygon coordinates: - '...' properties: function: residential floors: '2' lastUpdate: '2015-08-01T12:34:56Z' text/html: schema: type: string NotFound: description: The requested URI was not found. InvalidParameter: description: A query parameter has an invalid value. content: application/json: schema: $ref: '#/components/schemas/exception' text/html: schema: type: string Features: description: 'The response is a document consisting of features in the collection. The features included in the response are determined by the server based on the query parameters of the request. To support access to larger collections without overloading the client, the API supports paged access with links to the next page, if more features are selected that the page size. The `bbox` and `datetime` parameter can be used to select only a subset of the features in the collection (the features that are in the bounding box or time interval). The `bbox` parameter matches all features in the collection that are not associated with a location, too. The `datetime` parameter matches all features in the collection that are not associated with a time stamp or interval, too. The `limit` parameter may be used to control the subset of the selected features that should be returned in the response, the page size. Each page may include information about the number of selected and returned features (`numberMatched` and `numberReturned`) as well as links to support paging (link relation `next`).' content: application/geo+json: schema: $ref: '#/components/schemas/featureCollectionGeoJSON' example: type: FeatureCollection links: - href: http://data.example.com/collections/buildings/items.json rel: self type: application/geo+json title: this document - href: http://data.example.com/collections/buildings/items.html rel: alternate type: text/html title: this document as HTML - href: http://data.example.com/collections/buildings/items.json&offset=10&limit=2 rel: next type: application/geo+json title: next page timeStamp: '2018-04-03T14:52:23Z' numberMatched: 123 numberReturned: 2 features: - type: Feature id: '123' geometry: type: Polygon coordinates: - '...' properties: function: residential floors: '2' lastUpdate: '2015-08-01T12:34:56Z' - type: Feature id: '132' geometry: type: Polygon coordinates: - '...' properties: function: public use floors: '10' lastUpdate: '2013-12-03T10:15:37Z' text/html: schema: type: string ServerError: description: A server error occurred. content: application/json: schema: $ref: '#/components/schemas/exception' text/html: schema: type: string externalDocs: description: STAC API specification url: https://github.com/radiantearth/stac-api-spec