From ca6a283dae50f11e79d3b9e4ce9e8698377e1429 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Mon, 20 Jan 2020 21:46:41 +0100 Subject: [PATCH 01/10] Make aggregate_polygon more general. #62 --- CHANGELOG.md | 5 ++--- aggregate_polygon.json => aggregate_spatial.json | 14 +++++++------- ...on_binary.json => aggregate_spatial_binary.json | 14 +++++++------- aggregate_temporal.json | 2 +- run_udf.json | 2 +- run_udf_externally.json | 2 +- 6 files changed, 19 insertions(+), 20 deletions(-) rename aggregate_polygon.json => aggregate_spatial.json (69%) rename aggregate_polygon_binary.json => aggregate_spatial_binary.json (73%) diff --git a/CHANGELOG.md b/CHANGELOG.md index da68d876..4a85c0a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Processes: - `add` - - `aggregate_polygon_binary` + - `aggregate_spatial` + - `aggregate_spatial_binary` - `all` - `any` - `array_apply` @@ -35,7 +36,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Comparison processes `eq`, `gt`, `gte`, `lt`, `lte`, `neq` and `between` accept all data types as input for the operands. - `add_dimension`: Parameter `value` renamed to `label`. - `apply_dimension`: Replaced with a completely new definition. [#73](https://github.com/Open-EO/openeo-processes/issues/73) -- `aggregate_polygon`: The data cube implicitly gets restricted to the bounds of the polygons as if `filter_polygon` would have been used beforehand. [#101](https://github.com/Open-EO/openeo-processes/issues/101) - `aggregate_temporal`: Parameter `labels` is optional. [#19](https://github.com/Open-EO/openeo-processes/issues/19) - `apply_kernel`: Only supported 2D kernels on the horizontal spatial dimensions. [#69](https://github.com/Open-EO/openeo-processes/issues/69) - `clip`: Works on a single value instead on arrays (replaced parameter `data` with `x`). [#75](https://github.com/Open-EO/openeo-processes/issues/75) @@ -66,7 +66,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The following processes don't support `ignore_nodata` any longer: `and`, `divide`, `multiply`, `or`, `subtract`, `xor`. [#85](https://github.com/Open-EO/openeo-processes/issues/85) - The following processes don't support `binary` any longer: `aggregate_temporal`, `merge_cubes`, `resample_cube_temporal`. [#94](https://github.com/Open-EO/openeo-processes/issues/94) - Support for vector data cubes, except for the processes `aggregate_poylgon` and `save_result`. [#68](https://github.com/Open-EO/openeo-processes/issues/68) -- `aggregate_polygon`: Doesn't allow returning a GeoJSON any longer. - `filter_temporal` and `load_collection`: Temporal extents don't support time-only intervals any longer. [#88](https://github.com/Open-EO/openeo-processes/issues/88) - `mask`: The mask parameter doesn't accept vectors (polygons) any longer. Use process `mask_polygon` instead. [#110](https://github.com/Open-EO/openeo-processes/issues/110) - Processes: diff --git a/aggregate_polygon.json b/aggregate_spatial.json similarity index 69% rename from aggregate_polygon.json rename to aggregate_spatial.json index 72b8ed05..c5dd03a1 100644 --- a/aggregate_polygon.json +++ b/aggregate_spatial.json @@ -1,7 +1,7 @@ { - "id": "aggregate_polygon", - "summary": "Zonal statistics for polygons", - "description": "Aggregates zonal statistics for one or multiple polygons over the spatial dimensions. This process passes a list of values to the reducer. In contrast, ``aggregate_polygon_binary()`` passes two values, which may be better suited for UDFs.\n\nThe process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", + "id": "aggregate_spatial", + "summary": "Zonal statistics for geometries", + "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes a list of values to the reducer. In contrast, aggregate_spatial_binary() passes two values, which may be better suited for UDFs.\n\n- For polygons, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For points and lines (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the TooManyDimensions error.\n\nThe number of total and valid pixels is returned together with the calculated values.", "categories": [ "cubes", "aggregate & resample" @@ -9,7 +9,7 @@ "parameters": [ { "name": "data", - "description": "A data cube.", + "description": "A raster data cube.", "schema": { "type": "object", "subtype": "raster-cube" @@ -17,8 +17,8 @@ "required": true }, { - "name": "polygons", - "description": "One or more polygons to calculate zonal statistics for. Either specified as GeoJSON or vector data cube.\n\nFor GeoJSON this can be one of the following GeoJSON types:\n\n* A `Polygon` geometry,\n* a `GeometryCollection` containing Polygons,\n* a `Feature` with a `Polygon` geometry or\n* a `FeatureCollection` containing `Feature`s with a `Polygon` geometry.", + "name": "geometries", + "description": "Geometries on which the aggregation will be based. Either specified as GeoJSON or vector data cube.", "schema": [ { "type": "object", @@ -71,7 +71,7 @@ }, "exceptions": { "TooManyDimensions": { - "message": "The number of dimensions must be reduced to three for 'aggregate_polygon'." + "message": "The number of dimensions must be reduced to three for 'aggregate_spatial'." } }, "links": [ diff --git a/aggregate_polygon_binary.json b/aggregate_spatial_binary.json similarity index 73% rename from aggregate_polygon_binary.json rename to aggregate_spatial_binary.json index 20430b4f..7c2b6411 100644 --- a/aggregate_polygon_binary.json +++ b/aggregate_spatial_binary.json @@ -1,7 +1,7 @@ { - "id": "aggregate_polygon_binary", - "summary": "Zonal statistics for polygons using binary aggregation", - "description": "Aggregates zonal statistics for one or multiple polygons over the spatial dimensions. This process passes two values to the reducer. In contrast, ``aggregate_polygon()`` passes a list of values.\n\nThe process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n\nThe data cube must have been reduced to only contain two raster dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", + "id": "aggregate_spatial_binary", + "summary": "Zonal statistics for geometries by binary aggregation", + "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes two values to the reducer. In contrast, ``aggregate_spatial()`` passes a list of values.\n\n- For polygons, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For points and lines (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two raster dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", "categories": [ "cubes", "aggregate & resample" @@ -10,7 +10,7 @@ "parameters": [ { "name": "data", - "description": "A data cube.", + "description": "A raster data cube.", "schema": { "type": "object", "subtype": "raster-cube" @@ -18,8 +18,8 @@ "required": true }, { - "name": "polygons", - "description": "One or more polygons to calculate zonal statistics for. Either specified as GeoJSON or vector data cube.\n\nFor GeoJSON this can be one of the following GeoJSON types:\n\n* A `Polygon` geometry,\n* a `GeometryCollection` containing Polygons,\n* a `Feature` with a `Polygon` geometry or\n* a `FeatureCollection` containing `Feature`s with a `Polygon` geometry.", + "name": "geometries", + "description": "Geometries on which the aggregation will be based. Either specified as GeoJSON or vector data cube.", "schema": [ { "type": "object", @@ -77,7 +77,7 @@ }, "exceptions": { "TooManyDimensions": { - "message": "The number of dimensions must be reduced to three for 'aggregate_polygon'." + "message": "The number of dimensions must be reduced to three for 'aggregate_spatial'." } }, "links": [ diff --git a/aggregate_temporal.json b/aggregate_temporal.json index de8c17a9..f4de9c56 100644 --- a/aggregate_temporal.json +++ b/aggregate_temporal.json @@ -221,7 +221,7 @@ ], "exceptions": { "TooManyDimensions": { - "message": "The number of dimensions must be reduced to three for 'aggregate_polygon'." + "message": "The number of dimensions must be reduced to three for 'aggregate_spatial'." }, "DimensionNotAvailable": { "message": "A dimension with the specified name does not exist." diff --git a/run_udf.json b/run_udf.json index 0e5edd6f..9f1746ca 100644 --- a/run_udf.json +++ b/run_udf.json @@ -1,7 +1,7 @@ { "id": "run_udf", "summary": "Run an UDF", - "description": "Runs an UDF in one of the supported runtime environments.\n\nThe process can either:\n\n1. load and run a locally stored UDF from a file in the workspace of the authenticated user. The path to the UDF file must be relative to the root directory of the user's workspace.\n2. fetch and run a remotely stored and published UDF by absolute URI, for example from [openEO Hub](https://hub.openeo.org)).\n3. run the source code specified inline as string.\n\nThe loaded UDF can be executed in several processes such as ``aggregate_polygon()``, ``apply()``, ``apply_dimension()`` and ``reduce_dimension()``. In this case an array is passed instead of a raster data cube. The user must ensure that the data is properly passed as an array so that the UDF can make sense of it.", + "description": "Runs an UDF in one of the supported runtime environments.\n\nThe process can either:\n\n1. load and run a locally stored UDF from a file in the workspace of the authenticated user. The path to the UDF file must be relative to the root directory of the user's workspace.\n2. fetch and run a remotely stored and published UDF by absolute URI, for example from [openEO Hub](https://hub.openeo.org)).\n3. run the source code specified inline as string.\n\nThe loaded UDF can be executed in several processes such as ``aggregate_spatial()``, ``apply()``, ``apply_dimension()`` and ``reduce_dimension()``. In this case an array is passed instead of a raster data cube. The user must ensure that the data is properly passed as an array so that the UDF can make sense of it.", "categories": [ "import", "udf" diff --git a/run_udf_externally.json b/run_udf_externally.json index 068e51f5..7e137e2f 100644 --- a/run_udf_externally.json +++ b/run_udf_externally.json @@ -1,7 +1,7 @@ { "id": "run_udf_externally", "summary": "Run an externally hosted UDF container", - "description": "Runs a compatible UDF container that is either externally hosted by a service provider or running on a local machine of the user. The UDF container must follow the [openEO UDF specification](https://open-eo.github.io/openeo-udf/).\n\nThe referenced UDF service can be executed in several processes such as ``aggregate_polygon()``, ``apply()``, ``apply_dimension()`` and ``reduce_dimension()``. In this case an array is passed instead of a raster data cube. The user must ensure that the data is properly passed as an array so that the UDF can make sense of it.", + "description": "Runs a compatible UDF container that is either externally hosted by a service provider or running on a local machine of the user. The UDF container must follow the [openEO UDF specification](https://open-eo.github.io/openeo-udf/).\n\nThe referenced UDF service can be executed in several processes such as ``aggregate_spatial()``, ``apply()``, ``apply_dimension()`` and ``reduce_dimension()``. In this case an array is passed instead of a raster data cube. The user must ensure that the data is properly passed as an array so that the UDF can make sense of it.", "categories": [ "import", "udf" From 2c58a5f499852a05dd0b8ec9f79a95b16504be44 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Mon, 20 Jan 2020 22:05:12 +0100 Subject: [PATCH 02/10] Make filter_polygon more general and other minor fixes. #37 --- CHANGELOG.md | 3 +++ aggregate_spatial.json | 20 +++++++------------- aggregate_spatial_binary.json | 20 +++++++------------- filter_polygon.json => filter_spatial.json | 12 ++++++------ 4 files changed, 23 insertions(+), 32 deletions(-) rename filter_polygon.json => filter_spatial.json (51%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a85c0a8..a691e0d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `array_find` - `drop_dimension` - `filter_labels` + - `filter_spatial` - `labels` - `load_uploaded_files` - `mask_polygon` @@ -69,8 +70,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `filter_temporal` and `load_collection`: Temporal extents don't support time-only intervals any longer. [#88](https://github.com/Open-EO/openeo-processes/issues/88) - `mask`: The mask parameter doesn't accept vectors (polygons) any longer. Use process `mask_polygon` instead. [#110](https://github.com/Open-EO/openeo-processes/issues/110) - Processes: + - `aggregate_polygon`. Use `aggregate_spatial` or `aggregate_spatial_binary` instead. [#62](https://github.com/Open-EO/openeo-processes/issues/62) - `find_collections`: Use `load_collection` and manual data discovery through the clients. [API#52](https://github.com/Open-EO/openeo-api/issues/52) - `filter`: Use `filter_labels` instead. + - `filter_polygon`. Use `filter_spatial` instead. [#37](https://github.com/Open-EO/openeo-processes/issues/37) - `output`: Use `debug` instead. - `property` [#84](https://github.com/Open-EO/openeo-processes/issues/84) - `reduce`: Use `reduce_dimension` or `drop_dimension` instead. diff --git a/aggregate_spatial.json b/aggregate_spatial.json index c5dd03a1..b223673c 100644 --- a/aggregate_spatial.json +++ b/aggregate_spatial.json @@ -1,7 +1,7 @@ { "id": "aggregate_spatial", "summary": "Zonal statistics for geometries", - "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes a list of values to the reducer. In contrast, aggregate_spatial_binary() passes two values, which may be better suited for UDFs.\n\n- For polygons, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For points and lines (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the TooManyDimensions error.\n\nThe number of total and valid pixels is returned together with the calculated values.", + "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes a list of values to the reducer. In contrast, aggregate_spatial_binary() passes two values, which may be better suited for UDFs.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the TooManyDimensions error.\n\nThe number of total and valid pixels is returned together with the calculated values.", "categories": [ "cubes", "aggregate & resample" @@ -18,17 +18,11 @@ }, { "name": "geometries", - "description": "Geometries on which the aggregation will be based. Either specified as GeoJSON or vector data cube.", - "schema": [ - { - "type": "object", - "subtype": "geojson" - }, - { - "type": "object", - "subtype": "vector-cube" - } - ], + "description": "Geometries as GeoJSON on which the aggregation will be based.", + "schema": { + "type": "object", + "subtype": "geojson" + }, "required": true }, { @@ -63,7 +57,7 @@ } ], "returns": { - "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the polygons as if ``filter_polygon()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `name`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) in each geometry. These values are stored as attributes of the result value with the attribute names `total_count` and `valid_count`.", + "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `name`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) in each geometry. These values are stored as attributes of the result value with the attribute names `total_count` and `valid_count`.", "schema": { "type": "object", "subtype": "vector-cube" diff --git a/aggregate_spatial_binary.json b/aggregate_spatial_binary.json index 7c2b6411..61c8dbb4 100644 --- a/aggregate_spatial_binary.json +++ b/aggregate_spatial_binary.json @@ -1,7 +1,7 @@ { "id": "aggregate_spatial_binary", "summary": "Zonal statistics for geometries by binary aggregation", - "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes two values to the reducer. In contrast, ``aggregate_spatial()`` passes a list of values.\n\n- For polygons, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For points and lines (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two raster dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", + "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes two values to the reducer. In contrast, ``aggregate_spatial()`` passes a list of values.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two raster dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", "categories": [ "cubes", "aggregate & resample" @@ -19,17 +19,11 @@ }, { "name": "geometries", - "description": "Geometries on which the aggregation will be based. Either specified as GeoJSON or vector data cube.", - "schema": [ - { - "type": "object", - "subtype": "geojson" - }, - { - "type": "object", - "subtype": "vector-cube" - } - ], + "description": "Geometries as GeoJSON on which the aggregation will be based.", + "schema": { + "type": "object", + "subtype": "geojson" + }, "required": true }, { @@ -69,7 +63,7 @@ } ], "returns": { - "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the polygons as if ``filter_polygon()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `name`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) in each geometry. These values are stored as attributes of the result value with the attribute names `total_count` and `valid_count`.", + "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `name`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) in each geometry. These values are stored as attributes of the result value with the attribute names `total_count` and `valid_count`.", "schema": { "type": "object", "subtype": "vector-cube" diff --git a/filter_polygon.json b/filter_spatial.json similarity index 51% rename from filter_polygon.json rename to filter_spatial.json index f1f56d03..25db60b0 100644 --- a/filter_polygon.json +++ b/filter_spatial.json @@ -1,7 +1,7 @@ { - "id": "filter_polygon", - "summary": "Spatial filter using polygons", - "description": "Limits the data cube over the spatial dimensions to the specified polygons.\n\nThe filter retains a pixel in the data cube if the point at the pixel center intersects with at least one of the polygons (as defined in the Simple Features standard by the OGC).", + "id": "filter_spatial", + "summary": "Spatial filter using geometries", + "description": "Limits the data cube over the spatial dimensions to the specified geometries.\n\n- For **polygons**, the filter retains a pixel in the data cube if the point at the pixel center intersects with at least one of the polygons (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the filter retains all the pixel centers closest to any of the geometries.", "categories": [ "filter" ], @@ -16,8 +16,8 @@ "required": true }, { - "name": "polygons", - "description": "One or more polygons used for filtering, either specified as GeoJSON or vector data cube.\n\nFor GeoJSON this can be one of the following GeoJSON types:\n\n* A `Polygon` geometry,\n* a `GeometryCollection` containing Polygons,\n* a `Feature` with a `Polygon` geometry or\n* a `FeatureCollection` containing `Feature`s with a `Polygon` geometry.", + "name": "geometries", + "description": "One or more geometries used for filtering, specified as GeoJSON.", "schema": { "type": "object", "subtype": "geojson" @@ -26,7 +26,7 @@ } ], "returns": { - "description": "A data cube restricted to the specified polygons. Therefore, the cardinality is potentially lower, but the resolution and the number of dimensions are the same as for the original data cube.", + "description": "A data cube restricted to the specified geometries. Therefore, the cardinality is potentially lower, but the resolution and the number of dimensions are the same as for the original data cube.", "schema": { "type": "object", "subtype": "raster-cube" From 0c2eba5673bb31e460d23569cb51b2a63586196a Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Tue, 21 Jan 2020 14:24:26 +0100 Subject: [PATCH 03/10] Made name parameter more clear, improved description regarding the resulting data cube. --- aggregate_spatial.json | 4 ++-- aggregate_spatial_binary.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aggregate_spatial.json b/aggregate_spatial.json index b223673c..e86c8001 100644 --- a/aggregate_spatial.json +++ b/aggregate_spatial.json @@ -48,7 +48,7 @@ "required": true }, { - "name": "name", + "name": "target_dimension", "description": "The new dimension name to be used for storing the results. Defaults to `result`.", "schema": { "type": "string" @@ -57,7 +57,7 @@ } ], "returns": { - "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `name`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) in each geometry. These values are stored as attributes of the result value with the attribute names `total_count` and `valid_count`.", + "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `target_dimension`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) for each geometry. These values are stored as new dimension with a dimension name derived from `target_dimension` by adding the suffix `_meta`. The new dimension has the dimension labels `total_count` and `valid_count`.", "schema": { "type": "object", "subtype": "vector-cube" diff --git a/aggregate_spatial_binary.json b/aggregate_spatial_binary.json index 61c8dbb4..459c5a16 100644 --- a/aggregate_spatial_binary.json +++ b/aggregate_spatial_binary.json @@ -54,7 +54,7 @@ "required": true }, { - "name": "name", + "name": "target_dimension", "description": "The new dimension name to be used for storing the results. Defaults to `result`.", "schema": { "type": "string" @@ -63,7 +63,7 @@ } ], "returns": { - "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `name`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) in each geometry. These values are stored as attributes of the result value with the attribute names `total_count` and `valid_count`.", + "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `target_dimension`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) for each geometry. These values are stored as new dimension with a dimension name derived from `target_dimension` by adding the suffix `_meta`. The new dimension has the dimension labels `total_count` and `valid_count`.", "schema": { "type": "object", "subtype": "vector-cube" From 9e88c96a56ef85f772c5caefb081061abb5659bb Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Mon, 27 Jan 2020 14:27:28 +0100 Subject: [PATCH 04/10] Specify what happens outside of geometries. --- filter_spatial.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/filter_spatial.json b/filter_spatial.json index 25db60b0..efb5a447 100644 --- a/filter_spatial.json +++ b/filter_spatial.json @@ -1,7 +1,7 @@ { "id": "filter_spatial", "summary": "Spatial filter using geometries", - "description": "Limits the data cube over the spatial dimensions to the specified geometries.\n\n- For **polygons**, the filter retains a pixel in the data cube if the point at the pixel center intersects with at least one of the polygons (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the filter retains all the pixel centers closest to any of the geometries.", + "description": "Limits the data cube over the spatial dimensions to the specified geometries.\n\n- For **polygons**, the filter retains a pixel in the data cube if the point at the pixel center intersects with at least one of the polygons (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the filter retains all the pixel centers closest to any of the geometries.\n\nMore specifically, pixels outside of the bounding box of the given geometry will not be available after filtering. All pixels inside the bounding box that are not retained will be set to `null` (no data).", "categories": [ "filter" ], From c6e9fa0ccb6620650703a41f19ec65769dc054bc Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Mon, 27 Jan 2020 14:29:37 +0100 Subject: [PATCH 05/10] Add "centers" to CI spell check word list --- tests/.words | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/.words b/tests/.words index 8ca37111..fdfc1ce8 100644 --- a/tests/.words +++ b/tests/.words @@ -28,4 +28,5 @@ outputMin outputMax Sentinel-2 Sentinel-2A -Sentinel-2B \ No newline at end of file +Sentinel-2B +centers \ No newline at end of file From ae896ad9d3c69ebf3ecf23752c9b69a1cce013ef Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Mon, 27 Jan 2020 15:40:31 +0100 Subject: [PATCH 06/10] Align to recent API changes --- absolute.json | 3 +-- add.json | 6 ++---- add_dimension.json | 12 +++++------- aggregate_spatial.json | 13 +++++-------- aggregate_spatial_binary.json | 14 +++++--------- aggregate_temporal.json | 16 +++++++--------- all.json | 6 +++--- and.json | 6 ++---- any.json | 6 +++--- apply.json | 7 ++----- apply_dimension.json | 13 +++++-------- apply_kernel.json | 9 ++++----- arccos.json | 3 +-- arcosh.json | 3 +-- arcsin.json | 3 +-- arctan.json | 3 +-- arctan2.json | 6 ++---- array_apply.json | 8 ++------ array_contains.json | 6 ++---- array_element.json | 9 ++++----- array_filter.json | 8 ++------ array_find.json | 6 ++---- arsinh.json | 3 +-- artanh.json | 3 +-- between.json | 12 +++++------- ceil.json | 3 +-- clip.json | 9 +++------ cos.json | 3 +-- cosh.json | 3 +-- count.json | 7 +++---- cummax.json | 6 +++--- cummin.json | 6 +++--- cumproduct.json | 6 +++--- cumsum.json | 6 +++--- debug.json | 12 +++++++----- divide.json | 6 ++---- drop_dimension.json | 6 ++---- eq.json | 12 ++++++------ exp.json | 3 +-- extrema.json | 6 +++--- filter_bands.json | 9 +++++---- filter_bbox.json | 4 +--- filter_labels.json | 10 +++------- filter_spatial.json | 6 ++---- filter_temporal.json | 9 ++++----- first.json | 6 +++--- floor.json | 3 +-- gt.json | 6 ++---- gte.json | 6 ++---- if.json | 9 ++++----- int.json | 3 +-- is_nan.json | 3 +-- is_nodata.json | 3 +-- is_valid.json | 3 +-- labels.json | 6 ++---- last.json | 6 +++--- linear_scale_range.json | 15 +++++++-------- ln.json | 3 +-- load_collection.json | 15 +++++++-------- load_result.json | 3 +-- load_uploaded_files.json | 9 ++++----- log.json | 6 ++---- lt.json | 6 ++---- lte.json | 6 ++---- mask.json | 9 ++++----- mask_polygon.json | 12 ++++++------ max.json | 6 +++--- mean.json | 6 +++--- median.json | 6 +++--- merge_cubes.json | 11 ++++------- min.json | 6 +++--- mod.json | 6 ++---- multiply.json | 6 ++---- ndvi.json | 12 +++++++----- neq.json | 12 ++++++------ normalized_difference.json | 6 ++---- not.json | 3 +-- or.json | 6 ++---- order.json | 9 +++++---- power.json | 6 ++---- product.json | 6 +++--- quantiles.json | 12 +++++++----- rearrange.json | 6 ++---- reduce_dimension.json | 10 +++------- reduce_dimension_binary.json | 11 +++-------- rename_dimension.json | 9 +++------ rename_labels.json | 9 +++------ resample_cube_spatial.json | 9 ++++----- resample_cube_temporal.json | 13 +++++-------- resample_spatial.json | 15 +++++++++------ round.json | 6 +++--- run_process_graph.json | 6 +++--- run_udf.json | 15 +++++++-------- run_udf_externally.json | 9 ++++----- save_result.json | 9 ++++----- sd.json | 6 +++--- sgn.json | 3 +-- sin.json | 3 +-- sinh.json | 3 +-- sort.json | 9 +++++---- sqrt.json | 3 +-- subtract.json | 6 ++---- sum.json | 6 +++--- tan.json | 3 +-- tanh.json | 3 +-- text_begins.json | 9 ++++----- text_contains.json | 9 ++++----- text_ends.json | 9 ++++----- text_merge.json | 6 +++--- trim.json | 3 +-- variance.json | 6 +++--- xor.json | 6 ++---- 112 files changed, 331 insertions(+), 462 deletions(-) diff --git a/absolute.json b/absolute.json index 0e666843..0752de07 100644 --- a/absolute.json +++ b/absolute.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/add.json b/add.json index 1d46f904..66e00fce 100644 --- a/add.json +++ b/add.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/add_dimension.json b/add_dimension.json index 563ebbed..771ca6ff 100644 --- a/add_dimension.json +++ b/add_dimension.json @@ -12,16 +12,14 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "name", "description": "Name for the dimension.", "schema": { "type": "string" - }, - "required": true + } }, { "name": "label", @@ -48,8 +46,7 @@ "format": "time", "subtype": "time" } - ], - "required": true + ] }, { "name": "type", @@ -63,7 +60,8 @@ "other" ] }, - "default": "other" + "default": "other", + "optional": true } ], "returns": { diff --git a/aggregate_spatial.json b/aggregate_spatial.json index e86c8001..f644d9d6 100644 --- a/aggregate_spatial.json +++ b/aggregate_spatial.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "geometries", @@ -22,8 +21,7 @@ "schema": { "type": "object", "subtype": "geojson" - }, - "required": true + } }, { "name": "reducer", @@ -35,7 +33,6 @@ { "name": "data", "description": "An array with elements of any type.", - "required": true, "schema": { "type": "array", "items": { @@ -44,8 +41,7 @@ } } ] - }, - "required": true + } }, { "name": "target_dimension", @@ -53,7 +49,8 @@ "schema": { "type": "string" }, - "default": "result" + "default": "result", + "optional": true } ], "returns": { diff --git a/aggregate_spatial_binary.json b/aggregate_spatial_binary.json index 459c5a16..84d2ab12 100644 --- a/aggregate_spatial_binary.json +++ b/aggregate_spatial_binary.json @@ -14,8 +14,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "geometries", @@ -23,8 +22,7 @@ "schema": { "type": "object", "subtype": "geojson" - }, - "required": true + } }, { "name": "reducer", @@ -36,7 +34,6 @@ { "name": "x", "description": "The first value.", - "required": true, "schema": { "description": "Any data type." } @@ -44,14 +41,12 @@ { "name": "y", "description": "The second value.", - "required": true, "schema": { "description": "Any data type." } } ] - }, - "required": true + } }, { "name": "target_dimension", @@ -59,7 +54,8 @@ "schema": { "type": "string" }, - "default": "result" + "default": "result", + "optional": true } ], "returns": { diff --git a/aggregate_temporal.json b/aggregate_temporal.json index f4de9c56..7417b9b5 100644 --- a/aggregate_temporal.json +++ b/aggregate_temporal.json @@ -14,8 +14,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "intervals", @@ -77,8 +76,7 @@ ] ] ] - }, - "required": true + } }, { "name": "reducer", @@ -90,7 +88,6 @@ { "name": "data", "description": "An array with elements of any type.", - "required": true, "schema": { "type": "array", "items": { @@ -99,8 +96,7 @@ } } ] - }, - "required": true + } }, { "name": "labels", @@ -130,7 +126,8 @@ ] } }, - "default": [] + "default": [], + "optional": true }, { "name": "dimension", @@ -141,7 +138,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/all.json b/all.json index 43fc4235..cbaab1cd 100644 --- a/all.json +++ b/all.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/and.json b/and.json index 38eada1d..07673c06 100644 --- a/and.json +++ b/and.json @@ -14,8 +14,7 @@ "boolean", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "boolean", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/any.json b/any.json index a31bef6c..71d07e1b 100644 --- a/any.json +++ b/any.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/apply.json b/apply.json index 27153575..971fc1fe 100644 --- a/apply.json +++ b/apply.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "process", @@ -25,14 +24,12 @@ { "name": "x", "description": "The value to process.", - "required": true, "schema": { "description": "Any data type." } } ] - }, - "required": true + } } ], "returns": { diff --git a/apply_dimension.json b/apply_dimension.json index b5d2c2e7..88b3623c 100644 --- a/apply_dimension.json +++ b/apply_dimension.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "process", @@ -25,7 +24,6 @@ { "name": "data", "description": "An array with elements of any type.", - "required": true, "schema": { "type": "array", "items": { @@ -34,16 +32,14 @@ } } ] - }, - "required": true + } }, { "name": "dimension", "description": "The name of the source dimension to apply the process on. Fails with a `DimensionNotAvailable` error if the specified dimension does not exist.", "schema": { "type": "string" - }, - "required": true + } }, { "name": "target_dimension", @@ -54,7 +50,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/apply_kernel.json b/apply_kernel.json index 218ec9e9..058bd19d 100644 --- a/apply_kernel.json +++ b/apply_kernel.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "kernel", @@ -29,8 +28,7 @@ "type": "number" } } - }, - "required": true + } }, { "name": "factor", @@ -38,7 +36,8 @@ "schema": { "type": "number" }, - "default": 1 + "default": 1, + "optional": true } ], "returns": { diff --git a/arccos.json b/arccos.json index a290740b..a3418b6a 100644 --- a/arccos.json +++ b/arccos.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/arcosh.json b/arcosh.json index 60f00002..413dcefe 100644 --- a/arcosh.json +++ b/arcosh.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/arcsin.json b/arcsin.json index e653335f..e9548e57 100644 --- a/arcsin.json +++ b/arcsin.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/arctan.json b/arctan.json index d8848ba3..88f563b4 100644 --- a/arctan.json +++ b/arctan.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/arctan2.json b/arctan2.json index 23b77020..a4d91b2a 100644 --- a/arctan2.json +++ b/arctan2.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "x", @@ -25,8 +24,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/array_apply.json b/array_apply.json index 5f6aaccf..b15245c0 100644 --- a/array_apply.json +++ b/array_apply.json @@ -14,8 +14,7 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "process", @@ -27,7 +26,6 @@ { "name": "x", "description": "The value of the current element being processed.", - "required": true, "schema": { "description": "Any data type." } @@ -35,14 +33,12 @@ { "name": "index", "description": "The zero-based index of the current element being processed.", - "required": true, "schema": { "type": "integer" } } ] - }, - "required": true + } } ], "returns": { diff --git a/array_contains.json b/array_contains.json index 763477df..6ae51375 100644 --- a/array_contains.json +++ b/array_contains.json @@ -15,16 +15,14 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "value", "description": "Value to find in `data`.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/array_element.json b/array_element.json index e85c33e8..d5ede4ae 100644 --- a/array_element.json +++ b/array_element.json @@ -14,16 +14,14 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "index", "description": "The zero-based index of the element to retrieve.", "schema": { "type": "integer" - }, - "required": true + } }, { "name": "return_nodata", @@ -31,7 +29,8 @@ "schema": { "type": "boolean" }, - "default": false + "default": false, + "optional": true } ], "returns": { diff --git a/array_filter.json b/array_filter.json index 88d27ef1..cc0a5046 100644 --- a/array_filter.json +++ b/array_filter.json @@ -15,8 +15,7 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "condition", @@ -28,7 +27,6 @@ { "name": "x", "description": "The value of the current element being processed.", - "required": true, "schema": { "description": "Any data type." } @@ -36,14 +34,12 @@ { "name": "index", "description": "The zero-based index of the current element being processed.", - "required": true, "schema": { "type": "integer" } } ] - }, - "required": true + } } ], "returns": { diff --git a/array_find.json b/array_find.json index 39e5f3b7..1e7a67c4 100644 --- a/array_find.json +++ b/array_find.json @@ -14,16 +14,14 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "value", "description": "Value to find in `data`.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/arsinh.json b/arsinh.json index 1a64459c..46c936aa 100644 --- a/arsinh.json +++ b/arsinh.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/artanh.json b/artanh.json index fd5786a3..18a30726 100644 --- a/artanh.json +++ b/artanh.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/between.json b/between.json index d9176976..33980ae4 100644 --- a/between.json +++ b/between.json @@ -11,8 +11,7 @@ "description": "The value to check.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "min", @@ -36,8 +35,7 @@ "format": "time", "subtype": "time" } - ], - "required": true + ] }, { "name": "max", @@ -61,8 +59,7 @@ "format": "time", "subtype": "time" } - ], - "required": true + ] }, { "name": "exclude_max", @@ -70,7 +67,8 @@ "schema": { "type": "boolean" }, - "default": false + "default": false, + "optional": true } ], "returns": { diff --git a/ceil.json b/ceil.json index dee9dbdc..7c01cf45 100644 --- a/ceil.json +++ b/ceil.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/clip.json b/clip.json index 710ad031..753bd1fe 100644 --- a/clip.json +++ b/clip.json @@ -14,24 +14,21 @@ "number", "null" ] - }, - "required": true + } }, { "name": "min", "description": "Minimum value. If the value is lower than this value, the process will return the value of this parameter.", "schema": { "type": "number" - }, - "required": true + } }, { "name": "max", "description": "Maximum value. If the value is greater than this value, the process will return the value of this parameter.", "schema": { "type": "number" - }, - "required": true + } } ], "returns": { diff --git a/cos.json b/cos.json index f7120770..6e6e4143 100644 --- a/cos.json +++ b/cos.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/cosh.json b/cosh.json index d452aad0..975958a4 100644 --- a/cosh.json +++ b/cosh.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/count.json b/count.json index acd8c961..6217f0f2 100644 --- a/count.json +++ b/count.json @@ -15,8 +15,7 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "condition", @@ -31,7 +30,6 @@ { "name": "x", "description": "The value of the current element being processed.", - "required": true, "schema": { "description": "Any data type." } @@ -50,7 +48,8 @@ "type": "null" } ], - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/cummax.json b/cummax.json index 63e64600..18a37abd 100644 --- a/cummax.json +++ b/cummax.json @@ -17,8 +17,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -26,7 +25,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/cummin.json b/cummin.json index a75f1231..fd20a92b 100644 --- a/cummin.json +++ b/cummin.json @@ -17,8 +17,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -26,7 +25,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/cumproduct.json b/cumproduct.json index 9ec56f4b..cf135e2f 100644 --- a/cumproduct.json +++ b/cumproduct.json @@ -17,8 +17,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -26,7 +25,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/cumsum.json b/cumsum.json index 493cecea..6ce6b10c 100644 --- a/cumsum.json +++ b/cumsum.json @@ -17,8 +17,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -26,7 +25,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/debug.json b/debug.json index b319db47..a6726a0c 100644 --- a/debug.json +++ b/debug.json @@ -11,8 +11,7 @@ "description": "Data to publish.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "code", @@ -20,7 +19,8 @@ "schema": { "type": "string" }, - "default": "" + "default": "", + "optional": true }, { "name": "level", @@ -34,7 +34,8 @@ "debug" ] }, - "default": "info" + "default": "info", + "optional": true }, { "name": "message", @@ -42,7 +43,8 @@ "schema": { "type": "string" }, - "default": "" + "default": "", + "optional": true } ], "returns": { diff --git a/divide.json b/divide.json index 837f81cf..d5cc39ac 100644 --- a/divide.json +++ b/divide.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/drop_dimension.json b/drop_dimension.json index ebf15ca9..0a39e35d 100644 --- a/drop_dimension.json +++ b/drop_dimension.json @@ -12,16 +12,14 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "name", "description": "Name of the dimension to drop.", "schema": { "type": "string" - }, - "required": true + } } ], "returns": { diff --git a/eq.json b/eq.json index 65d74def..6ca37a8f 100644 --- a/eq.json +++ b/eq.json @@ -12,16 +12,14 @@ "description": "First operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "y", "description": "Second operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "delta", @@ -32,7 +30,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true }, { "name": "case_sensitive", @@ -40,7 +39,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/exp.json b/exp.json index cd0d0ec9..fe983468 100644 --- a/exp.json +++ b/exp.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/extrema.json b/extrema.json index 169b4675..d4a4c0d2 100644 --- a/extrema.json +++ b/extrema.json @@ -17,8 +17,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -26,7 +25,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/filter_bands.json b/filter_bands.json index 8d32fc1e..e8b244a1 100644 --- a/filter_bands.json +++ b/filter_bands.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "bands", @@ -25,7 +24,8 @@ "subtype": "band-name" } }, - "default": [] + "default": [], + "optional": true }, { "name": "wavelengths", @@ -53,7 +53,8 @@ ] } }, - "default": [] + "default": [], + "optional": true } ], "returns": { diff --git a/filter_bbox.json b/filter_bbox.json index 78babfe0..b2841881 100644 --- a/filter_bbox.json +++ b/filter_bbox.json @@ -12,13 +12,11 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "extent", "description": "A bounding box, which may include a vertical axis (see `base` and `height`).", - "required": true, "schema": { "type": "object", "subtype": "bounding-box", diff --git a/filter_labels.json b/filter_labels.json index 2112b1a3..2056eabc 100644 --- a/filter_labels.json +++ b/filter_labels.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "condition", @@ -26,22 +25,19 @@ { "name": "value", "description": "A single dimension label to compare against. The data type of the parameter depends on the dimension labels stored for the dimension.", - "required": true, "schema": { "description": "Any data type." } } ] - }, - "required": true + } }, { "name": "dimension", "description": "The name of the dimension to filter on. Fails with a `DimensionNotAvailable` error if the specified dimension does not exist.\n\n**Remarks:**\n\n* The default dimensions a data cube provides are described in the collection's metadata field `cube:dimensions`.\n* There could be multiple spatial dimensions such as `x`, `y` or `z`.\n* For multi-spectral imagery there is usually a separate dimension of type `bands` for the bands.", "schema": { "type": "string" - }, - "required": true + } } ], "returns": { diff --git a/filter_spatial.json b/filter_spatial.json index efb5a447..0ff717f5 100644 --- a/filter_spatial.json +++ b/filter_spatial.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "geometries", @@ -21,8 +20,7 @@ "schema": { "type": "object", "subtype": "geojson" - }, - "required": true + } } ], "returns": { diff --git a/filter_temporal.json b/filter_temporal.json index 2d5eb9ee..286b8901 100644 --- a/filter_temporal.json +++ b/filter_temporal.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "extent", @@ -50,8 +49,7 @@ "2016-01-01" ] ] - }, - "required": true + } }, { "name": "dimension", @@ -62,7 +60,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/first.json b/first.json index 4e10c2ff..4f48544d 100644 --- a/first.json +++ b/first.json @@ -15,8 +15,7 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -24,7 +23,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/floor.json b/floor.json index 195ec3d2..aab1aba6 100644 --- a/floor.json +++ b/floor.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/gt.json b/gt.json index e8181fd6..4ae5ecd0 100644 --- a/gt.json +++ b/gt.json @@ -11,16 +11,14 @@ "description": "First operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "y", "description": "Second operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/gte.json b/gte.json index d4bc801b..3ce79bb3 100644 --- a/gte.json +++ b/gte.json @@ -11,16 +11,14 @@ "description": "First operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "y", "description": "Second operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/if.json b/if.json index 1a6a3b3e..43e6fcdc 100644 --- a/if.json +++ b/if.json @@ -16,16 +16,14 @@ "boolean", "null" ] - }, - "required": true + } }, { "name": "accept", "description": "A value that is returned if the boolean value is `true`.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "reject", @@ -33,7 +31,8 @@ "schema": { "description": "Any data type is allowed." }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/int.json b/int.json index f5186d66..ba392380 100644 --- a/int.json +++ b/int.json @@ -15,8 +15,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/is_nan.json b/is_nan.json index d6c67874..60ccea25 100644 --- a/is_nan.json +++ b/is_nan.json @@ -11,8 +11,7 @@ "description": "The data to check.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/is_nodata.json b/is_nodata.json index d1c90caf..f2ab4d5e 100644 --- a/is_nodata.json +++ b/is_nodata.json @@ -11,8 +11,7 @@ "description": "The data to check.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/is_valid.json b/is_valid.json index 59442db7..fe5e984f 100644 --- a/is_valid.json +++ b/is_valid.json @@ -11,8 +11,7 @@ "description": "The data to check.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/labels.json b/labels.json index 0e12e667..e4510fbe 100644 --- a/labels.json +++ b/labels.json @@ -12,16 +12,14 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "dimension", "description": "The name of the dimension to get the labels for.", "schema": { "type": "string" - }, - "required": true + } } ], "returns": { diff --git a/last.json b/last.json index 85572c8e..cfc3875a 100644 --- a/last.json +++ b/last.json @@ -15,8 +15,7 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -24,7 +23,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/linear_scale_range.json b/linear_scale_range.json index e41178e2..907c28a8 100644 --- a/linear_scale_range.json +++ b/linear_scale_range.json @@ -14,24 +14,21 @@ "number", "null" ] - }, - "required": true + } }, { "name": "inputMin", "description": "Minimum value the input can obtain.", "schema": { "type": "number" - }, - "required": true + } }, { "name": "inputMax", "description": "Maximum value the input can obtain.", "schema": { "type": "number" - }, - "required": true + } }, { "name": "outputMin", @@ -39,7 +36,8 @@ "schema": { "type": "number" }, - "default": 0 + "default": 0, + "optional": true }, { "name": "outputMax", @@ -47,7 +45,8 @@ "schema": { "type": "number" }, - "default": 1 + "default": 1, + "optional": true } ], "returns": { diff --git a/ln.json b/ln.json index 0a3fb9bf..d0cfe8a5 100644 --- a/ln.json +++ b/ln.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/load_collection.json b/load_collection.json index e31cfaec..9d38d794 100644 --- a/load_collection.json +++ b/load_collection.json @@ -14,8 +14,7 @@ "type": "string", "subtype": "collection-id", "pattern": "^[A-Za-z0-9_\\-\\.~/]+$" - }, - "required": true + } }, { "name": "spatial_extent", @@ -106,8 +105,7 @@ "description": "Don't filter spatially. All data is included in the data cube.", "type": "null" } - ], - "required": true + ] }, { "name": "temporal_extent", @@ -151,8 +149,7 @@ "description": "Don't filter temporally. All data is included in the data cube.", "type": "null" } - ], - "required": true + ] }, { "name": "bands", @@ -171,7 +168,8 @@ "type": "null" } ], - "default": null + "default": null, + "optional": true }, { "name": "properties", @@ -200,7 +198,8 @@ "type": "null" } ], - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/load_result.json b/load_result.json index 4c1d3390..6a7b5c45 100644 --- a/load_result.json +++ b/load_result.json @@ -14,8 +14,7 @@ "type": "string", "subtype": "job-id", "pattern": "^[A-Za-z0-9_\\-\\.~]+$" - }, - "required": true + } } ], "returns": { diff --git a/load_uploaded_files.json b/load_uploaded_files.json index f89d8627..e77098b2 100644 --- a/load_uploaded_files.json +++ b/load_uploaded_files.json @@ -17,8 +17,7 @@ "type": "string", "subtype": "file-path" } - }, - "required": true + } }, { "name": "format", @@ -26,8 +25,7 @@ "schema": { "type": "string", "subtype": "input-format" - }, - "required": true + } }, { "name": "options", @@ -36,7 +34,8 @@ "type": "object", "subtype": "input-format-options" }, - "default": {} + "default": {}, + "optional": true } ], "returns": { diff --git a/log.json b/log.json index d9ccb0da..e964961d 100644 --- a/log.json +++ b/log.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "base", @@ -25,8 +24,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/lt.json b/lt.json index 0e843aef..54e7b749 100644 --- a/lt.json +++ b/lt.json @@ -11,16 +11,14 @@ "description": "First operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "y", "description": "Second operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/lte.json b/lte.json index e3e70f8a..b9ba86a8 100644 --- a/lte.json +++ b/lte.json @@ -11,16 +11,14 @@ "description": "First operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "y", "description": "Second operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } } ], "returns": { diff --git a/mask.json b/mask.json index ca860d0d..f21138f4 100644 --- a/mask.json +++ b/mask.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "mask", @@ -21,8 +20,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "replacement", @@ -35,7 +33,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/mask_polygon.json b/mask_polygon.json index ce50607f..59b0f12f 100644 --- a/mask_polygon.json +++ b/mask_polygon.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "mask", @@ -21,8 +20,7 @@ "schema": { "type": "object", "subtype": "geojson" - }, - "required": true + } }, { "name": "replacement", @@ -35,7 +33,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true }, { "name": "inside", @@ -43,7 +42,8 @@ "schema": { "type": "boolean" }, - "default": false + "default": false, + "optional": true } ], "returns": { diff --git a/max.json b/max.json index b771d0b7..139f58d6 100644 --- a/max.json +++ b/max.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/mean.json b/mean.json index 70922216..24919f04 100644 --- a/mean.json +++ b/mean.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/median.json b/median.json index b324d43a..7543bd9a 100644 --- a/median.json +++ b/median.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/merge_cubes.json b/merge_cubes.json index b04f6700..a31d6c49 100644 --- a/merge_cubes.json +++ b/merge_cubes.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "cube2", @@ -21,8 +20,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "overlap_resolver", @@ -34,7 +32,6 @@ { "name": "x", "description": "The first value.", - "required": true, "schema": { "description": "Any data type." } @@ -42,14 +39,14 @@ { "name": "y", "description": "The second value.", - "required": true, "schema": { "description": "Any data type." } } ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/min.json b/min.json index 92271a33..38dc7b30 100644 --- a/min.json +++ b/min.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/mod.json b/mod.json index 492fe9e8..c9ed9ce1 100644 --- a/mod.json +++ b/mod.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/multiply.json b/multiply.json index aaccbead..e0c901c7 100644 --- a/multiply.json +++ b/multiply.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/ndvi.json b/ndvi.json index d3f7d602..cb14d597 100644 --- a/ndvi.json +++ b/ndvi.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "nir", @@ -23,7 +22,8 @@ "type": "string", "subtype": "band-name" }, - "default": "nir" + "default": "nir", + "optional": true }, { "name": "red", @@ -32,7 +32,8 @@ "type": "string", "subtype": "band-name" }, - "default": "red" + "default": "red", + "optional": true }, { "name": "target_band", @@ -46,7 +47,8 @@ "type": "null" } ], - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/neq.json b/neq.json index 49d31e7e..5b51bfe5 100644 --- a/neq.json +++ b/neq.json @@ -12,16 +12,14 @@ "description": "First operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "y", "description": "Second operand.", "schema": { "description": "Any data type is allowed." - }, - "required": true + } }, { "name": "delta", @@ -32,7 +30,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true }, { "name": "case_sensitive", @@ -40,7 +39,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/normalized_difference.json b/normalized_difference.json index 902121be..d11a78da 100644 --- a/normalized_difference.json +++ b/normalized_difference.json @@ -12,16 +12,14 @@ "description": "The value for the first band.", "schema": { "type": "number" - }, - "required": true + } }, { "name": "y", "description": "The value for the second band.", "schema": { "type": "number" - }, - "required": true + } } ], "returns": { diff --git a/not.json b/not.json index e6b7eda2..58e91daf 100644 --- a/not.json +++ b/not.json @@ -14,8 +14,7 @@ "boolean", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/or.json b/or.json index 6c1c5568..ef6ef47f 100644 --- a/or.json +++ b/or.json @@ -14,8 +14,7 @@ "boolean", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "boolean", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/order.json b/order.json index 4727407d..72976dd1 100644 --- a/order.json +++ b/order.json @@ -37,8 +37,7 @@ } ] } - }, - "required": true + } }, { "name": "asc", @@ -46,7 +45,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true }, { "name": "nodata", @@ -57,7 +57,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/power.json b/power.json index 63ab72f2..d01912a0 100644 --- a/power.json +++ b/power.json @@ -15,8 +15,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "p", @@ -26,8 +25,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/product.json b/product.json index b77df584..6bb8428d 100644 --- a/product.json +++ b/product.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/quantiles.json b/quantiles.json index 7787c948..44c74266 100644 --- a/quantiles.json +++ b/quantiles.json @@ -17,8 +17,7 @@ "null" ] } - }, - "required": true + } }, { "name": "probabilities", @@ -30,7 +29,8 @@ "minimum": 0, "maximum": 1 } - } + }, + "optional": true }, { "name": "q", @@ -38,7 +38,8 @@ "schema": { "type": "integer", "minimum": 2 - } + }, + "optional": true }, { "name": "ignore_nodata", @@ -46,7 +47,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/rearrange.json b/rearrange.json index 14bc662c..92bdf6db 100644 --- a/rearrange.json +++ b/rearrange.json @@ -15,8 +15,7 @@ "items": { "description": "Any data type is allowed." } - }, - "required": true + } }, { "name": "order", @@ -27,8 +26,7 @@ "type": "integer", "minimum": 0 } - }, - "required": true + } } ], "returns": { diff --git a/reduce_dimension.json b/reduce_dimension.json index d13d99fa..e4459a25 100644 --- a/reduce_dimension.json +++ b/reduce_dimension.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "reducer", @@ -26,7 +25,6 @@ { "name": "data", "description": "An array with elements of any type.", - "required": true, "schema": { "type": "array", "items": { @@ -35,16 +33,14 @@ } } ] - }, - "required": true + } }, { "name": "dimension", "description": "The name of the dimension over which to reduce. Fails with a `DimensionNotAvailable` error if the specified dimension does not exist.\n\n**Remarks:**\n\n* The default dimensions a data cube provides are described in the collection's metadata field `cube:dimensions`.\n* There could be multiple spatial dimensions such as `x`, `y` or `z`.\n* For multi-spectral imagery there is usually a separate dimension of type `bands` for the bands.", "schema": { "type": "string" - }, - "required": true + } } ], "returns": { diff --git a/reduce_dimension_binary.json b/reduce_dimension_binary.json index cdd5ae80..b13f4085 100644 --- a/reduce_dimension_binary.json +++ b/reduce_dimension_binary.json @@ -14,8 +14,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "reducer", @@ -27,7 +26,6 @@ { "name": "x", "description": "The first value.", - "required": true, "schema": { "description": "Any data type." } @@ -35,22 +33,19 @@ { "name": "y", "description": "The second value.", - "required": true, "schema": { "description": "Any data type." } } ] - }, - "required": true + } }, { "name": "dimension", "description": "The name of the dimension over which to reduce. Fails with a `DimensionNotAvailable` error if the specified dimension does not exist.\n\n**Remarks:**\n\n* The default dimensions a data cube provides are described in the collection's metadata field `cube:dimensions`.\n* There could be multiple spatial dimensions such as `x`, `y` or `z`.\n* For multi-spectral imagery there is usually a separate dimension of type `bands` for the bands.", "schema": { "type": "string" - }, - "required": true + } } ], "returns": { diff --git a/rename_dimension.json b/rename_dimension.json index 8bfebf0a..7ab12327 100644 --- a/rename_dimension.json +++ b/rename_dimension.json @@ -12,24 +12,21 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "old", "description": "The current name of the dimension. Fails with a `DimensionNotAvailable` error if the specified dimension does not exist.", "schema": { "type": "string" - }, - "required": true + } }, { "name": "new", "description": "A new Name for the dimension. Fails with a `DimensionExists` error if a dimension with the specified name exists.", "schema": { "type": "string" - }, - "required": true + } } ], "returns": { diff --git a/rename_labels.json b/rename_labels.json index e17359b9..83732243 100644 --- a/rename_labels.json +++ b/rename_labels.json @@ -12,16 +12,14 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "dimension", "description": "The name of the dimension to rename the labels for.", "schema": { "type": "string" - }, - "required": true + } }, { "name": "labels", @@ -39,8 +37,7 @@ "type": "string" } } - ], - "required": true + ] } ], "returns": { diff --git a/resample_cube_spatial.json b/resample_cube_spatial.json index 933de71b..34e0a4c4 100644 --- a/resample_cube_spatial.json +++ b/resample_cube_spatial.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "target", @@ -22,8 +21,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "method", @@ -45,7 +43,8 @@ "q3" ] }, - "default": "near" + "default": "near", + "optional": true } ], "returns": { diff --git a/resample_cube_temporal.json b/resample_cube_temporal.json index 67029370..117dd1a7 100644 --- a/resample_cube_temporal.json +++ b/resample_cube_temporal.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "target", @@ -22,8 +21,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "method", @@ -35,7 +33,6 @@ { "name": "data", "description": "An array with elements of any type.", - "required": true, "schema": { "type": "array", "items": { @@ -44,8 +41,7 @@ } } ] - }, - "required": true + } }, { "name": "dimension", @@ -56,7 +52,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/resample_spatial.json b/resample_spatial.json index 1d768633..e3124861 100644 --- a/resample_spatial.json +++ b/resample_spatial.json @@ -13,8 +13,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } }, { "name": "resolution", @@ -36,7 +35,8 @@ } } ], - "default": 0 + "default": 0, + "optional": true }, { "name": "projection", @@ -71,7 +71,8 @@ "type": "null" } ], - "default": null + "default": null, + "optional": true }, { "name": "method", @@ -93,7 +94,8 @@ "q3" ] }, - "default": "near" + "default": "near", + "optional": true }, { "name": "align", @@ -107,7 +109,8 @@ "upper-right" ] }, - "default": "upper-left" + "default": "upper-left", + "optional": true } ], "returns": { diff --git a/round.json b/round.json index bab23bd1..b6ae30e6 100644 --- a/round.json +++ b/round.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "p", @@ -23,7 +22,8 @@ "schema": { "type": "integer" }, - "default": 0 + "default": 0, + "optional": true } ], "returns": { diff --git a/run_process_graph.json b/run_process_graph.json index 0ed7b9c7..06b42e50 100644 --- a/run_process_graph.json +++ b/run_process_graph.json @@ -23,8 +23,7 @@ "subtype": "process-graph-id", "pattern": "^[A-Za-z0-9_\\-\\.~]+$" } - ], - "required": true + ] }, { "name": "variables", @@ -33,7 +32,8 @@ "type": "object", "subtype": "process-graph-variables" }, - "default": {} + "default": {}, + "optional": true } ], "returns": { diff --git a/run_udf.json b/run_udf.json index 9f1746ca..e41c3eb8 100644 --- a/run_udf.json +++ b/run_udf.json @@ -28,8 +28,7 @@ "title": "Single Value", "description": "A single value of any data type." } - ], - "required": true + ] }, { "name": "udf", @@ -51,8 +50,7 @@ "type": "string", "subtype": "udf-code" } - ], - "required": true + ] }, { "name": "runtime", @@ -60,8 +58,7 @@ "schema": { "type": "string", "subtype": "udf-runtime" - }, - "required": true + } }, { "name": "version", @@ -76,7 +73,8 @@ "type": "null" } ], - "default": null + "default": null, + "optional": true }, { "name": "context", @@ -84,7 +82,8 @@ "schema": { "type": "object" }, - "default": {} + "default": {}, + "optional": true } ], "exceptions": { diff --git a/run_udf_externally.json b/run_udf_externally.json index 7e137e2f..36e65785 100644 --- a/run_udf_externally.json +++ b/run_udf_externally.json @@ -29,8 +29,7 @@ "title": "Single Value", "description": "A single value of any data type." } - ], - "required": true + ] }, { "name": "url", @@ -39,8 +38,7 @@ "type": "string", "format": "uri", "subtype": "uri" - }, - "required": true + } }, { "name": "context", @@ -48,7 +46,8 @@ "schema": { "type": "object" }, - "default": {} + "default": {}, + "optional": true } ], "returns": { diff --git a/save_result.json b/save_result.json index 49d381f9..65aeb832 100644 --- a/save_result.json +++ b/save_result.json @@ -19,8 +19,7 @@ "type": "object", "subtype": "vector-cube" } - ], - "required": true + ] }, { "name": "format", @@ -28,8 +27,7 @@ "schema": { "type": "string", "subtype": "output-format" - }, - "required": true + } }, { "name": "options", @@ -38,7 +36,8 @@ "type": "object", "subtype": "output-format-options" }, - "default": {} + "default": {}, + "optional": true } ], "returns": { diff --git a/sd.json b/sd.json index 32936d1e..542115bc 100644 --- a/sd.json +++ b/sd.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/sgn.json b/sgn.json index 2f591f38..ced856ae 100644 --- a/sgn.json +++ b/sgn.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/sin.json b/sin.json index 439219de..06c45cc4 100644 --- a/sin.json +++ b/sin.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/sinh.json b/sinh.json index 31c148d1..c505b3a3 100644 --- a/sinh.json +++ b/sinh.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/sort.json b/sort.json index c77d9fe9..c141db0a 100644 --- a/sort.json +++ b/sort.json @@ -37,8 +37,7 @@ } ] } - }, - "required": true + } }, { "name": "asc", @@ -46,7 +45,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true }, { "name": "nodata", @@ -57,7 +57,8 @@ "null" ] }, - "default": null + "default": null, + "optional": true } ], "returns": { diff --git a/sqrt.json b/sqrt.json index 571145df..2d025ba9 100644 --- a/sqrt.json +++ b/sqrt.json @@ -15,8 +15,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/subtract.json b/subtract.json index 614a2349..5f8f8d0c 100644 --- a/subtract.json +++ b/subtract.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/sum.json b/sum.json index 46e3421d..17af5bfe 100644 --- a/sum.json +++ b/sum.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/tan.json b/tan.json index afd5f020..c3952efa 100644 --- a/tan.json +++ b/tan.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/tanh.json b/tanh.json index 7a3ab08b..203f581e 100644 --- a/tanh.json +++ b/tanh.json @@ -14,8 +14,7 @@ "number", "null" ] - }, - "required": true + } } ], "returns": { diff --git a/text_begins.json b/text_begins.json index 60bb3054..36dc8c8b 100644 --- a/text_begins.json +++ b/text_begins.json @@ -15,16 +15,14 @@ "string", "null" ] - }, - "required": true + } }, { "name": "pattern", "description": "Text to find at the beginning of `data`. Regular expressions are not supported.", "schema": { "type": "string" - }, - "required": true + } }, { "name": "case_sensitive", @@ -32,7 +30,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/text_contains.json b/text_contains.json index 19919d5c..af08b231 100644 --- a/text_contains.json +++ b/text_contains.json @@ -15,16 +15,14 @@ "string", "null" ] - }, - "required": true + } }, { "name": "pattern", "description": "Text to find in `data`. Regular expressions are not supported.", "schema": { "type": "string" - }, - "required": true + } }, { "name": "case_sensitive", @@ -32,7 +30,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/text_ends.json b/text_ends.json index 27eee763..03d32a17 100644 --- a/text_ends.json +++ b/text_ends.json @@ -15,16 +15,14 @@ "string", "null" ] - }, - "required": true + } }, { "name": "pattern", "description": "Text to find at the end of `data`. Regular expressions are not supported.", "schema": { "type": "string" - }, - "required": true + } }, { "name": "case_sensitive", @@ -32,7 +30,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/text_merge.json b/text_merge.json index 1a6e96bb..e65f49c7 100644 --- a/text_merge.json +++ b/text_merge.json @@ -19,8 +19,7 @@ "null" ] } - }, - "required": true + } }, { "name": "separator", @@ -33,7 +32,8 @@ "null" ] }, - "default": "" + "default": "", + "optional": true } ], "returns": { diff --git a/trim.json b/trim.json index b824ac8d..2b8ddf1d 100644 --- a/trim.json +++ b/trim.json @@ -12,8 +12,7 @@ "schema": { "type": "object", "subtype": "raster-cube" - }, - "required": true + } } ], "returns": { diff --git a/variance.json b/variance.json index 0e305d83..e9de83a3 100644 --- a/variance.json +++ b/variance.json @@ -18,8 +18,7 @@ "null" ] } - }, - "required": true + } }, { "name": "ignore_nodata", @@ -27,7 +26,8 @@ "schema": { "type": "boolean" }, - "default": true + "default": true, + "optional": true } ], "returns": { diff --git a/xor.json b/xor.json index 9489c8d8..3a7bbd29 100644 --- a/xor.json +++ b/xor.json @@ -14,8 +14,7 @@ "boolean", "null" ] - }, - "required": true + } }, { "name": "y", @@ -25,8 +24,7 @@ "boolean", "null" ] - }, - "required": true + } } ], "returns": { From f592f430f6b9cefae994b09b9fd4beed907b6341 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Mon, 27 Jan 2020 15:47:57 +0100 Subject: [PATCH 07/10] Fixed spell check --- aggregate_spatial.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aggregate_spatial.json b/aggregate_spatial.json index f644d9d6..b7dbd1f4 100644 --- a/aggregate_spatial.json +++ b/aggregate_spatial.json @@ -1,7 +1,7 @@ { "id": "aggregate_spatial", "summary": "Zonal statistics for geometries", - "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes a list of values to the reducer. In contrast, aggregate_spatial_binary() passes two values, which may be better suited for UDFs.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the TooManyDimensions error.\n\nThe number of total and valid pixels is returned together with the calculated values.", + "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes a list of values to the reducer. In contrast, aggregate_spatial_binary() passes two values, which may be better suited for UDFs.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", "categories": [ "cubes", "aggregate & resample" From facd814e721406b15828b6cde0c1286a40d5d63f Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Tue, 28 Jan 2020 12:06:41 +0100 Subject: [PATCH 08/10] Fixed process name references in exceptions. --- aggregate_spatial_binary.json | 2 +- aggregate_temporal.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/aggregate_spatial_binary.json b/aggregate_spatial_binary.json index 84d2ab12..ba145241 100644 --- a/aggregate_spatial_binary.json +++ b/aggregate_spatial_binary.json @@ -67,7 +67,7 @@ }, "exceptions": { "TooManyDimensions": { - "message": "The number of dimensions must be reduced to three for 'aggregate_spatial'." + "message": "The number of dimensions must be reduced to three for 'aggregate_spatial_binary'." } }, "links": [ diff --git a/aggregate_temporal.json b/aggregate_temporal.json index 987cbcf5..a3d2027e 100644 --- a/aggregate_temporal.json +++ b/aggregate_temporal.json @@ -209,7 +209,7 @@ ], "exceptions": { "TooManyDimensions": { - "message": "The number of dimensions must be reduced to three for 'aggregate_spatial'." + "message": "The number of dimensions must be reduced to three for 'aggregate_temporal'." }, "DimensionNotAvailable": { "message": "A dimension with the specified name does not exist." From 8544ee3988c6867d5eb63de266f427aa028f217b Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Wed, 29 Jan 2020 10:22:00 +0100 Subject: [PATCH 09/10] Clarified aggregate/filter behavior for points and lines, clarified processes with binary reduction. --- aggregate_spatial.json | 2 +- aggregate_spatial_binary.json | 2 +- filter_spatial.json | 2 +- reduce_dimension.json | 2 +- reduce_dimension_binary.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/aggregate_spatial.json b/aggregate_spatial.json index b7dbd1f4..03639a99 100644 --- a/aggregate_spatial.json +++ b/aggregate_spatial.json @@ -1,7 +1,7 @@ { "id": "aggregate_spatial", "summary": "Zonal statistics for geometries", - "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes a list of values to the reducer. In contrast, aggregate_spatial_binary() passes two values, which may be better suited for UDFs.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", + "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes a list of values to the reducer. In contrast, ``aggregate_spatial_binary()`` passes two values, which may be better suited especially for UDFs in case the number of values gets too large to be processed at once.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points**, the process considers the closest pixel center.\n- For **lines** (line strings), the process considers all the pixels whose centers are closest to at least one point on the line.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two spatial dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", "categories": [ "cubes", "aggregate & resample" diff --git a/aggregate_spatial_binary.json b/aggregate_spatial_binary.json index ba145241..f9158f7b 100644 --- a/aggregate_spatial_binary.json +++ b/aggregate_spatial_binary.json @@ -1,7 +1,7 @@ { "id": "aggregate_spatial_binary", "summary": "Zonal statistics for geometries by binary aggregation", - "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process passes two values to the reducer. In contrast, ``aggregate_spatial()`` passes a list of values.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the process considers all the closest pixel centers.\n\nThus, pixels may be part of multiple geometries and be part of multiple aggregations.\n\nThe data cube must have been reduced to only contain two raster dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", + "description": "Aggregates statistics for one or more geometries (e.g. zonal statistics for polygons) over the spatial dimensions. This process consecutively passes a pair of values to the reducer. This may be better suited especially for UDFs in case the number of values gets too large to be processed at once. In contrast, ``aggregate_spatial()`` passes a list of values.\n\n- For **polygons**, the process considers all pixels for which the point at the pixel center intersects with the corresponding polygon (as defined in the Simple Features standard by the OGC).\n- For **points**, the process considers the closest pixel center.\n- For **lines** (line strings), the process considers all the pixels whose centers are closest to at least one point on the line.\n\nThe data cube must have been reduced to only contain two raster dimensions and a third dimension the values are aggregated for, for example the temporal dimension to get a time series. Otherwise this process fails with the `TooManyDimensions` error.\n\nThe number of total and valid pixels is returned together with the calculated values.", "categories": [ "cubes", "aggregate & resample" diff --git a/filter_spatial.json b/filter_spatial.json index 0ff717f5..d9a8ec77 100644 --- a/filter_spatial.json +++ b/filter_spatial.json @@ -1,7 +1,7 @@ { "id": "filter_spatial", "summary": "Spatial filter using geometries", - "description": "Limits the data cube over the spatial dimensions to the specified geometries.\n\n- For **polygons**, the filter retains a pixel in the data cube if the point at the pixel center intersects with at least one of the polygons (as defined in the Simple Features standard by the OGC).\n- For **points** and **lines** (line strings), the filter retains all the pixel centers closest to any of the geometries.\n\nMore specifically, pixels outside of the bounding box of the given geometry will not be available after filtering. All pixels inside the bounding box that are not retained will be set to `null` (no data).", + "description": "Limits the data cube over the spatial dimensions to the specified geometries.\n\n- For **polygons**, the filter retains a pixel in the data cube if the point at the pixel center intersects with at least one of the polygons (as defined in the Simple Features standard by the OGC).\n- For **points**, the process considers the closest pixel center.\n- For **lines** (line strings), the process considers all the pixels whose centers are closest to at least one point on the line.\n\nMore specifically, pixels outside of the bounding box of the given geometry will not be available after filtering. All pixels inside the bounding box that are not retained will be set to `null` (no data).", "categories": [ "filter" ], diff --git a/reduce_dimension.json b/reduce_dimension.json index e4869962..6564652f 100644 --- a/reduce_dimension.json +++ b/reduce_dimension.json @@ -1,7 +1,7 @@ { "id": "reduce_dimension", "summary": "Reduce dimensions", - "description": "Applies a unary reducer to a data cube dimension by collapsing all the pixel values along the specified dimension into an output value computed by the reducer. This process passes a list of values to the reducer. In contrast, ``reduce_dimension_binary()`` passes two values, which may be better suited for UDFs.\n\nThe dimension is dropped. To avoid this, use ``apply_dimension()`` instead.", + "description": "Applies a unary reducer to a data cube dimension by collapsing all the pixel values along the specified dimension into an output value computed by the reducer. This process passes a list of values to the reducer. In contrast, ``reduce_dimension_binary()`` passes two values, which may be better suited especially for UDFs in case the number of values gets too large to be processed at once.\n\nThe dimension is dropped. To avoid this, use ``apply_dimension()`` instead.", "categories": [ "cubes", "reducer" diff --git a/reduce_dimension_binary.json b/reduce_dimension_binary.json index b13f4085..42be6d00 100644 --- a/reduce_dimension_binary.json +++ b/reduce_dimension_binary.json @@ -1,7 +1,7 @@ { "id": "reduce_dimension_binary", "summary": "Reduce dimensions using binary reduction", - "description": "Applies a binary reducer to a data cube dimension by collapsing all the pixel values along the specified dimension into an output value computed by the reducer. This process consecutively passes a pair of values to the reducer. In contrast, ``reduce_dimension()`` passes a list of values.\n\nThe dimension is dropped. To avoid this, use ``apply_dimension()`` instead.", + "description": "Applies a binary reducer to a data cube dimension by collapsing all the pixel values along the specified dimension into an output value computed by the reducer. This process consecutively passes a pair of values to the reducer. This may be better suited especially for UDFs in case the number of values gets too large to be processed at once. In contrast, ``reduce_dimension()`` passes a list of values.\n\nThe dimension is dropped. To avoid this, use ``apply_dimension()`` instead.", "categories": [ "cubes", "reducer" From cde82763da87d9b7779aadeef79fe56a18a9d6a7 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Wed, 29 Jan 2020 10:55:01 +0100 Subject: [PATCH 10/10] Move things regarding filters before an aggregation around. --- aggregate_spatial.json | 4 ++-- aggregate_spatial_binary.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aggregate_spatial.json b/aggregate_spatial.json index 03639a99..7cf3aa13 100644 --- a/aggregate_spatial.json +++ b/aggregate_spatial.json @@ -9,7 +9,7 @@ "parameters": [ { "name": "data", - "description": "A raster data cube.", + "description": "A raster data cube. The data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.", "schema": { "type": "object", "subtype": "raster-cube" @@ -54,7 +54,7 @@ } ], "returns": { - "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `target_dimension`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) for each geometry. These values are stored as new dimension with a dimension name derived from `target_dimension` by adding the suffix `_meta`. The new dimension has the dimension labels `total_count` and `valid_count`.", + "description": "A vector data cube with the computed results and restricted to the bounds of the geometries.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `target_dimension`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) for each geometry. These values are stored as new dimension with a dimension name derived from `target_dimension` by adding the suffix `_meta`. The new dimension has the dimension labels `total_count` and `valid_count`.", "schema": { "type": "object", "subtype": "vector-cube" diff --git a/aggregate_spatial_binary.json b/aggregate_spatial_binary.json index f9158f7b..035ef114 100644 --- a/aggregate_spatial_binary.json +++ b/aggregate_spatial_binary.json @@ -10,7 +10,7 @@ "parameters": [ { "name": "data", - "description": "A raster data cube.", + "description": "A raster data cube. The data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.", "schema": { "type": "object", "subtype": "raster-cube" @@ -59,7 +59,7 @@ } ], "returns": { - "description": "A vector data cube with the computed results. The vector data cube implicitly gets restricted to the bounds of the geometries as if ``filter_spatial()`` would have been used with the same values for the corresponding parameters immediately before this process.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `target_dimension`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) for each geometry. These values are stored as new dimension with a dimension name derived from `target_dimension` by adding the suffix `_meta`. The new dimension has the dimension labels `total_count` and `valid_count`.", + "description": "A vector data cube with the computed results and restricted to the bounds of the geometries.\n\nThe computed value is stored in dimension with the name that was specified in the parameter `target_dimension`.\n\nThe computation also stores information about the total count of pixels (valid + invalid pixels) and the number of valid pixels (see ``is_valid()``) for each geometry. These values are stored as new dimension with a dimension name derived from `target_dimension` by adding the suffix `_meta`. The new dimension has the dimension labels `total_count` and `valid_count`.", "schema": { "type": "object", "subtype": "vector-cube"