Skip to content

Releases: Open-EO/openeo-python-client

openEO Python Client v0.14.1

06 Feb 12:52
Compare
Choose a tag to compare

Fixed

  • Fine-tuned XarrayDataCube tests for conda building and packaging (#176)

openEO Python Client v0.14.0

01 Feb 09:17
Compare
Choose a tag to compare

Added

  • Jupyter integration: show process graph visualization of DataCube objects instead of generic repr. (#336)
  • Add Connection.vectorcube_from_paths() to load a vector cube
    from files (on back-end) or URLs with load_uploaded_files process.
  • 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_batch also skips temporal 502 Bad Gateway errors. #352

Fixed

  • Fixed/improved math operator/process support for DataCubes in "apply" mode (non-"band math"),
    allowing expressions like 10 * cube.log10() and ~(cube == 0)
    (#123)
  • Support PrivateJsonFile permissions properly on Windows, using oschmod library.
    (#198)
  • Fixed some broken unit tests on Windows related to path (separator) handling.
    (#350)

openEO Python client v0.13.0

10 Oct 13:51
Compare
Choose a tag to compare

Added

  • Add max_cloud_cover argument to load_collection() to simplify setting maximum cloud cover (property eo:cloud_cover) (#328)

Changed

  • Improve default dimension metadata of a datacube created with openeo.rest.datacube.DataCube.load_disk_collection
  • DataCube.download(): only automatically add save_result node when there is none yet.
  • Deprecation warnings: make sure they are shown by default and can be hidden when necessary.
  • Rework and improve openeo.UDF helper class for UDF usage
    (#312).
    • allow loading directly from local file or URL
    • autodetect runtime from file/URL suffix or source code
    • hide implementation details around data argument (e.g.data={"from_parameter": "x"})
    • old usage patterns of openeo.UDF and DataCube.apply_dimension() still work but trigger deprecation warnings
  • Show warning when using load_collection property filters that are not defined in the collection metadata (summaries).

openEO Python client v0.12.1

15 Sep 11:01
Compare
Choose a tag to compare

Changed

  • Eliminate dependency on distutils.version.LooseVersion which started to trigger deprecation warnings (#316).

Removed

  • Remove old Connection.oidc_auth_user_id_token_as_bearer workaround flag (#300)

Fixed

  • Fix refresh token handling in case of OIDC token request with refresh token grant (#326)

openEO Python client v0.12.0

09 Sep 16:21
Compare
Choose a tag to compare

Added

  • Allow passing raw JSON string, JSON file path or URL to Connection.download(),
    Connection.execute() and Connection.create_job()
  • Add support for reverse math operators on DataCube in apply mode (#323)
  • Add DataCube.print_json() to simplify exporting process graphs in Jupyter or other interactive environments (#324)
  • Raise DimensionAlreadyExistsException when trying to add_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 using format argument next to the current out_format
    to align with the DataCube.download() method. (#240)
  • Better client-side handling of merged band name metadata in DataCube.merge_cubes()

Removed

  • Remove legacy DataCube.graph and DataCube.flatten() to prevent usage patterns that cause interoperability issues
    (#155, #209, #324)

openEO Python client v0.11.0

02 Jul 09:33
Compare
Choose a tag to compare

Added

  • Add support for passing a PGNode/VectorCube as geometry to aggregate_spatial, mask_polygon, ...
  • Add support for second order callbacks e.g. is_valid in count in reduce_dimension (#317)

Changed

  • Rename RESTJob class name to less cryptic and more user-friendly BatchJob.
    Original RESTJob is still available as deprecated alias.
    (#280)
  • Dropped default reducer ("max") from DataCube.reduce_temporal_simple()
  • Various documentation improvements:
    • general styling, landing page and structure tweaks (#285)
    • batch job docs (#286)
    • getting started docs (#308)
    • part of UDF docs (#309)
    • added process-to-method mapping docs
  • Drop hardcoded h5netcdf engine from XarrayIO.from_netcdf_file()
    and XarrayIO.to_netcdf_file() (#314)
  • Changed argument name of Connection.describe_collection() from name to collection_id
    to be more in line with other methods/functions.

Fixed

  • Fix context/condition confusion bug with count callback in DataCube.reduce_dimension() (#317)

openEO Python client v0.10.1 (LPS22 release)

18 May 07:46
Compare
Choose a tag to compare

Added

  • Add context parameter to DataCube.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 with DataCube.result_node() allows to do advanced process graph argument tweaking/updating without using ._pg hacks.
  • 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_job raises exception if response does not contain a valid job_id
  • Add openeo.udf.debug.inspect for using the openEO inspect process 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_statistics method from old ImageCollectionClient API. (#144)

openEO Python client v0.10.0 (SRR3 release)

08 Apr 14:22
Compare
Choose a tag to compare

Added

  • Add support for comparison operators (<, >, <= and >=) in callback process building
  • Added Connection.describe_process() to retrieve and show a single process
  • Added DataCube.flatten_dimensions() and DataCube.unflatten_dimension
    (Open-EO/openeo-processes#308, Open-EO/openeo-processes#316)
  • Added VectorCube.run_udf (to avoid non-standard process_with_node(UDF(...)) usage)
  • Added DataCube.fit_class_random_forest() and Connection.load_ml_model() to train and load Machine Learning models
    (#279)
  • Added DataCube.predict_random_forest() to easily use reduce_dimension with a predict_random_forest reducer
    using a MlModel (trained with fit_class_random_forest)
    (#279)
  • Added DataCube.resample_cube_temporal (#284)
  • Add target_dimension argument to DataCube.aggregate_spatial (#288)
  • Add basic configuration file system to define a default back-end URL and enable auto-authentication (#264, #187)
  • Add context argument to DataCube.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 request
  • Drop ImageCollection from DataCube's class hierarchy.
  • This practically removes very old (pre-0.4.0) methods like date_range_filter and bbox_filter from DataCube.
    (#100, #278)
  • Deprecate DataCube.send_job in favor of DataCube.create_job for better consistency (internally and with other libraries) (#276)
  • Update (autogenerated) openeo.processes module to 1.2.0 release (2021-12-13) of openeo-processes
  • Update (autogenerated) openeo.processes module to draft version of 2022-03-16 (e4df8648) of openeo-processes
  • Update openeo.extra.spectral_indices to a post-0.0.6 version of Awesome Spectral Indices

Removed

  • Removed deprecated 'zonal_statistics' method from the 1.x version of the API.
  • Deprecate old-style DataCube.polygonal_mean_timeseries(), DataCube.polygonal_histogram_timeseries(),
    DataCube.polygonal_median_timeseries() and DataCube.polygonal_standarddeviation_timeseries()

Fixed

  • Support rename_labels on temporal dimension (#274)
  • Basic support for mixing DataCube and ProcessBuilder objects/processing (#275)

openEO Python client v0.9.2

14 Jan 12:31
Compare
Choose a tag to compare

Added

  • Add experimental support for chunk_polygon process (Open-EO/openeo-processes#287)
  • Add support for spatial_extent, temporal_extent and bands to Connection.load_result()
  • Setting the environment variable OPENEO_BASEMAP_URL allows to set a new templated URL to a XYZ basemap for the Vue Components library, OPENEO_BASEMAP_ATTRIBUTION allows 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 sum or all functions in callbacks (Forum #113)
  • Automatically print batch job logs when job doesn't finish successfully (using execute_batch/run_synchronous/start_and_wait).

openEO Python client v0.9.1

16 Nov 14:36
Compare
Choose a tag to compare

Added

  • Add options argument to DataCube.atmospheric_correction (Open-EO/openeo-python-driver#91)
  • Add atmospheric_correction_options and cloud_detection_options arguments to DataCube.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 a DataCube, 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 process ard_surface_reflectance instead of atmospheric_correction