Sentinel-1

Description

Sentinel-1 images are SAR acquisitions with available in several modes and correction levels. iota2 is only able to use IW GRD data, which are amplitude (real) images provided at 10 m x 10 m pixel spacing.

This data can be freely downloaded from the data provider’s website PEPS.

Using Sentinel-1

chain.s1_path is the parameter to enable the use of Sentinel-1 products by iota2. This Sentinel-1 data can be used together with the other sensors (ie:Sentinel-2) available in iota2.

chain:
{
    ...
    s1_path:"/absolute/path/s1.cfg"
    ...
}

Warning

The parameter s1_path contains a path to a configuration file and not a directory as usual.

About Sentinel-1 data

Sentinel-1 acquisitions are not provided tiled (as the data typically usable by iota2) as these are provided in level 1. The processing performed by iota2 on these data will therefore consist firstly in tiling them according to a grid of interest (for example, the grid of Sentinel-2). This tiling operation will make possible, for example, to superimpose radar data on optical data. To do this, iota2 will rely on reference images that must be available before any processing with Sentinel-1 can be done.

In addition to the geometric processing (tiling and ortho-rectification), iota2 will also perform radiometric corrections. These consist in antenna pattern correction, conversion to backscatter coefficient (gamma naught) and multi-temporal speckle filtering (Quegan filter). See section Sentinel-1 data workflow

All the information about the reference images and/or the Sentinel-1 proessing parameters must be specified in a configuration file. The table below summarises all the fields available in the configuration file.

Contents of the Sentinel-1 configuration file

The configuration file must be provided in configparser format with the following fields and sections:

Name

Section

Default Value

Description

Type

Mandatory

output

Paths

output path to store Sentinel-1 images processed by iota2 (tiled and reprojected)

str

True

s1images

Paths

path to the directory containing all Sentinel-1 data

str

True

srtm

Paths

path to the directory containing all SRTM data

str

True

geoidfile

Paths

path to the geoid file (egm96.grd)

str

True

referencesfolder

Processing

path to the directory containing reference raster to reproject Sentinel-1 data on top of it.

str

True

rasterpattern

Processing

pattern used to find reference raster by tile

str

True

tilesshapefile

Processing

shapefile containing the grid of interest over the globe.

str

True

srtmshapefile

Processing

shapefile containing the srtm grid over the globe.

str

True

tiles

Processing

list of tiles to process

list

True

temporalresolution

Processing

10

gap (in days) between interpolated data

int

False

borderthreshold

Processing

1e-3

threshold (in dB) above which the data is considered valid

float

False

ramperprocess

Processing

5000

RAM amount (Mo) to process S1 data

int

False

gapfilling_interpolation

Processing

linear

‘linear’ or ‘spline’ temporal interpolation method

str

False

window_radius

Filtering

2

window radius of the speckle filter

int

False

output

This directory will contain one directory per tile (e.g. 31TCJ), containing the tree structure :

/path/to/output/31TCJ/
├── filtered
├── outcore_S1_vh_ASC.geom
├── outcore_S1_vh_ASC.tif
├── outcore_S1_vh_DES.geom
├── outcore_S1_vh_DES.tif
├── outcore_S1_vv_ASC.geom
├── outcore_S1_vv_ASC.tif
├── outcore_S1_vv_DES.geom
├── outcore_S1_vv_DES.tif
├── s1a_31TCJ_vh_ASC_20170519t174702.geom
├── s1a_31TCJ_vh_ASC_20170519t174702.tif
├── s1a_31TCJ_vh_DES_20151231t060030.geom
├── s1a_31TCJ_vh_DES_20151231t060030.tif
├── s1a_31TCJ_vv_ASC_20170519t174702_BorderMask.tif
├── s1a_31TCJ_vv_ASC_20170519t174702.geom
├── s1a_31TCJ_vv_ASC_20170519t174702.tif
├── ...
├── s1a_31TCJ_vv_DES_20151231t060030_BorderMask.tif
├── s1a_31TCJ_vv_DES_20151231t060030.geom
├── s1a_31TCJ_vv_DES_20151231t060030.tif
├── S1_vh_ASC_dates.txt
├── S1_vh_DES_dates.txt
├── S1_vv_ASC_dates.txt
└── S1_vv_DES_dates.txt
  • tiled Sentinel-1 data : s1a_31TCJ_*_*_YYYYMMDDtHHMMSS.tif, the associated mask *BorderMask.tif and the geom file *.geom*.

  • outcore_*.tif rasters which are necessary for speckle filtering.

  • dates files : dates.txt

The filtered directory is empty by default, but will contain the following tree if the write_outputs parameter is set.

├── enl_S1_vh_ASC.geom
├── enl_S1_vh_ASC.tif
├── enl_S1_vh_DES.geom
├── enl_S1_vh_DES.tif
├── enl_S1_vv_ASC.geom
├── enl_S1_vv_ASC.tif
├── enl_S1_vv_DES.geom
├── enl_S1_vv_DES.tif
├── S1_vh_ASC_Filtered.geom
├── S1_vh_ASC_Filtered.tif
├── S1_vh_DES_Filtered.geom
├── S1_vh_DES_Filtered.tif
├── S1_vv_ASC_Filtered.geom
├── S1_vv_ASC_Filtered.tif
├── S1_vv_DES_Filtered.geom
└── S1_vv_DES_Filtered.tif
  • enl_*.tif rasters which are necessary for speckle filtering.

  • S1_*_Filtered.tif rasters which compose the Sentinel-1 time series after speckle filtering. These stacks are ordered chronologically, the first band corresponding to the first date (see the text files in the tile’s output directory)

