Sentinel-1 Algorithms

Sentinel-1 is a space mission funded by the European Union and carried out by the European Space Agency (ESA) within the Copernicus Programme. Sentinel-1 collects C-band synthetic aperture radar (SAR) imagery at a variety of polarizations and resolutions. Since radar data requires several specialized algorithms to obtain calibrated, orthorectified imagery, this document describes pre-processing of Sentinel-1 data in Earth Engine.

Sentinel-1 data is collected with several different instrument configurations, resolutions, band combinations during both ascending and descending orbits. Because of this heterogeneity, it's usually necessary to filter the data to down to a homogenous subset before starting processing. This process is outlined below in the Metadata and Filtering section.

Metadata and Filtering

To create a homogeneous subset of Sentinel-1 data, it will usually be necessary to filter the collection using metadata properties. The common metadata fields used for filtering include these properties:

  1. transmitterReceiverPolarisation: ['VV'], ['HH'], ['VV', 'VH'], or ['HH', 'HV']
  2. instrumentMode: 'IW' (Interferometric Wide Swath), 'EW' (Extra Wide Swath) or 'SM' (Strip Map). See this reference for details.
  3. orbitProperties_pass: 'ASCENDING' or 'DESCENDING'
  4. resolution_meters: 10, 25 or 40
  5. resolution: 'M' (medium) or 'H' (high). See this reference for details.

For example:

// Load the Sentinel-1 ImageCollection.
var sentinel1 = ee.ImageCollection('COPERNICUS/S1_GRD');

// Filter by metadata properties.
var vh = sentinel1
  // Filter to get images with VV and VH dual polarization.
  .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
  .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
  // Filter to get images collected in interferometric wide swath mode.
  .filter(ee.Filter.eq('instrumentMode', 'IW'));

// Filter to get images from different look angles.
var vhAscending = vh.filter(ee.Filter.eq('orbitProperties_pass', 'ASCENDING'));
var vhDescending = vh.filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'));

// Create a composite from means at different polarizations and look angles.
var composite =['VH').mean(),

// Display as a composite of polarization and backscattering characteristics.
Map.addLayer(composite, {min: [-25, -20, -25], max: [0, 10, 0]}, 'composite');

Sentinel-1 Preprocessing

Imagery in the Earth Engine 'COPERNICUS/S1_GRD' Sentinel-1 ImageCollection is processed to backscatter coefficient (σ°) in decibels (dB). The backscatter coefficient represents target backscattering area (radar cross-section) per unit ground area. Because it can vary by several orders of magnitude, it is converted to dB as 10*log10σ°. It measures whether the radiated terrain scatters the incident microwave radiation preferentially away from the SAR sensor dB < 0) or towards the SAR sensor dB > 0). This scattering behavior depends on the physical characteristics of the terrain, primarily the geometry of the terrain elements and their electromagnetic characteristics.

Earth Engine uses the following preprocessing steps (as implemented by the Sentinel-1 Toolbox) to derive the backscatter coefficient in each pixel:

  1. Apply orbit file (using restituted orbits)
  2. Thermal noise removal
  3. Radiometric calibration
  4. Terrain correction (orthorectification)

Thermal noise removal uses the noise vectors to remove dark strips near scene edges with invalid data (this operation cannot be applied to some earlier images). All bursts in all sub-swaths are then seamlessly merged to form a single contiguous image per polarization band. To make time series comparable, Radiometric calibration computes backscatter intensity using sensor calibration parameters in the GRD metadata. Orthorectification converts data from ground range geometry, which does not take terrain into account, to σ° using the SRTM 30 meter DEM or the ASTER DEM for high latitudes (greater than 60° or less than -60°). Finally, the unitless backscatter coefficient is converted to dB as described above. Values are then clamped to the 1st and 99th percentile to preserve the dynamic range against anomalous outliers, and quantized to 16 bits.

Send feedback about...

Google Earth Engine API