Optical data#

You will find an optical tutorial here.

Implemented optical constellation#

optical_sensors

The product resolution is the one given in Data Access Portfolio (2014-2022, section 6.2). The Data Access Portfolio Document presents the offer of the datasets and data access services that are made available to the Copernicus Users in response to their Earth Observation data requirements. However, especially for SAR data, the default pixel size of GRD bands is not the same as the product resolution!

Constellations

Class

Use archive

Sentinel-2

S2Product

Sentinel-2 on AWS cloud

S2CloudProduct

-

Sentinel-2 Theia

S2TheiaProduct

Sentinel-3 SLSTR

S3SlstrProduct

Sentinel-3 OLCI

S3OlciProduct

Landsat 8/9 OLI-TIRS

LandsatProduct

Landsat 7 ETM

LandsatProduct

COL1*: ❌, COL2: ✅

Landsat 4/5 TM

LandsatProduct

COL1*: ❌, COL2: ✅

Landsat 1-5 MSS

LandsatProduct

COL1*: ❌, COL2: ✅

Harmonized Landsat-Sentinel

HlsProduct

PlanetScope

PlaProduct

✅(❌ if multiple subdatasets)

SkySat

SkyProduct

✅(❌ if multiple subdatasets)

RapidEye

ReProduct

✅(❌ if multiple subdatasets)

Pleiades-Neo

PneoProduct

Pleiades

PldProduct

Vision-1

Vis1Product

SPOT 4/5

Spot45Product

SPOT 6/7

Spot67Product

Maxar**

MaxarProduct

SuperView-1

Sv1Product

GEOSAT-2

Gs2Product

* Archived Landsat Collection-1 are not managed because of the tar.gz format, which is too slow to process. It is better to work on the extracted product. Landsat-9 Collection-1 products don’t exist.

** Maxar satellites: Worldview 2, 3, 4 and GeoEye-1 (but WorldView-1, QuickBird should work, however they don’t have been tested). The resolution can vary around the one given here.

Warning

Satellites products that cannot be used as archived have to be extracted before use.

Constellations

Product Types

Default Pixel Size

Sentinel-2

L1C & L2A & L2Ap

10 m

Sentinel-2 on AWS Cloud

L2A (for now)

10 m

Sentinel-2 Theia

L2A

10 m

Sentinel-3 SLSTR

RBT

300 m

Sentinel-3 OLCI

EFR

500 m

Landsat 8/9 OLI-TIRS

Level 1 & 2

30 m

Landsat 7 ETM

Level 1 & 2

30 m

Landsat 4/5 TM

Level 1 & 2

30 m

Landsat 1-5 MSS

Level 1

60 m

Harmonized Landsat-Sentinel

L30 & S30

30 m

PlanetScope

L3A & L3B

3 m

SkySat

(Collect Product) ortho_*

0.5 m

RapidEye

L3A

5 m

Pleiades-Neo

SEN**, PRJ, ORT & MOS

0.3 m (PAN), 1.2 m (MS)

Pleiades

SEN**, PRJ, ORT & MOS

0.5 m (PAN), 2 m (MS)

Vision-1

PRJ & ORTP

0.9 m (PAN), 3.5 m (MS)

SPOT 4/5

L1A, L1B, L2A

10 m (PAN), 20 m (MS)

SPOT 6/7

SEN, PRJ, ORT & MOS

1.5 m (PAN), 6 m (MS)

Maxar*

Standard & Ortho

0.5 m (PAN), 2 m (MS)

SuperView-1

L1B & L2A

0.5 m (PAN), 2 m (MS)

GEOSAT-2

L1B & L1C & L1D & L1S

0.4 m (PAN), 2 m (MS) for L1D data

* Maxar satellites: Worldview 2, 3, 4 and GeoEye-1 (but WorldView-1, QuickBird should work, however they don’t have been tested). The resolution can vary around the one given here.

** ⚠ DIMAP SEN products are orthorectified using RPCs and not the rigorous sensor model. Shift can occur. Please refer to this issue.