s1images

The s1images parameter must contain all the Sentinel-1 acquisitions that should be used for the execution of iota2. For example, for 3 Sentinel-1 acquisitions, the directory indicated by the parameter must contain:

/path/to/s1images/
├── S1A_IW_GRDH_1SDV_20151231T060030_20151231T060055_009282_00D66B_F0EB.SAFE
│   ├── annotation
│   ├── manifest.safe
│   ├── measurement
│   ├── preview
│   ├── S1A_IW_GRDH_1SDV_20151231T060030_20151231T060055_009282_00D66B_F0EB.SAFE-report-20151231T083359.pdf
│   └── support
├── S1A_IW_GRDH_1SDV_20170519T174702_20170519T174727_016654_01BA3E_B031.SAFE
│   ├── annotation
│   ├── manifest.safe
│   ├── measurement
│   ├── preview
│   ├── S1A_IW_GRDH_1SDV_20170519T174702_20170519T174727_016654_01BA3E_B031.SAFE-report-20170519T201737.pdf
│   └── support
└── S1B_IW_GRDH_1SDV_20170518T175426_20170518T175451_005656_009E79_5C47.SAFE
    ├── annotation
    ├── manifest.safe
    ├── measurement
    ├── preview
    ├── S1B_IW_GRDH_1SDV_20170518T175426_20170518T175451_005656_009E79_5C47.SAFE-report-20170518T202822.pdf
    └── support

Warning

The directory must contains only IW_GRD rasters.

srtm

In order to reproject Sentinel-1 images as accurately as possible, it is necessary to use the SRTM data. This data is freely available over most of the world.

geoidfile

For the same reason that it is necessary to use SRTM data, it is also necessary to use a geoid file (egm96.grd). A version of the file is available on the OTB repository : https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-data/blob/master/Input/DEM/egm96.grd and https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-data/-/blob/master/Input/DEM/egm96.grd.hdr which must me placed next to the geoid file.

referencesfolder

As indicated in the section about Sentinel-1, iota2 uses images that have already been reprojected into the correct projection so that the Sentinel-1 data can be superimposed. This parameter indicates the directory containing the data that will be used as a reference. For example, in the case where we are only dealing with the T31TCJ tile, it must be constructed as follows:

/path/to/referencesfolder
    T31TCJ
    ├── SENTINEL2A_20151130-105641-486_L2A_T31TCJ_D_V1-0
    │   ├── MASKS
    │   ├── ...
    │   └── SENTINEL2A_20151130-105641-486_L2A_T31TCJ_D_V1-0_FRE_STACK.tif
    └── SENTINEL2A_20151203-110846-328_L2A_T31TCJ_D_V1-0
        ├── MASKS
        ├── ...
        └── SENTINEL2A_20151203-110846-328_L2A_T31TCJ_D_V1-0_FRE_STACK.tif

Where SENTINEL2A_20151130-105641-486_L2A_T31TCJ_D_V1-0 and SENTINEL2A_20151203-110846-328_L2A_T31TCJ_D_V1-0 are 2 acquisitions already processed by iota2 (presence of the raster STACK.tif). In fact, only one reference image per tile is required.

rasterpattern

This parameter allows to target a particular image in the reference acquisition directory. The raster found will then be the reference image for the reprojection of Sentinel-1 images.

Usually, when the Sentinel-2 data is used as a reference then rasterpattern is equal to STACK.tif because these rasters are all of the same resolution and in the same projection regardless of the tile.

tilesshapefile

Shapefile containing the grid of interest over the globe. Sentinel-2 grid is downloadable at https://github.com/CNES/S1Tiling/tree/master/shapefile (files Features.*)

srtmshapefile

Shapefile containing the SRTM grid over the globe. Downloadable at https://github.com/CNES/S1Tiling/tree/master/shapefile (files srtm.*)

tiles

List of tiles to process, comma separated and without any empty spaces :

tiles:31TCJ,31TDJ

temporalresolution

iota2 needs to homogenise the number of dates used over the whole area of interest (the number of dates can be different per tile and pixel). To do this, iota2 places all Sentinel-1 data in a common time grid. This parameter will then be the gap between each interpolated Sentinel-1 date.

Note

As example, two Sentinel-1 configuration files are provided s1_minimal.cfg and s1_full.cfg which are respectivelly a configuration file using all default values and with all parameters set.

Sentinel-1 data workflow

All Sentinel-1 images are subjected to the gamma calibration phase using the OTB SARCalibration application, and then these images are reprojected onto the grid of interest. Next, we proceed to filter the speckle noise in the images. To filter this noise, we use the multi-temporal filter proposed by Gelas et al. 1 and implemented in 2. It is important to note that to do this filtering, a time series is used and this one is built according to the data acquisition mode (DESCENDING, ASCENDING) and the polarization (VV, VH). Then iota2 resamples the output of the speckle filter to a common time grid for the whole area. Finally, this time series will feed the classification system. If another sensor is used, the data will simply be concatenated.

We can summarise this workflow as follows:

Sentinel-1 iota2 workflow

References

1

Quegan, S., & Yu, J. J. (2001). Filtering of multichannel sar images. IEEE Transactions on Geoscience and Remote Sensing, 39(11), 2373–2379.

2

https://framagit.org/iota2-project/otb-for-biomass/-/tree/memChain/MultitempFiltering