Earth Engine Python client library release notes

Latest Release

Subscribe to these release notes. Subscribe

This page is updated with each notable change to Earth Engine Python client library. Specifically, it lists releases by date and includes any new features, bug fixes, and significant performance improvements. You can also browse and filter release notes for all Google Cloud products in the Google Cloud console.

April 22, 2025

1.5.12

Added the Google Drive main OAuth scope, https://www.googleapis.com/auth/drive, to the default list of scopes to use for authorization. The Google Drive scope is currently not required, but in the future it will have to be requested explicitly for Earth Engine requests that interact with Google Drive.

March 17, 2025

1.5.7

Added --version to the Earth Engine CLI to return the client version.

January 28, 2025

1.5.0

The Earth Engine Python client library now requires a Cloud project when initializing with localhost or gcloud-legacy authentication modes.

January 22, 2025

1.4.6

Fixed the processing of keyword arguments (kwargs) in the ee.Geometry constructors. Keyword arguments were passed to the ee.Geometry algorithm as though they were positional arguments. Check your use of ee.Geometry if you specified evenOdd, geodesic, or proj as keyword arguments.

November 18, 2024

1.4.0

Released the alpha upload external_image CLI command to Preview. For more details, see the CLI reference for external_image.

October 28, 2024

1.2.0

Dropped support for Python 3.8 now that it is end-of-life.

Added ImageCollection.count(), a static method that returns the number of images in the collection.

September 03, 2024

0.1.419

Fixed a bug where the quota project wasn't being set when authenticating using the notebook auth mode. After this change, users must have the Service Usage Consumer role (roles/serviceusage.serviceUsageConsumer) on the authentication project in order to use the notebook authentication mode. See the Earth Engine Authentication and Initialization guide for more details.

April 03, 2024

0.1.397

Added ee.data.createFolder to the Python client to match the JavaScript client. Note that the force and callback parameters are not supported.

Updated the error handling logic for HTTP requests to convert requests.exceptions.ConnectionError and requests.exceptions.ChunkedEncodingError to httplib2-like errors. In some cases, these errors were not being treated as retryable; now, the retry logic should behave properly for these errors.

January 31, 2024

0.1.388

Added __init__() for docstrings and argument type annotations to Array, ConfusionMatrix, DateRange, Model, Projection, and Reducer.

January 18, 2024

0.1.386

Added __init__() for docstrings and argument type annotations to ErrorMargin and Join.

January 10, 2024

0.1.385

Added __init__() for docstrings and argument type annotations to PixelType.

Fixed authentication issues for the gcloud auth application-default calls to login and set-quota-project. Added the cloud-platform scope to the default scopes used by ee.Authenticate().

December 08, 2023

0.1.383

Added Export.classifier.toAsset and ee.Classifier.load for exporting and loading saved ee.Classifier.smileCart and ee.Classifier.smileRandomForest classifiers. The exported classifiers will be visible and managed just like existing Earth Engine assets. More details are available at our supervised classification and our export reference page.

Added ee.Blob(url) to allow type checking of the url argument and catch strings that don't start with gs:// when possible on the client side.

Updated ee.Authenticate() and ee.Initialize() to support colab mode, added new gcloud mode for remote machines (which makes the --quiet flag no longer necessary), and introduced localhost mode. ee.Initialize() now uses ambient google.auth.default() credentials if present. ee.Authenticate(force=True) forces a refresh, but by default will now reuse existing credentials. See the auth page for the revised documentation.

Removed opt_ keyword for parameters, with backwards compatibility with existing scripts that use opt_ arguments. Note that some parameters needed to be renamed after removing opt_ since they conflict with Python keywords:

  • ee.Collection.limit(): opt_property was converted to prop
  • ee.Image.expression(): opt_map was converted to map_
  • ee.Filter(): opt_filter which was converted to filter_

Switched from setup.py to pyproject.toml for building and installation.

  • Drops support for installing with distutils.

November 15, 2023

0.1.379

Added workload tag support to ee.data.getPixels().

Disallowed complex, rational, and integral numbers in ee.Number().

Added a long-lived requests.Session object so that calls to Earth Engine can share a connection pool. This should increase performance and stability.

November 01, 2023

0.1.377

This version of the client libraries introduced a Python type annotation incompatible with Python 3.7.

September 14, 2023

0.1.369

Migrated Python client library from deprecated https://accounts.google.com/o/oauth2/token to https://oauth2.googleapis.com/token for OAuth 2.0 authentication.

August 24, 2023

0.1.366

Fixed construction of an ee.Date object from a tzinfo-aware datetime object. Naive datetime objects are still treated as UTC.

July 27, 2023

0.1.361

