Skip to content

Commit 82fedd0

Browse files
committed
Merge branch 'draft' into is-nan
2 parents 85a1d64 + 02c5e04 commit 82fedd0

File tree

112 files changed

+1087
-1044
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+1087
-1044
lines changed

CHANGELOG.md

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,56 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99
### Added
1010

1111
- Implementation guide for implementing OGC API - Processes in openEO
12-
- `export_collection`
13-
- `export_workspace`
14-
- `run_ogcapi`
15-
- `run_ogcapi_externally`
16-
- `stac_modify`
12+
- `date_difference`: Allow `week` as a unit [#506](https://github.com/Open-EO/openeo-processes/issues/506)
13+
- `export_collection`: New process
14+
- `export_workspace`: New process
15+
- `run_ogcapi`: New process
16+
- `run_ogcapi_externally`: New process
17+
- `stac_modify`: New process
18+
- `text_find`: New process
1719

1820
### Changed
1921

22+
- Processes that have been marked as stable: `apply_polygon`, `date_between`, `date_shift`, `filter_labels`, `inspect`
23+
- Clarified for various mathematical functions the defined input and output ranges.
24+
Mention that `NaN` is returned outside of the defined input range where possible.
25+
- Clarified for several comparison processes how `NaN` values have to be handled.
26+
- Clarified for various processes the handling of no-data values and `null`, see also the [implementation guide](meta/implementation.md#no-data-value). [#480](https://github.com/Open-EO/openeo-processes/issues/480)
27+
- Added a [section about character encodings to the implementation guide](meta/implementation.md#character-encoding).
28+
Removed any character encoding related wording from the process specifications itself.
29+
- Added a uniqueness contraint to various array-typed parameters (e.g. lists of dimension names or labels)
2030
- `apply_polygon`: Renamed `polygons` parameter to `geometries` for better alignment with other geometry handling processes. [#511](https://github.com/Open-EO/openeo-processes/issues/511)
21-
- `is_nan`: Return `false` instead of `true` for non-numerical data types. [#486](https://github.com/Open-EO/openeo-processes/issues/486)
2231
- `clip`: Throw an exception if min > max [#472](https://github.com/Open-EO/openeo-processes/issues/472)
32+
- `is_nan`: Return `false` instead of `true` for non-numerical data types. [#486](https://github.com/Open-EO/openeo-processes/issues/486)
2333
- `save_results`: Returns the STAC resource instead of boolean `true` [API#376](https://github.com/Open-EO/openeo-api/issues/376)
24-
- Added a uniqueness contraint to various array-typed parameters (e.g. lists of dimension names or labels)
2534

2635
### Fixed
2736

2837
- Clarified for various mathematical functions the defined input and output ranges. Mention that `NaN` is returned outside of the defined input range where possible.
38+
- Clarified for various processes the handling of no-data values and null, see also the [implementation guide](meta/implementation.md). [#480](https://github.com/Open-EO/openeo-processes/issues/480)
39+
- `add_dimension`: Clearly define behaviour for adding spatial dimensions
2940
- `apply_polygon`: Replaced outdated usage of `raster-cube` subtype with `datacube` and dimensions. [#524](https://github.com/Open-EO/openeo-processes/issues/524)
3041
- `aggregate_spatial` and `load_geojson`: Dimensions must by of type `geometry`, not `geometries`
42+
- `aggregate_spatial`: Clarified that the output geometries are unchanged compared to the input geometries. [#499](https://github.com/Open-EO/openeo-processes/issues/499)
3143
- `aggregate_temporal` and `aggregate_temporal_period`: Clarified that the process throws a `DimensionNotAvailable` exception when no temporal dimension exists.
32-
- `aggregate_temporal_period`: Removed unused exception `DistinctDimensionLabelsRequired`
33-
- `aggregate_temporal_period`: Clarified that the definition of weeks follows ISO 8601
44+
- `aggregate_temporal_period`: Removed unused exception `DistinctDimensionLabelsRequired`.
45+
- `aggregate_temporal_period`: Clarified that the definition of weeks follows ISO 8601.
46+
- `apply_polygon`: Replaced outdated usage of `raster-cube` subtype with `datacube` and dimensions. [#524](https://github.com/Open-EO/openeo-processes/issues/524)
47+
- `array_interpolate_linear`: Apply interpolation to NaN and no-data values.
3448
- `cummax`, `cummin`, `cumproduct`, `cumsum`: Clarified the descriptions around the `ignore_nodata` parameter.
3549
- `divide`: Clarified behavior for division by 0
3650
- `between`: Clarify that `null` is passed through.
3751
- `eq` and `neq`: Explicitly set the minimum value for the `delta` parameter.
3852
- `filter_bbox`, `load_collection`, `load_stac`: Clarified that the bounding box is reprojected to the CRS of the spatial data cube dimensions if required.
3953
- `filter_spatial`: Clarified that masking is applied using the given geometries. [#469](https://github.com/Open-EO/openeo-processes/issues/469)
40-
- `load_collection` and `load_stac`: Clarified that scale and offset are not applied automatically when loading the data. [#503](https://github.com/Open-EO/openeo-processes/issues/503)
54+
- `load_collection` and `load_stac`:
55+
- Clarified that scale and offset are not applied automatically when loading the data. [#503](https://github.com/Open-EO/openeo-processes/issues/503)
56+
- Clarify the dimension naming and the order of dimension labels for nominal labels. [#488](https://github.com/Open-EO/openeo-processes/issues/488), [#489](https://github.com/Open-EO/openeo-processes/issues/489)
57+
- `load_stac`: Clarify handling of the `properties` parameter in the context of STAC APIs and static catalogs. [#536](https://github.com/Open-EO/openeo-processes/issues/536)
58+
- `load_uploaded_files` and `run_udf`: Clarify handling of file paths and added `FileNotFound` exception. [#461](https://github.com/Open-EO/openeo-processes/issues/461)
59+
- `mask`: Add missing exception `IncompatibleDataCubes` [#538](https://github.com/Open-EO/openeo-processes/issues/538)
4160
- `mod`: Clarified behavior for y = 0
61+
- `run_udf`: Simplified and clarified the schema for `data` - no functional change.
4262
- `sqrt`: Clarified that NaN is returned for negative numbers.
4363
- Clarify allowed `FeatureCollection` geometries in `load_collection`, `mask_polygon`, `apply_polygon`, and `load_stac` [#527](https://github.com/Open-EO/openeo-processes/issues/527)
4464

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ This repository contains a set of files formally describing the openEO Processes
4040
## Process
4141

4242
* All new processes must be added to the [`proposals`](proposals/) folder.
43-
* Processes will only be moved from proposals to the stable process specifications once there are at least two implementations and an example process in the [`openEO community examples`](https://github.com/Open-EO/openeo-community-examples/) showing it in a use case. This doesn't require a PSC vote individually as it's not a breaking change, just an addition.
43+
* Processes will only be moved from proposals to the stable process specifications once there are at least two implementations and an example process in the [`openEO community examples`](https://github.com/Open-EO/openeo-community-examples/) showing it in a use case. Ideally, there are also no open issues. The move doesn't require a PSC vote individually as it's not a breaking change, just an addition.
4444
* The [`proposals`](proposals/) folder allows breaking changes without a PSC vote and without increasing the major version number (i.e. a breaking change in the proposals doesn't require us to make the next version number 2.0.0).
4545
* The proposals are released as experimental processes with the other processes.
4646
* Each release and all breaking changes in the stable process specifications must go through PSC vote.

absolute.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "absolute",
33
"summary": "Absolute value",
4-
"description": "Computes the absolute value of a real number `x`, which is the \"unsigned\" portion of `x` and often denoted as *|x|*.\n\nThe no-data value `null` is passed through and therefore gets propagated.",
4+
"description": "Computes the absolute value of a real number `x`, which is the \"unsigned\" portion of `x` and often denoted as *|x|*.\n\nNo-data values are passed through.",
55
"categories": [
66
"math"
77
],

add.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "add",
33
"summary": "Addition of two numbers",
4-
"description": "Sums up the two numbers `x` and `y` (*`x + y`*) and returns the computed sum.\n\nNo-data values are taken into account so that `null` is returned if any element is such a value.\n\nThe computations follow [IEEE Standard 754](https://ieeexplore.ieee.org/document/8766229) whenever the processing environment supports it.",
4+
"description": "Sums up the two numbers `x` and `y` (*`x + y`*) and returns the computed sum.\n\nNo-data values are taken into account so that the no-data value is returned if any element is such a value.\n\nThe computations follow [IEEE Standard 754](https://ieeexplore.ieee.org/document/8766229) whenever the processing environment supports it.",
55
"categories": [
66
"math"
77
],
@@ -88,4 +88,4 @@
8888
"result": true
8989
}
9090
}
91-
}
91+
}

add_dimension.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
},
3636
{
3737
"name": "type",
38-
"description": "The type of dimension, defaults to `other`.",
38+
"description": "The type of dimension, defaults to `other`.\n\nIf the type is `spatial`, the axis is the first option that does not exist yet from `x`, `y`, and `z`. This refers to the axis of the dimension, not the name of the dimension. Throws a `DimensionExists` exception if dimensions for all axes exist.",
3939
"schema": {
4040
"type": "string",
4141
"enum": [

aggregate_spatial.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
}
106106
],
107107
"returns": {
108-
"description": "A vector data cube with the computed results. Empty geometries still exist but without any aggregated values (i.e. no-data). The spatial dimensions are replaced by a dimension of type 'geometry' and if `target_dimension` is not `null`, a new dimension is added.",
108+
"description": "A vector data cube with the computed results. Empty geometries still exist but without any aggregated values (i.e. no-data). The spatial dimensions are replaced by a dimension of type 'geometry' and if `target_dimension` is not `null`, a new dimension is added. The dimension of type `geometry` is unchanged compared to the geometries provided through the parameter `geometries`, especially with regards to its labels (geometries) and reference system.",
109109
"schema": {
110110
"type": "object",
111111
"subtype": "datacube",

aggregate_temporal.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
},
9090
{
9191
"name": "reducer",
92-
"description": "A reducer to be applied for the values contained in each interval. A reducer is a single process such as ``mean()`` or a set of processes, which computes a single value for a list of values, see the category 'reducer' for such processes. Intervals may not contain any values, which for most reducers leads to no-data (`null`) values by default.",
92+
"description": "A reducer to be applied for the values contained in each interval. A reducer is a single process such as ``mean()`` or a set of processes, which computes a single value for a list of values, see the category 'reducer' for such processes. Intervals may not contain any values, which leads to a no-data value for most reducers by default.",
9393
"schema": {
9494
"type": "object",
9595
"subtype": "process-graph",

aggregate_temporal_period.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
},
4343
{
4444
"name": "reducer",
45-
"description": "A reducer to be applied for the values contained in each period. A reducer is a single process such as ``mean()`` or a set of processes, which computes a single value for a list of values, see the category 'reducer' for such processes. Periods may not contain any values, which for most reducers leads to no-data (`null`) values by default.",
45+
"description": "A reducer to be applied for the values contained in each period. A reducer is a single process such as ``mean()`` or a set of processes, which computes a single value for a list of values, see the category 'reducer' for such processes. Periods may not contain any values, which leads to a no-data value for most reducers by default.",
4646
"schema": {
4747
"type": "object",
4848
"subtype": "process-graph",

all.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "all",
33
"summary": "Are all of the values true?",
4-
"description": "Checks if **all** of the values in `data` are true. If no value is given (i.e. the array is empty) the process returns `null`.\n\nBy default all no-data values are ignored so that the process returns `null` if all values are no-data, `true` if all values are true and `false` otherwise. Setting the `ignore_nodata` flag to `false` takes no-data values into account and the array values are reduced pairwise according to the following truth table:\n\n```\n || null | false | true\n----- || ----- | ----- | -----\nnull || null | false | null\nfalse || false | false | false\ntrue || null | false | true\n```\n\n**Remark:** The process evaluates all values from the first to the last element and stops once the outcome is unambiguous. A result is ambiguous unless a value is `false` or all values have been taken into account.",
4+
"description": "Checks if **all** of the values in `data` are true. If no value is given (i.e. the array is empty) the process returns the no-data value (or `null`).\n\nBy default all no-data values are ignored so that the process returns the no-data value (or `null`) if all values are no-data, `true` if all values are true and `false` otherwise. Setting the `ignore_nodata` flag to `false` takes no-data values into account and the array values are reduced pairwise according to the following truth table:\n\n```\n || no-data | false | true\n------- || ------- | ----- | -------\nno-data || no-data | false | no-data\nfalse || false | false | false\ntrue || no-data | false | true\n```\n\n**Remark:** The process evaluates all values from the first to the last element and stops once the outcome is unambiguous. A result is ambiguous unless a value is `false` or all values have been taken into account.",
55
"categories": [
66
"logic",
77
"reducer"
@@ -22,7 +22,7 @@
2222
},
2323
{
2424
"name": "ignore_nodata",
25-
"description": "Indicates whether no-data values are ignored or not and ignores them by default.",
25+
"description": "Indicates whether no-data values are ignored or not. Ignores them by default.",
2626
"schema": {
2727
"type": "boolean"
2828
},
@@ -131,4 +131,4 @@
131131
"returns": null
132132
}
133133
]
134-
}
134+
}

and.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "and",
33
"summary": "Logical AND",
4-
"description": "Checks if **both** values are true.\n\nEvaluates parameter `x` before `y` and stops once the outcome is unambiguous. If any argument is `null`, the result will be `null` if the outcome is ambiguous.\n\n**Truth table:**\n\n```\nx \\ y || null | false | true\n----- || ----- | ----- | -----\nnull || null | false | null\nfalse || false | false | false\ntrue || null | false | true\n```",
4+
"description": "Checks if **both** values are true.\n\nEvaluates parameter `x` before `y` and stops once the outcome is unambiguous. If any argument is a no-data value, the result will be the no-data value whenever the outcome is ambiguous.\n\n**Truth table:**\n\n```\nx \\ y || no-data | false | true\n------- || ------- | ----- | -------\nno-data || no-data | false | no-data\nfalse || false | false | false\ntrue || no-data | false | true\n```",
55
"categories": [
66
"logic"
77
],

0 commit comments

Comments
 (0)