Skip to main content

Remote-sensing opensource python library reading optical and SAR sensors, loading and stacking bands, clouds, DEM and index.

Project description

pypi Conda Tests Gitter pre-commit Apache

eoreader_logo EOReader

EOReader is a multi-satellite reader allowing you to open optical and SAR data.

Optical SAR
Sensors + Sentinel-2 & Theia
+ Sentinel-3 OLCI & SLSTR
+ Landsats 1 - 8
+ Sentinel-1
+ COSMO-Skymed
+ TerraSAR-X
+ RADARSAT-2

It also implements additional sensor-agnostic features:

EOReader works with xarrays.DataArray and geopandas.GeoDataFrames

Python Quickstart

The main features of EOReader are gathered hereunder. For optical data:

>>> from eoreader.reader import Reader
>>> from eoreader.bands.alias import *

>>> # Landsat-5 MSS path, can be found in CI/DATA
>>> l5_path = r"D:/eoreader/CI/DATA/LM05_L1TP_200029_19841014_20200902_02_T2.tar"

>>> # Create the reader object and open satellite data
>>> eoreader = Reader()
>>> l5_prod = eoreader.open(l5_path)  # The Reader will recognize the satellite type from its structure

>>> # Get the footprint of the product (usable data) and its extent (envelope of the tile)
>>> footprint = l5_prod.footprint()
>>> extent = l5_prod.extent()

>>> # Load some bands and index: they will all share the same metadata
>>> bands = l5_prod.load([NDVI, GREEN, HILLSHADE, CLOUDS])

>>> # Create a stack with some other bands
>>> stack = l5_prod.stack([NDWI, RED, SLOPE])

>>> # Read Metadata
>>> mtd, namespace = l5_prod.read_mtd()

For SAR data:

>>> from eoreader.reader import Reader
>>> from eoreader.bands.alias import *

>>> # Sentinel-1 GRD path, not provided in package
>>> s1_path = r"D:/eoreader/S1B_EW_GRDM_1SDH_20200422T080459_20200422T080559_021254_028559_784D.zip"

>>> # Create the reader object and open satellite data
>>> eoreader = Reader()
>>> s1_prod = eoreader.open(s1_path)  # The Reader will recognize the satellite type from its name

>>> # Get the footprint of the product (usable data) and its extent (envelope of the tile)
>>> footprint = s1_prod.footprint()
>>> extent = s1_prod.extent()

>>> # Load some bands and index: they will all share the same metadata
>>> bands = s1_prod.load([VV, VV_DSPK, DEM])

>>> # Create a stack with some other bands
>>> stack = s1_prod.stack([VV, VV_DSPK, SLOPE])

>>> # Read Metadata
>>> mtd, namespace = s1_prod.read_mtd()

Sentinel-3 and SAR products need SNAP gpt to be geocoded. Ensure that you have the folder containing your gpt executable in your PATH.

Documentation

The API documentation can be found here.

Examples

Available notebooks provided as examples:

Installation

Pip

You can install EOReader via pip:

pip install eoreader

EOReader mainly relies on geopandas and rasterio (through rioxarray).

On Windows and with pip, you may face installation issues due to GDAL. The well known workaround of installing from Gohlke's wheels also applies here. Please look at the rasterio page to learn more about that.

Conda

You can install EOReader via conda:

conda config --env --set channel_priority strict

conda install -c conda-forge eoreader

License

EOReader is licensed under Apache License v2.0. See LICENSE file for details.

Authors

EOReader has been created by ICube-SERTIT.

Credits

EOReader is built on top of amazing libs, without which it couldn't have been coded:

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eoreader-0.3.3.tar.gz (593.9 kB view hashes)

Uploaded Source

Built Distribution

eoreader-0.3.3-py3-none-any.whl (111.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page