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

COPERNICUS/S1_GRD
Dataset Availability
2014-10-03T00:00:00Z–2025-09-05T20:27:28Z
Dataset Provider
Earth Engine Snippet
ee.ImageCollection("COPERNICUS/S1_GRD")
Revisit Interval
6 Days
Tags
copernicus esa eu radar sar satellite-imagery 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, single band HH, dual band VV+VH, and dual band 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
Create a Mobile Website
View Site in Mobile | Classic
Share by: