Sentinel-2 MSI: MultiSpectral Instrument, Level-1C

COPERNICUS/S2
Dataset Availability
2015-06-23T00:00:00 - Present
Dataset Provider
Earth Engine Snippet
ee.ImageCollection("COPERNICUS/S2")
Tags
msi radiance eu esa copernicus sentinel

Description

Sentinel-2 is a wide-swath, high-resolution, multi-spectral imaging mission supporting Copernicus Land Monitoring studies, including the monitoring of vegetation, soil and water cover, as well as observation of inland waterways and coastal areas.

The Sentinel-2 data contain 13 UINT16 spectral bands representing TOA reflectance scaled by 10000. See the Sentinel-2 User Handbook for details. In addition, three QA bands are present where one (QA60) is a bitmask band with cloud mask information. For more details, see the full explanation of how cloud masks are computed.

Each Sentinel-2 product (zip archive) may contain multiple granules. Each granule becomes a separate Earth Engine asset. EE asset ids for Sentinel-2 assets have the following format: COPERNICUS/S2/20151128T002653_20151128T102149_T56MNN. Here the first numeric part represents the sensing date and time, the second numeric part represents the product generation date and time, and the final 6-character string is a unique granule identifier indicating its UTM grid reference (see MGRS).

The Level-2 data produced by ESA can be found in the collection COPERNICUS/S2_SR.

For more details on Sentinel-2 radiometric resolution, see this page.

Bands

Bands

Name Scale Resolution Wavelength Description
B1 0.0001 60 meters 443.9nm (S2A) / 442.3nm (S2B)

Aerosols

B2 0.0001 10 meters 496.6nm (S2A) / 492.1nm (S2B)

Blue

B3 0.0001 10 meters 560nm (S2A) / 559nm (S2B)

Green

B4 0.0001 10 meters 664.5nm (S2A) / 665nm (S2B)

Red

B5 0.0001 20 meters 703.9nm (S2A) / 703.8nm (S2B)

Red Edge 1

B6 0.0001 20 meters 740.2nm (S2A) / 739.1nm (S2B)

Red Edge 2

B7 0.0001 20 meters 782.5nm (S2A) / 779.7nm (S2B)

Red Edge 3

B8 0.0001 10 meters 835.1nm (S2A) / 833nm (S2B)

NIR

B8A 0.0001 20 meters 864.8nm (S2A) / 864nm (S2B)

Red Edge 4

B9 0.0001 60 meters 945nm (S2A) / 943.2nm (S2B)

Water vapor

B10 0.0001 60 meters 1373.5nm (S2A) / 1376.9nm (S2B)

Cirrus

B11 0.0001 20 meters 1613.7nm (S2A) / 1610.4nm (S2B)

SWIR 1

B12 0.0001 20 meters 2202.4nm (S2A) / 2185.7nm (S2B)

SWIR 2

QA10 10 meters

Always empty

QA20 20 meters

Always empty

QA60 60 meters

Cloud mask

Image Properties

Image Properties

Name Type Description
CLOUDY_PIXEL_PERCENTAGE DOUBLE

Granule-specific cloudy pixel percentage taken from the original metadata

CLOUD_COVERAGE_ASSESSMENT DOUBLE

Cloudy pixel percentage for the whole archive that contains this granule. Taken from the original metadata

DATASTRIP_ID STRING

Unique identifier of the datastrip Product Data Item (PDI)

DATATAKE_IDENTIFIER STRING

Uniquely identifies a given Datatake. The ID contains the Sentinel-2 satellite, start date and time, absolute orbit number, and processing baseline.

DATATAKE_TYPE STRING

MSI operation mode

DEGRADED_MSI_DATA_PERCENTAGE DOUBLE

Percentage of degraded MSI and ancillary data

FORMAT_CORRECTNESS_FLAG STRING

Synthesis of the On-Line Quality Control (OLQC) checks performed at granule (Product_Syntax) and datastrip (Product Syntax and DS_Consistency) levels

GENERAL_QUALITY_FLAG STRING

Synthesis of the OLQC checks performed at the datastrip level (Relative_Orbit_Number)

GENERATION_TIME DOUBLE

Product generation time

GEOMETRIC_QUALITY_FLAG STRING

Synthesis of the OLQC checks performed at the datastrip level (Attitude_Quality_Indicator)

GRANULE_ID STRING

Unique identifier of the granule PDI (PDI_ID)

MEAN_INCIDENCE_AZIMUTH_ANGLE_B1 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B1 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B2 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B2 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B3 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B3 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B4 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B4 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B5 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B5 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B6 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B6 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B7 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B7 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B8 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B8 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A DOUBLE

Mean value containing viewing incidence azimuth angle average for band B8a and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B9 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B9 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B10 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B10 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B11 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B11 and for all detectors

MEAN_INCIDENCE_AZIMUTH_ANGLE_B12 DOUBLE

Mean value containing viewing incidence azimuth angle average for band B12 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B1 DOUBLE

Mean value containing viewing incidence zenith angle average for band B1 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B2 DOUBLE

Mean value containing viewing incidence zenith angle average for band B2 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B3 DOUBLE

