Releases: Open-EO/openeo-processes
Releases · Open-EO/openeo-processes
2.0.0-rc.2
Documentation: https://processes.openeo.org/2.0.0-rc.2/
Added
- Implementation guide for implementing OGC API - Processes in openEO
- Unit Tests (see folder
tests, moved specification tests and CI tools todev) date_difference: Allowweekas a unit #506export_collection: New processexport_workspace: New processrun_ogcapi: New processrun_ogcapi_externally: New processstac_modify: New processtext_find: New process
Changed
- Processes that have been marked as stable:
apply_polygon,date_between,date_shift,filter_labels,inspect - Clarified for various mathematical functions the defined input and output ranges.
Mention thatNaNis returned outside of the defined input range where possible. - Clarified for several comparison processes how
NaNvalues have to be handled. - Clarified for various processes the handling of no-data values and
null, see also the implementation guide. #480 - Added a section about character encodings to the implementation guide.
Removed any character encoding related wording from the process specifications itself. - Added a uniqueness contraint to various array-typed parameters (e.g. lists of dimension names or labels)
all: For empty arrays, returnstrueinstead of no-data. #494any: For empty arrays, returnsfalseinstead of no-data. #494apply_polygon: Renamedpolygonsparameter togeometriesfor better alignment with other geometry handling processes. #511clip: Throw an exception if min > max #472is_nan: Returnfalseinstead oftruefor non-numerical data types. #486save_results: Returns the STAC resource instead of booleantrueAPI#376
Fixed
- Clarified for various mathematical functions the defined input and output ranges. Mention that
NaNis returned outside of the defined input range where possible. - Clarified for various processes the handling of no-data values and null, see also the implementation guide. #480
add_dimension: Clearly define behaviour for adding spatial dimensionsapply_polygon: Replaced outdated usage ofraster-cubesubtype withdatacubeand dimensions. #524aggregate_spatialandload_geojson: Dimensions must by of typegeometry, notgeometriesaggregate_spatial: Clarified that the output geometries are unchanged compared to the input geometries. #499aggregate_temporalandaggregate_temporal_period: Clarified that the process throws aDimensionNotAvailableexception when no temporal dimension exists.aggregate_temporal_period: Removed unused exceptionDistinctDimensionLabelsRequired.aggregate_temporal_period: Clarified that the definition of weeks follows ISO 8601.apply_polygon: Replaced outdated usage ofraster-cubesubtype withdatacubeand dimensions. #524array_interpolate_linear: Apply interpolation to NaN and no-data values.cummax,cummin,cumproduct,cumsum: Clarified the descriptions around theignore_nodataparameter.divide: Clarified behavior for division by 0between: Clarify thatnullis passed through.eqandneq: Explicitly set the minimum value for thedeltaparameter.filter_bbox,load_collection,load_stac: Clarified that the bounding box is reprojected to the CRS of the spatial data cube dimensions if required.filter_spatial: Clarified that masking is applied using the given geometries. #469load_collectionandload_stac:load_stac: Clarify handling of thepropertiesparameter in the context of STAC APIs and static catalogs. #536load_uploaded_filesandrun_udf: Clarify handling of file paths and addedFileNotFoundexception. #461mask: Add missing exceptionIncompatibleDataCubes#538mod: Clarified behavior for y = 0run_udf: Simplified and clarified the schema fordata- no functional change.sqrt: Clarified that NaN is returned for negative numbers.- Clarify allowed
FeatureCollectiongeometries inload_collection,mask_polygon,apply_polygon, andload_stac#527
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_betweendate_differencefilter_vectorflatten_dimensionsload_geojsonload_urlunflatten_dimensionvector_buffervector_reprojectvector_to_random_pointsvector_to_regular_points
add_dimension: Added new dimension typegeometry. #68
Changed
- Moved from proposals to stable processes:
array_appendarray_concatarray_createarray_interpolate_linearresample_cube_temporal
- Added better support for labeled arrays. Labels are not discarded in all cases anymore. Affected processes:
array_appendarray_concatarray_modify
array_modify: Change the default value forlengthfrom1to0. #312- Renamed
text_mergetotext_concatfor better alignment witharray_concatand existing implementations. apply_neighborhood:- Allow
nullas default value for units. - Input and Output for the
processcan either be data cubes or arrays (if one-dimensional). #387
- Allow
run_udf: Allow all data types instead of just objects in thecontextparameter. #376load_collectionandload_result/load_stac:- Require at least one band if not set to
null. #372 - Added a
NoDataAvailableexception
- Require at least one band if not set to
aggregate_temporal,filter_temporal,load_collectionandload_result/load_stac:inspect: The parametermessagehas been moved to be the second argument. #369maskandmerge_cubes: The spatial dimensionsxandycan now be resampled implicitly instead of throwing an error. #402save_result: Added a more concreteDataCubeEmptyexception.- New definition for
aggregate_spatial: - Renamed
create_raster_cubetocreate_data_cube. #68 - Updated the processes based on the subtypes
raster-cubeorvector-cubeto work with the subtypedatacubeinstead. #68 sortandorder: The ordering of ties is not defined anymore. #409quantiles: Parameterprobabilitiesprovided as array must be in ascending order. #297fit_curveandpredict_curve: Heavily modified specifications.fit_curveworks on arrays instead of data cubes,predict_curvedoesn't support gap filling anymore, clarify no-data handling, ... #425climatological_normal: Theclimatology_periodparameter 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
examplesfolder has been migrated to the openEO Community Examples repository. between: Support for temporal comparison. Usedate_betweeninstead. #331- Deprecated
GeometryCollectionsare 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,gteandarray_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
sortandorder: 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
TargetDimensionExistsexception is thrown if the target dimension exists.
applyandarray_apply: Fixed broken references to theabsoluteprocessapply_dimension: Clarify the behavior for when a dimension gets 'dropped'. #357apply_neighborhood:array_containsandarray_find: Clarify that givingnullasvaluealways returnsfalseornullrespectively, also fixed the incorrect examples. #348array_interpolate_linear: Return value was incorrectly specified asnumberornull. 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 thatNaNcan 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 theLabelsNotEnumeratedexception is thrown ifsourceis empty instead of iftargetis 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_curvepredict_curve
ard_normalized_radar_backscatterandsar_backscatter: Addedoptionsparameterarray_find: Added parameterreverse. #269load_result:- Added ability to load by (signed) URL (supported since openEO API v1.1.0).
- Added parameters
spatial_extent,temporal_extentandbands. #220
run_udf: ExceptionInvalidRuntimeadded. #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
errordoes 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-cubein thedataparameters and return values ofrun_udfandrun_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_appendarray_concatarray_createarray_create_labeledarray_find_labelarray_interpolate_linear#173array_modifydate_shiftis_infinitenanreduce_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
ifprocess. #246
Changed
- Added
proposalsfolder 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_externallyto the proposals. - Moved the rarely used and implemented processes
cummax,cummin,cumproduct,cumsum,debug,filter_labels,load_result,load_uploaded_files,resample_cube_temporalto the proposals.
- Moved the experimental process
- Exception messages have been aligned always use ` instead of '. Tooling could render it with CommonMark.
load_collectionandmask_polygon: Also support multi polygons instead of just polygons. #237run_udfandrun_udf_externally: Specify specific (extensible) protocols for UDF URIs.resample_cube_spatialandresample_spatial: Aligned with GDAL and addedrmsandsumoptions to methods. Also added better descriptions.resample_cube_temporal: Process has been simplified and only offers the nearest neighbor method now. Theprocessparameter has been removed, thedimensionparameter was made less restrictive, the parametervalid_withinwas added. #194
Deprecated
GeometryCollections are discouraged in all relevant processes.
Removed
- Removed the experimental processes
aggregate_spatial_binaryandreduce_dimension_binary. #258
Fixed
- Clarify that the user workspace is server-side. #225
- Clarify that the
conditionparameter forarray_filterworks also on indices and labels. - Clarify contradicting statements in
filter_temporalfor the default value of thedimensionparameter. 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
allandany. #189 array_element: Clarify thatArrayNotLabeledexception is thrown when parameterlabelis specified and the given array is not labeled.array_apply,array_element,array_filter: Added theminimum: 0constraint 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_nodataandarray_find_nodata. - Fixed links to openEO glossary and added links to data cube introduction. #216
- Fixed description of
apply_dimensionwith 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 asfirstandlastreturn 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_temporalandaggregate_temporal_period: Clarified that reducers are also executed for intervals/periods with no data. #263dimension_labels: Clarified that the process fails with aDimensionNotAvailableexception, 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_periodanomalyapply_neighborhoodclimatological_normalconstant
- Process graphs added to:
meanmedian
apply_kernel: Added parametersborderandreplace_invalid#170- Folder with examples (
examples/). #136
Changed
anyandall: Renamed parametervaluestodata. #147load_collection: Parameterpropertieshas subtypemetdata-filter.- Examples adapted to latest API version for
aggregate_temporal,array_contains,array_find,filter_labels,load_collectionandrename_labels. #136, API#285 - Some processes were assigned to different categories.
Removed
- Process graph examples from
arccos,arcsin,arctan,arsinh,artanh,e,lnandpi. API#285
Fixed
apply_kernel:load_collection: Removed outdatedrequireproperty fromvaluecallback 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:
addaggregate_spatialaggregate_spatial_binaryallanyarray_applyarray_containsarray_filterarray_findarray_labelsdimension_labelsdrop_dimensionfilter_labelsfilter_spatialload_uploaded_filesmask_polygonreduce_dimensionreduce_dimension_binaryrename_labels
- Support for labeled arrays. API#245
- Process graphs for processes that can be implemented using other pre-defined processes. #137
contextparameters to all processes which support passing process graphs (callbacks) as parameters. #25- Added further examples.
Changed
- The JSON Schema keyword
formathas been replaced with the custom keywordsubtype. - Schema format/subtype
callbackhas 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_orderis 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
anyOfare now listing the data types directly as array.anyOfis discouraged. - Comparison processes
eq,gt,gte,lt,lte,neqandbetweenaccept all data types as input for the operands. add_dimension: Parametervaluerenamed tolabel.aggregate_polygon,aggregate_temporal,apply_dimension,array_elementandresample_cube_temporal: Support labeled arrays. API#245aggregate_polygon: The data cube implicitly gets restricted to the bounds of the polygons as iffilter_polygonwould have been used beforehand. #101aggregate_temporal: Parameterlabelsis 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 parameterdatawithx). #75count: Renamed parameterexpressiontocondition.debug: Replaced with a completely new definition. #82, API#100, API#214filter_bands: Merged parametersbandsandcommon_names. #77if:- Doesn't pass through
null, but insteadnullleads to rejecting the condition. - Parameter
expressionrenamed tovalue. - Parameter
acceptis required. - Parameter
rejectdefaults tonull.
- Doesn't pass through
load_collection:- Parameter
bandsaccepts common band names. #77 - Parameter
properties: Callback parametervaluerenamed tox.
- Parameter
mask: Clarifies behavior for missing dimensions in the mask. #55merge_cubesworks with binary reduction operators instead of list-based reducers. #94ndviandnormalized_difference: Rewrite of the processes with a completely new behavior. #60not: Parameterexpressionrenamed tox.resample_spatial: Default value of parameteralignchanged fromlower-lefttoupper-left. #61- The following operations work on two values instead on a sequence of values:
and,divide,multiply,or,subtract,xor. #85 productworks as before, but is not an alias ofmultiplyany longer. #85text_begins,text_contains,text_ends:nullvalues 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_nodataany longer:and,divide,multiply,or,subtract,xor. #85 - The following processes don't support
binaryany longer:aggregate_temporal,merge_cubes,resample_cube_temporal. #94 - Support for vector data cubes, except for the processes
aggregate_poylgonandsave_result. #68 filter_temporalandload_collection: Temporal extents don't support time-only intervals any longer. #88mask: The mask parameter doesn't accept vectors (polygons) any longer. Use processmask_polygoninstead. #110- Processes:
aggregate_polygon. Useaggregate_spatialoraggregate_spatial_binaryinstead. #62find_collections: Useload_collectionand manual data discovery through the clients. API#52filter: Usefilter_labelsinstead.filter_polygon. Usefilter_spatialinstead. #37output: Usedebuginstead.property#84reduce: Usereduce_dimensionordrop_dimensioninstead.run_process_graph: Use user-defined processes directly in the process graph instead.
Fixed
- Several clarifications in written texts. #86
betweenmay return anullvalue.filter_bbox,load_collection: The schema for the propertycrsin the parametersextent/spatial_extentcontained invalid JSON Schema.merge_cubes: Clarified merging behavior with several examples.