EOReader¶
EOReader is a remote-sensing opensource python library reading optical and SAR sensors, loading and stacking bands, clouds, DEM and index in a sensor-agnostic way.
Optical sensors |
SAR sensors |
---|---|
Sentinel-2 and Sentinel-2 Theia |
Sentinel-1 |
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 = "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
>>> # Specify a DEM to load DEM bands
>>> import os
>>> from eoreader.env_vars import DEM_PATH
>>> os.environ[DEM_PATH] = "my_dem.tif"
>>> # 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 = "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
>>> # Specify a DEM to load DEM bands
>>> import os
>>> from eoreader.env_vars import DEM_PATH
>>> os.environ[DEM_PATH] = "my_dem.tif"
>>> # 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
.
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.