Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Snow classifier

var NDSI = (B03 - B11) / (B03 + B11);
var NDVI = (B08 - B04) / (B08 + B04);
var gain = 2.5;

function si(a) {
    return (a>=0.4) ? 1 : (Math.abs(NDVI - 0.1) <= 0.025 ? 1 : 0);

function br(a) {
    return a>0.3;
var v = si(NDSI) && br(B03);

return (v==1) ? [1.0,0.8,0.4] : [B04, B03, B02].map(a => gain * a);

Evaluate and Visualize

General description of the script

In [1] Hagolle et al. classify pixels as covered by snow based on the Normalized Difference Snow Index (NDSI), which is defined as

\[NDSI = \frac{B03 - B11}{B03 + B11}\]

Bright pixels are marked as snow if their NDSI value is greater than 0.6. The document does not specify what makes a pixel bright, so a threshold on the green band was picked to determine the brightness.

In [2] the authors also decribe a snow sensing method that uses NDSI, but say that a pixel with NDSI > 0.42 should be marked as snowy. In addition to that, they mention that NDSI values even lower than that could imply snow, given that the pixel’s Normalized Difference Vegetation Index (NDVI) value is close enough to 0.1.

This algorithm classifies pixels based on all three values. Different brightness and NDSI thresholds were tested and 0.3 and 0.4, respectively, proved to give the best results.

Description of representative images

Snow classifier, Bovec, Slovenia. Acquired on 26.10.2019.

snow classifier


[1] Olivier Hagolle, Mireille Huc, Camille Desjardins, Stefan Auer, & Rudolf Richter. (2017, December 7). MAJA Algorithm Theoretical Basis Document (Version 1.0). Zenodo.

[2] Andreas Juergen Dietz, Claudia Kuenzer, Ursula Gessner & Stefan Dech (2012): Remote sensing of snow – a review of available methods, International Journal of Remote Sensing, 33:13, 4094-4134.