Note

Note that for the rest of this documentation:

  • HLS.S30 and Sentinel-2 data are equivalent (only 30m gsd).

  • HLS.L30 and Landsat-OLI-TIRS data are equivalent.

The goal of EOReader is to implement every constellation that can be used in the Copernicus Emergency Management Service. The constellations that can be used during CEMS activations are (as of 09/2021):
cems_constellations

Optical bands#

The following bands are available in EOReader, but may not be available for all constellations.

Warning

EOReader loads bands in UTM. VHR bands can be orthorectified but EOReader needs a DEM for that. Be sure to position the environment variable EOREADER_DEM_PATH to the DEM you want.

Satellite bands#

Note

Optical bands are always loaded in reflectance, except for brilliance temperature bands that are left as is.

However, the user can ask for bands “as is” by using the TO_REFLECTANCE keyword with the load and stack functions. It will give the bands in the provider format (either DN, radiance or reflactance in uint16…). See the optical notebook to see how to implement it.

These bands will be cleaned according to the user’s needs. By default, only the pixels outside the detectors footprints are set to nodata. Methods to clean optical bands are best described in the notebook about the optical cleaning methods.

Band names#

These bands are mainly based on Sentinel-2 bands. The names are the ones from Sentinel-2, even if sometimes it can be confusing (especially for Coastal Aerosol and SWIR Cirrus bands).

Some additions to the Sentinel-2 bands have been made (YELLOW, PAN…):

  • CA: Coastal Aerosol

  • BLUE

  • GREEN_1: First Green band of PlanetScope 8 bands, mapped to the 5th band of Sentinel-3 OLCI

  • GREEN

  • YELLOW

  • RED

  • VRE_1: Vegetation Red Edge 1

  • VRE_2: Vegetation Red Edge 2

  • VRE_3: Vegetation Red Edge 3

  • NIR: Near Infrared

  • NARROW_NIR: Spectrally resolved Narrow Near Infrared (band 8A for Sentinel-2, same as NIR for other sensors)

  • WV: Water vapour

  • SWIR_CIRRUS: Cirrus band

  • SWIR_1: Short Wave Infrared 1

  • SWIR_2 Short Wave Infrared 2

  • PAN: Panchromatic

  • TIR_1: Thermal Infrared 1

  • TIR_2: Thermal Infrared 2

Note

Note that bands that are not mapped can still be used (i.e. for Sentinel-3 OLCI and SLSTR). They will be called by their true name (i.e. F1 or Oa05). However, the mapped band will have to be called with their mapped name, i.e. BLUE rather than Oa04 for Sentinel-3 OLCI. But the bands that are not present in the alias file won’t be recognized.

Optical band mapping between constellations#

Bands (names)

Coastal aerosol

Blue

Green I

Green

Yellow

Red

Vegetation red edge

Vegetation red edge

Vegetation red edge

NIR

Narrow NIR

Water vapor

SWIR – Cirrus

SWIR

SWIR

Panchromatic

Thermal IR

Thermal IR

Bands (alias)

CA

BLUE

GREEN_1

GREEN

YELLOW

RED

VRE_1

VRE_2

VRE_3

NIR

NARROW_NIR

WV

SWIR_CIRRUS

SWIR_1

SWIR_2

PAN

TIR_1

TIR_2

Sentinel-2

1 (60m)

2 (10m)

3 (10m)

4 (10m)

5 (20m)

6 (20m)

7 (20m)

8 (10m)

8A (20m)

9 (60m)

10 (60m)

11 (20m)

12 (20m)

Sentinel-2 Theia

Not available

2 (10m)

3 (10m)

4 (10m)

5 (20m)

6 (20m)

7 (20m)

8A (10m)

8 (20m)

Not available

10 (60m)

11 (20m)

12 (20m)

Sentinel-3 OLCI*

3 (300m)

4 (300m)

5 (300m)

6 (300m)

7 (300m)

8 (300m)

11 (300m)

12 (300m)

