finds.dev← search

// the find

sertit/eoreader

★ 350 · Python · Apache-2.0 · updated Oct 2026

Remote-sensing opensource python library reading optical and SAR sensors, loading and stacking bands, clouds, DEM and spectral indices in a sensor-agnostic way.

EOReader is a Python library that normalizes reading of optical and SAR satellite products (Sentinel, Landsat, PlanetScope, ICEYE, COSMO-SkyMed, etc.) behind one sensor-agnostic API, returning bands, indices, clouds and DEM as xarray/geopandas objects. It's aimed at remote-sensing engineers building extraction pipelines (flood/fire mapping, land cover, etc.) who don't want to hand-roll a parser per constellation.

Genuinely wide sensor coverage (20+ optical and SAR constellations) with a real abstraction layer that maps heterogeneous band semantics (RED, VV, etc.) onto one API — that mapping work is the tedious part most teams just redo badly. It sits on the standard geospatial stack (rasterio/rioxarray, geopandas, xarray) instead of reinventing raster/vector IO, so it composes with the rest of the ecosystem. It has real production mileage: used operationally in Copernicus Emergency Management Service rapid mapping, with papers and conference talks behind it, not just a demo repo. Built-in STAC catalog generation is a genuinely useful bonus for cataloging old/legacy products.

SAR processing hard-depends on ESA SNAP's `gpt` binary being on PATH — an external Java/GUI-oriented tool that's awkward to script or containerize and a surprising dependency for a 'pure Python' library. By design it handles one product at a time; mosaics, pairs, and time series are pushed off to a separate library (EOSets), so this is really just the ingestion layer, not a complete pipeline. Legacy and commercial format support is explicitly 'best effort' — gaps surface as silent failures or 'please file an issue', which is a real risk if you're relying on it for an unusual product type. The dependency stack (geopandas, rasterio, rioxarray, xarray, spyndex) is heavy enough that the README pushes conda-forge over pip, a sign the usual geospatial packaging pain is still there.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →