Releases: Open-EO/openeo-processes
Releases · Open-EO/openeo-processes
2.0.0-rc.1
Documentation: https://processes.openeo.org/2.0.0-rc.1/
[2.0.0-rc.1] - 2023-05-25
Added
- New processes in proposal state:
date_between
date_difference
filter_vector
flatten_dimensions
load_geojson
load_url
unflatten_dimension
vector_buffer
vector_reproject
vector_to_random_points
vector_to_regular_points
add_dimension
: Added new dimension typegeometry
. #68
Changed
- Moved from proposals to stable processes:
array_append
array_concat
array_create
array_interpolate_linear
resample_cube_temporal
- Added better support for labeled arrays. Labels are not discarded in all cases anymore. Affected processes:
array_append
array_concat
array_modify
array_modify
: Change the default value forlength
from1
to0
. #312- Renamed
text_merge
totext_concat
for better alignment witharray_concat
and existing implementations. apply_neighborhood
:- Allow
null
as default value for units. - Input and Output for the
process
can either be data cubes or arrays (if one-dimensional). #387
- Allow
run_udf
: Allow all data types instead of just objects in thecontext
parameter. #376load_collection
andload_result
/load_stac
:- Require at least one band if not set to
null
. #372 - Added a
NoDataAvailable
exception
- Require at least one band if not set to
aggregate_temporal
,filter_temporal
,load_collection
andload_result
/load_stac
:inspect
: The parametermessage
has been moved to be the second argument. #369mask
andmerge_cubes
: The spatial dimensionsx
andy
can now be resampled implicitly instead of throwing an error. #402save_result
: Added a more concreteDataCubeEmpty
exception.- New definition for
aggregate_spatial
: - Renamed
create_raster_cube
tocreate_data_cube
. #68 - Updated the processes based on the subtypes
raster-cube
orvector-cube
to work with the subtypedatacube
instead. #68 sort
andorder
: The ordering of ties is not defined anymore. #409quantiles
: Parameterprobabilities
provided as array must be in ascending order. #297fit_curve
andpredict_curve
: Heavily modified specifications.fit_curve
works on arrays instead of data cubes,predict_curve
doesn't support gap filling anymore, clarify no-data handling, ... #425climatological_normal
: Theclimatology_period
parameter accepts an array of integers instead of strings. #331
Deprecated
aggregate_spatial
,filter_spatial
,load_collection
,mask_polygon
: GeoJSON input is deprecated in favor ofload_geojson
. #346
Removed
- The
examples
folder has been migrated to the openEO Community Examples repository. between
: Support for temporal comparison. Usedate_between
instead. #331- Deprecated
GeometryCollections
are not supported any longer. #389 - Deprecated PROJ definitions for the CRS are not supported any longer.
load_result
:- The comparison processes
eq
,neq
,lt
,lte
,gt
,gte
andarray_contains
:- Removed support for temporal comparison. Instead explicitly use
date_difference
. - Removed support for the input data types array and object. #208
- Removed support for temporal comparison. Instead explicitly use
sort
andorder
: Removed support for time-only values. #331
Fixed
aggregate_spatial
:- Clarified that feature properties are preserved for vector data cubes and all GeoJSON Features. #270
- Clarified that a
TargetDimensionExists
exception is thrown if the target dimension exists.
apply
andarray_apply
: Fixed broken references to theabsolute
processapply_dimension
: Clarify the behavior for when a dimension gets 'dropped'. #357apply_neighborhood
:array_contains
andarray_find
: Clarify that givingnull
asvalue
always returnsfalse
ornull
respectively, also fixed the incorrect examples. #348array_interpolate_linear
: Return value was incorrectly specified asnumber
ornull
. It must return an array instead. #333is_nan
: Fixed a wrong description of the return value and simplified/clarified the process descriptions overall. #360is_nodata
: Clarified thatNaN
can be considered as a no-data value only if it is explicitly specified as no-data value. #361merge_cubes
: Clarified descriptions to better describe when a merge is possible. #379rename_labels
: Clarified that theLabelsNotEnumerated
exception is thrown ifsource
is empty instead of iftarget
is empty. #321round
: Clarify that the rounding for ties applies not only for integers. #326save_result
: Clarified that the process always returnstrue
(and otherwise throws). #334- Handling of empty geometries is clarified throughout the processes. #404
1.2.0
Documentation: https://processes.openeo.org/1.2.0/
[1.2.0] - 2021-12-13
Added
- New processes in proposal state
fit_curve
predict_curve
ard_normalized_radar_backscatter
andsar_backscatter
: Addedoptions
parameterarray_find
: Added parameterreverse
. #269load_result
:- Added ability to load by (signed) URL (supported since openEO API v1.1.0).
- Added parameters
spatial_extent
,temporal_extent
andbands
. #220
run_udf
: ExceptionInvalidRuntime
added. #273- A new category "math > statistics" has been added #277
Changed
array_labels
: Allow normal arrays to be passed for which the process returns the indices. #243debug
:- Renamed to
inspect
. - The log level
error
does not need to stop execution. - Added proposals for logging several data types to the implementation guide.
- Renamed to
Removed
- Removed the explicit schema for
raster-cube
in thedata
parameters and return values ofrun_udf
andrun_udf_externally
. It's still possible to pass raster-cubes via the "any" data type, but it's discouraged due to scalability issues. #285
Fixed
aggregate_temporal_period
: Clarified which dimension labels are present in the returned data cube. #274ard_surface_reflectance
: The process has been categorized as "optical" instead of "sar".array_modify
: Clarified behavior.save_result
: Clarify how the process works in the different contexts it is used in (e.g. synchronous processing, secondary web service). #288quantiles
:
1.1.0
A lot of changes and new processes since v1.0.0, see the changelog below for details. We introduced a folder with proposals that are unstable and may break in the future but are worth experimenting with.
Note: Some changes are breaking changes, but none of the processes had been (widely) implemented yet.
Documentation: https://processes.openeo.org/1.1.0/
[1.1.0] - 2021-06-29
Added
- New processes in proposal state
array_append
array_concat
array_create
array_create_labeled
array_find_label
array_interpolate_linear
#173array_modify
date_shift
is_infinite
nan
reduce_spatial
- Added return value details (property
returns
) for the schemas with the subtypeprocess-graph
. API#350 apply_neighborhood
: Clarify behavior for data cubes returned by the child processes and for that add the exceptionDataCubePropertiesImmutable
.- Added a guide for implementors that describes numerours implementation details for processes that could not be covered in the specifications itself, for example a recommended implementation for the
if
process. #246
Changed
- Added
proposals
folder for experimental processes. Experimental processes are not covered by the CHANGELOG and MAY include breaking changes! #196, #207, PSC#8- Moved the experimental process
run_udf_externally
to the proposals. - Moved the rarely used and implemented processes
cummax
,cummin
,cumproduct
,cumsum
,debug
,filter_labels
,load_result
,load_uploaded_files
,resample_cube_temporal
to the proposals.
- Moved the experimental process
- Exception messages have been aligned always use ` instead of '. Tooling could render it with CommonMark.
load_collection
andmask_polygon
: Also support multi polygons instead of just polygons. #237run_udf
andrun_udf_externally
: Specify specific (extensible) protocols for UDF URIs.resample_cube_spatial
andresample_spatial
: Aligned with GDAL and addedrms
andsum
options to methods. Also added better descriptions.resample_cube_temporal
: Process has been simplified and only offers the nearest neighbor method now. Theprocess
parameter has been removed, thedimension
parameter was made less restrictive, the parametervalid_within
was added. #194
Deprecated
GeometryCollection
s are discouraged in all relevant processes.
Removed
- Removed the experimental processes
aggregate_spatial_binary
andreduce_dimension_binary
. #258
Fixed
- Clarify that the user workspace is server-side. #225
- Clarify that the
condition
parameter forarray_filter
works also on indices and labels. - Clarify contradicting statements in
filter_temporal
for the default value of thedimension
parameter. By default all temporal dimensions are affected by the process. #203 - Clarify how the parameters passed to the overlap resolver correspond to the data cubes. #184
- Improve and clarify specifications for
is_nan
,is_nodata
,is_valid
. #189 - Improve and clarify specifications for
all
andany
. #189 array_element
: Clarify thatArrayNotLabeled
exception is thrown when parameterlabel
is specified and the given array is not labeled.array_apply
,array_element
,array_filter
: Added theminimum: 0
constraint to all schemas describing zero-based indices (parameterindex
).array_labels
: Clarified the accepted data type for array elements passed to the parameterdata
.merge_cubes
: Clarified the dimension label order after the merge. #212merge_cubes
: Clarified the fourth example. #266- Fixed typos, grammar issues and other spelling-related issues in many of the processes.
- Fixed the examples
array_contains_nodata
andarray_find_nodata
. - Fixed links to openEO glossary and added links to data cube introduction. #216
- Fixed description of
apply_dimension
with regards to reference systems. Made description easier to understand, too. #234 - Clarified disallowed characters in subtype
file-path
. - Clarified that UDF source code must contain a newline/line-break (affects
run_udf
). aggregate_spatial
,aggregate_spatial_binary
: Clarified that Features, Geometries and GeometryCollections are a single entity in computations. Only FeatureCollections are multiple entities. #252aggregate_spatial
: Clarified that the values have no predefined order and reducers such asfirst
andlast
return unpredictable results. #260load_collection
, parameterspatial_extent
: Clarified that all pixels that are inside the bounding box of the given polygons but do not intersect with any polygon have to be set to no-data (null
). #256load_collection
: Clarified that the parameters are recommended to be used in favor offilter_*
processes.aggregate_temporal
andaggregate_temporal_period
: Clarified that reducers are also executed for intervals/periods with no data. #263dimension_labels
: Clarified that the process fails with aDimensionNotAvailable
exception, if a dimension with the specified name does not exist.
1.0.0
First stable release!
Documentation: https://processes.openeo.org/1.0.0/
1.0.0 - 2020-07-31
Added
subtype-schemas.json
: A list of predefined subtypes is available as JSON Schema; Moved over from openeo-api.- Processes:
aggregate_temporal_period
anomaly
apply_neighborhood
climatological_normal
constant
- Process graphs added to:
mean
median
apply_kernel
: Added parametersborder
andreplace_invalid
#170- Folder with examples (
examples/
). #136
Changed
any
andall
: Renamed parametervalues
todata
. #147load_collection
: Parameterproperties
has subtypemetdata-filter
.- Examples adapted to latest API version for
aggregate_temporal
,array_contains
,array_find
,filter_labels
,load_collection
andrename_labels
. #136, API#285 - Some processes were assigned to different categories.
Removed
- Process graph examples from
arccos
,arcsin
,arctan
,arsinh
,artanh
,e
,ln
andpi
. API#285
Fixed
apply_kernel
:load_collection
: Removed outdatedrequire
property fromvalue
callback parameter in process parameterproperties
.filter_bbox
,load_collection
,resample_spatial
: Fixed invalid EPSG code examples.aggregate_temporal
: Fixed outdated message for exceptionTooManyDimensions
.clip
: Fixed examples.linear_scale_range
: Clarify that the process implicitly clips the values. #159mean
: Clarify behaviour for arrays withnull
-values only.mod
: Clarified behaviour. #168resample_*
: Clarified behaviour.first
,last
,max
,mean
,median
,min
,sd
,variance
: Clarify behavior for arrays withnull
-values only.- Clarified (and fixed if necessary) for all processes in the "cubes" category the descriptions for the returned data cube. #149
1.0.0 RC1
1.0.0-rc.1 - 2020-01-31
Added
- Processes:
add
aggregate_spatial
aggregate_spatial_binary
all
any
array_apply
array_contains
array_filter
array_find
array_labels
dimension_labels
drop_dimension
filter_labels
filter_spatial
load_uploaded_files
mask_polygon
reduce_dimension
reduce_dimension_binary
rename_labels
- Support for labeled arrays. API#245
- Process graphs for processes that can be implemented using other pre-defined processes. #137
context
parameters to all processes which support passing process graphs (callbacks) as parameters. #25- Added further examples.
Changed
- The JSON Schema keyword
format
has been replaced with the custom keywordsubtype
. - Schema format/subtype
callback
has been renamed toprocess-graph
. - Default values are now specified on the parameter-level, not in the JSON schemas.
- Parameters are now required by default.
- Parameters are defined as array.
parameter_order
is therefore removed and the name is part of the parameter object. API#239 - Callback parameters have a new, more advanced schema, allowing to define more aspects of the callback parameters. API#239
- Processes supporting multiple data types in parameters or return values with
anyOf
are now listing the data types directly as array.anyOf
is discouraged. - Comparison processes
eq
,gt
,gte
,lt
,lte
,neq
andbetween
accept all data types as input for the operands. add_dimension
: Parametervalue
renamed tolabel
.aggregate_polygon
,aggregate_temporal
,apply_dimension
,array_element
andresample_cube_temporal
: Support labeled arrays. API#245aggregate_polygon
: The data cube implicitly gets restricted to the bounds of the polygons as iffilter_polygon
would have been used beforehand. #101aggregate_temporal
: Parameterlabels
is optional. #19apply_dimension
: Replaced with a completely new definition. #73apply_kernel
: Only supported 2D kernels on the horizontal spatial dimensions. #69clip
: Works on a single value instead on arrays (replaced parameterdata
withx
). #75count
: Renamed parameterexpression
tocondition
.debug
: Replaced with a completely new definition. #82, API#100, API#214filter_bands
: Merged parametersbands
andcommon_names
. #77if
:- Doesn't pass through
null
, but insteadnull
leads to rejecting the condition. - Parameter
expression
renamed tovalue
. - Parameter
accept
is required. - Parameter
reject
defaults tonull
.
- Doesn't pass through
load_collection
:- Parameter
bands
accepts common band names. #77 - Parameter
properties
: Callback parametervalue
renamed tox
.
- Parameter
mask
: Clarifies behavior for missing dimensions in the mask. #55merge_cubes
works with binary reduction operators instead of list-based reducers. #94ndvi
andnormalized_difference
: Rewrite of the processes with a completely new behavior. #60not
: Parameterexpression
renamed tox
.resample_spatial
: Default value of parameteralign
changed fromlower-left
toupper-left
. #61- The following operations work on two values instead on a sequence of values:
and
,divide
,multiply
,or
,subtract
,xor
. #85 product
works as before, but is not an alias ofmultiply
any longer. #85text_begins
,text_contains
,text_ends
:null
values are supported and get passed through.trim
: Renamed totrim_cube
.
Deprecated
filter_bbox
,load_collection
,resample_spatial
: PROJ definitions are deprecated in favor of EPSG codes and WKT2. #58
Removed
- The following processes don't support
ignore_nodata
any longer:and
,divide
,multiply
,or
,subtract
,xor
. #85 - The following processes don't support
binary
any longer:aggregate_temporal
,merge_cubes
,resample_cube_temporal
. #94 - Support for vector data cubes, except for the processes
aggregate_poylgon
andsave_result
. #68 filter_temporal
andload_collection
: Temporal extents don't support time-only intervals any longer. #88mask
: The mask parameter doesn't accept vectors (polygons) any longer. Use processmask_polygon
instead. #110- Processes:
aggregate_polygon
. Useaggregate_spatial
oraggregate_spatial_binary
instead. #62find_collections
: Useload_collection
and manual data discovery through the clients. API#52filter
: Usefilter_labels
instead.filter_polygon
. Usefilter_spatial
instead. #37output
: Usedebug
instead.property
#84reduce
: Usereduce_dimension
ordrop_dimension
instead.run_process_graph
: Use user-defined processes directly in the process graph instead.
Fixed
- Several clarifications in written texts. #86
between
may return anull
value.filter_bbox
,load_collection
: The schema for the propertycrs
in the parametersextent
/spatial_extent
contained invalid JSON Schema.merge_cubes
: Clarified merging behavior with several examples.