16 (300m)

17 (300m)

17 (300m)

20 (300m)

Sentinel-3 SLSTR*

1 (500m)

2 (500m)

3 (500m)

3 (500m)

4 (500m)

5 (500m)

6 (500m)

8 (1km)

9 (1km)

Landsat OLI-TIRS (8-9)

1 (30m)

2 (30m)

3 (30m)

4 (30m)

5 (30m)

5 (30m)

9 (30m)

6 (30m)

7 (30m)

8 (15m)

10 (100m)

11 (100m)

Landsat ETM (7)

1 (30m)

2 (30m)

3 (30m)

4 (30m)

4 (30m)

5 (30m)

7 (30m)

8 (15m)

6 (60m)

6 (60m)

Landsat TM (5-4)

1 (30m)

2 (30m)

3 (30m)

4(30m)

4 (30m)

5 (30m)

7 (30m)

6 (120m)

6 (120m)

Landsat MSS (5-4)

1 (60m)

2 (60m)

3 (60m)

3 (60m)

3 (60m)

4 (60m)

4 (60m)

Landsat MSS (1-3)

4 (60m)

5 (60m)

6 (60m)

6 (60m)

6 (60m)

7 (60m)

7 (60m)

8 (240m)
only for L3

8 (240m)
only for L3

PlanetScope (4 bands)

1 (3m)

2 (3m)

3 (3m)

4 (3m)

4 (3m)

PlanetScope (5 bands)

1 (3m)

2 (3m)

3 (3m)

4 (3m)

5 (3m)

5 (3m)

PlanetScope (8 bands)

1 (3m)

2 (3m)

3 (3m)

4 (3m)

5 (3m)

6 (3m)

7 (3m)

8 (3m)

8 (3m)

SkySat

1 (0.5m)

2 (0.5m)

3 (0.5m)

4 (0.5m)

4 (0.5m)

RapidEye

1 (5m)

2 (5m)

3 (5m)

4 (5m)

5 (5m)

5 (5m)

Pleiades

3 (0.5/2m)

2 (0.5/2m)

1 (0.5/2m)

4 (0.5/2m)

4 (0.5/2m)

1 (0.5m)

Pleiades-Neo

5 (0.3/1.2m)

3 (0.3/1.2m)

2 (0.3/1.2m)

1 (0.3/1.2m)

6 (0.3/1.2m)

6 (0.3/1.2m)

6 (0.3/1.2m)

4 (0.3/1.2m)

4 (0.3/1.2m)

1 (0.5m)

SPOT-4

1 (10/20m)

2 (10/20m)

3 (10/20m)

3 (10/20m)

4 (10/20m)

1 (10m)

SPOT-5

1 (2.5/5/10m)

2 (2.5/5/10m)

3 (2.5/5/10m)

3 (2.5/5/10m)

4 (2.5/5/10m)

1 (2.5/5m)

SPOT-6/7

3 (1.5/6m)

2 (1.5/6m)

1 (1.5/6m)

4 (1.5/6m)

4 (1.5/6m)

1 (0.5m)

Vision-1

1 (0.9/3.5m)

2 (0.9/3.5m)

3 (0.9/3.5m)

4 (0.9/3.5m)

4 (0.9/3.5m)

1 (0.5m)

WorldView-1

1 (0.5m)

WorldView-4, GeoEye-1, QuickBird

1 (0.5m/2m)

2 (0.5m/2m)

3 (0.5m/2m)

4 (0.5m/2m)

4 (0.5m/2m)

1 (0.5m)

WorldView-2/3

1 (0.5m/2m)

2 (0.5m/2m)

3 (0.5m/2m)

4 (0.5m/2m)

5 (0.5m/2m)

6 (0.5m/2m)

6 (0.5m/2m)

6 (0.5m/2m)

7 (0.5m/2m)

7 (0.5m/2m)

8 (0.5m/2m)

1 (0.5m)

Superview-1

1 (0.5m/2m)

2 (0.5m/2m)

3 (0.5m/2m)

