Skip to content

Commit

Permalink
Merge branch 'draft' into fix-fit-curve
Browse files Browse the repository at this point in the history
# Conflicts:
#	proposals/fit_curve.json
  • Loading branch information
m-mohr committed Mar 30, 2023
2 parents 92c9abb + 8cad0b5 commit 0f3d97a
Show file tree
Hide file tree
Showing 38 changed files with 387 additions and 530 deletions.
28 changes: 22 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- New processes in proposal state:
- `date_difference`
- `filter_vector`
- `fit_class_random_forest`
- `fit_regr_random_forest`
- `flatten_dimensions`
- `load_ml_model`
- `predict_random_forest`
- `save_ml_model`
- `unflatten_dimension`
- `vector_buffer`
- `vector_reproject`
- `vector_to_random_points`
- `vector_to_regular_points`
- `add_dimension`: Added new dimension type `geometries`. [#68](https://github.com/Open-EO/openeo-processes/issues/68)

### Changed

- Moved from proposals to stable processes:
- `array_append`
- `array_concat`
- `array_create`
- `array_interpolate_linear`
- `resample_cube_temporal`
- Added better support for labeled arrays. Labels are not discarded in all cases anymore. Affected processes:
- `array_append`
- `array_concat`
- `array_modify`
- `array_modify`: Change the default value for `length` from `1` to `0`. [#312](https://github.com/Open-EO/openeo-processes/issues/312)
- Renamed `text_merge` to `text_concat` for better alignment with `array_concat` and existing implementations.
- `apply_neighborhood`:
- Allow `null` as default value for units.
Expand All @@ -38,21 +41,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Require at least one band if not set to `null`. [#372](https://github.com/Open-EO/openeo-processes/issues/372)
- Added a `NoDataAvailable` exception
- `inspect`: The parameter `message` has been moved to be the second argument. [#369](https://github.com/Open-EO/openeo-processes/issues/369)
- `mask` and `merge_cubes`: The spatial dimensions `x` and `y` can now be resampled implicitly instead of throwing an error. [#402](https://github.com/Open-EO/openeo-processes/issues/402)
- `save_result`: Added a more concrete `DataCubeEmpty` exception.
- The comparison processes `eq`, `neq`, `lt`, `lte`, `gt`, `gte` don't support temporal comparison any longer. Instead explicitly use `date_difference`.
- New definition for `aggregate_spatial`:
- Allows more than 3 input dimensions [#126](https://github.com/Open-EO/openeo-processes/issues/126)
- Allow to not export statistics by changing the parameter `target_dimension` [#366](https://github.com/Open-EO/openeo-processes/issues/366)
- Clarify how the resulting vector data cube looks like [#356](https://github.com/Open-EO/openeo-processes/issues/356)
- Renamed `create_raster_cube` to `create_data_cube`. [#68](https://github.com/Open-EO/openeo-processes/issues/68)
- Updated the processes based on the subtypes `raster-cube` or `vector-cube` to work with the subtype `datacube` instead. [#68](https://github.com/Open-EO/openeo-processes/issues/68)
- `sort` and `order`: The ordering of ties is not defined anymore. [#409](https://github.com/Open-EO/openeo-processes/issues/409)
- `quantiles`: Parameter `probabilities` provided as array must be in ascending order. [#297](https://github.com/Open-EO/openeo-processes/pull/297)

### Removed

- The `examples` folder has been migrated to the [openEO Community Examples](https://github.com/Open-EO/openeo-community-examples/tree/main/processes) repository.
- `between`: Support for temporal comparison.
- Deprecated `GeometryCollections` are not supported any longer. [#389](https://github.com/Open-EO/openeo-processes/issues/389)
- Deprecated PROJ definitions for the CRS are not supported any longer.
- The comparison processes `eq`, `neq`, `lt`, `lte`, `gt`, `gte` and `array_contains`:
- Removed support for temporal comparison. Instead explicitly use `date_difference`.
- Removed support for the input data types array and object. [#208](https://github.com/Open-EO/openeo-processes/issues/208)

### Fixed

Expand All @@ -69,14 +77,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `array_interpolate_linear`: Return value was incorrectly specified as `number` or `null`. It must return an array instead. [#333](https://github.com/Open-EO/openeo-processes/issues/333)
- `is_nan`: Fixed a wrong description of the return value and simplified/clarified the process descriptions overall. [#360](https://github.com/Open-EO/openeo-processes/issues/360)
- `is_nodata`: Clarified that `NaN` can be considered as a no-data value only if it is explicitly specified as no-data value. [#361](https://github.com/Open-EO/openeo-processes/issues/361)
- `merge_cubes`: Clarified descriptions to better describe when a merge is possible. [#379](https://github.com/Open-EO/openeo-processes/issues/379)
- `rename_labels`: Clarified that the `LabelsNotEnumerated` exception is thrown if `source` is empty instead of if `target` is empty. [#321](https://github.com/Open-EO/openeo-processes/issues/321)
- `round`: Clarify that the rounding for ties applies not only for integers. [#326](https://github.com/Open-EO/openeo-processes/issues/326)
- `save_result`: Clarified that the process always returns `true` (and otherwise throws). [#334](https://github.com/Open-EO/openeo-processes/issues/334)

## [1.2.0] - 2021-12-13

### Added

- New processes in proposal state
- `apply_polygon`
- `fit_curve`
- `predict_curve`
- `ard_normalized_radar_backscatter` and `sar_backscatter`: Added `options` parameter
Expand All @@ -94,6 +105,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Renamed to `inspect`.
- The log level `error` does not need to stop execution.
- Added proposals for logging several data types to the implementation guide.
- `quantiles`: The parameter `probabilities` also accepts an integer value to compute q-quantiles. [#293](https://github.com/Open-EO/openeo-processes/issues/293)

### Deprecated

- `quantiles`: The parameter `q` has been deprecated in favor of the extended parameter `probabilities`. [#293](https://github.com/Open-EO/openeo-processes/issues/293)

### Removed

Expand Down
2 changes: 1 addition & 1 deletion aggregate_spatial.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. The given data cube can have multiple additional dimensions and for all these dimensions results will be computed individually.\n\nAn 'unbounded' aggregation over the full extent of the horizontal spatial dimensions can be computed with the process ``reduce_spatial()``.\n\nThis process passes a list of values to the reducer. The list of values has an undefined order, therefore processes such as ``last()`` and ``first()`` that depend on the order of the values will lead to unpredictable results.",
"categories": [
"cubes",
"aggregate & resample"
"aggregate"
],
"parameters": [
{
Expand Down
2 changes: 1 addition & 1 deletion aggregate_temporal.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Computes a temporal aggregation based on an array of temporal intervals.\n\nFor common regular calendar hierarchies such as year, month, week or seasons ``aggregate_temporal_period()`` can be used. Other calendar hierarchies must be transformed into specific intervals by the clients.\n\nFor each interval, all data along the dimension will be passed through the reducer.\n\nThe computed values will be projected to the labels. If no labels are specified, the start of the temporal interval will be used as label for the corresponding values. In case of a conflict (i.e. the user-specified values for the start times of the temporal intervals are not distinct), the user-defined labels must be specified in the parameter `labels` as otherwise a `DistinctDimensionLabelsRequired` exception would be thrown. The number of user-defined labels and the number of intervals need to be equal.\n\nIf the dimension is not set or is set to `null`, the data cube is expected to only have one temporal dimension.",
"categories": [
"cubes",
"aggregate & resample"
"aggregate"
],
"parameters": [
{
Expand Down
2 changes: 1 addition & 1 deletion aggregate_temporal_period.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"summary": "Temporal aggregations based on calendar hierarchies",
"description": "Computes a temporal aggregation based on calendar hierarchies such as years, months or seasons. For other calendar hierarchies ``aggregate_temporal()`` can be used.\n\nFor each interval, all data along the dimension will be passed through the reducer.\n\nIf the dimension is not set or is set to `null`, the data cube is expected to only have one temporal dimension.",
"categories": [
"aggregate & resample",
"aggregate",
"climatology",
"cubes"
],
Expand Down
1 change: 0 additions & 1 deletion proposals/array_append.json → array_append.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"categories": [
"arrays"
],
"experimental": true,
"parameters": [
{
"name": "data",
Expand Down
1 change: 0 additions & 1 deletion proposals/array_concat.json → array_concat.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"categories": [
"arrays"
],
"experimental": true,
"parameters": [
{
"name": "array1",
Expand Down
44 changes: 7 additions & 37 deletions array_contains.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "array_contains",
"summary": "Check whether the array contains a given value",
"description": "Checks whether the array specified for `data` contains the value specified in `value`. Returns `true` if there's a match, otherwise `false`.\n\n**Remarks:**\n\n* To get the index or the label of the value found, use ``array_find()``.\n* All definitions for the process ``eq()`` regarding the comparison of values apply here as well. A `null` return value from ``eq()`` is handled exactly as `false` (no match).\n* Data types MUST be checked strictly. For example, a string with the content *1* is not equal to the number *1*.\n* An integer *1* is equal to a floating-point number *1.0* as `integer` is a sub-type of `number`. Still, this process may return unexpectedly `false` when comparing floating-point numbers due to floating-point inaccuracy in machine-based computation.\n* Temporal strings are treated as normal strings and MUST NOT be interpreted.\n* If the specified value is an array, object or null, the process always returns `false`. See the examples for one to check for `null` values.",
"description": "Checks whether the array specified for `data` contains the value specified in `value`. Returns `true` if there's a match, otherwise `false`.\n\n**Remarks:**\n\n* To get the index or the label of the value found, use ``array_find()``.\n* All definitions for the process ``eq()`` regarding the comparison of values apply here as well. A `null` return value from ``eq()`` is handled exactly as `false` (no match).\n* Data types MUST be checked strictly. For example, a string with the content *1* is not equal to the number *1*.\n* An integer *1* is equal to a floating-point number *1.0* as `integer` is a sub-type of `number`. Still, this process may return unexpectedly `false` when comparing floating-point numbers due to floating-point inaccuracy in machine-based computation.\n* Temporal strings are treated as normal strings and MUST NOT be interpreted.",
"categories": [
"arrays",
"comparison",
Expand All @@ -22,7 +22,12 @@
"name": "value",
"description": "Value to find in `data`. If the value is `null`, this process returns always `false`.",
"schema": {
"description": "Any data type is allowed."
"type": [
"number",
"boolean",
"string",
"null"
]
}
}
],
Expand Down Expand Up @@ -77,25 +82,6 @@
},
"returns": false
},
{
"arguments": {
"data": [
[
1,
2
],
[
3,
4
]
],
"value": [
1,
2
]
},
"returns": false
},
{
"arguments": {
"data": [
Expand All @@ -111,22 +97,6 @@
"value": 2
},
"returns": false
},
{
"arguments": {
"data": [
{
"a": "b"
},
{
"c": "d"
}
],
"value": {
"a": "b"
}
},
"returns": false
}
],
"links": [
Expand Down
3 changes: 1 addition & 2 deletions proposals/array_create.json → array_create.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"categories": [
"arrays"
],
"experimental": true,
"parameters": [
{
"name": "data",
Expand Down Expand Up @@ -92,4 +91,4 @@
]
}
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
"math",
"math > interpolation"
],
"experimental": true,
"parameters": [
{
"name": "data",
Expand Down
31 changes: 13 additions & 18 deletions eq.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "eq",
"summary": "Equal to comparison",
"description": "Compares whether `x` is strictly equal to `y`.\n\n**Remarks:**\n\n* Data types MUST be checked strictly. For example, a string with the content *1* is not equal to the number *1*. Nevertheless, an integer *1* is equal to a floating-point number *1.0* as `integer` is a sub-type of `number`.\n* If any operand is `null`, the return value is `null`.\n* If any operand is an array or object, the return value is `false`.\n* Strings are expected to be encoded in UTF-8 by default.\n* Temporal strings are normal strings. To compare temporal strings as dates/times, use ``date_difference()``.",
"description": "Compares whether `x` is strictly equal to `y`.\n\n**Remarks:**\n\n* Data types MUST be checked strictly. For example, a string with the content *1* is not equal to the number *1*. Nevertheless, an integer *1* is equal to a floating-point number *1.0* as `integer` is a sub-type of `number`.\n* If any operand is `null`, the return value is `null`.\n* Temporal strings are normal strings. To compare temporal strings as dates/times, use ``date_difference()``.",
"categories": [
"texts",
"comparison"
Expand All @@ -11,14 +11,24 @@
"name": "x",
"description": "First operand.",
"schema": {
"description": "Any data type is allowed."
"type": [
"number",
"boolean",
"string",
"null"
]
}
},
{
"name": "y",
"description": "Second operand.",
"schema": {
"description": "Any data type is allowed."
"type": [
"number",
"boolean",
"string",
"null"
]
}
},
{
Expand Down Expand Up @@ -142,21 +152,6 @@
},
"returns": false
},
{
"arguments": {
"x": [
1,
2,
3
],
"y": [
1,
2,
3
]
},
"returns": false
},
{
"arguments": {
"x": null,
Expand Down
2 changes: 1 addition & 1 deletion filter_temporal.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
},
{
"name": "dimension",
"description": "The name of the temporal dimension to filter on. If no specific dimension is specified or it is set to `null`, the filter applies to all temporal dimensions. Fails with a `DimensionNotAvailable` exception if the specified dimension does not exist.",
"description": "The name of the temporal dimension to filter on. If no specific dimension is specified, the filter applies to all temporal dimensions. Fails with a `DimensionNotAvailable` exception if the specified dimension does not exist.",
"schema": {
"type": [
"string",
Expand Down
14 changes: 12 additions & 2 deletions gt.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,24 @@
"name": "x",
"description": "First operand.",
"schema": {
"description": "Any data type is allowed."
"type": [
"number",
"boolean",
"string",
"null"
]
}
},
{
"name": "y",
"description": "Second operand.",
"schema": {
"description": "Any data type is allowed."
"type": [
"number",
"boolean",
"string",
"null"
]
}
}
],
Expand Down
31 changes: 13 additions & 18 deletions gte.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "gte",
"summary": "Greater than or equal to comparison",
"description": "Compares whether `x` is greater than or equal to `y`.\n\n**Remarks:**\n\n* If any operand is `null`, the return value is `null`.\n* If any operand is an array or object, the return value is `false`.\n* If the operands are not equal (see process ``eq()``) and any of them is not a `number`, the process returns `false`.\n* Temporal strings are normal strings. To compare temporal strings as dates/times, use ``date_difference()``.",
"description": "Compares whether `x` is greater than or equal to `y`.\n\n**Remarks:**\n\n* If any operand is `null`, the return value is `null`.\n* If the operands are not equal (see process ``eq()``) and any of them is not a `number`, the process returns `false`.\n* Temporal strings are normal strings. To compare temporal strings as dates/times, use ``date_difference()``.",
"categories": [
"comparison"
],
Expand All @@ -10,14 +10,24 @@
"name": "x",
"description": "First operand.",
"schema": {
"description": "Any data type is allowed."
"type": [
"number",
"boolean",
"string",
"null"
]
}
},
{
"name": "y",
"description": "Second operand.",
"schema": {
"description": "Any data type is allowed."
"type": [
"number",
"boolean",
"string",
"null"
]
}
}
],
Expand Down Expand Up @@ -73,21 +83,6 @@
},
"returns": false
},
{
"arguments": {
"x": [
1,
2,
3
],
"y": [
1,
2,
3
]
},
"returns": false
},
{
"arguments": {
"x": null,
Expand Down
Loading

0 comments on commit 0f3d97a

Please sign in to comment.