30.31° N/78.04° E

Jannat

Geospatial Researcher
Jannat.
WorkCapabilitiesBlogAboutContact me
Jannat Khosla

Geospatial researcher working across GIS, remote sensing, drone photogrammetry and GNSS surveying. Based in Chandigarh, India.

Chandigarh 160015, India

Pages
  • Home
  • Work
  • Blog
  • About
  • Contact
Connect
  • LinkedIn
  • Email
  • Résumé (PDF)
Jannat Khosla
© 2026 Jannat Khosla — Chandigarh, IndiaDesigned & built by Tanish Mittal
All articles
7 Jun 20267 min readIndia

Sentinel-2 Cloud Masking: SCL Band vs. s2cloudless Compared

A technical comparison of Sentinel-2's built-in SCL band and the s2cloudless ML model for cloud masking, with a focus on Indian monsoon conditions where cloud cover disrupts agricultural monitoring and flood mapping.

sentinel-2 cloud maskingscl bands2cloudlessremote sensing indiagoogle earth enginemonsoon imagery
Sentinel-2 Cloud Masking: SCL Band vs. s2cloudless Compared

Why Cloud Masking Suddenly Matters More

The release of Tessera, ESA's foundation model trained on Copernicus Sentinel-1 and Sentinel-2 data, signals that AI-driven Earth observation is moving from research labs into everyday workflows. When a model ingests time-series imagery at scale, the quality of upstream preprocessing — especially cloud masking — directly shapes what the model learns and what analysts see. For practitioners working in India, this is not an abstract concern. The Indian monsoon delivers persistent, spatially erratic cloud cover from June through September, precisely the season when agricultural monitoring, flood mapping, and land-change detection are most critical. Choosing the wrong cloud mask means either retaining cloud-contaminated pixels or discarding too many valid observations. Both errors compound downstream.

This piece compares the two most commonly used approaches — the Scene Classification Layer (SCL) bundled with Sentinel-2 Level-2A products and the s2cloudless machine-learning model — and explains when each is the right tool for Indian conditions.


What Is the SCL Band and What Does It Actually Do?

Sentinel-2 monsoon cloud cover India

Illustrative: Sentinel-2 monsoon cloud cover India. "White Nile, Sudan" by europeanspaceagency is licensed under CC BY-SA 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/2.0/.

The SCL band is part of every Sentinel-2 Level-2A product generated by ESA's Sen2Cor processor. It classifies each pixel into one of eleven categories: no data, saturated/defective, dark area, cloud shadow, vegetation, bare soil, water, unclassified, medium-probability cloud, high-probability cloud, and thin cirrus. For a standard cloud mask you typically retain pixels labelled as vegetation, bare soil, or water (classes 4, 5, 6) and discard the rest.

Strengths of SCL:

  • Zero additional processing — it ships with the product
  • Works at native 20 m resolution, resampled to 10 m if needed
  • Covers cloud shadow and cirrus, not just thick cloud
  • Fully reproducible: same algorithm, same output, every time

Weaknesses for Indian conditions:

  • Sen2Cor was trained and validated primarily on European scenes; its spectral thresholds do not always generalise well to tropical aerosol loads or the bright, hazy skies common over the Indo-Gangetic Plain
  • The medium-probability cloud class (class 8) is notoriously inconsistent — it frequently flags bright sand or salt flats in Rajasthan and Gujarat as cloud
  • It offers no probability score, so you cannot tune sensitivity; it is a binary decision

A comparative study published in Remote Sensing (MDPI) found that masking algorithms diverge most sharply over water bodies and in scenes with mixed cloud types — exactly the situation along India's coasts and river deltas during pre-monsoon and post-monsoon transitions.


What Is s2cloudless and How Does It Differ?

s2cloudless is a pixel-level cloud probability model built on a gradient boosting classifier trained on ten Sentinel-2 spectral bands (it excludes the 60 m atmospheric correction bands). It outputs a continuous cloud probability value between 0 and 1 for every pixel, which you then threshold yourself. Sentinel Hub implements it at a fixed resolution of 160 m per pixel, which is worth knowing if your analysis requires fine spatial detail.

Strengths of s2cloudless:

  • Tunable threshold: lower it to be aggressive (catch more cloud, lose more valid data), raise it to be conservative (retain more data, risk some cloud contamination)
  • Probability output enables soft masking and uncertainty quantification
  • Generally performs better than SCL on thin cloud and haze, which are ubiquitous during Indian monsoon onset
  • Available directly in Google Earth Engine and Sentinel Hub without local installation

Weaknesses:

  • Does not natively flag cloud shadow — you need a separate shadow-detection step, typically using solar geometry to project cloud masks downward
  • The 160 m native resolution in Sentinel Hub means sub-pixel cloud edges are blurred, which matters for small agricultural parcels common in India
  • Requires a threshold decision that is scene-dependent; there is no universally correct value

An evaluation of cloud masking algorithms across Sentinel-2 scenes found average overall accuracy ranging from 80.0 ± 5.3% to 89.4 ± 2.4% depending on the method and scene type — a spread wide enough to meaningfully affect a monsoon-season time series.


A Worked Example: Kharif Crop Monitoring in Madhya Pradesh

Indo-Gangetic Plain haze satellite imagery

Illustrative: Indo-Gangetic Plain haze satellite imagery. "Indo-Gangetic Plain" by Jeroen is licensed under CC BY-SA 2.5. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/2.5/.