4 (0.5m/2m)

4 (0.5m/2m)

1 (0.5m)

GEOSAT-2

4 (0.4m/2m)

3 (0.4m/2m)

2 (0.4m/2m)

1 (0.4m/2m)

1 (0.4m/2m)

1 (0.4m)

* Not all bands of these constellations are mapped in EOReader. However, they can still be used by using directly their name (i.e. F1 or Oa05)

Cloud bands#

Maximum 5 cloud bands are available, according to the files provided in the data. All the bands are rasterized and orthorectified if needed (for Sentinel-2 or 3 data for example), ready to be stacked.

The only difference with the other bands is that the cloud bands are provided in uint8 and have a nodata equal to 255.

  • RAW_CLOUDS: Raw Cloud file as provided (the only changes are the orthorectification and rasterization). Can provide other flags, or cloud probability.

  • CLOUDS: Cloud presence (1) or absence (0). If clouds are provided in probabilities, their presence is determined according to Landsat definition (proba> 67%)

  • CIRRUS: Cirrus presence (1) or absence (0). If clouds are provided in probabilities, their presence is determined according to Landsat definition (proba> 67%)

  • SHADOWS: Shadows presence (1) or absence (0). If clouds are provided in probabilities, their presence is determined according to Landsat definition (proba> 67%)

  • ALL_CLOUDS: Cloud OR Cirrus OR Shadows presence (1) or absence (0).
    Do not take into account missing bands (i.e. for Landsat MSS constellation, ALL_CLOUDS == CLOUDS)

Sensors

Cloud files

Clouds Bands

Sentinel-2

RAW_CLOUDS, CLOUDS, CIRRUS, ALL_CLOUDS

Sentinel-2 Theia

RAW_CLOUDS, CLOUDS, SHADOWS, CIRRUS, ALL_CLOUDS

Sentinel-3 OLCI

Sentinel-3 SLSTR

RAW_CLOUDS, CLOUDS, CIRRUS, ALL_CLOUDS

Landsat 8/9

RAW_CLOUDS, CLOUDS, SHADOWS, CIRRUS, ALL_CLOUDS

Landsat 7

RAW_CLOUDS, CLOUDS, SHADOWS, ALL_CLOUDS

Landsat 4/5 TM

RAW_CLOUDS, CLOUDS, SHADOWS, ALL_CLOUDS

Landsat 1-5 MSS

RAW_CLOUDS, CLOUDS, ALL_CLOUDS

Harmonized Landsat-Sentinel

RAW_CLOUDS, CLOUDS, SHADOWS, CIRRUS, ALL_CLOUDS

PlanetScope

RAW_CLOUDS, CLOUDS, SHADOWS, CIRRUS, ALL_CLOUDS

SkySat

RAW_CLOUDS, CLOUDS, SHADOWS, CIRRUS, ALL_CLOUDS

RapidEye

RAW_CLOUDS, CLOUDS, ALL_CLOUDS

Pleiades

RAW_CLOUDS, CLOUDS, ALL_CLOUDS

Pleiades-Neo

RAW_CLOUDS, CLOUDS, ALL_CLOUDS

SPOT-4/5

SPOT-6/7

RAW_CLOUDS, CLOUDS, ALL_CLOUDS

Vision-1

Maxar (GeoEye-1, WorldViews)

SuperView-1

GEOSAT-2

DEM bands#

Optical constellations can all load DEM, SLOPE and HILLSHADE bands. The SLOPE band is given in degrees. Please post an issue if you need this band in percent.

Use the environment variable EOREADER_DEM_PATH to position your worldwide DEM. You can use both a local path e.g. /mnt/dataserver/dems/srtm_30_v4/index.vrt or \\dataserver\DEMS\srtm_30_v4\index.vrt or a URL pointing to a web resources hosted on a S3 compatible storage e.g. https://s3.storage.com/dem-bucket/srtm_cog.tif (not available on Windows for now).

Available spectral indices#

