Releases: earthaccess-dev/earthaccess
v0.8.1
What's Changed
- New Features:
- Add
kerchunkmetadata consolidation utility.
- Add
- Enhancements:
- Handle S3 credential expiration more gracefully.
- Maintenanece:
- Use dependabot to update Github Actions.
- Consolidate dependabot updates.
- Switch to
rufffor formatting.
Full Changelog: v0.8.0...v0.8.1
v0.8.0
What's Changed
- Bug fixes:
- Fix zero granules being reported for restricted datasets. (#358)
- Enhancements:
New Contributors
- @danielfromearth made their first contribution in #358
Full Changelog: v0.7.1...v0.8.0
v0.7.1
What's Changed
- Fix: Assume granules without
RelatedUrlsare not cloud hosted by @mfisher87 in #339
Full Changelog: v0.7.0...v0.7.1
v0.7.0
- Bug Fixes:
- Fix spelling mistake in
accessvariable assignment (direc->direct)
inearthaccess.store._get_granules. - Pass
threadsarg to_open_urls_httpsin
earthaccess.store._open_urls, replacing the hard-coded value of 8. - Return S3 data links by default when in region.
- Fix spelling mistake in
- Enhancements:
earthaccess.downloadnow accepts a single granule as input in addition to a list of granules.earthaccess.downloadnow 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~/.netrcfile for have set
EARTHDATA_USERNAMEandEARTHDATA_PASSWORDenvironment variables. - Add
earthaccess.auth_environ()utility for getting Earthdata authentication environment variables.
- Earthaccess will now automatically search for Earthdata authentication.
v0.6.1
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
v0.5.3
Enhancements
- We can search by doi at the granule level, if a collection is found earthaccess will grab the
concept_idfrom 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_hosteduntil 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=Falsewith a True value the session will read the.netrcand 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_premtests
Contributors to this release
@MattF-NSIDC @jrbourbeau @mrocklin @andypbarrett @betolink
🚀
v0.5.2
v0.5.1
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_magicfrom 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
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)
dataor we can use them in tandem with xarray/rioxarray
import xarray as xr
ds = xr.open_mfdataset(earthaccess.open([url]))
ds