authority: folia
slug: scl
name: Sentinel-2 Scene Classification Layer
domain: atmosphere
subdomain: processing
authority_id: folia:scl
external_ids:
  cf_standard_name: null
canonical_units: categorical
external_validations:
  sentinel_hub:
    processor: SCL (Sen2Cor scene classification)
    docs_url: https://docs.sentinel-hub.com/api/latest/data/sentinel-2-l2a/#available-bands-and-data
  product:
    id: copernicus-sentinel-2-l2a-pdd
    docs_url: https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-2-msi/data-formats
  stac:
    extension: classification
    field: classification:classes
    docs_url: https://github.com/stac-extensions/classification
description: |
  Per-pixel scene classification shipped as the `SCL` band of Sentinel-2
  Level-2A products. Produced by Sen2Cor as part of L2A processing and
  delivered at 20 m alongside the surface-reflectance bands; this is the
  primary cloud, cloud-shadow, water, and snow mask for any Sentinel-2 op.
  Canonical 12-class table (Copernicus PDD):

  | code | class |
  |------|-------|
  | 0 | No data |
  | 1 | Saturated or defective |
  | 2 | Dark area pixels |
  | 3 | Cloud shadows |
  | 4 | Vegetation |
  | 5 | Bare soils |
  | 6 | Water |
  | 7 | Clouds (low probability) / unclassified |
  | 8 | Clouds (medium probability) |
  | 9 | Clouds (high probability) |
  | 10 | Cirrus |
  | 11 | Snow / ice |

  Most masking recipes treat 3, 8, 9, and 10 as cloud-contaminated and 6
  as water. Encoded for downstream interop via the STAC `classification`
  extension.
theme: imagery
example_recipes:
  - title: "Select SCL band from Sentinel-2 L2A (GEE)"
    tool: gee
    requires: []
    snippet: |
      var scl = ee.Image('COPERNICUS/S2_SR_HARMONIZED/20240615T103631_20240615T104637_T31TFM')
                  .select('SCL');
      // Mask out clouds (8, 9, 10) and cloud-shadow (3)
      var clear = scl.neq(3).and(scl.lt(8));
    docs_url: https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR_HARMONIZED
consumed_by: []
produced_by: []
demos: []
status: documented
sources:
  - https://docs.sentinel-hub.com/api/latest/data/sentinel-2-l2a/#available-bands-and-data
  - https://sentinels.copernicus.eu/web/sentinel/user-guides/sentinel-2-msi/data-formats
  - https://github.com/stac-extensions/classification
