Skip to content

Releases: earthdaily/earthdaily-python-client

1.8.0

16 Jan 18:04
5ed6f15

Choose a tag to compare

🚀 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 execution
  • days_per_chunk parameter to split datetime ranges and execute searches concurrently
  • max_workers parameter to control concurrent thread pool size (default 10, capped at 10)
  • max_items_per_chunk parameter to limit items fetched per time chunk in concurrent search
  • deduplicate_by parameter for datacube.create() to deduplicate STAC items before datacube creation
  • deduplicate_keep parameter to control which item to keep when duplicates found ("first" or "last")
  • pool parameter passthrough to odc.stac.load for parallel COG metadata fetching
  • groupby parameter for datacube.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
  • STGeometry class 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

02 Dec 19:37
fa18710

Choose a tag to compare

🚀 Release 1.5.1 - EarthDaily Python Client

📋 What's New in This Release

⚡ Improvements

  • add_indices, plot_rgb, plot_band, compute_zonal_stats are now publicly available in earthdaily.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

29 Nov 00:08
badbeb3

Choose a tag to compare

🚀 Release 1.5.0 - EarthDaily Python Client

📋 What's New in This Release

🆕 Major Features Added

  • New datacube Module: DatacubeService for creating and managing datacubes from STAC items, including apply_cloud_mask() function for flexible cloud masking with custom pixel values, geometry-aware statistics, and coverage-based filtering
  • New ordering Module: EDC ordering service via client.ordering.edc
  • Utils Dependency Group: New utils optional dependency group for user convenience tools (python-dotenv, jupyter, ipykernel)
  • Alternate Asset URLs: Added replace_href_with parameter to cube_utils.datacube() function to enable using alternate asset URLs (default: "alternate.download.href")
  • Bulk Search Enhancement: Bulk Search now accepts export_type parameter when creating a request

🔧 Important Fixes

  • Pre-signing Fix: Fixed pre-signing functionality when bypass_auth is set to True by adding required user type header
  • Type Hinting: Fixed zonal_stats type hinting issues
  • STAC Error Fix: Fixed STACError in ItemDownloader when downloading assets from PySTAC Items with resolvable STAC links by using transform_hrefs=False parameter

⚡ 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 EDSClient initialization 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 uv for package management
  • Build Backend: Switched build backend to hatchling
  • Type Checking: Enabled mypy type checking in GitHub Actions
  • Workflows: Updated workflows to use tox-uv

🗑️ Removed

  • Setuptools: Removed setuptools dependency

📦 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

15 Sep 20:43
688a87b

Choose a tag to compare

🚀 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_retries and retry_backoff_factor parameters 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_URLS config
    • 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-grd when assets have dots in their asset keys (e.g., measurement/iw-vv.tiff)
  • Installation & Documentation (1.0.4):
    • Fixed pip install earthdaily command and added quotes for optional dependencies
    • Clarified pip install python-dotenv in README files
    • Fixed export_format in README for bulk search example
    • Fixed smv_branch_whitelist in docs/conf.py to only allow main and lts/0.x branches
  • Documentation (1.0.1): Minor documentation improvements in README.md

⚡ Performance & Usability Improvements

  • Better Default Behavior (1.0.3): Changed default href_type from "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.7

Optional 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

25 Jun 20:32
b5d4895

Choose a tag to compare

🎉 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_auth flag 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 legacy namespace

⚠️ Breaking Changes

Migration Required: This release introduces significant architectural changes from v0:

  • Main client now accessed via EDSClient and EDSConfig
  • 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

📚 Resources

Ready to get started? Check out our documentation and examples! 🚀

v1.0.0b12

11 Jun 22:30
1f562b8

Choose a tag to compare

v1.0.0b12 Pre-release
Pre-release

🚀 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_auth flag in EDSConfig
    • EDSClient now supports auth-less sessions for VPN-based use cases
    • APIRequester conditionally includes Authorization header

📦 Packaging & Build

  • Legacy dependencies moved out of required installs
  • Enabled namespace package support for dual installations (Required by earthone-python client)
  • Improved Copybara sync config for better internal–external flow
  • Added new GitHub workflows for automation

⚠️ Breaking Changes

  • v1 introduces changes incompatible with v0
    • You should pin the version if you depend on v0 behavior to avoid regressions

👥 Contributors


📄 Full Changelog

Compare v1.0.0b7 → v1.0.0b12

v0.5.9

09 Apr 15:07
7261d0b

Choose a tag to compare

[0.5.9] - 2025-04-09

Added

  • iw-vv and iw-vh short asset name for sentinel-1-grd.
  • ew-vv and ew-vh short asset name for sentinel-1-grd.

Fixed

  • cloud_mask asset name in auto masking.

What's Changed

Full Changelog: v0.5.8...v0.5.9

v0.5.8

08 Apr 16:01
3c2b281

Choose a tag to compare

[0.5.8] - 2025-04-08

Added

  • polars method in zonal_stats.

Fixed

  • Naming of landsat native cloudmask.
  • Supports "." in asset name for asset query.

What's Changed

Full Changelog: v0.5.7...v0.5.8

v0.5.7

28 Mar 16:17
0b00c79

Choose a tag to compare

[0.5.7] - 2025-03-28

Added

  • datacube drop duplicated items and keep first item per default.

Changed

  • deduplicate_items renamed to drop_duplicates in search,
    now supports "first" or "last". Default is False (means don't drop anything).

Fixed

  • Requirement forces dask<2025.3.0 due to odc-stac wrong import of quote.
  • Issue when resampling and non-native cloudmask in datacube.
  • Issue with rescale when different scale/offset over time.

What's Changed

Full Changelog: v0.5.6...v0.5.7

v0.5.6

26 Mar 13:42
ea7bbef

Choose a tag to compare

What's Changed

Full Changelog: v0.5.5...v0.5.6