Normalized Shortwave Infrared Difference Soil-Moisture
Normalized Shortwave Infrared Difference Soil-Moisture 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
Sensor-Specific Formulas
Most-used sensors — click to show code below
| Sensor | Provider | Formula | Band Mapping |
|---|---|---|---|
| USGS/NASA | (B6 - B7)/(B6 + B7) | S1→B6, S2→B7 | |
| ESA | (B11 - B12)/(B11 + B12) | S1→B11, S2→B12 | |
| MAXAR | (SWIR3 - SWIR6)/(SWIR3 + SWIR6) | S1→SWIR3, S2→SWIR6 |
Spectral Band Visualization — Landsat 8/9
Code Examples
Adapted for Landsat 8/9 bands —
Frequently Asked Questions
What is the NSDS (Normalized Shortwave Infrared Difference Soil-Moisture) and when should I use it?
Normalized Shortwave Infrared Difference Soil-Moisture 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. NSDS is particularly suited for soil. The general formula is (S1 - S2)/(S1 + S2), which requires S1 and S2 spectral bands.
Which satellite sensors can I use to calculate NSDS?
NSDS 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 + B7), while Sentinel-2 uses (B11 - B12)/(B11 + B12). Select a sensor above to see its specific band mapping.
What spectral bands does NSDS require and why?
NSDS 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 NSDS 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.
NSDS vs other soil indices
| Index | Name | How it differs |
|---|---|---|
| BI | Brightness Index | Alternative soil index — different band combination |
| BI2 | Second Brightness Index | Alternative soil index — different band combination |
| CI | Coloration Index | Alternative soil index — different band combination |
| NSDSI1 | Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 1 | Alternative soil index — different band combination |
Related Soil Indices
References
Need help choosing?
Ask our AI assistant for sensor recommendations, code examples, or how NSDS compares to other indices for your specific use case.