Imagine you are building an NDVI time series for kharif (summer-sown) paddy in Madhya Pradesh, covering July–October. Sentinel-2 revisit is nominally five days, giving roughly 24 potential acquisitions per season. In practice, cloud cover during peak monsoon can render 60–70% of those acquisitions partially or fully unusable.

With SCL alone: You filter to pixels where SCL ∈ {4, 5, 6}. You lose a lot of data, but what remains is relatively clean. The problem: class 8 (medium-probability cloud) is ambiguous. If you exclude it, you may lose valid observations over wet, dark paddy fields that Sen2Cor misclassifies. If you include it, you risk cloud contamination in your NDVI values.

With s2cloudless: You compute cloud probability for each acquisition. For monsoon scenes, a threshold of 0.4–0.5 tends to work better than the commonly cited 0.6 default, because Indian monsoon clouds are optically thicker and the model responds to them more strongly. You then apply a morphological dilation (e.g., 3×3 kernel) to catch cloud edges, and separately compute shadow masks using solar azimuth and zenith angles. The result is a cleaner, more spatially precise mask — but it requires more code and more decisions.

Practical recommendation: Use s2cloudless as the primary cloud mask, SCL class 3 (cloud shadow) as a supplementary shadow mask, and exclude SCL class 11 (thin cirrus) explicitly. This hybrid approach leverages the probability model's sensitivity while recovering SCL's shadow and cirrus information that s2cloudless misses.


How Do They Compare on Independent Benchmarks?

The ClearSky Vision comparison places FMask ahead of both SCL and s2cloudless for overall accuracy, particularly for cloud shadow detection, but FMask requires local processing and is not natively available in cloud platforms. For platform-based workflows — which most Indian researchers use given data volume constraints — s2cloudless is the stronger choice over SCL.

A five-year evaluation of cloud-free mosaic generation found that CloudScore+ achieved an 89.4% success rate for cloud-free pixels, followed by s2cloudless at 80.8% and L3 at 79.3%. While this study was conducted in Hawaiʻi rather than India, the finding is directionally relevant: s2cloudless consistently outperforms simpler threshold-based methods under variable cloud conditions.


Practical Guidance for Indian Workflows

  • For quick exploratory analysis or when you need shadow masking without extra steps: use SCL, but exclude class 8 (medium-probability cloud) and validate visually on a few monsoon-season scenes before committing
  • For production time series (crop monitoring, flood extent, land change): use s2cloudless with a tuned threshold (start at 0.4 for monsoon, 0.5 for dry season), supplement with SCL class 3 for shadows
  • For AI/ML pipelines feeding models like Tessera: prioritise recall over precision in your cloud mask — it is better to exclude a valid pixel than to train on a cloud-contaminated one
  • Always buffer your cloud mask by at least one or two pixels; cloud edges are the most common source of residual contamination in Indian tropical scenes
  • Document your threshold choices in any publication or report; a 0.4 threshold and a 0.6 threshold can produce meaningfully different NDVI distributions over the same paddy field

As Earth observation's role in decision-making grows — with the sector projected to contribute over US$700 billion to global GDP by 2030 — the upstream choices we make in preprocessing will determine whether that value is realised or eroded by noise. Cloud masking is not glamorous, but in India's monsoon belt, it is where analysis is won or lost.


References

  • ESA. Tessera AI model offers accessible way to view Earth. https://www.esa.int/Applications/Observing_the_Earth/Copernicus/Tessera_AI_model_offers_accessible_way_to_view_Earth
  • ClearSky Vision. Best Sentinel-2 Cloud Mask: SCL vs s2cloudless vs FMask vs Cloud Score+. https://clearsky.vision/knowledge/best-sentinel-2-cloud-mask-scl-vs-s2cloudless-vs-fmask
  • MDPI Remote Sensing. Comparison of Masking Algorithms for Sentinel-2 Imagery. https://www.mdpi.com/2072-4292/13/1/137
  • ScienceDirect. An evaluation of cloud masking algorithms for Landsat 8 and Sentinel-2. https://www.sciencedirect.com/science/article/pii/S0034425722001043
  • Google Earth (Medium). More accurate and flexible cloud masking for Sentinel-2 images. https://medium.com/google-earth/more-accurate-and-flexible-cloud-masking-for-sentinel-2-images-766897a9ba5f
  • Sentinel Hub Docs. Cloud Masks. https://docs.sentinel-hub.com/api/latest/user-guides/cloud-masks/
  • ResearchGate. Five-Year Evaluation of Sentinel-2 Cloud-Free Mosaic Generation Under Varied Cloud Cover Conditions in Hawaiʻi. https://www.researchgate.net/publication/387360341_Five-Year_Evaluation_of_Sentinel-2_Cloud-Free_Mosaic_Generation_Under_Varied_Cloud_Cover_Conditions_in_Hawai'i
  • GIM International. The new age of Earth observation. https://www.gim-international.com/content/article/the-new-age-of-earth-observation

Researched with AI assistance and reviewed by Jannat Khosla.

Hero image: "Ambrym, South Pacific Ocean" by europeanspaceagency is licensed under CC BY-SA 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/2.0/.

JK
Jannat Khosla
Geospatial Researcher · GIS & Remote Sensing
Work with me

Keep reading

Landsat Band Combinations: Which to Use and When

Landsat Band Combinations: Which to Use and When

7 min read
Red Edge Indices for Crop Stress Detection: Beyond NDVI

Red Edge Indices for Crop Stress Detection: Beyond NDVI

6 min read
SAR Flood Mapping with Sentinel-1: How It Works and Why It Matters for India

SAR Flood Mapping with Sentinel-1: How It Works and Why It Matters for India

7 min read