Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 1 for soil applications

When to use

  • Soil mapping in agricultural and arid environments
  • Salinity monitoring in irrigated areas
  • Erosion hazard assessment on bare ground
  • Organic matter and fertility surveys
  • Soil moisture inference (combined with other indices)

Limitations

  • Vegetation cover blocks the soil signal — most reliable on bare or sparse ground
  • Surface roughness and tilling state affect reflectance
  • Soil moisture varies daily and biases brightness measurements
  • Cannot directly measure subsurface properties
  • Mineral composition variability affects index calibration across regions

General Formula

S1 1550-1750 nm
S2 2080-2350 nm

Sensor-Specific Formulas

Most-used sensors — click to show code below

SensorProviderFormulaBand Mapping
USGS/NASA(B6-B7)/B6S1→B6, S2→B7
ESA(B11-B12)/B11S1→B11, S2→B12
MAXAR(SWIR3-SWIR6)/SWIR3S1→SWIR3, S2→SWIR6

Spectral Band Visualization — Landsat 8/9

Code Examples

Adapted for Landsat 8/9 bands —

nsdsi1_landsat-8-9.py

Frequently Asked Questions

What is the NSDSI1 (Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 1) and when should I use it?

Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 1 for soil applications Soil indices characterise surface properties including brightness, moisture content, organic matter, and salinity. They work best on bare or sparsely vegetated ground where the soil spectral signal is not obscured. NSDSI1 is particularly suited for soil. The general formula is (S1-S2)/S1, which requires S1 and S2 spectral bands.

Which satellite sensors can I use to calculate NSDSI1?

NSDSI1 is supported by 3 satellite sensors in our database, including Landsat 8/9, Sentinel-2, WorldView 3. Each sensor uses different band designations — for example, Landsat 8/9 uses the formula (B6-B7)/B6, while Sentinel-2 uses (B11-B12)/B11. Select a sensor above to see its specific band mapping.

What spectral bands does NSDSI1 require and why?

NSDSI1 requires S1 (1550-1750 nm), S2 (2080-2350 nm). These wavelength regions target the specific spectral features that this index is designed to measure.

How do I calculate NSDSI1 in Python or R?

Both Python and R code samples are provided above. In Python, use rasterio to load individual band GeoTIFF files and numpy for the arithmetic. In R, the terra package handles raster operations efficiently. The key is to load bands as floating-point arrays to avoid integer division, and to handle division-by-zero cases where the denominator equals zero. For production use, consider applying a valid data mask to exclude no-data pixels before calculation.

NSDSI1 vs other soil indices

IndexNameHow it differs
BIBrightness IndexAlternative soil index — different band combination
BI2Second Brightness IndexAlternative soil index — different band combination
CIColoration IndexAlternative soil index — different band combination
NSDSNormalized Shortwave Infrared Difference Soil-MoistureAlternative soil index — different band combination

Related Soil Indices

References

https://doi.org/10.1016/j.isprsjprs.2019.06.012

Need help choosing?

Ask our AI assistant for sensor recommendations, code examples, or how NSDSI1 compares to other indices for your specific use case.

Ask AI →