Skip to content

Releases: earthaccess-dev/earthaccess

v0.8.1

02 Dec 01:54
1a45326

Choose a tag to compare

What's Changed

  • New Features:
    • Add kerchunk metadata consolidation utility.
  • Enhancements:
    • Handle S3 credential expiration more gracefully.
  • Maintenanece:
    • Use dependabot to update Github Actions.
    • Consolidate dependabot updates.
    • Switch to ruff for formatting.

Full Changelog: v0.8.0...v0.8.1

v0.8.0

30 Nov 02:41
a1fd6dd

Choose a tag to compare

What's Changed

  • Bug fixes:
    • Fix zero granules being reported for restricted datasets. (#358)
  • Enhancements:
    • earthaccess will raise errors instead of printing them in more cases. (#351)
    • daac and provider parameters are now normalized to uppercase, since lowercase
      characters are never valid. (#355)

New Contributors

Full Changelog: v0.7.1...v0.8.0

v0.7.1

09 Nov 02:36
e9c68ed

Choose a tag to compare

What's Changed

  • Fix: Assume granules without RelatedUrls are not cloud hosted by @mfisher87 in #339

Full Changelog: v0.7.0...v0.7.1

v0.7.0

31 Oct 17:31
8461cfa

Choose a tag to compare

  • Bug Fixes:
    • Fix spelling mistake in access variable assignment (direc -> direct)
      in earthaccess.store._get_granules.
    • Pass threads arg to _open_urls_https in
      earthaccess.store._open_urls, replacing the hard-coded value of 8.
    • Return S3 data links by default when in region.
  • Enhancements:
    • earthaccess.download now accepts a single granule as input in addition to a list of granules.
    • earthaccess.download now returns fully qualified local file paths.
  • New Features:
    • Earthaccess will now automatically search for Earthdata authentication. earthaccess.login()
      still works as before, but is no longer required if you have a ~/.netrc file for have set
      EARTHDATA_USERNAME and EARTHDATA_PASSWORD environment variables.
    • Add earthaccess.auth_environ() utility for getting Earthdata authentication environment variables.

v0.6.1

20 Sep 22:42
e845255

Choose a tag to compare

Hotfix: A version number was out of sync prior to the last release. This release brings all the version numbers in sync and enables a successful publish to PyPI.

v0.6.0

20 Sep 21:55
b3572d7

Choose a tag to compare

bug fixes

  • earthaccess.search_datasets() and earthaccess.search_data() can find restricted datasets #296
  • distributed serialization fixed for EarthAccessFile #301 and #276

new features

  • earthaccess.get_s3fs_session() can use the results to find the right set of S3 credentials

v0.5.3

01 Aug 15:44

Choose a tag to compare

Enhancements

  • We can search by doi at the granule level, if a collection is found earthaccess will grab the concept_id from the CMR record and search using it.
  • We will be able to use pattern matching on the granule file names! closes #198 combining the two we could have searches like
results = earthaccess.search_data(
    doi = "10.5067/SLREF-CDRV3",
    granule_name = "2005-*.nc",
    count=100
)
  • If using remote Dask cluster, earthaccess will open the files using HTTPS links and will switch on the fly to S3 links if the cluster is in us-west-2 Thanks to @jrbourbeau! this change implemented a thin wrapper around fsspec.AbstractFileSystem

  • The granule representation removed the spatial output in favor of a simpler is_cloud_hosted until we have a nicer spatial formatter (it was a blob of json)

Bugs fixed

  • size() method for granules had a typo and returned 0 all the time, this was fixed
  • https sessions returned to trust_env=False with a True value the session will read the .netrc and send both simple auth and tokens at the same time causing an authentication error with most services.

Documentation improvements

  • Reorganized docs to include resources and end to end examples
  • README is now using the SSHA dataset from PODAAC as is simpler to explain and work with compared to ATL data, addresses #241
  • SSL and EMIT examples included in the documentation, they are executed end to end on CI
  • Added a minimal example of search_data() filtering thanks @andypbarrett!

CI Maintenance:

  • Integration tests are on a different file
  • Integration tests are going to run only on pushes to main
  • Documentation is only going to be updated when we update main
  • PODAAC migrated all their data to the cloud already so there is no point in having it on the on_prem tests

Contributors to this release

@MattF-NSIDC @jrbourbeau @mrocklin @andypbarrett @betolink

🚀

v0.5.2

21 Apr 00:02
618311d

Choose a tag to compare

  • deprecating Benedict as dict data structure in favor of just using the built-in Python dict. Thanks @psarka!
  • fixed NSIDC S3 credentials endpoint

v0.5.1

20 Mar 14:34
9bae957

Choose a tag to compare

This release will fix #212 and implements more testing for Auth and S3Credentials endpoints. Eventually they are going to support bearer tokens but only ASF does at the moment.

  • Fix call to S3Credentials
  • Fix readthedocs
  • Removed python_magic from core dependencies (will fix Windows for conda)
  • Updated example notebooks to use the new top level API
  • Support EARTHDATA_USERNAME and EARTHADATA_PASSWORD same as in IcePyx (work in progress with @JessicaS11)
  • Once logged in we can access our profile (and email) with
auth = earthaccess.login()

profile = auth.user_profile
email = profile["email_address"]

v0.5.0

23 Feb 16:43
3a2d171

Choose a tag to compare

This release will fix some bugs and bring new capabilities to the top level API

import earthaccess

auth = earthaccess.login()

will automatically try all strategies, there is no need to specify one, if our credentials are not found it will ask the user to provide them interactively.

s3_credentials = earthaccess.get_s3_credentials(daac="PODAAC")
# use them with your fav library, e.g. boto3
# another thing we can do with our auth instance is to refresh our EDL tokens
auth.refresh_tokens()

We can also get authenticated fsspec sessions:

url = "https://data.lpdaac.earthdatacloud.nasa.gov/lp-prod-protected/EMITL2ARFL.001/EMIT_L2A_RFL_001_20220903T163129_2224611_012/EMIT_L2A_RFL_001_20220903T163129_2224611_012.nc"

fs = earthaccess.get_fsspec_https_session()
with fs.open(lpcloud_url) as f:
    data = f.read(10)
data

or we can use them in tandem with xarray/rioxarray

import xarray as xr

ds = xr.open_mfdataset(earthaccess.open([url]))
ds

This PR will fix #195 #187 and completes #167