xrspatial.multispectral.arvi

xrspatial.multispectral.arvi(nir_agg: xarray.core.dataarray.DataArray, red_agg: xarray.core.dataarray.DataArray, blue_agg: xarray.core.dataarray.DataArray, name='arvi')[source]

Computes Atmospherically Resistant Vegetation Index. Allows for molecular and ozone correction with no further need for aerosol correction, except for dust conditions.

Parameters
  • nir_agg (xarray.DataArray) – 2D array of near-infrared band data.

  • red_agg (xarray.DataArray) – 2D array of red band data.

  • blue_agg (xarray.DataArray) – 2D array of blue band data.

  • name (str, default='arvi') – Name of output DataArray.

Returns

arvi_agg – 2D array arvi values. All other input attributes are preserved.

Return type

xarray.DataArray of the same type as inputs.

References

Examples

import matplotlib.pyplot as plt
from xrspatial.multispectral import arvi
from xrspatial.datasets import get_data

# Open Example Data
data = get_data('sentinel-2')

nir = data['NIR']
red = data['Red']
blue = data['Blue']

# Generate ARVI Aggregate Array
arvi_agg = arvi(nir_agg = nir,
                red_agg = red,
                blue_agg = blue)

# Plot NIR Band
nir.plot(cmap = 'Greys', aspect = 2, size = 4)
plt.title("NIR Band")
plt.ylabel("latitude")
plt.xlabel("longitude")

# Plot Red Band
red.plot(cmap = 'Greys', aspect = 2, size = 4)
plt.title("Red Band")
plt.ylabel("latitude")
plt.xlabel("longitude")

# Plot Blue Band
blue.plot(cmap = 'Greys', aspect = 2, size = 4)
plt.title("Blue Band")
plt.ylabel("latitude")
plt.xlabel("longitude")

# Plot ARVI
arvi_agg.plot(cmap = 'Greys', aspect = 2, size = 4)
plt.title("ARVI")
plt.ylabel("latitude")
plt.xlabel("longitude")
../../_images/xrspatial-multispectral-arvi-1_00.png

(png, hires.png, pdf)

../../_images/xrspatial-multispectral-arvi-1_01.png

(png, hires.png, pdf)

../../_images/xrspatial-multispectral-arvi-1_02.png

(png, hires.png, pdf)

../../_images/xrspatial-multispectral-arvi-1_03.png

(png, hires.png, pdf)

>>> print(arvi_agg[100:103, 100: 102])
<xarray.DataArray 'arvi' (y: 3, x: 2)>
array([[0.02676934, 0.02135493],
       [0.02130841, 0.01114413],
       [0.02488688, 0.00816024]])
Coordinates:
  * x        (x) float64 6.01e+05 6.01e+05
  * y        (y) float64 4.699e+06 4.699e+06 4.699e+06
    band     int32 ...
Attributes: (12/13)
    transform:                [ 1.00000e+01  0.00000e+00  6.00000e+05  0.0000... # noqa
    crs:                      +init=epsg:32719
    res:                      [10. 10.]
    is_tiled:                 1
    nodatavals:               nan
    scales:                   1.0
    ...                       ...
    instrument:               Sentinel-2
    Band:                     07
    Name:                     NIR
    Bandwidth (µm):           115
    Nominal Wavelength (µm):  0.842
    Resolution (m):            10