// the find
sentinel-hub/sentinelhub-py
Download and process satellite imagery in Python using Sentinel Hub services.
Official Python client for Sentinel Hub's satellite imagery services, wrapping Process, Catalog, Batch, BYOC, Statistical, and OGC APIs plus direct AWS access to Sentinel-2 SAFE archives. For developers building remote-sensing or geospatial pipelines who need Sentinel/Landsat/MODIS/DEM data without hand-rolling HTTP calls and auth against Sentinel Hub.
Auth, token refresh, and rate-limit backoff are handled for you (download/rate_limit.py, download/sentinelhub_client.py) instead of you reimplementing 429 handling. One package covers a lot of ground - Process, Catalog, Batch, BYOC, Statistical, OGC, plus AWS SAFE readers - so you're not stitching together five separate clients. It's a real production dependency, not a side project: it's the core data layer under eo-learn, has CI with coverage tracking, and ships type hints (py.typed). The area-splitting utilities solve the genuinely annoying problem of tiling a large AOI into requests that fit Sentinel Hub's per-request size limits.
Most of the useful functionality - Process API, Batch, BYOC - only works against a paid Sentinel Hub or CDSE account; despite the imagery topics, this isn't a free-download tool and the pricing model isn't explained anywhere near the README. There are parallel *_cdse.ipynb notebooks alongside the originals for nearly every example, which means the library is mid-migration from classic Sentinel Hub auth to Copernicus Data Space Ecosystem auth - expect to spend time figuring out which flow applies to your account. No built-in concurrency for bulk downloads beyond the rate limiter, so pulling many tiles means building your own parallelism on top. Documentation is spread across readthedocs prose and a dozen notebooks with no single quick-start that tells you what a typical request costs against your quota before you run it.