Skip to content

Releases: earthaccess-dev/earthaccess

v0.18.0

Choose a tag to compare

@chuckwondo chuckwondo released this 12 May 18:22
51f8778

Changed

  • Relocated community resources section from overview page to resources page (#1253) (@Sherwin-14)

Added

  • Added the NASA Atmospheric Science Data Center's cloud provider to the integration tests. (#460) (@danielfromearth)

Removed

Fixed

  • Fix FileExistsError when running in-region and downloading via S3 URLs (#1331) (@chuckwondo)
  • Allow for granule search for collection without SpatialExtent information (@lsterzinger)

New Contributors

Full Changelog: v0.17.0...v0.18.0

v0.17.0

Choose a tag to compare

@betolink betolink released this 02 Apr 16:52

2026-04-02

Highlights

This release introduces a unified virtualization API, replaces the previous open_virtual_dataset() / open_virtual_mfdataset() / consolidate_metadata() functions with a single virtualize() method compatible with VirtualiZarr 2.x, and opens support to most parsers (dmrpp, hdf, netcdf, kerchunk). It also adds FutureWarning deprecation notices in preparation for the upcoming v1.0 release. We improved download() by using temporary files until the files are complete and added a kwarg force to download and replace existing files. A new interface was added to the granules __geo_interface__ that allows libraries that support geojson geometries to access the UMM geometry of each granule, libraries like geopandas can then use the results to create a dataframe that can be plotted using such geometries.

import earthaccess as ea
import geopandas as gpd

ea.login()

granules = ea.search_data(**params)

# virtualization with one line, using dask or lithops and vz 2.x:
vds = ea.virtualize(granules, **vz_options)

# geo dataframes!
g_df = gpd.GeoDataFrame(geometry=granules, crs="EPSG:4326")

Breaking Changes

  • Virtualization API overhaul: consolidate_metadata(), open_virtual_dataset(),
    and open_virtual_mfdataset() have been removed in favor of a single
    virtualize() method that supports all VirtualiZarr 2.x parsers (dmrpp, hdf,
    netcdf, kerchunk).
    (#1272)
    (@betolink)

Changed

  • While downloading, files now use temporary names until the download completes,
    preventing partial files from being mistaken for complete downloads.
    (#1198)
    (@WeatherGod)

Added

  • FutureWarning added to DataCollections and DataGranules methods decorated
    with @property, in preparation for the merge of #1187 in version 1.0.
    (#1267)
    (@andypbarrett)
  • force kwarg added to download() to allow forced re-downloads.
    (#1198)
    (@WeatherGod)
  • DataGranule.__geo_interface__ property for GeoJSON-compatible geometry access.
    (#1179)
    (@s-kganz)

Removed

  • consolidate_metadata(), open_virtual_dataset(), and
    open_virtual_mfdataset() β€” replaced by virtualize().
    (#1272)
    (@betolink)

Documentation

New Contributors

Full Changelog: v0.16.0...v0.17.0

v0.16.0

Choose a tag to compare

@betolink betolink released this 30 Jan 20:04
e6b0b14

Changed

  • Improved performance of fetching temporary S3 credentials (roughly 4x speedup) by using EDL user token rather than EDL username/password in request (#1182) (@chuckwondo)
  • open_virtual_datasets now accepts load=False to avoid materializing indexes when they are not needed (e.g. xarray pre-processing metadata) (#1185) (@betolink)

Added

Removed

  • Breaking: Remove default automatic login behavior. This removes previously undocumented behavior, where a user would be logged in automatically (i.e., without having to call earthdata.login explicitly) if the user had valid EDL credentials specified either via environment variables or a netrc file. This led to potentially unexpected behavior.

    Removing this automatic behavior breaks existing user code that does not make an explicit call to earthdata.login before streaming/downloading data, but used to succeed due to the (perhaps unknown) automatic login behavior.

    Users must now explicitly call earthdata.login in order to access data that requires EDL authentication.

    Removing this automatic behavior was necessary to fix #945.

Fixed

  • Ignore environment variables EARTHDATA_USERNAME and EARTHDATA_PASSWORD when EARTHDATA_TOKEN is set (#1121) (@chuckwondo)
  • Use only specified login strategy to attempt login, when strategy other than "all" is specified (#945) (@chuckwondo)
  • Fix undesirable pre-commit changes when running on Windows (#1143) (@ana-sher)
  • No longer erroneously strip authorization header for valid hosts (#1130) (@chuckwondo)
  • Fix AttributeError raised by Auth.get_s3_credentials when EARTHDATA_TOKEN environment variable is set, which prevented the username attribute from being defined on the Auth instance (#1181) (@chuckwondo)

New Contributors

Full Changelog: v0.15.1...v0.16.0

v0.15.1

Choose a tag to compare

@betolink betolink released this 16 Sep 21:25
3ddbc93

πŸ“£ πŸ“£ πŸ“£ Bug Fix πŸ“£ πŸ“£ πŸ“£

  • Patch to avoid import errors with VirtualiZarr/Obstore.

What's Changed

Full Changelog: v0.15.0...v0.15.1

v0.15.0

Choose a tag to compare

@betolink betolink released this 16 Sep 19:41
6c0fa16

New features

Hide progress bar

files = earthaccess.open(results, show_progress=False)

Updated documentation, enhanced docsstrings and user guide documentation

Support for VirtualiZarr 2.x e.g. virtual Tempo data cube

faster fsspec caching and open kwargs:

fsspec_open_kwargs = {
  "cache_type": "blockcache", # cache strategy
  "block_size": 4 * 1024 * 1024 # bytes
}
files = earthaccess.open(results, open_kwargs=fsspec_open_kwargs)

This speeds up .open() by potentially an order of magnitude!

What's Changed

  • Populated glossary section under USER-REFERENCE.
    (#1027)
    (@Sherwin-14)
  • Change default cache behavior in fsspec from readahead to blockcache.
    Allow user defined config with open_kwargs in the .open() method.
    This improves performance by an order of magnitude.
    (#251)(#771)
    (@betolink)
  • Add show_progress argument to earthaccess.download() to let the user control display of progress bars. Defaults to true for interactive sessions, otherwise false.
    (#612)
    (#1065)
    (@Sherwin-14)
  • Updated bug and triage label names in bug Issue template.
    (#998)
    (@asteiker)
  • download now raises DownloadFailure exception on failure.
    (#612)
    (@Sherwin-14)
  • GESDISC should be GES_DISC in docstrings.
    (#1037)
    (@abarciauskas-bgse)
  • open_virtual_mfdataset now uses virtualizarr v2, and obstore in place of fsspec. Updated Zarr to V3 xref #967.
    (#1074)
    (@owenlittlejohns)
  • Populate search and access user guides.
    (#1035)
    (@andypbarrett)

New Contributors

Full Changelog: v0.14.0...v0.15.0

v0.14.0

Choose a tag to compare

@juliacollins juliacollins released this 11 Feb 23:51
34ffbe2

[v0.14.0] - 2025-02-11

πŸ“£ πŸ“£ πŸ“£ BREAKING CHANGE πŸ“£ πŸ“£ πŸ“£

From now on, any time Earthdata Login rejects credentials, a Python exception will be raised. You can get the old behavior with a standard try/except block:

# Caution: If credentials are rejected, you should know about it and update any env vars
# or .netrc files. If credentials are rejected too many times, you could get locked out
# of your account.
try:
    earthaccess.login()
except Exception:
    pass

Added

  • search_datasets now accepts a has_granules keyword argument. Use has_granules=False to search for metadata about collections with no associated granules. The default value set in DataCollections remains True. (#939) (@juliacollins)

Changed

  • Breaking: earthaccess will now raise an exception when login credentials are rejected. If you need the old behavior, please use a try block. (#888) (@mfisher87, @chuckwondo, @jhkennedy)

New Contributors

Full Changelog: v0.13.0...v0.14.0

v0.13.0

Choose a tag to compare

@betolink betolink released this 29 Jan 04:45
762c2a2

[v0.13.0] - 2025-01-28

Changed

  • Integration tests: Test are no longer randomized! this means each fail should be reproducible, we are testing the most
    popular datasets from all DAACs, see files under tests/integration/popular_collections.
    (#215)
    (@mfisher87)

Added

  • VirtualiZarr: earthaccess can open archival formats (NetCDF, HDF5) as if they were Zarr by leveraging VirtualiZarr
    In order to use this capability the collection needs to be supported by OPeNDAP and have dmrpp files.
    See example notebooks!
    (@ayushnag and @TomNicholas)

Fixed

  • earthaccess.download will let requests automatically decode compressed content
    (#887)
    (@itcarroll)

  • earthaccess.download now shares the authenticated session cookie among threads to avoid overloading EDL.
    (#913)
    (@hailiangzhang)

Complete autogenerated list:

What's Changed

New Contributors

Full Changelog: v0.12.0...v0.13.0

v0.12.0

Choose a tag to compare

@betolink betolink released this 13 Nov 18:14

v0.12.0

Changed

  • Use built-in assert statements instead of unittest assertions in integration tests (#743) (@chuckwondo)

Added

  • Add support for NETRC environment variable to override default .netrc file location (#480) (@chuckwondo)
  • Add nox session for running integration tests locally (#815; @chuckwondo and #872; @jhkennedy)
  • Auto-add comment to PR that requires maintainer to review and re-run integration tests (#824) (@chuckwondo)

Removed

  • The scripts/integration-test.sh script has been removed in favor of the integration-tests nox session. (#872) (@jhkennedy)
  • Python 3.9 is no longer supported. (#876) (@mfisher87)

Fixed

Full Changelog: v0.11.0...v0.12.0

v0.11.0

Choose a tag to compare

@nikki-t nikki-t released this 01 Oct 18:28

v0.11.0

Changed

  • Automatically refresh EDL token and deprecate the Auth.refresh_tokens method with no replacement, as there is no longer a need to explicitly refresh (#484) (@fwfichtner)
  • Deprecate earthaccess.get_s3fs_session and Store.get_s3fs_session. Use earthaccess.get_s3_filesystem and Store.get_s3_filesystem, respectively, instead (#766) (@Sherwin-14, @chuckwondo)

Added

Fixed

  • Remove broken link "Introduction to NASA earthaccess" (#779) (@Sherwin-14)
  • Restore automation for tidying notebooks used in documentation (#788) (@itcarroll)

Removed

  • Remove binder/ directory, as we no longer need a special binder environment with the top-level environment.yml introduced in #733 (@jhkennedy)

New Contributors

Full Changelog: v0.10.0...v0.11.0

v0.10.0

Choose a tag to compare

@betolink betolink released this 19 Jul 19:53

v0.10.0

Changed

Added

Removed

Fixed

New Contributors

Full Changelog: v0.9.0...v0.10.0