Skip to content

Commit 1ec59e8

Browse files
authored
Merge branch 'draft' into add-tests
2 parents b88ff6a + 7974ff2 commit 1ec59e8

15 files changed

+747
-646
lines changed

CHANGELOG.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010

1111
- Implementation guide for implementing OGC API - Processes in openEO
1212
- Unit Tests (see folder `tests`, moved specification tests and CI tools to `dev`)
13-
- `export_collection`
14-
- `export_workspace`
15-
- `run_ogcapi`
16-
- `run_ogcapi_externally`
17-
- `stac_modify`
13+
- `date_difference`: Allow `week` as a unit [#506](https://github.com/Open-EO/openeo-processes/issues/506)
14+
- `export_collection`: New process
15+
- `export_workspace`: New process
16+
- `run_ogcapi`: New process
17+
- `run_ogcapi_externally`: New process
18+
- `stac_modify`: New process
19+
- `text_find`: New process
1820

1921
### Changed
2022

23+
- Processes that have been marked as stable: `apply_polygon`, `date_between`, `date_shift`, `filter_labels`, `inspect`
2124
- Clarified for various mathematical functions the defined input and output ranges.
2225
Mention that `NaN` is returned outside of the defined input range where possible.
2326
- Clarified for several comparison processes how `NaN` values have to be handled.
@@ -33,8 +36,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3336

3437
- Clarified for various mathematical functions the defined input and output ranges. Mention that `NaN` is returned outside of the defined input range where possible.
3538
- 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
3640
- `apply_polygon`: Replaced outdated usage of `raster-cube` subtype with `datacube` and dimensions. [#524](https://github.com/Open-EO/openeo-processes/issues/524)
3741
- `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)
3843
- `aggregate_temporal` and `aggregate_temporal_period`: Clarified that the process throws a `DimensionNotAvailable` exception when no temporal dimension exists.
3944
- `aggregate_temporal_period`: Removed unused exception `DistinctDimensionLabelsRequired`.
4045
- `aggregate_temporal_period`: Clarified that the definition of weeks follows ISO 8601.
@@ -46,6 +51,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4651
- `eq` and `neq`: Explicitly set the minimum value for the `delta` parameter.
4752
- `filter_bbox`, `load_collection`, `load_stac`: Clarified that the bounding box is reprojected to the CRS of the spatial data cube dimensions if required.
4853
- `filter_spatial`: Clarified that masking is applied using the given geometries. [#469](https://github.com/Open-EO/openeo-processes/issues/469)
54+
- `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)
4955
- `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)
5056
- `mask`: Add missing exception `IncompatibleDataCubes` [#538](https://github.com/Open-EO/openeo-processes/issues/538)
5157
- `mod`: Clarified behavior for y = 0

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.

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",

proposals/apply_polygon.json renamed to apply_polygon.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"categories": [
66
"cubes"
77
],
8-
"experimental": true,
98
"parameters": [
109
{
1110
"name": "data",
Lines changed: 111 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,111 @@
1-
{
2-
"id": "date_between",
3-
"summary": "Between comparison for dates and times",
4-
"description": "By default, this process checks whether `x` is later than or equal to `min` and before or equal to `max`.\n\nIf `exclude_max` is set to `true` the upper bound is excluded so that the process checks whether `x` is later than or equal to `min` and before `max`.\n\nLower and upper bounds are not allowed to be swapped. So `min` MUST be before or equal to `max` or otherwise the process always returns `false`.",
5-
"categories": [
6-
"comparison",
7-
"date & time"
8-
],
9-
"experimental": true,
10-
"parameters": [
11-
{
12-
"name": "x",
13-
"description": "The value to check.",
14-
"schema": [
15-
{
16-
"type": "string",
17-
"format": "date-time",
18-
"subtype": "date-time",
19-
"description": "Date and time with a time zone."
20-
},
21-
{
22-
"type": "string",
23-
"format": "date",
24-
"subtype": "date",
25-
"description": "Date only, formatted as `YYYY-MM-DD`. The time zone is UTC. Missing time components are all 0."
26-
},
27-
{
28-
"type": "string",
29-
"subtype": "time",
30-
"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
31-
"description": "Time only, formatted as HH:MM:SS. The time zone is UTC."
32-
}
33-
]
34-
},
35-
{
36-
"name": "min",
37-
"description": "Lower boundary (inclusive) to check against.",
38-
"schema": [
39-
{
40-
"type": "string",
41-
"format": "date-time",
42-
"subtype": "date-time",
43-
"description": "Date and time with a time zone."
44-
},
45-
{
46-
"type": "string",
47-
"format": "date",
48-
"subtype": "date",
49-
"description": "Date only, formatted as `YYYY-MM-DD`. The time zone is UTC. Missing time components are all 0."
50-
},
51-
{
52-
"type": "string",
53-
"subtype": "time",
54-
"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
55-
"description": "Time only, formatted as HH:MM:SS. The time zone is UTC."
56-
}
57-
]
58-
},
59-
{
60-
"name": "max",
61-
"description": "Upper boundary (inclusive) to check against.",
62-
"schema": [
63-
{
64-
"type": "string",
65-
"format": "date-time",
66-
"subtype": "date-time",
67-
"description": "Date and time with a time zone."
68-
},
69-
{
70-
"type": "string",
71-
"format": "date",
72-
"subtype": "date",
73-
"description": "Date only, formatted as `YYYY-MM-DD`. The time zone is UTC. Missing time components are all 0."
74-
},
75-
{
76-
"type": "string",
77-
"subtype": "time",
78-
"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
79-
"description": "Time only, formatted as HH:MM:SS. The time zone is UTC."
80-
}
81-
]
82-
},
83-
{
84-
"name": "exclude_max",
85-
"description": "Exclude the upper boundary `max` if set to `true`. Defaults to `false`.",
86-
"schema": {
87-
"type": "boolean"
88-
},
89-
"default": false,
90-
"optional": true
91-
}
92-
],
93-
"returns": {
94-
"description": "`true` if `x` is between the specified bounds, otherwise `false`.",
95-
"schema": {
96-
"type": [
97-
"boolean",
98-
"null"
99-
]
100-
}
101-
},
102-
"examples": [
103-
{
104-
"arguments": {
105-
"x": "2020-01-01",
106-
"min": "2021-01-01",
107-
"max": "2022-01-01"
108-
},
109-
"returns": false
110-
}
111-
]
112-
}
1+
{
2+
"id": "date_between",
3+
"summary": "Between comparison for dates and times",
4+
"description": "By default, this process checks whether `x` is later than or equal to `min` and before or equal to `max`.\n\nIf `exclude_max` is set to `true` the upper bound is excluded so that the process checks whether `x` is later than or equal to `min` and before `max`.\n\nLower and upper bounds are not allowed to be swapped. So `min` MUST be before or equal to `max` or otherwise the process always returns `false`.",
5+
"categories": [
6+
"comparison",
7+
"date & time"
8+
],
9+
"parameters": [
10+
{
11+
"name": "x",
12+
"description": "The value to check.",
13+
"schema": [
14+
{
15+
"type": "string",
16+
"format": "date-time",
17+
"subtype": "date-time",
18+
"description": "Date and time with a time zone."
19+
},
20+
{
21+
"type": "string",
22+
"format": "date",
23+
"subtype": "date",
24+
"description": "Date only, formatted as `YYYY-MM-DD`. The time zone is UTC. Missing time components are all 0."
25+
},
26+
{
27+
"type": "string",
28+
"subtype": "time",
29+
"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
30+
"description": "Time only, formatted as HH:MM:SS. The time zone is UTC."
31+
}
32+
]
33+
},
34+
{
35+
"name": "min",
36+
"description": "Lower boundary (inclusive) to check against.",
37+
"schema": [
38+
{
39+
"type": "string",
40+
"format": "date-time",
41+
"subtype": "date-time",
42+
"description": "Date and time with a time zone."
43+
},
44+
{
45+
"type": "string",
46+
"format": "date",
47+
"subtype": "date",
48+
"description": "Date only, formatted as `YYYY-MM-DD`. The time zone is UTC. Missing time components are all 0."
49+
},
50+
{
51+
"type": "string",
52+
"subtype": "time",
53+
"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
54+
"description": "Time only, formatted as HH:MM:SS. The time zone is UTC."
55+
}
56+
]
57+
},
58+
{
59+
"name": "max",
60+
"description": "Upper boundary (inclusive) to check against.",
61+
"schema": [
62+
{
63+
"type": "string",
64+
"format": "date-time",
65+
"subtype": "date-time",
66+
"description": "Date and time with a time zone."
67+
},
68+
{
69+
"type": "string",
70+
"format": "date",
71+
"subtype": "date",
72+
"description": "Date only, formatted as `YYYY-MM-DD`. The time zone is UTC. Missing time components are all 0."
73+
},
74+
{
75+
"type": "string",
76+
"subtype": "time",
77+
"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
78+
"description": "Time only, formatted as HH:MM:SS. The time zone is UTC."
79+
}
80+
]
81+
},
82+
{
83+
"name": "exclude_max",
84+
"description": "Exclude the upper boundary `max` if set to `true`. Defaults to `false`.",
85+
"schema": {
86+
"type": "boolean"
87+
},
88+
"default": false,
89+
"optional": true
90+
}
91+
],
92+
"returns": {
93+
"description": "`true` if `x` is between the specified bounds, otherwise `false`.",
94+
"schema": {
95+
"type": [
96+
"boolean",
97+
"null"
98+
]
99+
}
100+
},
101+
"examples": [
102+
{
103+
"arguments": {
104+
"x": "2020-01-01",
105+
"min": "2021-01-01",
106+
"max": "2022-01-01"
107+
},
108+
"returns": false
109+
}
110+
]
111+
}

0 commit comments

Comments
 (0)