EOReader uses (from version 0.18.0) the indices described in the awesome spectral indices (ASI) project.

⚠ You may need to install the last spyndex directly from GitHub latest version to have all available indices: pip uninstall spyndex && pip install -U --no-deps git+https://github.com/awesome-spectral-indices/spyndex.git

In addition to all these indices, EOReader kept the following indices for legacy purposes:

Spectral Indices

ASI equivalent

Formulas (with ASI syntax)

Name

AFRI_1_6

AFRI1600

(N - 0.66 * S1) / (N + 0.66 * S1)

Aerosol Free Vegetation Index (1600 nm)

AFRI_2_1

AFRI2100

(N - 0.5 * S2) / (N + 0.5 * S2)

Aerosol Free Vegetation Index (2100 nm)

BSI

BI

((S1 + R) - (N + B))/((S1 + R) + (N + B))

Barren Soil Index

DSWI

DSWI5

(N + G)/(S1 + R)

Disease water stress index

GRI

DSWI4

G/R

Green-to-Red ratio Index

NDGRI

NGRDI

(G - R) / (G + R)

Normalized Green Red Difference Index

NDMI21 (or NDMI2100)

(N - S2) / (N + S2)

Normalized Difference Moisture Index (with 2100 nm)

NDRE1

NDREI

(N - RE1) / (N + RE1)

Normalized Difference Red Edge Index

NDRE2

(N - RE2) / (N + RE2)

Normalized Difference Red-Edge Index with RE2

NDRE3

(N - RE3) / (N + RE3)

Normalized Difference Red-Edge Index with RE1

CI32

(RE3 / RE2) - 1

Chlorophyll Index RedEdge RE3/RE2

CI21

(RE2 / RE1) - 1

Chlorophyll Index RedEdge RE2/RE1

PANI

BITM

(R**2 + B**2 + G**2)**0.5

Panchromatic mocking index

RDI

DSI

S1/N

Ratio Drought Index / Drought Stress Index

RGI

RGRI

R/G

Relative Greenness Index / Red-Green Ratio Index

SBI

(R**2 + N**2)**0.5

Soil Brightness Index

SCI

3*G - R - 100

Soil Cuirass Index

SRSWIR

S1/S2

Simple Ratio SWIR16/SWIR21 Clay Minerals

TCBRI

0.3037 *B + 0.2793 * G + 0.4743 * R + 0.5585 * N + 0.5082 * S1 + 0.1863 * S2

Tasseled Cap Brightness

TCGRE

0.2848 *B + 0.2435 * G + 0.5436 * R + 0.7243 * N + 0.0840 * S1 + 0.1800 * S2

Tasseled Cap Greenness

TCWET

0.1509 *B + 0.1973 * G + 0.3279 * R + 0.3406 * N + 0.7112 * S1 + 0.4572 * S2

Tasseled Cap Wetness

WI

WI2015

1.7204 + 171 * G + 3 * R - 70 * N - 45 * S1 - 71 * S2

Water Index (2015)

WV_BI

NHFD

(RE1 - A) / (RE1 + A)

WorldView Built-up Index

WV_SI

NDSIWV

(Y - G) / (Y + G)

WorldView Soil Index

WV_VI

(WV - R) / (WV + R)

WorldView Vegetation Index

WV_WI

(WV - A) / (WV + A)

WorldView Water Index

Note

WorldView-1 is not concerned by spectral indices as it only has a panchromatic band

Documentary Sources#

Copernicus#

Landsat#

Sentinel-2#

Harmonize Landsat-Sentinel#

Sentinel-2 Theia#

Sentinel-3#

PlanetScope, SkySat and RapidEye#

Vision-1#

DIMAP V1: SPOT-4/5#

DIMAP V2: Pleiades, SPOT-6/7#

Maxar (ex Digital Globe)#

SuperView-1#

GeoSat-2 (ex Deimos-2)#

Instruments#

Most instruments can be found on OSCAR or on ESA Earth Online.

Band mapping#

Index#

Documentation last accessed on the 04/12/2023