The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Vegetation Indices in GeoIndexR

Introduction

Vegetation indices exploit the distinct spectral reflectance curve of healthy green canopies: strong absorption in the red chlorophyll band (0.64 - 0.67 um) and high scattering/reflectance in the near-infrared (NIR) plateau (0.85 - 0.88 um).

GeoIndexR provides four primary vegetation indices, each tailored to different canopy densities and atmospheric or soil conditions:

  1. NDVI: Normalized Difference Vegetation Index
  2. SAVI: Soil Adjusted Vegetation Index
  3. EVI: Enhanced Vegetation Index
  4. GNDVI: Green Normalized Difference Vegetation Index

Formulations and Parameters

1. NDVI (Normalized Difference Vegetation Index)

Rouse et al. (1974) formulated the normalized ratio:

\[\text{NDVI} = \frac{\text{NIR} - \text{RED}}{\text{NIR} + \text{RED}}\]

library(GeoIndexR)
img <- get_example_data()

ndvi <- geo_index(img, "NDVI")
index_summary(ndvi)
#> 
#> === GeoIndexR Spectral Summary ===
#> 
#>  index     min    max   mean median     sd     q05     q25    q75    q95 na_pct
#>   NDVI -0.5508 0.9233 0.2963 0.1161 0.4884 -0.3796 -0.0787 0.8546 0.8972      1
#>  total_cells
#>          100

2. SAVI (Soil Adjusted Vegetation Index)

In areas with sparse or intermediate canopy cover (\(< 40\%\)), exposed background soil alters the red and near-infrared reflectance. Huete (1988) introduced the soil adjustment factor \(L\):

\[\text{SAVI} = \frac{\text{NIR} - \text{RED}}{\text{NIR} + \text{RED} + L} \times (1 + L)\]

In GeoIndexR, \(L\) is configurable directly through geo_index() or calc_savi():

savi_standard <- geo_index(img, "SAVI", L = 0.5)
savi_sparse   <- geo_index(img, "SAVI", L = 1.0)

index_summary(c(savi_standard, savi_sparse))
#> 
#> === GeoIndexR Spectral Summary ===
#> 
#>  index     min    max   mean median     sd     q05     q25    q75    q95 na_pct
#>   SAVI -0.1194 0.8802 0.3094 0.0933 0.3727 -0.0594 -0.0209 0.7361 0.8293      1
#>   SAVI -0.1091 0.8601 0.2939 0.0863 0.3518 -0.0430 -0.0148 0.6854 0.8019      1
#>  total_cells
#>          100
#>          100

3. EVI (Enhanced Vegetation Index)

Liu & Huete (1995) designed EVI to decouple the canopy background signal and reduce atmospheric influences through blue band feedback:

\[\text{EVI} = G \times \frac{\text{NIR} - \text{RED}}{\text{NIR} + C_1 \times \text{RED} - C_2 \times \text{BLUE} + L}\]

Default coefficients (standard MODIS/Sentinel-2/Landsat): - \(G = 2.5\) (Gain factor) - \(C_1 = 6.0\) (Aerosol coefficient for red) - \(C_2 = 7.5\) (Aerosol coefficient for blue) - \(L = 1.0\) (Canopy background adjustment)

evi <- geo_index(img, "EVI")
index_summary(evi)
#> 
#> === GeoIndexR Spectral Summary ===
#> 
#>  index     min    max  mean median    sd     q05     q25    q75    q95 na_pct
#>    EVI -0.1012 1.1634 0.373  0.089 0.457 -0.0821 -0.0267 0.8837 1.0352      1
#>  total_cells
#>          100

4. GNDVI (Green NDVI)

Gitelson et al. (1996) substituted the red band with the green band to enhance sensitivity to chlorophyll concentrations in dense canopies where red reflectance becomes saturated:

\[\text{GNDVI} = \frac{\text{NIR} - \text{GREEN}}{\text{NIR} + \text{GREEN}}\]

gndvi <- geo_index(img, "GNDVI")
index_summary(gndvi)
#> 
#> === GeoIndexR Spectral Summary ===
#> 
#>  index     min    max   mean median     sd     q05     q25    q75    q95 na_pct
#>  GNDVI -0.7652 0.8373 0.2001 0.2426 0.5451 -0.6222 -0.4403 0.7482 0.7976      1
#>  total_cells
#>          100

Comparing Vegetation Indices

You can stack all four indices together:

veg_stack <- geo_indices(img, c("NDVI", "SAVI", "EVI", "GNDVI"))
index_summary(veg_stack)
#> 
#> === GeoIndexR Spectral Summary ===
#> 
#>  index     min    max   mean median     sd     q05     q25    q75    q95 na_pct
#>   NDVI -0.5508 0.9233 0.2963 0.1161 0.4884 -0.3796 -0.0787 0.8546 0.8972      1
#>   SAVI -0.1194 0.8802 0.3094 0.0933 0.3727 -0.0594 -0.0209 0.7361 0.8293      1
#>    EVI -0.1012 1.1634 0.3730 0.0890 0.4570 -0.0821 -0.0267 0.8837 1.0352      1
#>  GNDVI -0.7652 0.8373 0.2001 0.2426 0.5451 -0.6222 -0.4403 0.7482 0.7976      1
#>  total_cells
#>          100
#>          100
#>          100
#>          100

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.