Sentinel-1 SAR GRD: C-band Synthetic Aperture Radar Ground Range Detected, log scaling

COPERNICUS/S1_GRD
Dataset Availability
2014-10-03T00:00:00Z–2024-11-07T17:36:07Z
Dataset Provider
Earth Engine Snippet
ee.ImageCollection("COPERNICUS/S1_GRD")
Tags
copernicus esa eu radar sar sentinel
backscatter
polarization

Description

The Sentinel-1 mission provides data from a dual-polarization C-band Synthetic Aperture Radar (SAR) instrument at 5.405GHz (C band). This collection includes the S1 Ground Range Detected (GRD) scenes, processed using the Sentinel-1 Toolbox to generate a calibrated, ortho-corrected product. The collection is updated daily. New assets are ingested within two days after they become available.

This collection contains all of the GRD scenes. Each scene has one of 3 resolutions (10, 25 or 40 meters), 4 band combinations (corresponding to scene polarization) and 3 instrument modes. Use of the collection in a mosaic context will likely require filtering down to a homogeneous set of bands and parameters. See this article for details of collection use and preprocessing. Each scene contains either 1 or 2 out of 4 possible polarization bands, depending on the instrument's polarization settings. The possible combinations are single band VV or HH, and dual band VV+VH and HH+HV:

  1. VV: single co-polarization, vertical transmit/vertical receive
  2. HH: single co-polarization, horizontal transmit/horizontal receive
  3. VV + VH: dual-band cross-polarization, vertical transmit/horizontal receive
  4. HH + HV: dual-band cross-polarization, horizontal transmit/vertical receive

Each scene also includes an additional 'angle' band that contains the approximate incidence angle from ellipsoid in degrees at every point. This band is generated by interpolating the 'incidenceAngle' property of the 'geolocationGridPoint' gridded field provided with each asset.

Each scene was pre-processed with Sentinel-1 Toolbox using the following steps:

  1. Thermal noise removal
  2. Radiometric calibration
  3. Terrain correction using SRTM 30 or ASTER DEM for areas greater than 60 degrees latitude, where SRTM is not available. The final terrain-corrected values are converted to decibels via log scaling (10*log10(x)).

For more information about these pre-processing steps, please refer to the Sentinel-1 Pre-processing article. For further advice on working with Sentinel-1 imagery, see Guido Lemoine's tutorial on SAR basics and Mort Canty's tutorial on SAR change detection.

This collection is computed on-the-fly. If you want to use the underlying collection with raw power values (which is updated faster), see COPERNICUS/S1_GRD_FLOAT.

Bands

Bands

Name Units Min Max Pixel Size Description
HH dB -50* 1* 10 meters

Single co-polarization, horizontal transmit/horizontal receive

HV dB -50* 1* 10 meters

Dual-band cross-polarization, horizontal transmit/vertical receive

VV dB -50* 1* 10 meters

Single co-polarization, vertical transmit/vertical receive

VH dB -50* 1* 10 meters

Dual-band cross-polarization, vertical transmit/horizontal receive

angle deg 0* 90* 20000 meters

Approximate incidence angle from ellipsoid

* estimated min or max value

Image Properties

Image Properties

Name Type Description
GRD_Post_Processing_facility_country STRING

Name of the country where the facility is located. This element is configurable within the IPF.

GRD_Post_Processing_facility_name STRING

Name of the facility where the processing step was performed. This element is configurable within the IPF.

GRD_Post_Processing_facility_organisation STRING

Name of the organisation responsible for the facility. This element is configurable within the IPF.

GRD_Post_Processing_facility_site STRING

Geographical location of the facility. This element is configurable within the IPF.

GRD_Post_Processing_software_name STRING

Name of the software.

GRD_Post_Processing_software_version STRING

Software version identification.

GRD_Post_Processing_start DOUBLE

Processing start time.

GRD_Post_Processing_stop DOUBLE

Processing stop time.

SLC_Processing_facility_country STRING

Name of the country where the facility is located. This element is configurable within the IPF.

SLC_Processing_facility_name STRING

Name of the facility where the processing step was performed. This element is configurable within the IPF.

SLC_Processing_facility_organisation STRING

Name of the organisation responsible for the facility. This element is configurable within the IPF.

SLC_Processing_facility_site STRING

Geographical location of the facility. This element is configurable within the IPF.

SLC_Processing_software_name STRING

Name of the software.

SLC_Processing_software_version STRING

Software version identification.

SLC_Processing_start DOUBLE

Processing start time.

SLC_Processing_stop DOUBLE

Processing stop time.

S1TBX_Calibration_Operator_version STRING

Sentinel-1 Toolbox calibration tool version.

S1TBX_SAR_Processing_version STRING

Sentinel-1 Toolbox SAR processing tool version.

SNAP_Graph_Processing_Framework_GPF_version STRING

Sentinel Application Platform (SNAP) version.

startTimeANX DOUBLE

Sensing start time of the input data relative to the ascending node crossing. This is a count of the time elapsed since the orbit ascending node crossing [ms].

stopTimeANX DOUBLE

Sensing stop time of the input data relative to the ascending node crossing. This is a count of the time elapsed since the orbit ascending node crossing [ms].

nssdcIdentifier STRING

Uniquely identifies the mission according to standards defined by the World Data Center for Satellite Information (WDC-SI), available here.

familyName STRING

The full mission name. E.g. "SENTINEL-1"

platform_number STRING

The alphanumeric identifier of the platform within the mission.

platformHeading DOUBLE

Platform heading relative to North, degrees

instrument STRING

