Short answer
A defensible remote sensing workflow for a consulting project is driven by the geological question, not by a favourite band combination. Pick the sensor whose spatial, spectral and temporal characteristics match the target; work from surface-reflectance products; compute the indices or ratios that are physically tied to the material you are mapping; mask everything that mimics your target (cloud, shadow, vegetation, water); and finish by validating the result against field data and at least one independent layer. The deliverable is an evidence layer with stated confidence, not an automated geological map.
Match the sensor to the question
The first decision is which platform to use, and it is a trade-off between spatial resolution, spectral range and revisit frequency.
- Sentinel-2 (Copernicus MSI): 13 bands, 10 m in the visible/NIR, 20 m in the red-edge and SWIR, 5-day revisit with two satellites. Excellent for regional structural mapping, lineament tracing, vegetation-stress proxies and rapid multi-date work. Its SWIR is limited to bands 11 (≈1610 nm) and 12 (≈2190 nm), so it cannot resolve specific alteration minerals.
- Landsat 8/9 (OLI/TIRS): 30 m multispectral, 15 m panchromatic, two SWIR bands, two thermal bands resampled to 30 m, 16-day revisit (8-day combined). The decisive advantage is the archive: Landsat back to 1972 gives you decades of change context that no other free sensor offers.
- ASTER: 15 m VNIR, 30 m SWIR (six bands across 1.6–2.43 µm), 90 m TIR (five bands). The dense SWIR sampling is why ASTER is still the default free sensor for hydrothermal-alteration mapping — clay, carbonate, and Al-OH/Mg-OH minerals have diagnostic absorption features in that window. Note the SWIR detector failed in 2008, so only pre-2008 SWIR scenes are usable.
If the project needs sub-metre detail (outcrop-scale structure, infrastructure), no free optical sensor will do; you move to commercial imagery (e.g. WorldView) or UAV photogrammetry. State that constraint early rather than over-promising what 10–30 m pixels can deliver.
Always start from surface reflectance
The most common silent error in consulting deliverables is computing indices from top-of-atmosphere (TOA) radiance. Atmospheric scattering (Rayleigh and aerosol) adds a wavelength-dependent path radiance that is strongest in the blue and decreases toward the SWIR. Because band ratios assume the numerator and denominator are affected equally, an uncorrected scene biases every ratio and makes multi-date comparison meaningless.
Use the analysis-ready Level-2 products:
- Sentinel-2 Level-2A (surface reflectance, produced by Sen2Cor) from the Copernicus Data Space Ecosystem.
- Landsat Collection 2 Level-2 surface reflectance from USGS EarthExplorer.
For older or unusual scenes where only Level-1 exists, run an atmospheric correction (e.g. Sen2Cor for Sentinel-2, or a dark-object subtraction as a crude minimum) before any quantitative step. Record the correction method in the metadata, because the choice changes the numbers downstream.
Indices and ratios that are physically grounded
Band ratios suppress topographic shading (because illumination affects both bands similarly) and enhance spectral contrast. The useful ones for geology are tied to known absorption features:
- Iron oxide (gossan, ferric staining): Red / Blue. On Landsat OLI that is B4 / B2; on Sentinel-2, B4 / B2. High values flag ferric iron.
- Ferrous iron: SWIR / NIR (Landsat B6 / B5).
- Clay / hydroxyl alteration: SWIR1 / SWIR2 (Landsat B6 / B7), exploiting the ~2.2 µm Al-OH absorption. With ASTER, the classic Hydroxyl index is band5/band7 region work, and carbonate is detected near 2.33 µm (ASTER band 8).
- Vegetation (to mask, not to map): NDVI = (NIR − Red) / (NIR + Red).
In QGIS, compute these with the Raster Calculator or the SAGA/GDAL band-math algorithms; in the GDAL CLI, gdal_calc.py is the direct tool:
gdal_calc.py -A B4.tif -B B2.tif --calc="A.astype(float)/B" \
--outfile=ironoxide.tif --NoDataValue=0
Stretch the result with a percentile clip (2–98%) for display, but keep the raw float raster for thresholding.
Worked example: alteration screening with ASTER
A typical brownfield exploration screen over an arid terrain:
- Acquire a cloud-free pre-2008 ASTER L1T scene (already terrain-corrected) covering the licence area.
- Convert SWIR DN to reflectance using the published gain/offset and a crosstalk correction; clip to the area of interest with
gdalwarp -cutline aoi.gpkg -crop_to_cutline. - Compute the Al-OH (clay/sericite) and carbonate ratios from the SWIR bands.
- Mask vegetation (NDVI > 0.2) and water, then mask deep shadow using a hillshade from the local DEM.
- Threshold the alteration ratios, vectorise the anomalies (
gdal_polygonize.py), and overlay them on the existing geological map and any airborne magnetics. - Rank anomalies by how many independent layers agree, and hand those to the field team as drill-traverse candidates — explicitly labelled as candidates.
The output is not "alteration map." It is "ASTER-derived Al-OH anomalies, ranked by corroboration, requiring field check."
Masking: the step that protects the interpretation
False positives in geological remote sensing usually come from look-alikes. Dry vegetation, lichen, urban surfaces, salt pans and topographic shadow can all reproduce the spectral signature you are chasing. Build the mask stack explicitly:
- Cloud and cloud shadow: Sentinel-2 Scene Classification Layer (SCL) or the s2cloudless probability mask; Landsat QA_PIXEL bits.
- Vegetation: NDVI threshold appropriate to the climate (≈0.2–0.3 in semi-arid terrain).
- Water: NDWI or the SCL water class.
- Topographic shadow: a hillshade computed from the project DEM at the scene's solar azimuth/elevation (read from the scene metadata) with
gdaldem hillshade -az <azimuth> -alt <elevation>.
Apply masks before thresholding, never after, so the statistics that set your thresholds are not polluted by pixels you intend to discard.
Validation and quality control
A remote sensing layer that has not been checked against reality is a hypothesis, not a result. Before it enters a report:
- Confirm CRS, pixel size, acquisition date and processing level are written into the file metadata and the report.
- Cross-tabulate anomalies against field samples or existing mapping and report a hit rate or confusion matrix, not just a pretty raster.
- Compare against an independent dataset (airborne geophysics, prior drilling, published mapping). Agreement across methods is the strongest evidence you can offer.
- Inspect the scene edges and high-relief areas, where atmospheric and topographic effects are worst, not only the clean centre.
- Re-run the key index on a second date if the target is stable; a real geological anomaly persists, an artefact often does not.
Bathyl perspective
We treat remote sensing as a way to widen geological vision and prioritise fieldwork, not to replace it. Every layer we deliver states the sensor, processing level, indices used, masks applied and the corroborating evidence, so a reviewer can judge confidence rather than take the colours on trust.
Related reading
- Remote Sensing Limitations in Geological Mapping
- Remote Sensing for Geological Mapping
- SAR Data for Terrain and Hazards
- How GIS Is Used in Geology
- Remote sensing and Earth data