Upgraded the client libraries to use the v1 Earth Engine API. No changes required except for the following case:

  • In the Python client, for the ee.data.getAsset() method, the title and description fields are only accessible from the asset properties in the v1 API. Modify your code to reference my_asset['properties']['title'] and my_asset['properties']['description'].

July 19, 2023

0.1.360

Added a Python version requirement (3.7.0) to the client libs.

May 03, 2023

0.1.352

Added support for the no_data field for GeoTIFF exports in both the Python and JavaScript client libraries.

April 14, 2023

0.1.349

Removed support for dots (.) in workload tags, which will now throw an error.

February 15, 2023

1.341

Added ee.data.getPixels(), ee.data.computePixels(), ee.data.listFeatures(), and ee.data.computeFeatures() to the Python client. The new methods will help with getting pixels from assets or ee.Image objects, and listing features from assets or ee.FeatureCollection objects.

November 02, 2022

0.1.330

Improved Python ee.Authenticate() error messages to give more guidance, and fixed bugs.

Updated the HTTP client library in the Python client from httplib2 to requests, which re-adds support for multi-threading following the httplib2shim removal.

September 28, 2022

0.1.326

Refactored ee.data.getList() and ee.data.listImages() to call through to ee.data.listAssets() exclusively.

Upgraded the client libraries to use the Earth Engine v1 API parameters instead of v1alpha only parameters, in preparation for a future migration to the v1 API.

July 13, 2022

0.1.317

Added a localhost auth mode and introduced a ee.oauth.Flow class for smoother integration with other client libraries.

Added support for Python 3.10 by removing the dependency on httplib2shim.

June 22, 2022

0.1.316

Added the workload tag API (ee.data.getWorkloadTag() and ee.data.setWorkloadTag()) to label computation and exports with a workload tag, which is viewable from the Google Cloud Console.

May 27, 2022

0.1.311

Added EECU stats on exports in the CLI (via earthengine task list -l).

May 09, 2022

0.1.310

Launched FeatureView assets and API. For an overview, see https://developers.google.com/earth-engine/guides/featureview_overview.

April 13, 2022

0.1.306

Security upgrades to authentication in Python notebooks and command line. This only applies if you use the Python libraries or the command line tool; there are no changes to the Code Editor. For more details, visit the developer announcement.

August 12, 2021

0.1.278

Improved error reporting for the case where the arguments of a function passed to map() or iterate() are used in client-side operations that don't contribute to the function return value. Since the function is executed server-side, it may not have client-side effects. See the debugging guide for more details.

July 15, 2021

0.1.273

Added ee.Filter.bounds() alias for ee.Filter.geometry().

April 29, 2021

0.1.263

Added support for maxVertices parameter for table exports.

November 12, 2020

0.1.242

Removed functionality from the Python client library which is no longer needed after the legacy API turndown.

  • Removed use_cloud_api parameter from ee.Initialize and data.initialize on the Python client library.
  • Removed the deprecated data.startProcessing method on the Python client library. Use exportImage, exportTable etc. instead.
  • Removed the use_cloud_api flag on the CLI tool.

October 29, 2020

0.1.240

Adds the task ID to the string representation of the task, compatible with the repr() function.

September 25, 2020

0.1.236

Added an ee.data.TaskStatus field for the number of times a task was attempted. This matches the value now shown in the Code Editor.

August 21, 2020

0.1.231

Added a --long_format option (and -l shortcut) to the earthengine task list CLI command, to show additional information about tasks. This change enables callers to see start/end times for individual tasks.

Changed the object serialization format, so that x.serialize() returns an updated format (which is already used in server requests). ee.Deserializer supports both the new format and the old format. These changes apply to all JavaScript and Python APIs. If you have code which serializes and deserializes objects, we recommend that you either upgrade all parts of your system at once, or proceed in stages by updating the deserialization code first.

March 12, 2020

0.1.215

Fixed bug with getVideoThumbURL() and getFilmstripThumbURL().

March 06, 2020

0.1.214
  • ee.Image.getDownloadURL is fully supported in Cloud API mode.
    • Band-level parameters take precedence over top-level parameters when specified.
    • Band parameters are ignored for multiband GeoTIFFs.
    • image parameter may not be serialized, use an ee.Image directly.
    • Limits on total image size.
  • ee.data.getTileUrl supports the urlFormat parameter supplied in the map ID.

Added PKCE support to earthengine authenticate.

January 30, 2020

0.1.212

