Releases: earthdaily/earthdaily-python-client
1.8.0
🚀 Release 1.8.0 - EarthDaily Python Client
📋 What's New in This Release
🆕 Major Features Added
platform.search()method for STAC item search with optional concurrent executiondays_per_chunkparameter to split datetime ranges and execute searches concurrentlymax_workersparameter to control concurrent thread pool size (default 10, capped at 10)max_items_per_chunkparameter to limit items fetched per time chunk in concurrent searchdeduplicate_byparameter fordatacube.create()to deduplicate STAC items before datacube creationdeduplicate_keepparameter to control which item to keep when duplicates found ("first"or"last")poolparameter passthrough to odc.stac.load for parallel COG metadata fetchinggroupbyparameter fordatacube.temporal_aggregate()to aggregate by available dates (e.g.,groupby="time.date")- Collection helpers for Sentinel-1 and Sentinel-2 data access (
Sentinel1CollectionHelper,Sentinel2CollectionHelper) - Pre-configured collection templates with factory methods (
create_dual_pol,create_rgb,create_vegetation, etc.) - Cloud cover filtering and orbit direction filtering capabilities
- Built-in vegetation indices calculation (NDVI, NDWI)
- Metadata analysis tools for processing information and band details
STGeometryclass for spatiotemporal geometry handling- Helper example scripts (
sentinel1_helper_example.py,sentinel2_helper_example.py)
📦 Installation
pip install earthdaily==1.8.0
Optional Dependencies
# For platform features
pip install "earthdaily[platform]==1.8.0"
# For datacube features
pip install "earthdaily[datacube]==1.8.0"
# For ordering features
pip install "earthdaily[ordering]==1.8.0"
# For utility tools (dotenv, jupyter, ipykernel)
pip install "earthdaily[utils]==1.8.0"
# For all features
pip install "earthdaily[platform,datacube,ordering,utils]==1.8.0"🔗 Useful Links
🙏 Contributors
Thanks to all contributors who helped make this release possible!
Full Changelog: 1.5.1...1.8.0
1.5.1
🚀 Release 1.5.1 - EarthDaily Python Client
📋 What's New in This Release
⚡ Improvements
add_indices,plot_rgb,plot_band,compute_zonal_statsare now publicly available inearthdaily.datacube
🔗 Useful Links
🙏 Contributors
Thanks to all contributors who helped make this release possible!
Full Changelog: 1.5.0...1.5.1
1.5.0
🚀 Release 1.5.0 - EarthDaily Python Client
📋 What's New in This Release
🆕 Major Features Added
- New
datacubeModule: DatacubeService for creating and managing datacubes from STAC items, includingapply_cloud_mask()function for flexible cloud masking with custom pixel values, geometry-aware statistics, and coverage-based filtering - New
orderingModule: EDC ordering service viaclient.ordering.edc - Utils Dependency Group: New
utilsoptional dependency group for user convenience tools (python-dotenv,jupyter,ipykernel) - Alternate Asset URLs: Added
replace_href_withparameter tocube_utils.datacube()function to enable using alternate asset URLs (default:"alternate.download.href") - Bulk Search Enhancement: Bulk Search now accepts
export_typeparameter when creating a request
🔧 Important Fixes
- Pre-signing Fix: Fixed pre-signing functionality when
bypass_authis set toTrueby adding required user type header - Type Hinting: Fixed
zonal_statstype hinting issues - STAC Error Fix: Fixed
STACErrorinItemDownloaderwhen downloading assets from PySTAC Items with resolvable STAC links by usingtransform_hrefs=Falseparameter
⚡ Improvements
- Download Validation: Added chunk size and total size validations to the HTTP downloader to prevent unexpected errors and detect corrupted downloads
- Credential Validation: Added credential validation on
EDSClientinitialization to catch authentication issues early - Better Error Messages: Improved authentication error messages to provide specific, helpful details for different failure scenarios
- Legacy Refactoring: General refactoring and improvements to legacy
cube_utils.datacube()
🔨 Build & Infrastructure
- Python 3.14 Support: Added support for Python 3.14
- Package Management: Replaced Poetry with
uvfor package management - Build Backend: Switched build backend to
hatchling - Type Checking: Enabled
mypytype checking in GitHub Actions - Workflows: Updated workflows to use
tox-uv
🗑️ Removed
- Setuptools: Removed
setuptoolsdependency
📦 Installation
pip install earthdaily==1.5.0
Optional Dependencies
# For platform features
pip install "earthdaily[platform]==1.5.0"
# For datacube features
pip install "earthdaily[datacube]==1.5.0"
# For ordering features
pip install "earthdaily[ordering]==1.5.0"
# For utility tools (dotenv, jupyter, ipykernel)
pip install "earthdaily[utils]==1.5.0"
# For all features
pip install "earthdaily[platform,datacube,ordering,utils]==1.5.0"🔗 Useful Links
🙏 Contributors
Thanks to all contributors who helped make this release possible!
Full Changelog: 1.0.7...1.5.0
1.0.7
🚀 Release 1.0.7 - EarthDaily Python Client
📋 What's New in This Release
Added
- Example Notebooks Migration: Moved example notebooks to the earthdaily-python-client repository for better organization and accessibility
🔄 Complete Changelog Since 1.0.0
This release includes all improvements and fixes from versions 1.0.1 through 1.0.7:
🆕 Major Features Added
- Enhanced HTTP Client (1.0.6): HTTPClient now accepts
max_retriesandretry_backoff_factorparameters for improved error handling - Retry Configuration (1.0.6): Added retry configuration support in APIRequester and EDSConfig
- Proxy URL Support (1.0.3): Full proxy URL support for asset downloads via
AssetAccessMode.PROXY_URLSconfig- Automatic authentication headers and redirects for proxy URLs
- Comprehensive unit tests for proxy URL functionality
🔧 Important Fixes
- Asset Key Handling (1.0.5): Fixed "include" logic for collections like
sentinel-1-grdwhen assets have dots in their asset keys (e.g.,measurement/iw-vv.tiff) - Installation & Documentation (1.0.4):
- Fixed
pip install earthdailycommand and added quotes for optional dependencies - Clarified
pip install python-dotenvin README files - Fixed
export_formatin README for bulk search example - Fixed
smv_branch_whitelistindocs/conf.pyto only allowmainandlts/0.xbranches
- Fixed
- Documentation (1.0.1): Minor documentation improvements in README.md
⚡ Performance & Usability Improvements
- Better Default Behavior (1.0.3): Changed default
href_typefrom"href"to"alternate.download.href"for improved usability - Updated Dependencies (1.0.2):
- Updated development and documentation dependencies to latest versions
- Updated core dependencies: requests to >=2.32.4, setuptools to >=78.1.1
- Added protobuf>=5.29.5 security constraint for spyndex dependency chain
- Removed unused sphinx-autobuild dependency
🔐 Security Enhancements
- Dependency Security (1.0.2): Added protobuf>=5.29.5 security constraint to address potential vulnerabilities in the spyndex dependency chain
📦 Installation
pip install earthdaily==1.0.7Optional Dependencies
# For platform features
pip install "earthdaily[platform]==1.0.7"
# For legacy features
pip install "earthdaily[legacy]==1.0.7"
# For all features
pip install "earthdaily[platform,legacy]==1.0.7"🔗 Useful Links
🙏 Contributors
Thanks to all contributors who helped make this release possible!
Full Changelog: 1.0.0...1.0.7
1.0.0
🎉 EarthDaily Python Client v1.0.0
We're excited to announce the first stable release of the EarthDaily Python Client! After extensive development through beta releases, v1.0.0 represents a major milestone with a completely redesigned architecture.
🚀 What's Changed
🧱 Core Improvements
- 🎯 Stable v1.0.0 Release: First production-ready version with complete feature set
- 🔧 Platform API Integration: Full STAC item CRUD operations now supported
- 📦 Bulk Operations Suite: Bulk Search, Insert, and Delete operations
- 🔐 Enhanced Authentication:
bypass_authflag support for VPN-based deployments - 🏗️ Modern Architecture: Clean separation between platform and legacy functionality
📦 Packaging & Build
- 🐍 Python Support: Full compatibility with Python 3.10, 3.11, 3.12, and 3.13
- 🎭 Flexible Installation: Modular installation with
[platform],[legacy]extras - 📚 Legacy Support: v0 functionality preserved in dedicated
legacynamespace
⚠️ Breaking Changes
Migration Required: This release introduces significant architectural changes from v0:
- Main client now accessed via
EDSClientandEDSConfig - Some method parameters and return formats have changed
- Environment variable handling has been updated
📖 Migration Guide: docs/migration-v0-to-v1.md
Version Pinning: If you're using v0, pin your version (earthdaily<1.0.0) until ready to migrate.
👥 Contributors
- @imanshafiei540: v1.0.0 development and architecture design
- @nkarasiak: Legacy support and datacube functionality
📚 Resources
Ready to get started? Check out our documentation and examples! 🚀
v1.0.0b12
🚀 What’s Changed
🧱 Core Improvements
- Version bumped to
v1.0.0b12 - STAC Item CRUD Support added:
- Full Create/Read/Update/Delete support for STAC items
- Bulk operations now supported
- Bulk Search
- Bulk Insert
- Bulk Delete
- Authentication enhancements:
- Introduced
bypass_authflag inEDSConfig EDSClientnow supports auth-less sessions for VPN-based use casesAPIRequesterconditionally includesAuthorizationheader
- Introduced
📦 Packaging & Build
- Legacy dependencies moved out of required installs
- Enabled namespace package support for dual installations (Required by
earthone-pythonclient) - Improved Copybara sync config for better internal–external flow
- Added new GitHub workflows for automation
⚠️ Breaking Changes
v1introduces changes incompatible withv0- You should pin the version if you depend on
v0behavior to avoid regressions
- You should pin the version if you depend on
👥 Contributors
- All contributions in this release by @imanshafiei540
📄 Full Changelog
v0.5.9
[0.5.9] - 2025-04-09
Added
iw-vvandiw-vhshort asset name forsentinel-1-grd.ew-vvandew-vhshort asset name forsentinel-1-grd.
Fixed
cloud_maskasset name in auto masking.
What's Changed
- release: v0.5.9 by @nkarasiak in #181
Full Changelog: v0.5.8...v0.5.9
v0.5.8
[0.5.8] - 2025-04-08
Added
polarsmethod inzonal_stats.
Fixed
- Naming of landsat native cloudmask.
- Supports "." in asset name for asset query.
What's Changed
- release: v0.5.8 by @nkarasiak in #180
Full Changelog: v0.5.7...v0.5.8
v0.5.7
[0.5.7] - 2025-03-28
Added
datacubedrop duplicated items and keep first item per default.
Changed
deduplicate_itemsrenamed todrop_duplicatesin search,
now supports "first" or "last". Default isFalse(means don't drop anything).
Fixed
- Requirement forces
dask<2025.3.0due to odc-stac wrong import ofquote. - Issue when
resamplingand non-native cloudmask in datacube. - Issue with
rescalewhen different scale/offset over time.
What's Changed
- release: v0.5.7 by @nkarasiak in #178
- release: v0.5.7 by @nkarasiak in #179
Full Changelog: v0.5.6...v0.5.7
v0.5.6
What's Changed
- [lts/0.x] Bumping Ruff to latest, Fixing formatting/linting/typing Issues by @imanshafiei540 in #161
- [lts/0x] Add platform and Python version information to User-Agent headers by @imanshafiei540 in #169
- release: v0.5.6 by @nkarasiak in #175
Full Changelog: v0.5.5...v0.5.6