diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dbe0f0..415d87d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- `processing:expression` to describe how the data has been processed. + ### Changed ### Deprecated diff --git a/README.md b/README.md index 5fd5cda..f79c0ab 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ for the `providers` that have the role `producer` or `processor` assigned. | Field Name | Type | Description | | ----------------------- | ------------------- | ----------- | +| processing:expression | [Expression Object](#expression-object) | An expression or processing chain that describes how the data has been processed. | | processing:lineage | string | Lineage Information provided as free text information about the how observations were processed or models that were used to create the resource being described [NASA ISO](https://wiki.earthdata.nasa.gov/display/NASAISO/Lineage+Information). For example, `GRD Post Processing` for "GRD" product of Sentinel-1 satellites. [CommonMark 0.29](https://commonmark.org/) syntax MAY be used for rich text representation. | | processing:level | string | The name commonly used to refer to the processing level to make it easier to search for product level across collections or items. The short name must be used (only `L`, not `Level`). See the [list of suggested processing levels](#suggested-processing-levels). | | processing:facility | string | The name of the facility that produced the data. For example, `Copernicus S1 Core Ground Segment - DPA` for product of Sentinel-1 satellites. | @@ -64,6 +65,21 @@ This list is not exhaustive and can be extended with the processing level specif | L3 | Data or retrieved environmental variables which have been spatiallyand/or temporally re-sampled (i.e., derived from level 1 or 2 products). Such re-sampling may include averaging and compositing. A wide variety of sub-level products are possible (see below). | [ENVISAT Level-3](http://envisat.esa.int/level3/), [Sentinel-2 L3](https://s2gm.sentinel-hub.com/) | | L4 | Model output or results from analyses of lower level data (i.e.,variables that are not directly measured by the instruments, but are derived from these measurements) | | +### Expression Object + +| Field Name | Type | Description | +| ---------- | ------ | ----------- | +| format | string | **REQUIRED** The type of the expression that is specified in the `expression` property. | +| expression | \* | **REQUIRED** An expression compliant with the `format` specified. The expression can be any data type and depends on the `format` given, e.g. string or object. | + +Potential expression formats with examples: + +| Format | Type | Description | Example | +| ----------- | ------ | ----------- | ------- | +| `gdal-calc` | string | A [`gdal_calc.py`](https://gdal.org/programs/gdal_calc.html) expression based on numpy syntax. | `A*logical_or(A<=177,A>=185)` | +| `openeo` | object | [openEO process](https://openeo.org/documentation/1.0/developers/api/reference.html#section/Processes) | [Example](https://raw.githubusercontent.com/Open-EO/openeo-processes/1.0.0/normalized_difference.json) | +| `rio-calc` | string | A [rio-calc](https://rasterio.readthedocs.io/en/latest/topics/calc.html) (RasterIO) expression | `(b4-b1)/(b4+b1)` | + ## Relation types The following types should be used as applicable `rel` types in the diff --git a/json-schema/schema.json b/json-schema/schema.json index ee5492d..f129bd4 100644 --- a/json-schema/schema.json +++ b/json-schema/schema.json @@ -162,6 +162,11 @@ }, "requirements": { "anyOf": [ + { + "required": [ + "processing:expression" + ] + }, { "required": [ "processing:lineage" @@ -187,6 +192,22 @@ "fields": { "type": "object", "properties": { + "processing:expression": { + "title": "Processing Expression", + "type": "object", + "required": [ + "format", + "expression" + ], + "properties": { + "format": { + "type": "string" + }, + "expression": { + "description": "Any data type, depending on the format chosen." + } + } + }, "processing:lineage": { "title": "Processing Lineage Information", "type": "string",