xrspatial.multispectral.sipi

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

Computes Structure Insensitive Pigment Index which helpful in early disease detection in vegetation.

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

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

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

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

Returns

sipi_agg – 2D array of sipi values. All other input attributes are preserved.

Return type

xr.DataArray of same type as inputs

References

Examples

import matplotlib.pyplot as plt
from xrspatial.multispectral import sipi
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
sipi_agg = sipi(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 SIPI
sipi_agg.plot(cmap = 'Greys', aspect = 2, size = 4)
plt.title("SIPI")
plt.ylabel("latitude")
plt.xlabel("longitude")
../../_images/xrspatial-multispectral-sipi-1_00.png

(png, hires.png, pdf)

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

(png, hires.png, pdf)

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

(png, hires.png, pdf)

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

(png, hires.png, pdf)

>>> print(sipi_agg[100:103, 100: 102])
<xarray.DataArray 'sipi' (y: 3, x: 2)>
array([[1.23958333, 1.33714286],
       [1.37362637, 1.57746479],
       [1.29032258, 1.64516129]])
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