From 5f40d85eee34924145e93e1b85bd6c9a9f44c88c Mon Sep 17 00:00:00 2001 From: dsamaey Date: Thu, 26 Mar 2026 12:08:30 +0100 Subject: [PATCH 01/12] chore: add aspect and slope definitions --- proposals/aspect.json | 27 +++++++++++++++++++++++++++ proposals/slope.json | 27 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 proposals/aspect.json create mode 100644 proposals/slope.json diff --git a/proposals/aspect.json b/proposals/aspect.json new file mode 100644 index 00000000..07a32e00 --- /dev/null +++ b/proposals/aspect.json @@ -0,0 +1,27 @@ +{ + "id": "aspect", + "summary": "The aspect of a terrain surface", + "description": "Compute the aspect (in radians, from due North) of elevation data.", + "categories": [ + "cubes", + "math" + ], + "experimental": true, + "parameters": [ + { + "name": "parameters", + "description": "A data cube with n bands containing elevation data", + "schema": { + "type": "object", + "subtype": "datacube" + } + } + ], + "returns": { + "description": "A data cube with n bands named after the n bands in the input datacube, suffixed with '_aspect'. Each band contains the computed aspect values (in radians, from due North). In case the surface is flat, the NaN value is used (since there is no direction of the gradient).", + "schema": { + "type": "object", + "subtype": "datacube" + } + } +} diff --git a/proposals/slope.json b/proposals/slope.json new file mode 100644 index 00000000..09a0e653 --- /dev/null +++ b/proposals/slope.json @@ -0,0 +1,27 @@ +{ + "id": "slope", + "summary": "The slope of a terrain surface", + "description": "Compute the slope (in radians, relative to the horizontal plane) of elevation data.", + "categories": [ + "cubes", + "math" + ], + "experimental": true, + "parameters": [ + { + "name": "parameters", + "description": "A data cube with n bands containing elevation data", + "schema": { + "type": "object", + "subtype": "datacube" + } + } + ], + "returns": { + "description": "A data cube with n bands named after the n bands in the input datacube, suffixed with '_slope'. Each band contains the computed slope values (in radians, relative to the horizontal plane).", + "schema": { + "type": "object", + "subtype": "datacube" + } + } +} From 9c0c64e6acf5c11f7ebac5ca2d2a57cb183dbe9e Mon Sep 17 00:00:00 2001 From: dsamaey Date: Thu, 26 Mar 2026 12:20:36 +0100 Subject: [PATCH 02/12] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fb2e4b1..89a9d906 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- `slope`: New process [#556](https://github.com/Open-EO/openeo-processes/issues/556) +- `aspect`: New process [#557](https://github.com/Open-EO/openeo-processes/issues/557) + ### Changed ### Fixed From a173b3520a1b312860fc3a90cec99adc4fbbc791 Mon Sep 17 00:00:00 2001 From: dsamaey Date: Thu, 26 Mar 2026 12:22:48 +0100 Subject: [PATCH 03/12] fix: add placeholder tests for aspect and slope --- tests/aspect.json5 | 6 ++++++ tests/slope.json5 | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 tests/aspect.json5 create mode 100644 tests/slope.json5 diff --git a/tests/aspect.json5 b/tests/aspect.json5 new file mode 100644 index 00000000..60c8ab15 --- /dev/null +++ b/tests/aspect.json5 @@ -0,0 +1,6 @@ +{ + "id": "aspect", + "level": "L2", + "experimental": true, + "tests": [] +} diff --git a/tests/slope.json5 b/tests/slope.json5 new file mode 100644 index 00000000..30d4eace --- /dev/null +++ b/tests/slope.json5 @@ -0,0 +1,6 @@ +{ + "id": "slope", + "level": "L2", + "experimental": true, + "tests": [] +} From ea9a68ea1491ae0e11047b8738a312847e1cd21c Mon Sep 17 00:00:00 2001 From: dsamaey Date: Thu, 26 Mar 2026 13:08:36 +0100 Subject: [PATCH 04/12] Update .words --- dev/.words | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev/.words b/dev/.words index 38f6c0f8..4022607c 100644 --- a/dev/.words +++ b/dev/.words @@ -52,3 +52,5 @@ favor Undeploy queryable Queryables +_aspect +_slope From 63b9610098c6b964a7a5531e98d743a4424b8bab Mon Sep 17 00:00:00 2001 From: dsamaey Date: Thu, 26 Mar 2026 13:12:05 +0100 Subject: [PATCH 05/12] Update aspect.json --- proposals/aspect.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/aspect.json b/proposals/aspect.json index 07a32e00..be7ff6ab 100644 --- a/proposals/aspect.json +++ b/proposals/aspect.json @@ -18,7 +18,7 @@ } ], "returns": { - "description": "A data cube with n bands named after the n bands in the input datacube, suffixed with '_aspect'. Each band contains the computed aspect values (in radians, from due North). In case the surface is flat, the NaN value is used (since there is no direction of the gradient).", + "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with '_aspect'. Each band contains the computed aspect values (in radians, from due North). In case the surface is flat, the NaN value is used (since there is no direction of the gradient).", "schema": { "type": "object", "subtype": "datacube" From fa41dc505b2fbb143af04614d537665a4a82c986 Mon Sep 17 00:00:00 2001 From: dsamaey Date: Thu, 26 Mar 2026 13:12:23 +0100 Subject: [PATCH 06/12] Update slope.json --- proposals/slope.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/slope.json b/proposals/slope.json index 09a0e653..835a79a1 100644 --- a/proposals/slope.json +++ b/proposals/slope.json @@ -18,7 +18,7 @@ } ], "returns": { - "description": "A data cube with n bands named after the n bands in the input datacube, suffixed with '_slope'. Each band contains the computed slope values (in radians, relative to the horizontal plane).", + "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with '_slope'. Each band contains the computed slope values (in radians, relative to the horizontal plane).", "schema": { "type": "object", "subtype": "datacube" From a1c3f6c2937d8ce044441330dd0d6dd1123c91a7 Mon Sep 17 00:00:00 2001 From: dsamaey Date: Mon, 6 Jul 2026 10:33:06 +0200 Subject: [PATCH 07/12] removed _aspect and _slope from .words --- dev/.words | 2 -- 1 file changed, 2 deletions(-) diff --git a/dev/.words b/dev/.words index 4022607c..38f6c0f8 100644 --- a/dev/.words +++ b/dev/.words @@ -52,5 +52,3 @@ favor Undeploy queryable Queryables -_aspect -_slope From 353b930f39ca84494eeb72b8ee1deb70081aac53 Mon Sep 17 00:00:00 2001 From: dsamaey Date: Mon, 6 Jul 2026 10:38:38 +0200 Subject: [PATCH 08/12] Update aspect.json --- proposals/aspect.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/aspect.json b/proposals/aspect.json index be7ff6ab..6c89088b 100644 --- a/proposals/aspect.json +++ b/proposals/aspect.json @@ -18,7 +18,7 @@ } ], "returns": { - "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with '_aspect'. Each band contains the computed aspect values (in radians, from due North). In case the surface is flat, the NaN value is used (since there is no direction of the gradient).", + "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with ``'aspect'``. Each band contains the computed aspect values (in radians, from due North). In case the surface is flat, the NaN value is used (since there is no direction of the gradient).", "schema": { "type": "object", "subtype": "datacube" From c435448e62ec3e8236929ea7f14fe88960e18d98 Mon Sep 17 00:00:00 2001 From: dsamaey Date: Mon, 6 Jul 2026 10:39:07 +0200 Subject: [PATCH 09/12] Update slope.json --- proposals/slope.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/slope.json b/proposals/slope.json index 835a79a1..76865078 100644 --- a/proposals/slope.json +++ b/proposals/slope.json @@ -18,7 +18,7 @@ } ], "returns": { - "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with '_slope'. Each band contains the computed slope values (in radians, relative to the horizontal plane).", + "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with ``'_slope'``. Each band contains the computed slope values (in radians, relative to the horizontal plane).", "schema": { "type": "object", "subtype": "datacube" From 61c8ffe911d6106f6513a36c31d8b459d69aa274 Mon Sep 17 00:00:00 2001 From: dsamaey Date: Mon, 6 Jul 2026 10:40:14 +0200 Subject: [PATCH 10/12] Update aspect.json5 --- tests/aspect.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/aspect.json5 b/tests/aspect.json5 index 60c8ab15..2ac33816 100644 --- a/tests/aspect.json5 +++ b/tests/aspect.json5 @@ -1,6 +1,6 @@ { "id": "aspect", - "level": "L2", + "level": "L3", "experimental": true, "tests": [] } From b08dbde8dbaacf02ad98e2836511fae34e6ef5b7 Mon Sep 17 00:00:00 2001 From: dsamaey Date: Mon, 6 Jul 2026 10:40:41 +0200 Subject: [PATCH 11/12] Update slope.json5 --- tests/slope.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/slope.json5 b/tests/slope.json5 index 30d4eace..2c4f40c1 100644 --- a/tests/slope.json5 +++ b/tests/slope.json5 @@ -1,6 +1,6 @@ { "id": "slope", - "level": "L2", + "level": "L3", "experimental": true, "tests": [] } From d196ef8abd9a3b718ad3399b3b83b8ee8afa6ba6 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Mon, 6 Jul 2026 15:42:26 +0200 Subject: [PATCH 12/12] Apply suggestions from code review Co-authored-by: Matthias Mohr --- proposals/aspect.json | 2 +- proposals/slope.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proposals/aspect.json b/proposals/aspect.json index 6c89088b..4c52e186 100644 --- a/proposals/aspect.json +++ b/proposals/aspect.json @@ -18,7 +18,7 @@ } ], "returns": { - "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with ``'aspect'``. Each band contains the computed aspect values (in radians, from due North). In case the surface is flat, the NaN value is used (since there is no direction of the gradient).", + "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with `aspect`. Each band contains the computed aspect values (in radians, from due North). In case the surface is flat, the NaN value is used (since there is no direction of the gradient).", "schema": { "type": "object", "subtype": "datacube" diff --git a/proposals/slope.json b/proposals/slope.json index 76865078..830cc168 100644 --- a/proposals/slope.json +++ b/proposals/slope.json @@ -18,7 +18,7 @@ } ], "returns": { - "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with ``'_slope'``. Each band contains the computed slope values (in radians, relative to the horizontal plane).", + "description": "A data cube with n bands named after the n bands in the input data cube, suffixed with `_slope`. Each band contains the computed slope values (in radians, relative to the horizontal plane).", "schema": { "type": "object", "subtype": "datacube"