Updated the HTTP transport layer for the Earth Engine Python client library from httplib2 to urllib3, which will make it more flexible (e.g., it's now possible to make multiple simultaneous requests) and improve performance. This improvement might not be realized if the earthengine-api package is installed via the conda-forge channel.

November 12, 2019

0.1.206

Added new export parameters tileSize and maxWorkerCount in _prepare_image_export_config() in ee/batch.py.

October 23, 2019

0.1.204

Supported a list of rectangle coordinates for the region parameter in getThumbURL().

August 30, 2019

0.1.193

Added ee.Authenticate() to authorize access to Earth Engine via OAuth2.

November 09, 2018

0.1.159

Ensure JS client library can resolve export regions.

September 28, 2018

0.1.149

Added and updated several UI API examples.

October 19, 2017

0.1.203

Fixed the Python API's image.rename() method to properly handle a single string.

June 12, 2017

0.1.116

Added support for uploading shapefiles.

March 02, 2017

0.1.106

Added a skipEmptyTiles option to Export.image.toDrive() and Export.image.toCloudStorage() to skip generating empty (i.e. fully-masked) image tiles.

Updated authentication to work with oauth2client v2+ and a JSON-formatted credentials file.

February 03, 2017

0.1.103

Updated OAuth scope to FULL_CONTROL for Cloud Storage, to enable actions that require OWNER permissions.

October 27, 2016

0.1.99
  • Added optional shardSize and fileDimensions arguments to Export.image.toDrive() and Export.image.toCloudStorage(), to specify the computation shard size and the output file dimensions for multi-file image exports.
  • Added an optional skipEmptyTiles argument to Export.map.toCloudStorage() to skip writing empty (fully-transparent) tiles.

July 28, 2016

0.1.90

Fixed an issue which caused the minified version Earth Engine JavaScript API to be excluded from the open-source release.

June 02, 2016

0.1.83

Added computedObject.evaluate().

May 18, 2016

0.1.82

Expanded Export functionality to support maps as an export type and Google Cloud Storage as a destination.

January 21, 2016

0.1.72

Disable exporting to GME.

August 07, 2015

0.1.55

Switched to new read & write scope ('https://www.googleapis.com/auth/earthengine' instead of 'https://www.googleapis.com/auth/earthengine.readonly')

June 26, 2015

0.1.55
  • Fixed error that occurred when auth token refresh is attempted while the browser is offline.
  • Added demos directory and move AppEngine demos to it.
  • Added "Powered by Earth Engine" images.

June 19, 2015

0.1.55
  • Added ee.data.setAuthToken() and ee.data.getAuthToken()
  • Fixed the default API URL in ee.data
  • Fixed ee.reset() so it no longer clears auth info.
  • Added tile event callback registration methods to ee.MapLayerOverlay.
  • Added ee.Image.rename() to make it easy to rename bands.
  • Updated App Engine app examples.
  • Fixed ee.Geometry.Rectangle when given a custom projection or geodesic state.

June 04, 2015

0.1.55
  • Allowed ee.MapLayerOverlays to be named.
  • Added an opt_dropNulls argument to Collection.map().

May 30, 2015

0.1.55

Undeprecated ee.data.getInfo().

May 15, 2015

0.1.54

Renamed getThumbURL()'s 'size' param to 'dimensions'.

May 08, 2015

0.1.53

ee.ImageCollection() now accepts ee.List arguments.

April 30, 2015

0.1.52

Added support for exporting videos.

April 10, 2015

0.1.50

Fixed ee.Geometry.Multi*() constructors to accept empty lists.

April 03, 2015

0.1.49

Added error handling improvements.

March 26, 2015

0.1.48

Corrected the documentation for the ee.Date constructor.

March 06, 2015

0.1.44
  • Fixed bug with region parameter in getThumbURL().
  • Added a callback option to getThumbURL().

February 10, 2015

0.1.44

Added FeatureCollection.select().

January 15, 2015

0.1.42
  • Added ee.batch.Task.active() for checking whether the task is active.
  • Made deprecated methods emit warnings. It is highly recommended to enable this by running the Python interpreter with the -W default flag or calling "import warnings; warnings.simplefilter('default')" before interacting with the EE library.
  • Image.parseExpression() is no longer available for general use. Image.expression should be used instead, and the documentation for accessing bands in expressions has been moved there.
  • Added support for computed geometries to Geometry.type(), but now returns a computed string rather than a concrete one.
  • Fixed the incorrect winding order of polygons generated by Image.reduceToVectors().
  • Grouped Terrain algorithms into ee.Terrain.

December 04, 2014

0.1.41

Added the ee.batch module to support batch task management and image and table export.

  • Image.expression() allows expressions that do not refer to all the supplied input images.
  • Image.parseExpression() allows you to explicitly specify the expected input image names.

September 24, 2014

0.1.38

Added support for Python API authentication using a Google account.

July 18, 2014

0.1.32

Fixed casting of numbers when calling the ee.String constructor.

Added a __version__ property to the ee package.

June 20, 2014

0.1.31

Allowed empty args list for Image.select().

Gave all API objects __eq__() and __hash__()

April 24, 2014

0.1.27
  • Fixed Element variable promotion.- Improved consistency in type casting of different classes.
  • Fixed Element variable promotion.

March 28, 2014

0.1.24

Improved automatic type casting logic and error messages.

February 18, 2014

0.1.19
  • Changed the missing end bound in the DateRange constructor to mean start bound + 1ms, not infinity.
  • Started to consistently interpret DateRange upper bounds as exclusive.

February 13, 2014

0.1.18

Added an ee.Projection class to represent map projections.

February 06, 2014

0.1.17

Fixed inconsistent promotion logic for ee.Date parameters.

December 20, 2013

0.1.14

Added ee.Element, a base class for ee.Image and ee.Feature.

December 04, 2013

0.1.12

Improved the documentation for the AppEngine "Hello World" example.

October 14, 2013

0.1.9
  • Added ee.Geometry.type().
  • Added ee.ImageCollection.select(), equivalent to mapping Image.select() over a collection.
  • Removed ee.Collection.map_*() functions. Use ee.Collection.map(somePythonFunction).
  • Fixed ee.Algorithms entries referring to incorrect algorithms.
  • Fixed ee.Image.set() and ee.Feature.set() to stop requiring {'properties': ...} wrapping.

September 30, 2013

0.1.8
  • Added support for automatically casting numbers to dates (interpreted as Unix timestamps).
  • Added ee.Deserializer, which can decode the output of ee.Serializer.
  • Fixed handling of GeoJSON CRS specification in ee.Geometry.
  • Fixed accidental aggregation cache breaking in Collection.map().

September 13, 2013

0.1.7
  • Added type declarations for ee.data methods, so it can be used in Closure-compiled code.
  • Changed the interface of ee.CustomFunction() to require a function signature.
  • Fixed a regression introduced in the previous update that could cause incorrect serialization.

September 06, 2013

0.1.6

Optimized the performance of queries that involve repeated sub-queries.

August 30, 2013

0.1.5
  • Restored compatibility with Python 2.6.
  • Added a String class to represent computations that return string values.
  • Fixed Geometry methods not being present on computed geometries.

August 15, 2013

0.1.4

Fixed handling of ascending=False in Collection.sort().

July 24, 2013

0.1.3
  • Added support for calling unbound algorithms using ee.Algorithms.algorithmName(...).
  • Added support for passing key data in addition to key filenames to ee.ServiceAccountCredentials().

July 03, 2013

0.1.2

Added support for the geodesic field in GeoJSON to differentiate geodesic and projected lines.

June 05, 2013

0.1.2

Added an ee.Kernel class.

Fixed reading of binary auth keys on Windows.

May 15, 2013

0.1.1
  • EE objects can no longer be initialized by providing JSON blocks (except GeoJSON). All of these can be converted to the new format using ee.call() and ee.apply().
  • Collection.aggregate_*() functions no longer perform automatic server fetches. Users will need to call getInfo() on the result manually.
  • The string representation of EE objects can no longer be passed to eval() to recreate the object.
  • Added a new class, ee.Geometry, that represents GeoJSON geometries.
  • Added ee.Image.getThumbUrl().
  • Added ee.Filter.inList(), a convenience for ee.Filter.listContains().
  • Changed ee.Geometry.Point() to accept (x, y) tuples/lists.
  • Changed the ee.Image constructor to allow calling with no arguments, returning the equivalent of ee.Image(0).mask(0).
  • Changed API version to 0.1.1.
  • Moved Filter functions onto ee.Filter as static methods.
  • Switched to a new, better optimized wire encoding of queries.
  • Deprecated ee.Collection.map_*() functions. Use ee.Collection.map(somePythonFunction).

March 14, 2013

0.0.5

Deprecated specifying API objects using custom JSON (e.g. specifying error margins using {type: 'ErrorMargin', value: 5}). Support will be removed in the next library update.

February 13, 2013

0.0.5

Fixed the Feature constructor to accept null geometries.

February 06, 2013

0.0.5

Removed ImageCollection.combine_(), an internal method used to implement ImageCollection.mosaic().

January 31, 2013

0.0.5

Added support for fetching algorithm results using getInfo() for algorithms that return numbers, tables, and other non-geo objects. This may break scripts that relied on manually editing JSON produced by these algorithms and submitting it to ee.data.getValue().

Added support for calling static API methods using the ClassName.methodName() syntax.

Removed ImageCollection.mosaic_(), an internal method used to implement ImageCollection.mosaic().

Fixed ImageCollection.reduce() so it can be called as an instance method.

Fixed serialization of Collections with multiple filters.

Fixed listing of static methods in the playground docs.

January 24, 2013

0.0.4

Fixed a bug that caused failing queries to raise NameError rather than EEException.