The short answer
For terrain and lithological work, the most informative Sentinel-2 composites are built from the shortwave-infrared (SWIR) bands 11 (1610 nm) and 12 (2190 nm) combined with a visible or near-infrared band. A robust general-purpose geology stack is SWIR2-SWIR1-Blue (12-11-2), sometimes called the "geology" or "false-color SWIR" composite, because it separates iron-altered ground, clay-rich zones and fresh bedrock that all look similar in true colour. Sentinel-2 cannot replace ASTER's six SWIR channels for detailed mineral mapping, but its two SWIR bands at 20 m and frequent revisit make it an excellent reconnaissance and structural-mapping instrument.
What Sentinel-2 actually measures
Sentinel-2 carries the MultiSpectral Instrument (MSI) with 13 bands across three ground sampling distances. Knowing the resolution per band is essential because you cannot blend bands of different native resolution without resampling first.
- 10 m: B2 blue (490 nm), B3 green (560 nm), B4 red (665 nm), B8 NIR (842 nm).
- 20 m: B5, B6, B7 red-edge (705-783 nm), B8A narrow NIR (865 nm), B11 SWIR1 (1610 nm), B12 SWIR2 (2190 nm).
- 60 m: B1 coastal aerosol (443 nm), B9 water vapour (945 nm), B10 cirrus (1375 nm).
For terrain, the workhorses are B2-B4, B8, B11 and B12. The 60 m bands are atmospheric instruments, not interpretation bands. Note that B10 contains no surface signal in Level-2A products because it is removed during atmospheric correction.
Always work from Level-2A (Bottom-of-Atmosphere surface reflectance) rather than Level-1C (Top-of-Atmosphere) when comparing scenes or computing indices. L2A is corrected with Sen2Cor and includes a scene classification layer (SCL) you can use for masking.
The band combinations that matter for terrain
True colour: 4-3-2
B4-B3-B2 reproduces what the eye sees. It is useful for orientation, drainage and obvious iron staining, but most rock types collapse into similar browns and greys. Use it for context, not for lithology.
Color infrared: 8-4-3
B8-B4-B3 puts NIR in red, so vegetation glows bright red. This is the standard composite for separating vegetated from bare ground, which in turn tells you where spectral geology is even possible. Bare-ground masks built from this composite save time later.
Geology / SWIR composite: 12-11-2
This is the single most useful geological composite from Sentinel-2. B12 (red) and B11 (green) respond to the SWIR absorptions of clays, micas, carbonates and sulphates near 2200 nm and 1600 nm, while B2 (blue) adds visible iron contrast. Hydroxyl-bearing alteration (sericite, kaolinite, chlorite) appears in cool tones; iron-rich and gossanous ground shifts warm. In arid terrain this composite alone often outlines alteration halos around mineralised structures.
Iron-oxide emphasis: 11-8-2 or 11-12-2
Swapping NIR into the green channel (11-8-2) sharpens the contrast between ferric iron (bright in red/visible) and the SWIR response, which helps separate weathered, oxidised surfaces from fresh rock. Iron staining is also captured by the simple ratio B4/B2 (red over blue), which rises over ferric oxides.
Clay and hydroxyl ratio: B11/B12
The ratio SWIR1/SWIR2 = B11/B12 is the Sentinel-2 analogue of the classic Landsat 5/7 clay ratio. Clays, micas and other Al-OH minerals absorb more strongly at 2190 nm (B12) than at 1610 nm (B11), so the ratio is high over clay-rich and argillically altered ground. Threshold or stretch it and overlay on a hillshade for a quick alteration screen.
A worked QGIS workflow
Suppose you have downloaded an L2A tile and want a 12-11-2 composite plus a clay ratio.
1. Match resolution. The SWIR bands are 20 m; bring them to a common grid. Build a VRT that stacks B12, B11 and B02 and resamples to 10 m:
gdalbuildvrt -separate -resolution highest -r cubic stack.vrt \
T31TGL_B12_20m.jp2 T31TGL_B11_20m.jp2 T31TGL_B02_10m.jp2
gdal_translate stack.vrt s2_geology.tif -co COMPRESS=DEFLATE
2. Style the composite. Load s2_geology.tif, set the renderer to Multiband colour, assign Band 1 to red, Band 2 to green, Band 3 to blue, and apply a Cumulative count cut stretch at 2-98% per band. The percentile stretch is what makes alteration tones legible.
3. Compute the clay ratio with the QGIS Raster calculator or GDAL:
gdal_calc.py -A T31TGL_B11_20m.jp2 -B T31TGL_B12_20m.jp2 \
--outfile clay_ratio.tif --calc="A.astype(float)/B" --type=Float32
Reflectance values in L2A are scaled integers (divide by 10000 to get 0-1 reflectance); ratios are unaffected by the scale factor, but indices like NDVI are not, so divide before computing additive/normalised indices.
4. Mask vegetation and cloud. Use the SCL band (20 m) to drop classes 3 (cloud shadow), 8-10 (clouds, cirrus) and, if you want bare ground only, 4 (vegetation). Reproject and align the SCL to your stack with gdalwarp -tr 10 10 -r near before masking.
Why these combinations work — the spectral reasoning
Rock-forming and alteration minerals have diagnostic absorptions in the SWIR caused by vibrational overtones of OH, H2O, CO3 and metal-OH bonds. Al-OH minerals (kaolinite, illite, muscovite) absorb near 2200 nm; Mg-OH and carbonate minerals (chlorite, epidote, calcite) near 2300-2350 nm; ferric iron produces a broad absorption in the visible to NIR. Sentinel-2's B12 straddles the 2200 nm region and B11 sits on the SWIR shoulder, so their ratio and their position in a composite encode real mineral chemistry rather than arbitrary colour. The catch is bandwidth: B12 is about 180 nm wide, so it cannot distinguish kaolinite from illite the way a hyperspectral or even ASTER sensor can. Treat Sentinel-2 SWIR products as "there is hydroxyl alteration here," not "this is kaolinite."
Common pitfalls and why they happen
- Stacking 20 m and 10 m bands without resampling produces misaligned pixels or a tool error; the bands genuinely live on different grids. Always build a common-grid VRT first.
- Interpreting a composite from a Level-1C scene mixes atmospheric path radiance into your "geology" tones; haze and aerosols shift the apparent SWIR colour. Use L2A.
- Reading SWIR composites over vegetated terrain as lithology. Canopy and dry grass have their own SWIR signatures; mask vegetation before interpreting.
- Comparing two dates without checking sun angle and season. Shadowing and soil moisture change the visible-NIR balance even when the rock is identical.
- Trusting a single ratio. Iron staining, clay alteration and shade can all push a ratio in the same direction; corroborate with a second composite and field or geological-map control.
Validation
Before a composite goes into a report, confirm the CRS and tile footprint (Sentinel-2 tiles are in UTM/WGS84, e.g. EPSG:32631 for zone 31N), overlay the result on a published geological map or hillshade for sanity, and spot-check a few pixels against known outcrops or a field log. If you computed indices, verify you divided the L2A integers by 10000 first. Document the tile ID, acquisition date, processing baseline and band assignments so the layer is reproducible.
Bathyl perspective
We use Sentinel-2 SWIR composites as a fast, free first pass that tells field teams where to look and tells higher-resolution or hyperspectral surveys where to spend money. The composite is evidence, calibrated against geology and ground truth, not a finished lithology map.
Related reading
- ASTER vs Landsat for Mineral Indicators
- Sentinel-2 for Geological Interpretation
- Shortwave Infrared in Geological Remote Sensing
- Remote Sensing Ground Truth Checklist
- Remote sensing and Earth data