Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Added¶
Changed¶
Removed¶
Remove unused/outdated
XarrayDataCube.plot()and its related matplotlib dependency (#472)
Fixed¶
DataCube.sar_backscatter(): add corresponding band names to metadata when enabling “mask”, “contributing_area”, “local_incidence_angle” or “ellipsoid_incidence_angle” (#804)Proactively refresh access/bearer token in
MultiBackendJobManagerbefore launching a job start thread (#817)Connection.list_services(): Fix list access error for federation extension
[0.45.0] - 2025-09-17¶
Added¶
Initial/experimental implementation of artifact upload helper (Open-EO/openeo-api#566)
Changed¶
MultiBackendJobManager: starting of jobs (which can take long in some situations) is now done in side-threads to avoid blocking of the main job management thread, improving its responsiveness and allowing better overall throughput. To make this possible, a new methodget_by_indices()was added to theJobDatabaseInterfaceAPI. Make sure to implement this method if you have a customJobDatabaseInterfaceimplementation that does not provide this yet. (#719)
[0.44.0] - 2025-08-20¶
Added¶
Official support for Python 3.13 (include Python 3.13 in unit test matrix on GitHub Actions) (#653)
Fixed¶
[0.43.0] - 2025-07-02¶
Added¶
Changed¶
openeo.UDF(): automatically un-indent given UDF code (#782)
Fixed¶
Fix compatibility with PySTAC 1.12 (#715)
[0.42.1] - 2025-06-06¶
Changed¶
Relax
urllib3dependency constraint below 2.0.0 to unblock dependency resolution issues in some old (Python 3.8) build contexts
[0.42.0] - 2025-05-28¶
Added¶
openeo.testing.io.TestDataLoader: unit test utility to compactly load (and optionally preprocess) tests data (text/JSON/…)openeo.Connection: automatically retry API requests on429 Too Many RequestsHTTP errors, with appropriate delay if possible (#441)Introduced
pixel_toleranceargument inopeneo.testing.resultshelpers to specify the ignorable fraction of significantly differing pixels. (#776)BatchJob.start_and_wait(): addrequire_successargument (on by default) to control whether an exception should be raised automatically on job failure.
Changed¶
DataCube.apply_dimension(): not explicitly specifying thedimensionargument is deprecated and will trigger warnings (#774)BatchJob.start_and_wait(): all arguments must be specified as keyword arguments to eliminate the risk of positional mix-ups between all its heterogeneous arguments and flags.
[0.41.0] - 2025-05-14¶
Added¶
Changed¶
Eliminate deprecated
utcnowusage patterns. IntroduceRfc3339.now_utc()method (as replacement for deprecatedutcnow()method) to simplify finding deprecatedutcnowusage in user code. (#760)Connection.list_jobs(): change defaultlimitto 100 (instead of fake “unlimited” which was arbitrarily capped in practice anyway) (#677)
Fixed¶
Preserve original non-spatial dimensions in
CubeMetadata.resample_cube_spatial()(Open-EO/openeo-python-driver#397)
[0.40.0] - 2025-04-14¶
Added¶
Changed¶
When the bands provided to
Connection.load_stac(..., bands=[...])do not fully match the bands the client extracted from the STAC metadata, a warning will be triggered, but the provided band names will still be used during the client-side preparation of the process graph. This is a pragmatic approach to bridge the gap between differing interpretations of band detection in STAC. Note that this might produce process graphs that are technically invalid and might not work on other backends or future versions of the backend you currently use. It is recommended to consult with the provider of the STAC metadata and openEO backend on the correct and future-proof band names. (#752)
Fixed¶
STACAPIJobDatabase.get_by_status()now always returns apandas.DataFramewith an index compatible withMultiBackendJobManager. (#707)
[0.39.1] - 2025-02-26¶
Fixed¶
Fix legacy usage pattern to append
export_workspacetosave_resultwith genericprocess()helper method (#742)
[0.39.0] - 2025-02-25¶
Added¶
Add support for
export_workspaceprocess (#720)Add support for processing parameter extension (e.g. default job options) in
build_process_dict(#731)
Changed¶
DataCube.save_result()(and related methods) now return aSaveResult/StacResourceobject instead of anotherDataCubeobject to be more in line with the officialsave_resultspecification (#402, #720)datacube_from_flat_graphnow returns aSaveResultinstead of aDataCubewhen appropriate (#402, #732, #733)Deprecate
BatchJob.run_synchronousin favor ofBatchJob.start_and_wait(#570).
Fixed¶
Fix incompatibility problem when combining
load_stacandresample_spatial(#737)
[0.38.0] - 2025-02-12¶
Added¶
Add initial support for accessing Federation Extension related metadata (#668)
Changed¶
Improved tracking of metadata changes with
resample_spatialandresample_cube_spatial(#690)Move
ComparableVersiontoopeneo.utils.version(related to #611)Deprecate
openeo.rest.rest_capabilities.RESTCapabilitiesand introduce replacementopeneo.rest.capabilities.OpenEoCapabilities(#611, #610)MultiBackendJobManager: start new jobs before downloading the results of finished jobs to use time more efficiently (#633)
Removed¶
Remove unnecessary base class
openeo.capabilities.Capabilities#611
Fixed¶
CsvJobDatabase: workaround GeoPandas issue (on Python>3.9) when there is a column named “crs” (#714)
[0.37.0] - 2025-01-21 - “SAP10” release¶
Added¶
Added
show_error_logsargument tocube.execute_batch()/job.start_and_wait()/… to toggle the automatic printing of error logs on failure (#505)Added
Connection.web_editor()to build link to the openEO backend in the openEO Web EditorAdd support for
log_levelincreate_job()andexecute_job()(#704)Add initial support for “geometry” dimension type in
CubeMetadata(#705)Add support for parameterized
bandsargument inload_stac()Argument
spatial_extentinload_collection()/load_stac(): add support for Shapely objects, loading GeoJSON from a local path and loading geometry from GeoJSON/GeoParquet URL. (#678)
Changed¶
Raise exception when providing empty bands array to
load_collection/load_stac(#424, Open-EO/openeo-processes#372)Start showing deprecation warnings on usage of GeoJSON “GeometryCollection” (in
filter_spatial,aggregate_spatial,chunk_polygon,mask_polygon). Use a GeoJSON FeatureCollection instead. (#706, Open-EO/openeo-processes#389)The
contextparameter is now used inexecute_local_udf(#556
Fixed¶
Clear capabilities cache on login (#254)
[0.36.0] - 2024-12-10¶
Added¶
Automatically use
load_urlwhen providing a URL as geometries toDataCube.aggregate_spatial(),DataCube.mask_polygon(), etc. (#104, #457)Allow specifying
limitwhen listing batch jobs withConnection.list_jobs()(#677)Add
additionalandjob_optionsarguments toConnection.download(),Datacube.download()and related (#681)
Changed¶
MultiBackendJobManager: costs has been added as a column in tracking databases ([#588])When passing a path/string as
geometrytoDataCube.aggregate_spatial(),DataCube.mask_polygon(), etc.: this is not translated automatically anymore to deprecated, non-standardread_vectorusage. Instead, if it is a local GeoJSON file, the GeoJSON data will be loaded directly client-side. (#104, #457)Move
read()method from generalJobDatabaseInterfaceto more specificFullDataFrameJobDatabase(#680)Align
additionalandjob_optionsarguments inConnection.create_job(),DataCube.create_job()and related. Also, follow official spec more closely. (#683, Open-EO/openeo-api#276)
Fixed¶
[0.35.0] - 2024-11-19¶
Added¶
Added
MultiResulthelper class to build process graphs with multiple result nodes (#391)
Fixed¶
MultiBackendJobManager: Fix issue with duplicate job starting across multiple backends (#654)MultiBackendJobManager: Fix encoding issue of job metadata inon_job_done(#657)MultiBackendJobManager: AvoidSettingWithCopyWarning(#641)Avoid creating empty file if asset download request failed.
MultiBackendJobManager: avoid dtype loading mistakes inCsvJobDatabaseon empty columns (#656)MultiBackendJobManager: restore logging of job status histogram duringrun_jobs(#655)
[0.34.0] - 2024-10-31¶
Removed¶
Drop support for Python 3.7 (#578)
Fixed¶
Fixed broken support for
titleanddescriptionjob properties inexecute_batch()(#652)
[0.33.0] - 2024-10-18¶
Added¶
Added
DataCube.load_stac()to also support creating aload_stacbased cube without a connection (#638)MultiBackendJobManager: Addedinitialize_from_df(df)(toCsvJobDatabaseandParquetJobDatabase) to initialize (and persist) the job database from a given DataFrame. Also addedcreate_job_db()factory to easily create a job database from a given dataframe and its type guessed from filename extension. (#635)MultiBackendJobManager.run_jobs()now returns a dictionary with counters/stats about various events during the full run of the job manager (#645)Added (experimental)
ProcessBasedJobCreatorto be used asstart_jobcallable withMultiBackendJobManagerto create multiple jobs from a single parameterized process (e.g. a UDP or remote process definition) (#604)
Fixed¶
When using
DataCube.load_collection()without a connection, it is not necessary anymore to also explicitly setfetch_metadata=False(#638)
[0.32.0] - 2024-09-27¶
Added¶
load_stac/metadata_from_stac: add support for extracting actual temporal dimension metadata (#567)MultiBackendJobManager: addcancel_running_job_afteroption to automatically cancel jobs that are running for too long (#590)Added
openeo.api.process.Parameterhelper to easily create a “spatial_extent” UDP parameterWrap OIDC token request failure in more descriptive
OidcException(related to #624)Added
auto_add_save_resultoption (on by default) to disable automatic addition ofsave_resultnode ondownload/create_job/execute_batch(#513)Add support for
apply_vectorcubeUDF signature inrun_udf_code(Open-EO/openeo-geopyspark-driver#881)MultiBackendJobManager: add API to the update loop in a separate thread, allowing controlled interruption.
Changed¶
MultiBackendJobManager: changed job metadata storage API, to enable working with large databasesDataCube.apply_polygon(): renamepolygonsargument togeometries, but keep support for legacypolygonsfor now (#592, #511)Disallow ambiguous single string argument in
DataCube.filter_temporal()(#628)Automatic adding of
save_resultfromdownload()orcreate_job(): inspect whole process graph for pre-existingsave_resultnodes (related to #623, #401, #583)Disallow ambiguity of combining explicit
save_resultnodes and implicitsave_resultaddition fromdownload()/create_job()calls withformat(related to #623, #401, #583)
Fixed¶
apply_dimensionwith atarget_dimensionargument was not correctly adjusting datacube metadata on the client side, causing a mismatch.Preserve non-spatial dimension metadata in
aggregate_spatial(#612)
[0.31.0] - 2024-07-26¶
Added¶
Add experimental
openeo.testing.resultssubpackage with reusable test utilities for comparing batch job results with reference dataMultiBackendJobManager: add initial support for storing job metadata in Parquet file (instead of CSV) (#571)Add
Connection.authenticate_oidc_access_token()to set up authorization headers with an access token that is obtained “out-of-band” (#598)Add
JobDatabaseInterfaceto allow custom job metadata storage withMultiBackendJobManager(#571)
[0.30.0] - 2024-06-18¶
Added¶
Add
openeo.udf.run_code.extract_udf_dependencies()to extract UDF dependency declarations from UDF code (related to Open-EO/openeo-geopyspark-driver#237)Document PEP 723 based Python UDF dependency declarations (Open-EO/openeo-geopyspark-driver#237)
Added more
openeo.api.process.Parameterhelpers to easily create “bounding_box”, “date”, “datetime”, “geojson” and “temporal_interval” parameters for UDP construction.Added convenience method
Connection.load_stac_from_job(job)to easily load the results of a batch job with theload_stacprocess (#566)load_stac/metadata_from_stac: add support for extracting band info from “item_assets” in collection metadata (#573)Added initial
openeo.testingsubmodule for reusable test utilities
Fixed¶
Initial fix for broken
DataCube.reduce_temporal()afterload_stac(#568)
[0.29.0] - 2024-05-03¶
Added¶
Changed¶
OIDC device code flow: hide progress bar on completed (or timed out) authentication
[0.28.0] - 2024-03-18¶
Added¶
Changed¶
Changed default
chunk_sizeof variousdownloadfunctions from None to 10MB. This improves the handling of large downloads and reduces memory usage. (#528)Connection.execute()andDataCube.execute()now have aauto_decodeargument. If set to True (default) the response will be decoded as a JSON and throw an exception if this fails, if set to False the rawrequests.Responseobject will be returned. (#499)
Fixed¶
Preserve geo-referenced
xandycoordinates inexecute_local_udf(#549)
[0.27.0] - 2024-01-12¶
Added¶
Add
DataCube.filter_labels()
Changed¶
Update autogenerated functions/methods in
openeo.processesto definitions from openeo-processes project version 2.0.0-rc1. This removescreate_raster_cube,fit_class_random_forest,fit_regr_random_forestandsave_ml_model. Although removed from openeo-processes 2.0.0-rc1, support forload_result,predict_random_forestandload_ml_modelis preserved but deprecated. (#424)Show more informative error message on
403 Forbiddenerrors from CDSE firewall (#512)Handle API error responses more strict and avoid hiding possibly important information in JSON-formatted but non-compliant error responses.
Fixed¶
[0.26.0] - 2023-11-27 - “SRR6” release¶
Added¶
Support new UDF signature:
def apply_datacube(cube: DataArray, context: dict) -> DataArray(#310)Add
collection_property()helper to easily build collection metadata property filters forConnection.load_collection()(#331)Add
DataCube.apply_polygon()(standardized version of experimentalchunk_polygon) (#424)Various improvements to band mapping with the Awesome Spectral Indices feature. Allow explicitly specifying the satellite platform for band name mapping (e.g. “Sentinel2” or “LANDSAT8”) if cube metadata lacks info. Follow the official band mapping from Awesome Spectral Indices better. Allow manually specifying the desired band mapping. (#485, #501)
Also attempt to automatically refresh OIDC access token on a
401 TokenInvalidresponse (in addition to403 TokenInvalid) (#508)Add
Parameter.object()factory forobjecttype parameters
Removed¶
Remove custom spectral indices “NDGI”, “NDMI” and “S2WI” from “extra-indices-dict.json” that were shadowing the official definitions from Awesome Spectral Indices (#501)
Fixed¶
Initial support for “spectral indices” that use constants defined by Awesome Spectral Indices (#501)
[0.25.0] - 2023-11-02¶
Changed¶
Introduce
OpenEoApiPlainErrorfor API error responses that are not well-formed for better distinction with properly formed API error responses (OpenEoApiError). (#491).
Fixed¶
Fix missing
validatesupport inLocalConnection.execute(#493)
[0.24.0] - 2023-10-27¶
Added¶
Add
DataCube.reduce_spatial()Added option (enabled by default) to automatically validate a process graph before execution. Validation issues just trigger warnings for now. (#404)
Added “Sentinel1” band mapping support to “Awesome Spectral Indices” wrapper (#484)
Run tests in GitHub Actions against Python 3.12 as well
Changed¶
Enforce
XarrayDataCubedimension order inexecute_local_udf()to (t, bands, y, x) to improve UDF interoperability with existing back-end implementations.
[0.23.0] - 2023-10-02¶
Added¶
Support year/month shorthand date notations in temporal extent arguments of
Connection.load_collection,DataCube.filter_temporaland related (#421)Support parameterized
bandsinload_collection(#471)Allow specifying item schema in
Parameter.array()Support “subtype” and “format” schema options in
Parameter.string()
Changed¶
Before doing user-defined process (UDP) listing/creation: verify that back-end supports that (through openEO capabilities document) to improve error message.
Skip metadata-based normalization/validation and stop showing unhelpful warnings/errors like “No cube:dimensions metadata” or “Invalid dimension” when no metadata is available client-side anyway (e.g. when using
datacube_from_process, parameterized cube building, …). (#442)
Removed¶
Bumped minimal supported Python version to 3.7 (#460)
Fixed¶
Support handling of “callback” parameters in
openeo.processescallables (#470)
[0.22.0] - 2023-08-09¶
Added¶
Processes that take a CRS as argument now try harder to normalize your input to a CRS representation that aligns with the openEO API (using
pyprojlibrary when available) (#259)Initial
load_geojsonsupport withConnection.load_geojson()(#424)Initial
load_url(for vector cubes) support withConnection.load_url()(#424)Add
VectorCube.apply_dimension()(Open-EO/openeo-python-driver#197)Support lambda based property filtering in
Connection.load_stac()(#425)VectorCube: initial support forfilter_bands,filter_bbox,filter_labelsandfilter_vector(#459)
Changed¶
Connectionbased requests: always use finite timeouts by default (20 minutes in general, 30 minutes for synchronous execute requests) (#454)
Fixed¶
Fix: MultibackendJobManager should stop when finished, also when job finishes with error (#452)
[0.21.1] - 2023-07-19¶
Fixed¶
Fix
spatial_extent/temporal_extenthandling in “localprocessing”load_stac(#451)
[0.21.0] - 2023-07-19¶
Added¶
Add support in
VectoCube.download()andVectorCube.execute_batch()to guess output format from extension of a given filename (#401, #449)Added
load_stacfor Client Side Processing, based on the openeo-processes-dask implementation
Changed¶
Updated docs for Client Side Processing with
load_stacexamples, available at https://open-eo.github.io/openeo-python-client/cookbook/localprocessing.html
Fixed¶
[0.20.0] - 2023-06-30¶
Added¶
Added automatically renewal of access tokens with OIDC client credentials grant (
Connection.authenticate_oidc_client_credentials) (#436)
Changed¶
Simplified
BatchJobmethodsstart(),stop(),describe(), … Legacy aliasesstart_job(),describe_job(), … are still available and don’t trigger a deprecation warning for now. (#280)Update
openeo.extra.spectral_indicesto Awesome Spectral Indices v0.4.0
[0.19.0] - 2023-06-16¶
Added¶
Generalized support for setting (default) OIDC provider id through env var
OPENEO_AUTH_PROVIDER_ID#419Added
OidcDeviceCodePollTimeout: specific exception for OIDC device code flow poll timeoutsOn-demand preview: Added
DataCube.preview()to generate a XYZ service with the process graph and display a map widget
Fixed¶
[0.18.0] - 2023-05-31¶
Added¶
Support OIDC client credentials grant from a generic
connection.authenticate_oidc()call through environment variables #419
Fixed¶
Fixed UDP parameter conversion issue in
build_process_dictwhen using parameter incontextofrun_udf#431
[0.17.0] and [0.17.1] - 2023-05-16¶
Added¶
Connection.authenticate_oidc(): add argumentmax_poll_timeto set maximum device code flow poll timeShow progress bar while waiting for OIDC authentication with device code flow, including special mode for in Jupyter notebooks. (#237)
Basic support for
load_stacprocess withConnection.load_stac()(#425)Add
DataCube.aggregate_spatial_window()
Fixed¶
Include “scope” parameter in OIDC token request with client credentials grant.
Support fractional seconds in
Rfc3339.parse_datetime(#418)
[0.16.0] - 2023-04-17 - “SRR5” release¶
Added¶
Full support for user-uploaded files (
/filesendpoints) (#377)Initial, experimental “local processing” feature to use openEO Python Client Library functionality on local GeoTIFF/NetCDF files and also do the processing locally using the
openeo_processes_daskpackage (#338)Add
BatchJob.get_results_metadata_url().
Changed¶
Connection.list_files()returns a list ofUserFileobjects instead of a list of metadata dictionaries. UseUserFile.metadatato get the original dictionary. (#377)DataCube.aggregate_spatial()returns aVectorCubenow, instead of aDataCube(#386). The (experimental)fit_class_random_forest()andfit_regr_random_forest()methods moved accordingly to theVectorCubeclass.Improved documentation on
openeo.processesandProcessBuilder(#390).DataCube.create_job()andConnection.create_job()now require keyword arguments for all but the first argument for clarity. (#412).Pass minimum log level to backend when retrieving batch job and secondary service logs. (Open-EO/openeo-api#485, Open-EO/openeo-python-driver#170)
Removed¶
Dropped support for pre-1.0.0 versions of the openEO API (#134):
Remove
ImageCollectionClientand related helpers (now unused leftovers from version 0.4.0 and earlier). (Also #100)Drop support for pre-1.0.0 job result metadata
Require at least version 1.0.0 of the openEO API for a back-end in
Connectionand all its methods.
Fixed¶
Reinstated old behavior of authentication related user files (e.g. refresh token store) on Windows: when
PrivateJsonFilemay be readable by others, just log a message instead of raisingPermissionError(387)VectorCube.create_job()andMlModel.create_job()are properly aligned withDataCube.create_job()regarding setting job title, description, etc. (#412).More robust handling of billing currency/plans in capabilities (#414)
Avoid blindly adding a
save_resultnode fromDataCube.execute_batch()when there is already one (#401)
[0.15.0] - 2023-03-03¶
Added¶
The openeo Python client library can now also be installed with conda (conda-forge channel) (#176)
Allow using a custom
requests.Sessioninopeneo.rest.auth.oidclogic
Changed¶
Less verbose log printing on failed batch job #332
Improve (UTC) timezone handling in
openeo.util.Rfc3339and addrfc3339.today()/rfc3339.utcnow().
[0.14.1] - 2023-02-06¶
Fixed¶
Fine-tuned
XarrayDataCubetests for conda building and packaging (#176)
[0.14.0] - 2023-02-01¶
Added¶
Jupyter integration: show process graph visualization of
DataCubeobjects instead of genericrepr. (#336)Add
Connection.vectorcube_from_paths()to load a vector cube from files (on back-end) or URLs withload_uploaded_filesprocess.Python 3.10 and 3.11 are now officially supported (test run now also for 3.10 and 3.11 in GitHub Actions, #346)
Support for simplified OIDC device code flow, (#335)
Added MultiBackendJobManager, based on implementation from openeo-classification project (#361)
Added resilience to MultiBackendJobManager for backend failures (#365)
Changed¶
execute_batchalso skips temporal502 Bad Gateway errors. #352
Fixed¶
Fixed/improved math operator/process support for
DataCubes in “apply” mode (non-“band math”), allowing expressions like10 * cube.log10()and~(cube == 0)(#123)Support
PrivateJsonFilepermissions properly on Windows, using oschmod library. (#198)Fixed some broken unit tests on Windows related to path (separator) handling. (#350)
[0.13.0] - 2022-10-10 - “UDF UX” release¶
Added¶
Add
max_cloud_coverargument toload_collection()to simplify setting maximum cloud cover (propertyeo:cloud_cover) (#328)
Changed¶
Improve default dimension metadata of a datacube created with
openeo.rest.datacube.DataCube.load_disk_collectionDataCube.download(): only automatically addsave_resultnode when there is none yet.Deprecation warnings: make sure they are shown by default and can be hidden when necessary.
Rework and improve
openeo.UDFhelper class for UDF usage (#312).allow loading directly from local file or URL
autodetect
runtimefrom file/URL suffix or source codehide implementation details around
dataargument (e.g.data={"from_parameter": "x"})old usage patterns of
openeo.UDFandDataCube.apply_dimension()still work but trigger deprecation warnings
Show warning when using
load_collectionproperty filters that are not defined in the collection metadata (summaries).
[0.12.1] - 2022-09-15¶
Changed¶
Eliminate dependency on
distutils.version.LooseVersionwhich started to trigger deprecation warnings (#316).
Removed¶
Remove old
Connection.oidc_auth_user_id_token_as_bearerworkaround flag (#300)
Fixed¶
Fix refresh token handling in case of OIDC token request with refresh token grant (#326)
[0.12.0] - 2022-09-09¶
Added¶
Allow passing raw JSON string, JSON file path or URL to
Connection.download(),Connection.execute()andConnection.create_job()Add support for reverse math operators on DataCube in
applymode (#323)Add
DataCube.print_json()to simplify exporting process graphs in Jupyter or other interactive environments (#324)Raise
DimensionAlreadyExistsExceptionwhen trying toadd_dimension()a dimension with existing name (Open-EO/openeo-geopyspark-driver#205)
Changed¶
DataCube.execute_batch()now also guesses the output format from the filename, and allows usingformatargument next to the currentout_formatto align with theDataCube.download()method. (#240)Better client-side handling of merged band name metadata in
DataCube.merge_cubes()
Removed¶
[0.11.0] - 2022-07-02¶
Added¶
Add support for passing a PGNode/VectorCube as geometry to
aggregate_spatial,mask_polygon, …Add support for second order callbacks e.g.
is_validincountinreduce_dimension(#317)
Changed¶
Rename
RESTJobclass name to less cryptic and more user-friendlyBatchJob. OriginalRESTJobis still available as deprecated alias. (#280)Dropped default reducer (“max”) from
DataCube.reduce_temporal_simple()Various documentation improvements:
Drop hardcoded
h5netcdfengine fromXarrayIO.from_netcdf_file()andXarrayIO.to_netcdf_file()(#314)Changed argument name of
Connection.describe_collection()fromnametocollection_idto be more in line with other methods/functions.
Fixed¶
Fix
context/conditionconfusion bug withcountcallback inDataCube.reduce_dimension()(#317)
[0.10.1] - 2022-05-18 - “LPS22” release¶
Added¶
Add
contextparameter toDataCube.aggregate_spatial(),DataCube.apply_dimension(),DataCube.apply_neighborhood(),DataCube.apply(),DataCube.merge_cubes(). (#291)Add
DataCube.fit_regr_random_forest()(#293)Add
PGNode.update_arguments(), which combined withDataCube.result_node()allows to do advanced process graph argument tweaking/updating without using._pghacks.JobResults.download_files(): also download (by default) the job result metadata as STAC JSON file (#184)OIDC handling in
Connection: try to automatically refresh access token when expired (#298)Connection.create_jobraises exception if response does not contain a valid job_idAdd
openeo.udf.debug.inspectfor using the openEOinspectprocess in a UDF (#302)Add
openeo.util.to_bbox_dict()to simplify building a openEO style bbox dictionary, e.g. from a list or shapely geometry (#304)
Removed¶
Removed deprecated (and non-functional)
zonal_statisticsmethod from oldImageCollectionClientAPI. (#144)
[0.10.0] - 2022-04-08 - “SRR3” release¶
Added¶
Add support for comparison operators (
<,>,<=and>=) in callback process buildingAdded
Connection.describe_process()to retrieve and show a single processAdded
DataCube.flatten_dimensions()andDataCube.unflatten_dimension(Open-EO/openeo-processes#308, Open-EO/openeo-processes#316)Added
VectorCube.run_udf(to avoid non-standardprocess_with_node(UDF(...))usage)Added
DataCube.fit_class_random_forest()andConnection.load_ml_model()to train and load Machine Learning models (#279)Added
DataCube.predict_random_forest()to easily usereduce_dimensionwith apredict_random_forestreducer using aMlModel(trained withfit_class_random_forest) (#279)Added
DataCube.resample_cube_temporal(#284)Add
target_dimensionargument toDataCube.aggregate_spatial(#288)Add basic configuration file system to define a default back-end URL and enable auto-authentication (#264, #187)
Add
contextargument toDataCube.chunk_polygon()Add
Connection.version_info()to list version information about the client, the API and the back-end
Changed¶
Include openEO API error id automatically in exception message to simplify user support and post-mortem analysis.
Use
Connection.default_timeout(when set) also on version discovery requestDrop
ImageCollectionfromDataCube’s class hierarchy. This practically removes very old (pre-0.4.0) methods likedate_range_filterandbbox_filterfromDataCube. (#100, #278)Deprecate
DataCube.send_jobin favor ofDataCube.create_jobfor better consistency (internally and with other libraries) (#276)Update (autogenerated)
openeo.processesmodule to 1.2.0 release (2021-12-13) of openeo-processesUpdate (autogenerated)
openeo.processesmodule to draft version of 2022-03-16 (e4df8648) of openeo-processesUpdate
openeo.extra.spectral_indicesto a post-0.0.6 version of Awesome Spectral Indices
Removed¶
Removed deprecated
zonal_statisticsmethod fromDataCube. (#144)Deprecate old-style
DataCube.polygonal_mean_timeseries(),DataCube.polygonal_histogram_timeseries(),DataCube.polygonal_median_timeseries()andDataCube.polygonal_standarddeviation_timeseries()
Fixed¶
[0.9.2] - 2022-01-14¶
Added¶
Add experimental support for
chunk_polygonprocess (Open-EO/openeo-processes#287)Add support for
spatial_extent,temporal_extentandbandstoConnection.load_result()Setting the environment variable
OPENEO_BASEMAP_URLallows to set a new templated URL to a XYZ basemap for the Vue Components library,OPENEO_BASEMAP_ATTRIBUTIONallows to set the attribution for the basemap (#260)Initial support for experimental “federation:missing” flag on partial openEO Platform user job listings (Open-EO/openeo-api#419)
Best effort detection of mistakenly using Python builtin
sumorallfunctions in callbacks (Forum #113)Automatically print batch job logs when job doesn’t finish successfully (using
execute_batch/run_synchronous/start_and_wait).
[0.9.1] - 2021-11-16¶
Added¶
Add
optionsargument toDataCube.atmospheric_correction(Open-EO/openeo-python-driver#91)Add
atmospheric_correction_optionsandcloud_detection_optionsarguments toDataCube.ard_surface_reflectance(Open-EO/openeo-python-driver#91)UDP storing: add support for “returns”, “categories”, “examples” and “links” properties (#242)
Add
openeo.extra.spectral_indices: experimental API to easily compute spectral indices (vegetation, water, urban, …) on aDataCube, using the index definitions from Awesome Spectral Indices
Changed¶
Batch job status poll loop: ignore (temporary) “service unavailable” errors (Open-EO/openeo-python-driver#96)
Batch job status poll loop: fail when there are too many soft errors (temporary connection/availability issues)
Fixed¶
Fix
DataCube.ard_surface_reflectance()to use processard_surface_reflectanceinstead ofatmospheric_correction
[0.9.0] - 2021-10-11¶
Added¶
Add command line tool
openeo-auth token-clearto remove OIDC refresh token cacheAdd support for OIDC device authorization grant without PKCE nor client secret, (#225, openeo-api#410)
Add
DataCube.dimension_labels()(EP-4008)Add
Connection.load_result()(EP-4008)Add proper support for child callbacks in
fit_curveandpredict_curve(#229)ProcessBuilder: Add support forarray_element(data, n)throughdata[n]syntax (#228)ProcessBuilder: Add support foreqandneqthrough==and!=operators (EP-4011)Add
DataCube.validate()for process graph validation (EP-4012 related)Add
Connection.as_curl()for generating curl command to evaluate a process graph orDataCubefrom the command lineAdd support in
DataCube.download()to guess output format from extension of a given filename
Changed¶
Improve default handling of
crs(andbase/height) infilter_bbox: avoid explicitly sendingnullunnecessarily (#233).Update documentation/examples/tests: EPSG CRS in
filter_bboxshould be integer code, not string (#233).Raise
ProcessGraphVisitExceptionfromProcessGraphVisitor.resolve_from_node()(instead of genericValueError)DataCube.linear_scale_rangeis now a shortcut forDataCube.apply(lambda x:x.x.linear_scale_range( input_min, input_max, output_min, output_max)). Instead of creating an invalid process graph that tries to invoke linear_scale_range on a datacube directly.Nicer error message when back-end does not support basic auth (#247)
Removed¶
[0.8.2] - 2021-08-24¶
Minor release to address version packaging issue.
[0.8.1] - 2021-08-24¶
Added¶
Support nested callbacks inside array arguments, for instance in
array_modify,array_createSupport
array_concatadd
ProcessGraphUnflattenerandPGNodeGraphUnflattenerto unflatten a flat dict representation of a process graph to aPGNodegraph (EP-3609)Add
Connection.datacube_from_flat_graphandConnection.datacube_from_jsonto construct aDataCubefrom flat process graph representation (e.g. JSON file or JSON URL) (EP-3609)Add documentation about UDP unflattening and sharing (EP-3609)
Add
fit_curveandpredict_curve, two methods used in change detection
Changed¶
Update
processes.pybased on 1.1.0 release op openeo-processes projectprocesses.py: include all processes from “proposals” folder of openeo-processes projectJupyter integration: Visual rendering for process graphs shown instead of a plain JSON representation.
Migrate from Travis CI to GitHub Actions for documentation building and unit tests (#178, EP-3645)
Removed¶
Removed unit test runs for Python 3.5 (#210)
[0.8.0] - 2021-06-25¶
Added¶
Allow, but raise warning when specifying a CRS for the geometry passed to
aggregate_spatialandmask_polygon, which is non-standard/experimental feature, only supported by specific back-ends (#204)Add
optionalargument toParameterand fix re-encoding parameters with default value. (EP-3846)Add support to test strict equality with
ComparableVersionJupyter integration: add rich HTML rendering for more backend metadata (Job, Job Estimate, Logs, Services, User-Defined Processes)
Add support for filter_spatial
Add support for aggregate_temporal_period
Added class
Servicefor secondary web-servicesAdded a method
servicetoConnectionAdd
Rfc3339.parse_dateandRfc3339.parse_date_or_datetime
Changed¶
Disallow redirects on POST/DELETE/… requests and require status code 200 on
POST /resultrequests. This improves error information wherePOST /resultwould involve a redirect. (EP-3889)Class
JobLogEntrygot replaced with a more complete and re-usableLogEntrydictThe following methods return a
Serviceclass instead of a dict:tiled_viewing_serviceinImageCollection,ImageCollectionClientandDataCube,create_serviceinConnection
Deprecated¶
The method
remove_serviceinConnectionhas been deprecated in favor ofdelete_servicein theServiceclass
[0.7.0] - 2021-04-21¶
Added¶
Add support for default OIDC clients advertised by backend (#192, Open-EO/openeo-api#366)
Add support for default OIDC provider (based on provider order advertised by backend) (Open-EO/openeo-api#373)
Changed¶
Fixed¶
Connection: don’t send default auth headers to non-backend domains (#201)
[0.6.1] - 2021-03-29¶
Changed¶
Improve OpenID Connect usability on Windows: don’t raise exception on file permissions that can not be changed (by
os.chmodon Windows) (#198)
[0.6.0] - 2021-03-26¶
Added¶
Add initial/experimental support for OIDC device code flow with PKCE (alternative for client secret) (#191 / EP-3700)
When creating a connection: use “https://” by default when no protocol is specified
DataCube.mask_polygon: supportParameterargument formaskAdd initial/experimental support for default OIDC client (#192, Open-EO/openeo-api#366)
Add
Connection.authenticate_oidcfor user-friendlier OIDC authentication: first try refresh token and fall back on device code flowAdd experimental support for
array_modifyprocess (Open-EO/openeo-processes#202)
Removed¶
Remove old/deprecated
Connection.authenticate_OIDC()
[0.5.0] - 2021-03-17¶
Added¶
Add namespace support to
DataCube.process,PGNode,ProcessGraphVisitor(minor API breaking change) and related. Allows building process graphs with processes from non-“backend” namespaces (#182)collection_itemsto request collection items through a STAC APIpaginateas a basic method to support link-based paginationAdd namespace support to
Connection.datacube_from_processAdd basic support for band name aliases in
metadata.Bandfor band index lookup (EP-3670)
Changed¶
OpenEoApiErrormoved fromopeneo.rest.connectiontoopeneo.restAdded HTML representation for
list_jobs,list_services,list_filesand for job resultsImprove refresh token handling in OIDC logic: avoid requesting refresh token (which can fail if OIDC client is not set up for that) when not necessary (EP-3700)
RESTJob.start_and_wait: add status line when sending “start” request, and drop microsecond resolution from status lines
Fixed¶
Updated Vue Components library (solves issue with loading from slower back-ends where no result was shown)
[0.4.10] - 2021-02-26¶
Added¶
Add “reflected” operator support to
ProcessBuilderAdd
RESTJob.get_results(),JobResultsandResultAssetfor more fine-grained batch job result handling. (EP-3739)Add documentation on batch job result (asset) handling and downloading
Changed¶
Mark
Connection.imagecollectionmore clearly as deprecated/legacy alias ofConnection.load_collectionDeprecated
job_results()andjob_logs()onConnectionobject, it’s better to work throughRESTJobobject.Update
DataCube.sar_backscatterto the latest process spec: addcoefficientargument and removeorthorectify,rtc. (openeo-processes#210)
Removed¶
Remove outdated batch job result download logic left-overs
Remove (outdated) abstract base class
openeo.job.Job: did not add value, only caused maintenance overhead. (#115)
[0.4.9] - 2021-01-29¶
Added¶
Make
DataCube.filter_bbox()easier to use: allow passing a bbox tuple, list, dict or even shapely geometry directly as first positional argument or asbboxkeyword argument. Handling of the legacy non-standard west-east-north-south positional argument order is preserved for now (#136)Add “band math” methods
DataCube.ln(),DataCube.logarithm(base),DataCube.log10()andDataCube.log2()Improved support for creating and handling parameters when defining user-defined processes (EP-3698)
Initial Jupyter integration: add rich HTML rendering of backend metadata (collections, file formats, UDF runtimes, …) (#170)
add
resolution_mergeprocess (experimental) (EP-3687, openeo-processes#221)add
sar_backscatterprocess (experimental) (EP-3612, openeo-processes#210)
Fixed¶
Fixed ‘Content-Encoding’ handling in
Connection.download: client did not automatically decompress/resultresponses when necessary (#175)
[0.4.8] - 2020-11-17¶
Added¶
Add
DataCube.aggregate_spatial()
Changed¶
Get/create default
RefreshTokenStorelazily inConnectionVarious documentation tweaks
[0.4.7] - 2020-10-22¶
Added¶
Changed¶
Removed¶
Remove duplicate and broken
Connection.list_processgraphs
Fixed¶
Various documentation fixes and tweaks
Avoid
merge_cubeswarning when using non-band-mathDataCubeoperators
[0.4.6] - 2020-10-15¶
Added¶
Add
DataCube.aggregate_temporalAdd initial support to download profiling information
Changed¶
Deprecated legacy functions/methods are better documented as such and link to a recommended alternative (EP-3617).
Get/create default
AuthConfigin Connection lazily (allows client to run in environments without existing (default) config folder)
Deprecated¶
Deprecate
zonal_statisticsin favor ofaggregate_spatial
Removed¶
Remove support for old, non-standard
stretch_colorsprocess (Uselinear_scale_rangeinstead).
[0.4.5] - 2020-10-01¶
Added¶
Also handle
dictarguments indereference_from_node_arguments(EP-3509)Add support for less/greater than and equal operators
Raise warning when user defines a UDP with same id as a pre-defined one (EP-3544, #147)
Add
rename_labelssupport in metadata (EP-3585)Improve “callback” handling (sub-process graphs): add predefined callbacks for all official processes and functionality to assemble these (EP-3555, #153)
Moved datacube write/save/plot utilities from udf to client (EP-3456)
Add documentation on OpenID Connect authentication (EP-3485)
Fixed¶
Fix
kwargshandling inTimingLoggerdecorator
[0.4.4] - 2020-08-20¶
Added¶
Add
openeo-authcommand line tool to manage OpenID Connect (and basic auth) related configs (EP-3377/EP-3493)Support for using config files for OpenID Connect and basic auth based authentication, instead of hardcoding credentials (EP-3377/EP-3493)
Fixed¶
Fix target_band handling in
DataCube.ndvi(EP-3496)