Information related to the instrument on the platform to which acquired the data.

instrumentMode STRING

IW (Interferometric Wide Swath), EW (Extra Wide Swath) or SM (Strip Map)

instrumentSwath STRING

List of the swaths contained within a product. Most products will contain only one swath, except for TOPS SLC products which include 3 or 5 swaths.

orbitNumber_start DOUBLE

Absolute orbit number of the oldest line within the image data.

orbitNumber_stop DOUBLE

Absolute orbit number of the most recent line within the image data.

relativeOrbitNumber_start DOUBLE

Relative orbit number of the oldest line within the image data.

relativeOrbitNumber_stop DOUBLE

Relative orbit number of the most recent line within the image data.

cycleNumber DOUBLE

Absolute sequence number of the mission cycle to which the oldest image data applies.

phaseIdentifier DOUBLE

Id of the mission phase to which the oldest image data applies.

orbitProperties_pass STRING

Direction of the orbit ('ASCENDING' or 'DESCENDING') for the oldest image data in the product (the start of the product).

orbitProperties_ascendingNodeTime DOUBLE

UTC time of the ascending node of the orbit. This element is present for all products except ASAR L2 OCN products which are generated from an ASAR L1 input.

resolution STRING

H for high or M for medium.

resolution_meters DOUBLE

Resolution in meters.

instrumentConfigurationID DOUBLE

The instrument configuration ID (Radar database ID) for this data.

missionDataTakeID DOUBLE

Unique ID of the datatake within the mission.

transmitterReceiverPolarisation STRING_LIST

Transmit/Receive polarisation for the data. There is one element for each Tx/Rx combination: ['VV'], ['HH'], ['VV', 'VH'], or ['HH', 'HV'].

productClass STRING

Output product class "A" for Annotation or "S" for Standard.

productClassDescription STRING

Textual description of the output product class.

productComposition STRING

The composition type of this product: "Individual", "Slice", or "Assembled".

productType STRING

The product type (correction level) of this product.

productTimelinessCategory STRING

Describes the required timeliness of the processing. One of: NRT-10m, NRT-1h, NRT-3h, Fast-24h, Off-line, or Reprocessing

sliceProductFlag STRING

True if this is a slice from a larger product or false if this is a complete product.

segmentStartTime DOUBLE

Sensing start time of the segment to which this slice belongs. This field is only present if sliceProductFlag = true

sliceNumber DOUBLE

Absolute slice number of this slice starting at 1. This field is only present if sliceProductFlag = true.

totalSlices DOUBLE

Total number of slices in the complete data take. This field is only present if sliceProductFlag = true.

Terms of Use

Terms of Use

The use of Sentinel data is governed by the Copernicus Sentinel Data Terms and Conditions.

Explore with Earth Engine

Code Editor (JavaScript)

var imgVV = ee.ImageCollection('COPERNICUS/S1_GRD')
        .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
        .filter(ee.Filter.eq('instrumentMode', 'IW'))
        .select('VV')
        .map(function(image) {
          var edge = image.lt(-30.0);
          var maskedImage = image.mask().and(edge.not());
          return image.updateMask(maskedImage);
        });

var desc = imgVV.filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'));
var asc = imgVV.filter(ee.Filter.eq('orbitProperties_pass', 'ASCENDING'));

var spring = ee.Filter.date('2015-03-01', '2015-04-20');
var lateSpring = ee.Filter.date('2015-04-21', '2015-06-10');
var summer = ee.Filter.date('2015-06-11', '2015-08-31');

var descChange = ee.Image.cat(
        desc.filter(spring).mean(),
        desc.filter(lateSpring).mean(),
        desc.filter(summer).mean());

var ascChange = ee.Image.cat(
        asc.filter(spring).mean(),
        asc.filter(lateSpring).mean(),
        asc.filter(summer).mean());

Map.setCenter(5.2013, 47.3277, 12);
Map.addLayer(ascChange, {min: -25, max: 5}, 'Multi-T Mean ASC', true);
Map.addLayer(descChange, {min: -25, max: 5}, 'Multi-T Mean DESC', true);

Python setup

See the Python Environment page for information on the Python API and using geemap for interactive development.

import ee
import geemap.core as geemap

Colab (Python)

def mask_edge(image):
  edge = image.lt(-30.0)
  masked_image = image.mask().And(edge.Not())
  return image.updateMask(masked_image)


img_vv = (
    ee.ImageCollection('COPERNICUS/S1_GRD')
    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
    .filter(ee.Filter.eq('instrumentMode', 'IW'))
    .select('VV')
    .map(mask_edge)
)

desc = img_vv.filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))
asc = img_vv.filter(ee.Filter.eq('orbitProperties_pass', 'ASCENDING'))

spring = ee.Filter.date('2015-03-01', '2015-04-20')
late_spring = ee.Filter.date('2015-04-21', '2015-06-10')
summer = ee.Filter.date('2015-06-11', '2015-08-31')

desc_change = ee.Image.cat(
    desc.filter(spring).mean(),
    desc.filter(late_spring).mean(),
    desc.filter(summer).mean(),
)

asc_change = ee.Image.cat(
    asc.filter(spring).mean(),
    asc.filter(late_spring).mean(),
    asc.filter(summer).mean(),
)

m = geemap.Map()
m.set_center(5.2013, 47.3277, 12)
m.add_layer(asc_change, {'min': -25, 'max': 5}, 'Multi-T Mean ASC', True)
m.add_layer(desc_change, {'min': -25, 'max': 5}, 'Multi-T Mean DESC', True)
m
Open in Code Editor