Mean value containing viewing incidence zenith angle average for band B3 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B4 DOUBLE

Mean value containing viewing incidence zenith angle average for band B4 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B5 DOUBLE

Mean value containing viewing incidence zenith angle average for band B5 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B6 DOUBLE

Mean value containing viewing incidence zenith angle average for band B6 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B7 DOUBLE

Mean value containing viewing incidence zenith angle average for band B7 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B8 DOUBLE

Mean value containing viewing incidence zenith angle average for band B8 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B8A DOUBLE

Mean value containing viewing incidence zenith angle average for band B8a and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B9 DOUBLE

Mean value containing viewing incidence zenith angle average for band B9 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B10 DOUBLE

Mean value containing viewing incidence zenith angle average for band B10 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B11 DOUBLE

Mean value containing viewing incidence zenith angle average for band B11 and for all detectors

MEAN_INCIDENCE_ZENITH_ANGLE_B12 DOUBLE

Mean value containing viewing incidence zenith angle average for band B12 and for all detectors

MEAN_SOLAR_AZIMUTH_ANGLE DOUBLE

Mean value containing sun azimuth angle average for all bands and detectors

MEAN_SOLAR_ZENITH_ANGLE DOUBLE

Mean value containing sun zenith angle average for all bands and detectors

MGRS_TILE STRING

US-Military Grid Reference System (MGRS) tile

PROCESSING_BASELINE STRING

Configuration baseline used at the time of the product generation in terms of processor software version and major Ground Image Processing Parameters (GIPP) version

PRODUCT_ID STRING

The full id of the original Sentinel-2 product

RADIOMETRIC_QUALITY_FLAG STRING

Based on the OLQC reports contained in the Datastrips/QI_DATA with RADIOMETRIC_QUALITY checklist name

REFLECTANCE_CONVERSION_CORRECTION DOUBLE

Earth-Sun distance correction factor

SENSING_ORBIT_DIRECTION STRING

Imaging orbit direction

SENSING_ORBIT_NUMBER DOUBLE

Imaging orbit number

SENSOR_QUALITY_FLAG STRING

Synthesis of the OLQC checks performed at granule (Missing_Lines, Corrupted_ISP, and Sensing_Time) and datastrip (Degraded_SAD and Datation_Model) levels

SOLAR_IRRADIANCE_B1 DOUBLE

Mean solar exoatmospheric irradiance for band B1

SOLAR_IRRADIANCE_B2 DOUBLE

Mean solar exoatmospheric irradiance for band B2

SOLAR_IRRADIANCE_B3 DOUBLE

Mean solar exoatmospheric irradiance for band B3

SOLAR_IRRADIANCE_B4 DOUBLE

Mean solar exoatmospheric irradiance for band B4

SOLAR_IRRADIANCE_B5 DOUBLE

Mean solar exoatmospheric irradiance for band B5

SOLAR_IRRADIANCE_B6 DOUBLE

Mean solar exoatmospheric irradiance for band B6

SOLAR_IRRADIANCE_B7 DOUBLE

Mean solar exoatmospheric irradiance for band B7

SOLAR_IRRADIANCE_B8 DOUBLE

Mean solar exoatmospheric irradiance for band B8

SOLAR_IRRADIANCE_B8A DOUBLE

Mean solar exoatmospheric irradiance for band B8a

SOLAR_IRRADIANCE_B9 DOUBLE

Mean solar exoatmospheric irradiance for band B9

SOLAR_IRRADIANCE_B10 DOUBLE

Mean solar exoatmospheric irradiance for band B10

SOLAR_IRRADIANCE_B11 DOUBLE

Mean solar exoatmospheric irradiance for band B11

SOLAR_IRRADIANCE_B12 DOUBLE

Mean solar exoatmospheric irradiance for band B12

SPACECRAFT_NAME STRING

Sentinel-2 spacecraft name: Sentinel-2A, Sentinel-2B

Terms of Use

Terms of Use

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

Explore in Earth Engine

/**
 * Function to mask clouds using the Sentinel-2 QA band
 * @param {ee.Image} image Sentinel-2 image
 * @return {ee.Image} cloud masked Sentinel-2 image
 */
function maskS2clouds(image) {
  var qa = image.select('QA60');

  // Bits 10 and 11 are clouds and cirrus, respectively.
  var cloudBitMask = 1 << 10;
  var cirrusBitMask = 1 << 11;

  // Both flags should be set to zero, indicating clear conditions.
  var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
      .and(qa.bitwiseAnd(cirrusBitMask).eq(0));

  return image.updateMask(mask).divide(10000);
}

// Map the function over one year of data and take the median.
// Load Sentinel-2 TOA reflectance data.
var dataset = ee.ImageCollection('COPERNICUS/S2')
                  .filterDate('2018-01-01', '2018-06-30')
                  // Pre-filter to get less cloudy granules.
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
                  .map(maskS2clouds);

var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['B4', 'B3', 'B2'],
};

Map.setCenter(-9.1695, 38.6917, 12);
Map.addLayer(dataset.median(), rgbVis, 'RGB');