GEE Tutorials

Google Earth Engine Tutorial: Estimate Soil Moisture with TVDI

Credit: Youtube Channel “Terra Spatial, Guide on estimating soil moisture using Temperature Vegetation Dryness Index approach with Landsat 8 imagery.”

You can see all the tutorials from here: Techgeo Academy.


Introduction to Using TVDI for Soil Moisture Estimation in Google Earth Engine

Soil moisture estimation is critical for agriculture, hydrology, and climate studies. The Temperature-Vegetation Dryness Index (TVDI) is a remote sensing technique that combines land surface temperature (LST) and vegetation indices to infer soil moisture levels. In this tutorial, we walk through the steps to calculate TVDI using Google Earth Engine (GEE), leveraging satellite data for spatial analysis.

Step 1: Data Collection

To estimate soil moisture using TVDI, you need satellite data with land surface temperature and vegetation index layers. Common sources include:

  • Landsat 8/9 (for complementary LST and NDVI)
  • MODIS (daily LST and NDVI products)
  • Sentinel-2 (high-resolution vegetation and thermal data)

Begin by importing and selecting the relevant data. For example, use ee.ImageCollection to access Landsat 8 surface reflectance and thermal bands:


var landsat8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
  .filterDate('2022-06-01', '2022-06-30');

Step 2: Calculate Surface Temperature

Surface temperature (LST) can be derived from thermal infrared bands. For Landsat 8, use the TIRS band 10 or 11:


var lst = landsat8.select('ST_B10'); // or 'ST_B11'

Convert raw digital numbers (DN) to actual temperature using the 'ST_01' and 'ST_02' coefficients:


var lstConverted = lst.map(function(image) {
  var coeff = image.select('ST_01', 'ST_02');
  return image.select('ST_B10').multiply(coeff.select('ST_01')).add(coeff.select('ST_02'));
});

Step 3: Generate Vegetation Index (NDVI)

Normalized Difference Vegetation Index (NDVI) measures vegetation density. Calculate NDVI using the red and near-infrared bands:


var ndvi = landsat8.map(function(image) {
  return image.select(['SR_B4', 'SR_B5']).reduce(ee.Reduce.ndvi());
});

Step 4: Calculate TVDI

TVDI is calculated using the formula: TVDI = (T - T_min) / (T_max - T_min). First, create a temperature-NDVI scatter plot, then fit a regression line to derive T_max and T_min for each NDVI value:


var tvdi = lstConverted.select('ST_B10')
  .map(function(image) {
    var ndviImage = ndvi.select('ndvi').clip(image.geometry());
    var scatter = ee.ImageCollection.fromImages([image.select('ST_B10'), ndviImage]).toBands();
    var regression = scatter.select(['ST_B10', 'ndvi']).reduce(ee.Reduce.linearRegression(2, 1));
    var slope = regression.select('slope');
    var intercept = regression.select('intercept');
    var tmax = intercept.add(slope.multiply(ndviImage));
    var tmin = ...; // Derived from minimum LST at high NDVI values
    return image
      .expression('(T - Tmin) / (Tmax - Tmin)', {
        'T': image.select('ST_B10'),
        'Tmin': tmin,
        'Tmax': tmax
      });
  });

Step 5: Visualize and Export Results

Use the Map.addLayer() function to visualize TVDI results. Apply a color palette to distinguish dry and wet areas:


Map.addLayer(tvdi, {min: 0, max: 1, palette: ['blue', 'green', 'yellow', 'red']}, 'TVDI');

Export the results as a GeoTIFF or CSV for further analysis:


Export.image.toDrive({
  image: tvdi,
  description: 'TVDI_Output',
  folder: 'GEE_Exports',
  fileNamePrefix: 'TVDI',
  region: geometry,
  scale: 30,
  maxPixels: 1e9
});

Step 6: Interpret TVDI Maps

TVDI ranges from 0 (wet soil) to 1 (dry soil). Higher values indicate lower soil moisture, while lower values suggest wetter conditions. Overlay TVDI with land use/land cover data to analyze regional patterns.

FAQ

  • Q: What data source is best for TVDI calculations?

    A: MODIS and Landsat 8/9 are common choices due to their availability of thermal and vegetation data. Sentinel-2 offers higher resolution but may require more preprocessing.

  • Q: How accurate is TVDI for soil moisture estimation?

    A: TVDI accuracy depends on the resolution of data and local environmental conditions. It works best in homogeneous landscapes with consistent vegetation cover.

  • Q: Can TVDI be used for all regions and seasons?

    A: TVDI is region-specific and may need calibration for different climates. It is also affected by cloud cover, which can introduce errors.

  • Q: What tools in GEE are used for TVDI analysis?

    A: Use ee.Reduce.linearRegression for temperature-NDVI regression, ee.Image.expression for calculations, and Export.image.toDrive for data output.

  • Q: Are there alternatives to TVDI for soil moisture?

    A: Yes, alternatives include the Soil Moisture Active Passive (SMAP) dataset and the Evaporative Stress Index (ESI). TVDI is particularly useful when thermal data is limited.


Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *