"""
Python classes for spectral indices generated from a standardized list curated at
https://awesome-ee-spectral-indices.readthedocs.io. Each class can be instantiated
with :class:`wcps.model.WCPSExpr` arguments for the respective bands / constants.
Example for applying the NDVI index on red/nir Sentinel-2 bands:
.. code:: python
from wcps.model import Datacube
from wcps.spectral import NDVI
red = Datacube("S2_L2A_32631_B04_10m")
nir = Datacube("S2_L2A_32631_B08_10m")
ndvi = NDVI(N=nir, R=red)
query = ndvi.encode("PNG")
"""
# generated with bin/generate_spectral.py, do not edit manually.
from wcps.model import WCPSExpr, OperandType
[docs]
class AFRI1600(WCPSExpr):
"""Aerosol Free Vegetation Index (1600 nm)"""
[docs]
short_name = "AFRI1600"
[docs]
long_name = "Aerosol Free Vegetation Index (1600 nm)"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(01)00190-0"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class AFRI2100(WCPSExpr):
"""Aerosol Free Vegetation Index (2100 nm)"""
[docs]
short_name = "AFRI2100"
[docs]
long_name = "Aerosol Free Vegetation Index (2100 nm)"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(01)00190-0"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ANDWI(WCPSExpr):
"""Augmented Normalized Difference Water Index"""
[docs]
long_name = "Augmented Normalized Difference Water Index"
[docs]
bands = ['B', 'G', 'R', 'N', 'S1', 'S2']
[docs]
reference = "https://doi.org/10.1016/j.envsoft.2021.105030"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, G: OperandType, R: OperandType, N: OperandType, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "G": G, "R": R, "N": N, "S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ARI(WCPSExpr):
"""Anthocyanin Reflectance Index"""
[docs]
long_name = "Anthocyanin Reflectance Index"
[docs]
reference = "https://doi.org/10.1562/0031-8655(2001)074%3C0038:OPANEO%3E2.0.CO;2"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ARI2(WCPSExpr):
"""Anthocyanin Reflectance Index 2"""
[docs]
long_name = "Anthocyanin Reflectance Index 2"
[docs]
bands = ['N', 'G', 'RE1']
[docs]
reference = "https://doi.org/10.1562/0031-8655(2001)074%3C0038:OPANEO%3E2.0.CO;2"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ARVI(WCPSExpr):
"""Atmospherically Resistant Vegetation Index"""
[docs]
long_name = "Atmospherically Resistant Vegetation Index"
[docs]
bands = ['N', 'R', 'gamma', 'B']
[docs]
reference = "https://doi.org/10.1109/36.134076"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, gamma: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "gamma": gamma, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ATSAVI(WCPSExpr):
"""Adjusted Transformed Soil-Adjusted Vegetation Index"""
[docs]
long_name = "Adjusted Transformed Soil-Adjusted Vegetation Index"
[docs]
bands = ['sla', 'N', 'R', 'slb']
[docs]
reference = "https://doi.org/10.1016/0034-4257(91)90009-U"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, sla: OperandType, N: OperandType, R: OperandType, slb: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"sla": sla, "N": N, "R": R, "slb": slb})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class AVI(WCPSExpr):
"""Advanced Vegetation Index"""
[docs]
long_name = "Advanced Vegetation Index"
[docs]
reference = "http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.8749&rep=rep1&type=pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class AWEInsh(WCPSExpr):
"""Automated Water Extraction Index"""
[docs]
long_name = "Automated Water Extraction Index"
[docs]
bands = ['G', 'S1', 'N', 'S2']
[docs]
reference = "https://doi.org/10.1016/j.rse.2013.08.029"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, S1: OperandType, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "S1": S1, "N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class AWEIsh(WCPSExpr):
"""Automated Water Extraction Index with Shadows Elimination"""
[docs]
long_name = "Automated Water Extraction Index with Shadows Elimination"
[docs]
bands = ['B', 'G', 'N', 'S1', 'S2']
[docs]
reference = "https://doi.org/10.1016/j.rse.2013.08.029"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, G: OperandType, N: OperandType, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "G": G, "N": N, "S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BAI(WCPSExpr):
"""Burned Area Index"""
[docs]
long_name = "Burned Area Index"
[docs]
reference = "https://digital.csic.es/bitstream/10261/6426/1/Martin_Isabel_Serie_Geografica.pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BAIM(WCPSExpr):
"""Burned Area Index adapted to MODIS"""
[docs]
long_name = "Burned Area Index adapted to MODIS"
[docs]
reference = "https://doi.org/10.1016/j.foreco.2006.08.248"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BAIS2(WCPSExpr):
"""Burned Area Index for Sentinel 2"""
[docs]
long_name = "Burned Area Index for Sentinel 2"
[docs]
bands = ['RE2', 'RE3', 'N2', 'R', 'S2']
[docs]
reference = "https://doi.org/10.3390/ecrs-2-05177"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE3: OperandType, N2: OperandType, R: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE3": RE3, "N2": N2, "R": R, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BCC(WCPSExpr):
"""Blue Chromatic Coordinate"""
[docs]
long_name = "Blue Chromatic Coordinate"
[docs]
bands = ['B', 'R', 'G']
[docs]
reference = "https://doi.org/10.1016/0034-4257(87)90088-5"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BI(WCPSExpr):
"""Bare Soil Index"""
[docs]
long_name = "Bare Soil Index"
[docs]
bands = ['S1', 'R', 'N', 'B']
[docs]
reference = "http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.8749&rep=rep1&type=pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, R: OperandType, N: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "R": R, "N": N, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BITM(WCPSExpr):
"""Landsat TM-based Brightness Index"""
[docs]
long_name = "Landsat TM-based Brightness Index"
[docs]
bands = ['B', 'G', 'R']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(98)00030-3"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BIXS(WCPSExpr):
"""SPOT HRV XS-based Brightness Index"""
[docs]
long_name = "SPOT HRV XS-based Brightness Index"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(98)00030-3"
[docs]
contributor = "https://github.com/remi-braun"
def __init__(self, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BLFEI(WCPSExpr):
"""Built-Up Land Features Extraction Index"""
[docs]
long_name = "Built-Up Land Features Extraction Index"
[docs]
bands = ['G', 'R', 'S2', 'S1']
[docs]
reference = "https://doi.org/10.1080/10106049.2018.1497094"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, S2: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "S2": S2, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BNDVI(WCPSExpr):
"""Blue Normalized Difference Vegetation Index"""
[docs]
long_name = "Blue Normalized Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/S1672-6308(07)60027-4"
[docs]
contributor = "https://github.com/MATRIX4284"
def __init__(self, N: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BRBA(WCPSExpr):
"""Band Ratio for Built-up Area"""
[docs]
long_name = "Band Ratio for Built-up Area"
[docs]
reference = "https://www.omicsonline.org/scientific-reports/JGRS-SR136.pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BWDRVI(WCPSExpr):
"""Blue Wide Dynamic Range Vegetation Index"""
[docs]
long_name = "Blue Wide Dynamic Range Vegetation Index"
[docs]
bands = ['alpha', 'N', 'B']
[docs]
reference = "https://doi.org/10.2135/cropsci2007.01.0031"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, alpha: OperandType, N: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"alpha": alpha, "N": N, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class BaI(WCPSExpr):
"""Bareness Index"""
[docs]
long_name = "Bareness Index"
[docs]
bands = ['R', 'S1', 'N']
[docs]
reference = "https://doi.org/10.1109/IGARSS.2005.1525743"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, S1: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "S1": S1, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CCI(WCPSExpr):
"""Chlorophyll Carotenoid Index"""
[docs]
long_name = "Chlorophyll Carotenoid Index"
[docs]
reference = "https://doi.org/10.1073/pnas.1606162113"
[docs]
contributor = "https://github.com/joanvlasschaert"
def __init__(self, G1: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G1": G1, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CIG(WCPSExpr):
"""Chlorophyll Index Green"""
[docs]
long_name = "Chlorophyll Index Green"
[docs]
reference = "https://doi.org/10.1078/0176-1617-00887"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CIRE(WCPSExpr):
"""Chlorophyll Index Red Edge"""
[docs]
long_name = "Chlorophyll Index Red Edge"
[docs]
reference = "https://doi.org/10.1078/0176-1617-00887"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CRI550(WCPSExpr):
"""Carotenoid Reflectance Index using 550 nm"""
[docs]
long_name = "Carotenoid Reflectance Index using 550 nm"
[docs]
reference = "https://doi.org/10.1562/0031-8655(2002)0750272ACCIPL2.0.CO2"
[docs]
contributor = "https://github.com/eomasters-repos"
def __init__(self, B: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CRI700(WCPSExpr):
"""Carotenoid Reflectance Index using 700 nm"""
[docs]
long_name = "Carotenoid Reflectance Index using 700 nm"
[docs]
reference = "https://doi.org/10.1562/0031-8655(2002)0750272ACCIPL2.0.CO2"
[docs]
contributor = "https://github.com/eomasters-repos"
def __init__(self, B: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CSI(WCPSExpr):
"""Char Soil Index"""
[docs]
long_name = "Char Soil Index"
[docs]
reference = "https://doi.org/10.1016/j.rse.2005.04.014"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CSIT(WCPSExpr):
"""Char Soil Index Thermal"""
[docs]
long_name = "Char Soil Index Thermal"
[docs]
bands = ['N', 'S2', 'T']
[docs]
reference = "https://doi.org/10.1080/01431160600954704"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class CVI(WCPSExpr):
"""Chlorophyll Vegetation Index"""
[docs]
long_name = "Chlorophyll Vegetation Index"
[docs]
bands = ['N', 'R', 'G']
[docs]
reference = "https://doi.org/10.1007/s11119-010-9204-3"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DBI(WCPSExpr):
"""Dry Built-Up Index"""
[docs]
long_name = "Dry Built-Up Index"
[docs]
bands = ['B', 'T1', 'N', 'R']
[docs]
reference = "https://doi.org/10.3390/land7030081"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, T1: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "T1": T1, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DBSI(WCPSExpr):
"""Dry Bareness Index"""
[docs]
long_name = "Dry Bareness Index"
[docs]
bands = ['S1', 'G', 'N', 'R']
[docs]
reference = "https://doi.org/10.3390/land7030081"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, G: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "G": G, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DPDD(WCPSExpr):
"""Dual-Pol Diagonal Distance"""
[docs]
long_name = "Dual-Pol Diagonal Distance"
[docs]
reference = "https://doi.org/10.1016/j.rse.2018.09.003"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VV: OperandType, VH: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VV": VV, "VH": VH})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DSI(WCPSExpr):
"""Drought Stress Index"""
[docs]
long_name = "Drought Stress Index"
[docs]
reference = "https://www.asprs.org/wp-content/uploads/pers/1999journal/apr/1999_apr_495-501.pdf"
[docs]
contributor = "https://github.com/remi-braun"
def __init__(self, S1: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DSWI1(WCPSExpr):
"""Disease-Water Stress Index 1"""
[docs]
long_name = "Disease-Water Stress Index 1"
[docs]
reference = "https://doi.org/10.1080/01431160310001618031"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DSWI2(WCPSExpr):
"""Disease-Water Stress Index 2"""
[docs]
long_name = "Disease-Water Stress Index 2"
[docs]
reference = "https://doi.org/10.1080/01431160310001618031"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DSWI3(WCPSExpr):
"""Disease-Water Stress Index 3"""
[docs]
long_name = "Disease-Water Stress Index 3"
[docs]
reference = "https://doi.org/10.1080/01431160310001618031"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DSWI4(WCPSExpr):
"""Disease-Water Stress Index 4"""
[docs]
long_name = "Disease-Water Stress Index 4"
[docs]
reference = "https://doi.org/10.1080/01431160310001618031"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DSWI5(WCPSExpr):
"""Disease-Water Stress Index 5"""
[docs]
long_name = "Disease-Water Stress Index 5"
[docs]
bands = ['N', 'G', 'S1', 'R']
[docs]
reference = "https://doi.org/10.1080/01431160310001618031"
[docs]
contributor = "https://github.com/remi-braun"
def __init__(self, N: OperandType, G: OperandType, S1: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "S1": S1, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DVI(WCPSExpr):
"""Difference Vegetation Index"""
[docs]
long_name = "Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/0034-4257(94)00114-3"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DVIplus(WCPSExpr):
"""Difference Vegetation Index Plus"""
[docs]
long_name = "Difference Vegetation Index Plus"
[docs]
bands = ['lambdaN', 'lambdaR', 'lambdaG', 'G', 'N', 'R']
[docs]
reference = "https://doi.org/10.1016/j.rse.2019.03.028"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, lambdaN: OperandType, lambdaR: OperandType, lambdaG: OperandType, G: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"lambdaN": lambdaN, "lambdaR": lambdaR, "lambdaG": lambdaG, "G": G, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DpRVIHH(WCPSExpr):
"""Dual-Polarized Radar Vegetation Index HH"""
[docs]
long_name = "Dual-Polarized Radar Vegetation Index HH"
[docs]
reference = "https://www.tandfonline.com/doi/abs/10.5589/m12-043"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, HV: OperandType, HH: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"HV": HV, "HH": HH})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class DpRVIVV(WCPSExpr):
"""Dual-Polarized Radar Vegetation Index VV"""
[docs]
long_name = "Dual-Polarized Radar Vegetation Index VV"
[docs]
reference = "https://doi.org/10.3390/app9040655"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VH: OperandType, VV: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VH": VH, "VV": VV})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class EBBI(WCPSExpr):
"""Enhanced Built-Up and Bareness Index"""
[docs]
long_name = "Enhanced Built-Up and Bareness Index"
[docs]
bands = ['S1', 'N', 'T']
[docs]
reference = "https://doi.org/10.3390/rs4102957"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, N: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "N": N, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class EBI(WCPSExpr):
"""Enhanced Bloom Index"""
[docs]
long_name = "Enhanced Bloom Index"
[docs]
bands = ['R', 'G', 'B', 'epsilon']
[docs]
reference = "https://doi.org/10.1016/j.isprsjprs.2019.08.006"
[docs]
contributor = "https://github.com/geoSanjeeb"
def __init__(self, R: OperandType, G: OperandType, B: OperandType, epsilon: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G, "B": B, "epsilon": epsilon})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class EMBI(WCPSExpr):
"""Enhanced Modified Bare Soil Index"""
[docs]
long_name = "Enhanced Modified Bare Soil Index"
[docs]
bands = ['S1', 'S2', 'N', 'G']
[docs]
reference = "https://doi.org/10.1016/j.jag.2022.102703"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, S2: OperandType, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "S2": S2, "N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ENDVI(WCPSExpr):
"""Enhanced Normalized Difference Vegetation Index"""
[docs]
long_name = "Enhanced Normalized Difference Vegetation Index"
[docs]
bands = ['N', 'G', 'B']
[docs]
reference = "https://doi.org/10.1371/journal.pone.0186193"
[docs]
contributor = "https://github.com/gagev"
def __init__(self, N: OperandType, G: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class EVI(WCPSExpr):
"""Enhanced Vegetation Index"""
[docs]
long_name = "Enhanced Vegetation Index"
[docs]
bands = ['g', 'N', 'R', 'C1', 'C2', 'B', 'L']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(96)00112-5"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, g: OperandType, N: OperandType, R: OperandType, C1: OperandType, C2: OperandType, B: OperandType, L: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"g": g, "N": N, "R": R, "C1": C1, "C2": C2, "B": B, "L": L})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class EVI2(WCPSExpr):
"""Two-Band Enhanced Vegetation Index"""
[docs]
long_name = "Two-Band Enhanced Vegetation Index"
[docs]
bands = ['g', 'N', 'R', 'L']
[docs]
reference = "https://doi.org/10.1016/j.rse.2008.06.006"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, g: OperandType, N: OperandType, R: OperandType, L: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"g": g, "N": N, "R": R, "L": L})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class EVIv(WCPSExpr):
"""Enhanced Vegetation Index of Vegetation"""
[docs]
long_name = "Enhanced Vegetation Index of Vegetation"
[docs]
bands = ['N', 'R', 'B']
[docs]
reference = "https://doi.org/10.1029/2024JG008240"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ExG(WCPSExpr):
"""Excess Green Index"""
[docs]
long_name = "Excess Green Index"
[docs]
bands = ['G', 'R', 'B']
[docs]
reference = "https://doi.org/10.13031/2013.27838"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ExGR(WCPSExpr):
"""ExG - ExR Vegetation Index"""
[docs]
long_name = "ExG - ExR Vegetation Index"
[docs]
bands = ['G', 'R', 'B']
[docs]
reference = "https://doi.org/10.1016/j.compag.2008.03.009"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ExR(WCPSExpr):
"""Excess Red Index"""
[docs]
long_name = "Excess Red Index"
[docs]
reference = "https://doi.org/10.1117/12.336896"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class FAI(WCPSExpr):
"""Floating Algae Index"""
[docs]
long_name = "Floating Algae Index"
[docs]
bands = ['N', 'R', 'S1', 'lambdaN', 'lambdaR', 'lambdaS1']
[docs]
reference = "https://doi.org/10.1016/j.rse.2009.05.012"
[docs]
contributor = "https://github.com/emanuelcastanho"
def __init__(self, N: OperandType, R: OperandType, S1: OperandType, lambdaN: OperandType, lambdaR: OperandType, lambdaS1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "S1": S1, "lambdaN": lambdaN, "lambdaR": lambdaR, "lambdaS1": lambdaS1})])
[docs]
self.lambdaS1 = lambdaS1
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class FCVI(WCPSExpr):
"""Fluorescence Correction Vegetation Index"""
[docs]
long_name = "Fluorescence Correction Vegetation Index"
[docs]
bands = ['N', 'R', 'G', 'B']
[docs]
reference = "https://doi.org/10.1016/j.rse.2020.111676"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, G: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "G": G, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GARI(WCPSExpr):
"""Green Atmospherically Resistant Vegetation Index"""
[docs]
long_name = "Green Atmospherically Resistant Vegetation Index"
[docs]
bands = ['N', 'G', 'B', 'R']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(96)00072-7"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, B: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "B": B, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GBNDVI(WCPSExpr):
"""Green-Blue Normalized Difference Vegetation Index"""
[docs]
long_name = "Green-Blue Normalized Difference Vegetation Index"
[docs]
bands = ['N', 'G', 'B']
[docs]
reference = "https://doi.org/10.1016/S1672-6308(07)60027-4"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GCC(WCPSExpr):
"""Green Chromatic Coordinate"""
[docs]
long_name = "Green Chromatic Coordinate"
[docs]
bands = ['G', 'R', 'B']
[docs]
reference = "https://doi.org/10.1016/0034-4257(87)90088-5"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GDVI(WCPSExpr):
"""Generalized Difference Vegetation Index"""
[docs]
long_name = "Generalized Difference Vegetation Index"
[docs]
bands = ['N', 'nexp', 'R']
[docs]
reference = "https://doi.org/10.3390/rs6021211"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, nexp: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "nexp": nexp, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GEMI(WCPSExpr):
"""Global Environment Monitoring Index"""
[docs]
long_name = "Global Environment Monitoring Index"
[docs]
reference = "http://dx.doi.org/10.1007/bf00031911"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GLI(WCPSExpr):
"""Green Leaf Index"""
[docs]
long_name = "Green Leaf Index"
[docs]
bands = ['G', 'R', 'B']
[docs]
reference = "http://dx.doi.org/10.1080/10106040108542184"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GM1(WCPSExpr):
"""Gitelson and Merzlyak Index 1"""
[docs]
long_name = "Gitelson and Merzlyak Index 1"
[docs]
reference = "https://doi.org/10.1016/S0176-1617(96)80284-7"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GM2(WCPSExpr):
"""Gitelson and Merzlyak Index 2"""
[docs]
long_name = "Gitelson and Merzlyak Index 2"
[docs]
reference = "https://doi.org/10.1016/S0176-1617(96)80284-7"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GNDVI(WCPSExpr):
"""Green Normalized Difference Vegetation Index"""
[docs]
long_name = "Green Normalized Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(96)00072-7"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GOSAVI(WCPSExpr):
"""Green Optimized Soil Adjusted Vegetation Index"""
[docs]
long_name = "Green Optimized Soil Adjusted Vegetation Index"
[docs]
reference = "https://doi.org/10.2134/agronj2004.0314"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GRNDVI(WCPSExpr):
"""Green-Red Normalized Difference Vegetation Index"""
[docs]
long_name = "Green-Red Normalized Difference Vegetation Index"
[docs]
bands = ['N', 'G', 'R']
[docs]
reference = "https://doi.org/10.1016/S1672-6308(07)60027-4"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GRVI(WCPSExpr):
"""Green Ratio Vegetation Index"""
[docs]
long_name = "Green Ratio Vegetation Index"
[docs]
reference = "https://doi.org/10.2134/agronj2004.0314"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GSAVI(WCPSExpr):
"""Green Soil Adjusted Vegetation Index"""
[docs]
long_name = "Green Soil Adjusted Vegetation Index"
[docs]
bands = ['L', 'N', 'G']
[docs]
reference = "https://doi.org/10.2134/agronj2004.0314"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, L: OperandType, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"L": L, "N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class GVMI(WCPSExpr):
"""Global Vegetation Moisture Index"""
[docs]
long_name = "Global Vegetation Moisture Index"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(02)00037-8"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class IAVI(WCPSExpr):
"""New Atmospherically Resistant Vegetation Index"""
[docs]
long_name = "New Atmospherically Resistant Vegetation Index"
[docs]
bands = ['N', 'R', 'gamma', 'B']
[docs]
reference = "https://www.jipb.net/EN/abstract/abstract23925.shtml"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, gamma: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "gamma": gamma, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class IBI(WCPSExpr):
"""Index-Based Built-Up Index"""
[docs]
long_name = "Index-Based Built-Up Index"
[docs]
bands = ['S1', 'N', 'R', 'L', 'G']
[docs]
reference = "https://doi.org/10.1080/01431160802039957"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, N: OperandType, R: OperandType, L: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "N": N, "R": R, "L": L, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class IKAW(WCPSExpr):
"""Kawashima Index"""
[docs]
long_name = "Kawashima Index"
[docs]
reference = "https://doi.org/10.1006/anbo.1997.0544"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class IPVI(WCPSExpr):
"""Infrared Percentage Vegetation Index"""
[docs]
long_name = "Infrared Percentage Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/0034-4257(90)90085-Z"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class IRECI(WCPSExpr):
"""Inverted Red-Edge Chlorophyll Index"""
[docs]
long_name = "Inverted Red-Edge Chlorophyll Index"
[docs]
bands = ['RE3', 'R', 'RE1', 'RE2']
[docs]
reference = "https://doi.org/10.1016/j.isprsjprs.2013.04.007"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE3: OperandType, R: OperandType, RE1: OperandType, RE2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE3": RE3, "R": R, "RE1": RE1, "RE2": RE2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class LSWI(WCPSExpr):
"""Land Surface Water Index"""
[docs]
long_name = "Land Surface Water Index"
[docs]
reference = "https://doi.org/10.1016/j.rse.2003.11.008"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MBI(WCPSExpr):
"""Modified Bare Soil Index"""
[docs]
long_name = "Modified Bare Soil Index"
[docs]
bands = ['S1', 'S2', 'N']
[docs]
reference = "https://doi.org/10.3390/land10030231"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, S2: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "S2": S2, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MBWI(WCPSExpr):
"""Multi-Band Water Index"""
[docs]
long_name = "Multi-Band Water Index"
[docs]
bands = ['omega', 'G', 'R', 'N', 'S1', 'S2']
[docs]
reference = "https://doi.org/10.1016/j.jag.2018.01.018"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, omega: OperandType, G: OperandType, R: OperandType, N: OperandType, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"omega": omega, "G": G, "R": R, "N": N, "S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MCARI(WCPSExpr):
"""Modified Chlorophyll Absorption in Reflectance Index"""
[docs]
long_name = "Modified Chlorophyll Absorption in Reflectance Index"
[docs]
bands = ['RE1', 'R', 'G']
[docs]
reference = "http://dx.doi.org/10.1016/S0034-4257(00)00113-9"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MCARI1(WCPSExpr):
"""Modified Chlorophyll Absorption in Reflectance Index 1"""
[docs]
long_name = "Modified Chlorophyll Absorption in Reflectance Index 1"
[docs]
bands = ['N', 'R', 'G']
[docs]
reference = "https://doi.org/10.1016/j.rse.2003.12.013"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MCARI2(WCPSExpr):
"""Modified Chlorophyll Absorption in Reflectance Index 2"""
[docs]
long_name = "Modified Chlorophyll Absorption in Reflectance Index 2"
[docs]
bands = ['N', 'R', 'G']
[docs]
reference = "https://doi.org/10.1016/j.rse.2003.12.013"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MCARI705(WCPSExpr):
"""Modified Chlorophyll Absorption in Reflectance Index (705 and 750 nm)"""
[docs]
short_name = "MCARI705"
[docs]
long_name = "Modified Chlorophyll Absorption in Reflectance Index (705 and 750 nm)"
[docs]
bands = ['RE2', 'RE1', 'G']
[docs]
reference = "https://doi.org/10.1016/j.agrformet.2008.03.005"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MCARIOSAVI(WCPSExpr):
"""MCARI/OSAVI Ratio"""
[docs]
short_name = "MCARIOSAVI"
[docs]
long_name = "MCARI/OSAVI Ratio"
[docs]
bands = ['RE1', 'R', 'G', 'N']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(00)00113-9"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, R: OperandType, G: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "R": R, "G": G, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MCARIOSAVI705(WCPSExpr):
"""MCARI/OSAVI Ratio (705 and 750 nm)"""
[docs]
short_name = "MCARIOSAVI705"
[docs]
long_name = "MCARI/OSAVI Ratio (705 and 750 nm)"
[docs]
bands = ['RE2', 'RE1', 'G']
[docs]
reference = "https://doi.org/10.1016/j.agrformet.2008.03.005"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MGRVI(WCPSExpr):
"""Modified Green Red Vegetation Index"""
[docs]
long_name = "Modified Green Red Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/j.jag.2015.02.012"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MIRBI(WCPSExpr):
"""Mid-Infrared Burn Index"""
[docs]
long_name = "Mid-Infrared Burn Index"
[docs]
reference = "https://doi.org/10.1080/01431160110053185"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S2: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S2": S2, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MLSWI26(WCPSExpr):
"""Modified Land Surface Water Index (MODIS Bands 2 and 6)"""
[docs]
long_name = "Modified Land Surface Water Index (MODIS Bands 2 and 6)"
[docs]
reference = "https://doi.org/10.3390/rs71215805"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MLSWI27(WCPSExpr):
"""Modified Land Surface Water Index (MODIS Bands 2 and 7)"""
[docs]
long_name = "Modified Land Surface Water Index (MODIS Bands 2 and 7)"
[docs]
reference = "https://doi.org/10.3390/rs71215805"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MNDVI(WCPSExpr):
"""Modified Normalized Difference Vegetation Index"""
[docs]
long_name = "Modified Normalized Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1080/014311697216810"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MNDWI(WCPSExpr):
"""Modified Normalized Difference Water Index"""
[docs]
long_name = "Modified Normalized Difference Water Index"
[docs]
reference = "https://doi.org/10.1080/01431160600589179"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MNLI(WCPSExpr):
"""Modified Non-Linear Vegetation Index"""
[docs]
long_name = "Modified Non-Linear Vegetation Index"
[docs]
bands = ['L', 'N', 'R']
[docs]
reference = "https://doi.org/10.1109/TGRS.2003.812910"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, L: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"L": L, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MRBVI(WCPSExpr):
"""Modified Red Blue Vegetation Index"""
[docs]
long_name = "Modified Red Blue Vegetation Index"
[docs]
reference = "https://doi.org/10.3390/s20185055"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MSAVI(WCPSExpr):
"""Modified Soil-Adjusted Vegetation Index"""
[docs]
long_name = "Modified Soil-Adjusted Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/0034-4257(94)90134-1"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MSI(WCPSExpr):
"""Moisture Stress Index"""
[docs]
long_name = "Moisture Stress Index"
[docs]
reference = "https://doi.org/10.1016/0034-4257(89)90046-1"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MSR(WCPSExpr):
"""Modified Simple Ratio"""
[docs]
long_name = "Modified Simple Ratio"
[docs]
reference = "https://doi.org/10.1080/07038992.1996.10855178"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MSR705(WCPSExpr):
"""Modified Simple Ratio (705 and 750 nm)"""
[docs]
long_name = "Modified Simple Ratio (705 and 750 nm)"
[docs]
reference = "https://doi.org/10.1016/j.agrformet.2008.03.005"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MTCI(WCPSExpr):
"""MERIS Terrestrial Chlorophyll Index"""
[docs]
long_name = "MERIS Terrestrial Chlorophyll Index"
[docs]
bands = ['RE2', 'RE1', 'R']
[docs]
reference = "https://doi.org/10.1080/0143116042000274015"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MTVI1(WCPSExpr):
"""Modified Triangular Vegetation Index 1"""
[docs]
long_name = "Modified Triangular Vegetation Index 1"
[docs]
bands = ['N', 'G', 'R']
[docs]
reference = "https://doi.org/10.1016/j.rse.2003.12.013"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MTVI2(WCPSExpr):
"""Modified Triangular Vegetation Index 2"""
[docs]
long_name = "Modified Triangular Vegetation Index 2"
[docs]
bands = ['N', 'G', 'R']
[docs]
reference = "https://doi.org/10.1016/j.rse.2003.12.013"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class MuWIR(WCPSExpr):
"""Revised Multi-Spectral Water Index"""
[docs]
long_name = "Revised Multi-Spectral Water Index"
[docs]
bands = ['B', 'G', 'N', 'S2', 'S1']
[docs]
reference = "https://doi.org/10.3390/rs10101643"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, G: OperandType, N: OperandType, S2: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "G": G, "N": N, "S2": S2, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBAI(WCPSExpr):
"""Normalized Built-up Area Index"""
[docs]
long_name = "Normalized Built-up Area Index"
[docs]
bands = ['S2', 'S1', 'G']
[docs]
reference = "https://www.omicsonline.org/scientific-reports/JGRS-SR136.pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S2: OperandType, S1: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S2": S2, "S1": S1, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBLI(WCPSExpr):
"""Normalized Difference Bare Land Index"""
[docs]
long_name = "Normalized Difference Bare Land Index"
[docs]
reference = "https://doi.org/10.3390/rs9030249"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBLIOLI(WCPSExpr):
"""Normalized Difference Bare Land Index for Landsat-OLI"""
[docs]
long_name = "Normalized Difference Bare Land Index for Landsat-OLI"
[docs]
reference = "https://doi.org/10.3390/rs9030249"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, T1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "T1": T1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBR(WCPSExpr):
"""Normalized Burn Ratio"""
[docs]
long_name = "Normalized Burn Ratio"
[docs]
reference = "https://doi.org/10.3133/ofr0211"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBR2(WCPSExpr):
"""Normalized Burn Ratio 2"""
[docs]
long_name = "Normalized Burn Ratio 2"
[docs]
reference = "https://www.usgs.gov/core-science-systems/nli/landsat/landsat-normalized-burn-ratio-2"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBRSWIR(WCPSExpr):
"""Normalized Burn Ratio SWIR"""
[docs]
long_name = "Normalized Burn Ratio SWIR"
[docs]
reference = "https://doi.org/10.1080/22797254.2020.1738900"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S2: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S2": S2, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBRT1(WCPSExpr):
"""Normalized Burn Ratio Thermal 1"""
[docs]
long_name = "Normalized Burn Ratio Thermal 1"
[docs]
bands = ['N', 'S2', 'T']
[docs]
reference = "https://doi.org/10.1080/01431160500239008"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBRT2(WCPSExpr):
"""Normalized Burn Ratio Thermal 2"""
[docs]
long_name = "Normalized Burn Ratio Thermal 2"
[docs]
bands = ['N', 'T', 'S2']
[docs]
reference = "https://doi.org/10.1080/01431160500239008"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, T: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "T": T, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBRT3(WCPSExpr):
"""Normalized Burn Ratio Thermal 3"""
[docs]
long_name = "Normalized Burn Ratio Thermal 3"
[docs]
bands = ['N', 'T', 'S2']
[docs]
reference = "https://doi.org/10.1080/01431160500239008"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, T: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "T": T, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBRplus(WCPSExpr):
"""Normalized Burn Ratio Plus"""
[docs]
long_name = "Normalized Burn Ratio Plus"
[docs]
bands = ['S2', 'N2', 'G', 'B']
[docs]
reference = "https://doi.org/10.3390/rs14071727"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S2: OperandType, N2: OperandType, G: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S2": S2, "N2": N2, "G": G, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBSIMS(WCPSExpr):
"""Non-Binary Snow Index for Multi-Component Surfaces"""
[docs]
long_name = "Non-Binary Snow Index for Multi-Component Surfaces"
[docs]
bands = ['G', 'R', 'N', 'B', 'S2', 'S1']
[docs]
reference = "https://doi.org/10.3390/rs13142777"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, N: OperandType, B: OperandType, S2: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "N": N, "B": B, "S2": S2, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NBUI(WCPSExpr):
"""New Built-Up Index"""
[docs]
long_name = "New Built-Up Index"
[docs]
bands = ['S1', 'N', 'T', 'R', 'L', 'G']
[docs]
reference = "https://hdl.handle.net/1959.11/29500"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, N: OperandType, T: OperandType, R: OperandType, L: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "N": N, "T": T, "R": R, "L": L, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class ND705(WCPSExpr):
"""Normalized Difference (705 and 750 nm)"""
[docs]
long_name = "Normalized Difference (705 and 750 nm)"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(02)00010-X"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDBI(WCPSExpr):
"""Normalized Difference Built-Up Index"""
[docs]
long_name = "Normalized Difference Built-Up Index"
[docs]
reference = "http://dx.doi.org/10.1080/01431160304987"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDBaI(WCPSExpr):
"""Normalized Difference Bareness Index"""
[docs]
long_name = "Normalized Difference Bareness Index"
[docs]
reference = "https://doi.org/10.1109/IGARSS.2005.1526319"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDCI(WCPSExpr):
"""Normalized Difference Chlorophyll Index"""
[docs]
long_name = "Normalized Difference Chlorophyll Index"
[docs]
reference = "https://doi.org/10.1016/j.rse.2011.10.016"
[docs]
contributor = "https://github.com/kalab-oto"
def __init__(self, RE1: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDDI(WCPSExpr):
"""Normalized Difference Drought Index"""
[docs]
long_name = "Normalized Difference Drought Index"
[docs]
bands = ['N', 'R', 'G']
[docs]
reference = "https://doi.org/10.1029/2006GL029127"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDGI(WCPSExpr):
"""Normalized Difference Greenness Index"""
[docs]
long_name = "Normalized Difference Greenness Index"
[docs]
bands = ['lambdaN', 'lambdaR', 'lambdaG', 'G', 'N', 'R']
[docs]
reference = "https://doi.org/10.1016/j.rse.2019.03.028"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, lambdaN: OperandType, lambdaR: OperandType, lambdaG: OperandType, G: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"lambdaN": lambdaN, "lambdaR": lambdaR, "lambdaG": lambdaG, "G": G, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDGlaI(WCPSExpr):
"""Normalized Difference Glacier Index"""
[docs]
long_name = "Normalized Difference Glacier Index"
[docs]
reference = "https://doi.org/10.1080/01431160802385459"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDII(WCPSExpr):
"""Normalized Difference Infrared Index"""
[docs]
long_name = "Normalized Difference Infrared Index"
[docs]
reference = "https://www.asprs.org/wp-content/uploads/pers/1983journal/jan/1983_jan_77-83.pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDISIb(WCPSExpr):
"""Normalized Difference Impervious Surface Index Blue"""
[docs]
long_name = "Normalized Difference Impervious Surface Index Blue"
[docs]
bands = ['T', 'B', 'N', 'S1']
[docs]
reference = "https://doi.org/10.14358/PERS.76.5.557"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, T: OperandType, B: OperandType, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"T": T, "B": B, "N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDISIg(WCPSExpr):
"""Normalized Difference Impervious Surface Index Green"""
[docs]
long_name = "Normalized Difference Impervious Surface Index Green"
[docs]
bands = ['T', 'G', 'N', 'S1']
[docs]
reference = "https://doi.org/10.14358/PERS.76.5.557"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, T: OperandType, G: OperandType, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"T": T, "G": G, "N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDISImndwi(WCPSExpr):
"""Normalized Difference Impervious Surface Index with MNDWI"""
[docs]
short_name = "NDISImndwi"
[docs]
long_name = "Normalized Difference Impervious Surface Index with MNDWI"
[docs]
bands = ['T', 'G', 'S1', 'N']
[docs]
reference = "https://doi.org/10.14358/PERS.76.5.557"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, T: OperandType, G: OperandType, S1: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"T": T, "G": G, "S1": S1, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDISIndwi(WCPSExpr):
"""Normalized Difference Impervious Surface Index with NDWI"""
[docs]
short_name = "NDISIndwi"
[docs]
long_name = "Normalized Difference Impervious Surface Index with NDWI"
[docs]
bands = ['T', 'G', 'N', 'S1']
[docs]
reference = "https://doi.org/10.14358/PERS.76.5.557"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, T: OperandType, G: OperandType, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"T": T, "G": G, "N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDISIr(WCPSExpr):
"""Normalized Difference Impervious Surface Index Red"""
[docs]
long_name = "Normalized Difference Impervious Surface Index Red"
[docs]
bands = ['T', 'R', 'N', 'S1']
[docs]
reference = "https://doi.org/10.14358/PERS.76.5.557"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, T: OperandType, R: OperandType, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"T": T, "R": R, "N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDMI(WCPSExpr):
"""Normalized Difference Moisture Index"""
[docs]
long_name = "Normalized Difference Moisture Index"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(01)00318-2"
[docs]
contributor = "https://github.com/bpurinton"
def __init__(self, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDPI(WCPSExpr):
"""Normalized Difference Phenology Index"""
[docs]
long_name = "Normalized Difference Phenology Index"
[docs]
bands = ['N', 'alpha', 'R', 'S1']
[docs]
reference = "https://doi.org/10.1016/j.rse.2017.04.031"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, alpha: OperandType, R: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "alpha": alpha, "R": R, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDPolI(WCPSExpr):
"""Normalized Difference Polarization Index"""
[docs]
long_name = "Normalized Difference Polarization Index"
[docs]
reference = "https://www.isprs.org/proceedings/XXXVII/congress/4_pdf/267.pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VV: OperandType, VH: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VV": VV, "VH": VH})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDPonI(WCPSExpr):
"""Normalized Difference Pond Index"""
[docs]
long_name = "Normalized Difference Pond Index"
[docs]
reference = "https://doi.org/10.1016/j.rse.2006.07.012"
[docs]
contributor = "https://github.com/CvenGeo"
def __init__(self, S1: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDREI(WCPSExpr):
"""Normalized Difference Red Edge Index"""
[docs]
long_name = "Normalized Difference Red Edge Index"
[docs]
reference = "https://doi.org/10.1016/1011-1344(93)06963-4"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDSI(WCPSExpr):
"""Normalized Difference Snow Index"""
[docs]
long_name = "Normalized Difference Snow Index"
[docs]
reference = "https://doi.org/10.1109/IGARSS.1994.399618"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDSII(WCPSExpr):
"""Normalized Difference Snow Ice Index"""
[docs]
long_name = "Normalized Difference Snow Ice Index"
[docs]
reference = "https://doi.org/10.1080/01431160802385459"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDSIWV(WCPSExpr):
"""WorldView Normalized Difference Soil Index"""
[docs]
long_name = "WorldView Normalized Difference Soil Index"
[docs]
reference = "https://www.semanticscholar.org/paper/Using-WorldView-2-Vis-NIR-MSI-Imagery-to-Support-Wolf/5e5063ccc4ee76b56b721c866e871d47a77f9fb4"
[docs]
contributor = "https://github.com/remi-braun"
def __init__(self, G: OperandType, Y: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "Y": Y})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDSInw(WCPSExpr):
"""Normalized Difference Snow Index with no Water"""
[docs]
long_name = "Normalized Difference Snow Index with no Water"
[docs]
bands = ['N', 'S1', 'beta']
[docs]
reference = "https://doi.org/10.3390/w12051339"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType, beta: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1, "beta": beta})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDSWIR(WCPSExpr):
"""Normalized Difference SWIR"""
[docs]
long_name = "Normalized Difference SWIR"
[docs]
reference = "https://doi.org/10.1109/TGRS.2003.819190"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDSaII(WCPSExpr):
"""Normalized Difference Snow and Ice Index"""
[docs]
long_name = "Normalized Difference Snow and Ice Index"
[docs]
reference = "https://doi.org/10.1080/01431160119766"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDSoI(WCPSExpr):
"""Normalized Difference Soil Index"""
[docs]
long_name = "Normalized Difference Soil Index"
[docs]
reference = "https://doi.org/10.1016/j.jag.2015.02.010"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S2: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S2": S2, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDTI(WCPSExpr):
"""Normalized Difference Turbidity Index"""
[docs]
long_name = "Normalized Difference Turbidity Index"
[docs]
reference = "https://doi.org/10.1016/j.rse.2006.07.012"
[docs]
contributor = "https://github.com/CvenGeo"
def __init__(self, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDVI(WCPSExpr):
"""Normalized Difference Vegetation Index"""
[docs]
long_name = "Normalized Difference Vegetation Index"
[docs]
reference = "https://ntrs.nasa.gov/citations/19740022614"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDVI705(WCPSExpr):
"""Normalized Difference Vegetation Index (705 and 750 nm)"""
[docs]
long_name = "Normalized Difference Vegetation Index (705 and 750 nm)"
[docs]
reference = "https://doi.org/10.1016/S0176-1617(11)81633-0"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDVIMNDWI(WCPSExpr):
"""NDVI-MNDWI Model"""
[docs]
short_name = "NDVIMNDWI"
[docs]
long_name = "NDVI-MNDWI Model"
[docs]
bands = ['N', 'R', 'G', 'S1']
[docs]
reference = "https://doi.org/10.1007/978-3-662-45737-5_51"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, G: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "G": G, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDVIT(WCPSExpr):
"""Normalized Difference Vegetation Index Thermal"""
[docs]
long_name = "Normalized Difference Vegetation Index Thermal"
[docs]
bands = ['N', 'R', 'T']
[docs]
reference = "https://doi.org/10.1080/01431160600954704"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDWI(WCPSExpr):
"""Normalized Difference Water Index"""
[docs]
long_name = "Normalized Difference Water Index"
[docs]
reference = "https://doi.org/10.1080/01431169608948714"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDWIns(WCPSExpr):
"""Normalized Difference Water Index with no Snow Cover and Glaciers"""
[docs]
long_name = "Normalized Difference Water Index with no Snow Cover and Glaciers"
[docs]
bands = ['G', 'alpha', 'N']
[docs]
reference = "https://doi.org/10.3390/w12051339"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, alpha: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "alpha": alpha, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NDYI(WCPSExpr):
"""Normalized Difference Yellowness Index"""
[docs]
long_name = "Normalized Difference Yellowness Index"
[docs]
reference = "https://doi.org/10.1016/j.rse.2016.06.016"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NGRDI(WCPSExpr):
"""Normalized Green Red Difference Index"""
[docs]
long_name = "Normalized Green Red Difference Index"
[docs]
reference = "https://doi.org/10.1016/0034-4257(79)90013-0"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NHFD(WCPSExpr):
"""Non-Homogeneous Feature Difference"""
[docs]
long_name = "Non-Homogeneous Feature Difference"
[docs]
reference = "https://www.semanticscholar.org/paper/Using-WorldView-2-Vis-NIR-MSI-Imagery-to-Support-Wolf/5e5063ccc4ee76b56b721c866e871d47a77f9fb4"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, A: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "A": A})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NIRv(WCPSExpr):
"""Near-Infrared Reflectance of Vegetation"""
[docs]
long_name = "Near-Infrared Reflectance of Vegetation"
[docs]
reference = "https://doi.org/10.1126/sciadv.1602244"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NIRvH2(WCPSExpr):
"""Hyperspectral Near-Infrared Reflectance of Vegetation"""
[docs]
long_name = "Hyperspectral Near-Infrared Reflectance of Vegetation"
[docs]
bands = ['N', 'R', 'k', 'lambdaN', 'lambdaR']
[docs]
reference = "https://doi.org/10.1016/j.rse.2021.112723"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, k: OperandType, lambdaN: OperandType, lambdaR: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "k": k, "lambdaN": lambdaN, "lambdaR": lambdaR})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NIRvP(WCPSExpr):
"""Near-Infrared Reflectance of Vegetation and Incoming PAR"""
[docs]
long_name = "Near-Infrared Reflectance of Vegetation and Incoming PAR"
[docs]
bands = ['N', 'R', 'PAR']
[docs]
reference = "https://doi.org/10.1016/j.rse.2021.112763"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, PAR: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "PAR": PAR})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NLI(WCPSExpr):
"""Non-Linear Vegetation Index"""
[docs]
long_name = "Non-Linear Vegetation Index"
[docs]
reference = "https://doi.org/10.1080/02757259409532252"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NMDI(WCPSExpr):
"""Normalized Multi-band Drought Index"""
[docs]
long_name = "Normalized Multi-band Drought Index"
[docs]
bands = ['N', 'S1', 'S2']
[docs]
reference = "https://doi.org/10.1029/2007GL031021"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NRFIg(WCPSExpr):
"""Normalized Rapeseed Flowering Index Green"""
[docs]
long_name = "Normalized Rapeseed Flowering Index Green"
[docs]
reference = "https://doi.org/10.3390/rs13010105"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NRFIr(WCPSExpr):
"""Normalized Rapeseed Flowering Index Red"""
[docs]
long_name = "Normalized Rapeseed Flowering Index Red"
[docs]
reference = "https://doi.org/10.3390/rs13010105"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NSDS(WCPSExpr):
"""Normalized Shortwave Infrared Difference Soil-Moisture"""
[docs]
long_name = "Normalized Shortwave Infrared Difference Soil-Moisture"
[docs]
reference = "https://doi.org/10.3390/land10030231"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NSDSI1(WCPSExpr):
"""Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 1"""
[docs]
long_name = "Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 1"
[docs]
reference = "https://doi.org/10.1016/j.isprsjprs.2019.06.012"
[docs]
contributor = "https://github.com/CvenGeo"
def __init__(self, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NSDSI2(WCPSExpr):
"""Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 2"""
[docs]
long_name = "Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 2"
[docs]
reference = "https://doi.org/10.1016/j.isprsjprs.2019.06.012"
[docs]
contributor = "https://github.com/CvenGeo"
def __init__(self, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NSDSI3(WCPSExpr):
"""Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 3"""
[docs]
long_name = "Normalized Shortwave-Infrared Difference Bare Soil Moisture Index 3"
[docs]
reference = "https://doi.org/10.1016/j.isprsjprs.2019.06.012"
[docs]
contributor = "https://github.com/CvenGeo"
def __init__(self, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NSTv1(WCPSExpr):
"""NIR-SWIR-Temperature Version 1"""
[docs]
long_name = "NIR-SWIR-Temperature Version 1"
[docs]
bands = ['N', 'S2', 'T']
[docs]
reference = "https://doi.org/10.1016/j.rse.2011.06.010"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NSTv2(WCPSExpr):
"""NIR-SWIR-Temperature Version 2"""
[docs]
long_name = "NIR-SWIR-Temperature Version 2"
[docs]
bands = ['N', 'S2', 'T']
[docs]
reference = "https://doi.org/10.1016/j.rse.2011.06.010"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NWI(WCPSExpr):
"""New Water Index"""
[docs]
long_name = "New Water Index"
[docs]
bands = ['B', 'N', 'S1', 'S2']
[docs]
reference = "https://doi.org/10.11873/j.issn.1004-0323.2009.2.167"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, N: OperandType, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "N": N, "S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NormG(WCPSExpr):
"""Normalized Green"""
[docs]
long_name = "Normalized Green"
[docs]
bands = ['G', 'N', 'R']
[docs]
reference = "https://doi.org/10.2134/agronj2004.0314"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NormNIR(WCPSExpr):
"""Normalized NIR"""
[docs]
long_name = "Normalized NIR"
[docs]
bands = ['N', 'G', 'R']
[docs]
reference = "https://doi.org/10.2134/agronj2004.0314"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class NormR(WCPSExpr):
"""Normalized Red"""
[docs]
long_name = "Normalized Red"
[docs]
bands = ['R', 'N', 'G']
[docs]
reference = "https://doi.org/10.2134/agronj2004.0314"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class OCVI(WCPSExpr):
"""Optimized Chlorophyll Vegetation Index"""
[docs]
long_name = "Optimized Chlorophyll Vegetation Index"
[docs]
bands = ['N', 'G', 'R', 'cexp']
[docs]
reference = "http://dx.doi.org/10.1007/s11119-008-9075-z"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, R: OperandType, cexp: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "R": R, "cexp": cexp})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class OSAVI(WCPSExpr):
"""Optimized Soil-Adjusted Vegetation Index"""
[docs]
long_name = "Optimized Soil-Adjusted Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/0034-4257(95)00186-7"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class OSI(WCPSExpr):
"""Oil Spill Index"""
[docs]
long_name = "Oil Spill Index"
[docs]
bands = ['G', 'R', 'B']
[docs]
reference = "https://doi.org/10.1016/j.mex.2021.101327"
[docs]
contributor = "https://github.com/emanuelcastanho"
def __init__(self, G: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class PI(WCPSExpr):
"""Plastic Index"""
[docs]
long_name = "Plastic Index"
[docs]
reference = "https://doi.org/10.3390/rs12162648"
[docs]
contributor = "https://github.com/emanuelcastanho"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class PISI(WCPSExpr):
"""Perpendicular Impervious Surface Index"""
[docs]
long_name = "Perpendicular Impervious Surface Index"
[docs]
reference = "https://doi.org/10.3390/rs10101521"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class PSRI(WCPSExpr):
"""Plant Senescing Reflectance Index"""
[docs]
long_name = "Plant Senescing Reflectance Index"
[docs]
bands = ['R', 'B', 'RE2']
[docs]
reference = "https://doi.org/10.1034/j.1399-3054.1999.106119.x"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, B: OperandType, RE2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "B": B, "RE2": RE2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class QpRVI(WCPSExpr):
"""Quad-Polarized Radar Vegetation Index"""
[docs]
long_name = "Quad-Polarized Radar Vegetation Index"
[docs]
bands = ['HV', 'HH', 'VV']
[docs]
reference = "https://doi.org/10.1109/IGARSS.2001.976856"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, HV: OperandType, HH: OperandType, VV: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"HV": HV, "HH": HH, "VV": VV})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RCC(WCPSExpr):
"""Red Chromatic Coordinate"""
[docs]
long_name = "Red Chromatic Coordinate"
[docs]
bands = ['R', 'G', 'B']
[docs]
reference = "https://doi.org/10.1016/0034-4257(87)90088-5"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, G: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RDVI(WCPSExpr):
"""Renormalized Difference Vegetation Index"""
[docs]
long_name = "Renormalized Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/0034-4257(94)00114-3"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class REDSI(WCPSExpr):
"""Red-Edge Disease Stress Index"""
[docs]
long_name = "Red-Edge Disease Stress Index"
[docs]
bands = ['RE3', 'R', 'RE1']
[docs]
reference = "https://doi.org/10.3390/s18030868"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE3: OperandType, R: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE3": RE3, "R": R, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RENDVI(WCPSExpr):
"""Red Edge Normalized Difference Vegetation Index"""
[docs]
long_name = "Red Edge Normalized Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1016/S0176-1617(11)81633-0"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RFDI(WCPSExpr):
"""Radar Forest Degradation Index"""
[docs]
long_name = "Radar Forest Degradation Index"
[docs]
reference = "https://doi.org/10.5194/bg-9-179-2012"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, HH: OperandType, HV: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"HH": HH, "HV": HV})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RGBVI(WCPSExpr):
"""Red Green Blue Vegetation Index"""
[docs]
long_name = "Red Green Blue Vegetation Index"
[docs]
bands = ['G', 'B', 'R']
[docs]
reference = "https://doi.org/10.1016/j.jag.2015.02.012"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, B: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "B": B, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RGRI(WCPSExpr):
"""Red-Green Ratio Index"""
[docs]
long_name = "Red-Green Ratio Index"
[docs]
reference = "https://doi.org/10.1016/j.jag.2014.03.018"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RI(WCPSExpr):
"""Redness Index"""
[docs]
long_name = "Redness Index"
[docs]
reference = "https://www.documentation.ird.fr/hor/fdi:34390"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RI4XS(WCPSExpr):
"""SPOT HRV XS-based Redness Index 4"""
[docs]
long_name = "SPOT HRV XS-based Redness Index 4"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(98)00030-3"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RNDVI(WCPSExpr):
"""Reversed Normalized Difference Vegetation Index"""
[docs]
long_name = "Reversed Normalized Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.3390/rs12162648"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class RVI(WCPSExpr):
"""Ratio Vegetation Index"""
[docs]
long_name = "Ratio Vegetation Index"
[docs]
reference = "https://doi.org/10.2134/agronj1968.00021962006000060016x"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class S2REP(WCPSExpr):
"""Sentinel-2 Red-Edge Position"""
[docs]
long_name = "Sentinel-2 Red-Edge Position"
[docs]
bands = ['RE3', 'R', 'RE1', 'RE2']
[docs]
reference = "https://doi.org/10.1016/j.isprsjprs.2013.04.007"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE3: OperandType, R: OperandType, RE1: OperandType, RE2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE3": RE3, "R": R, "RE1": RE1, "RE2": RE2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class S2WI(WCPSExpr):
"""Sentinel-2 Water Index"""
[docs]
long_name = "Sentinel-2 Water Index"
[docs]
reference = "https://doi.org/10.3390/w13121647"
[docs]
contributor = "https://github.com/MATRIX4284"
def __init__(self, RE1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class S3(WCPSExpr):
"""S3 Snow Index"""
[docs]
long_name = "S3 Snow Index"
[docs]
bands = ['N', 'R', 'S1']
[docs]
reference = "https://doi.org/10.3178/jjshwr.12.28"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SARVI(WCPSExpr):
"""Soil Adjusted and Atmospherically Resistant Vegetation Index"""
[docs]
long_name = "Soil Adjusted and Atmospherically Resistant Vegetation Index"
[docs]
bands = ['L', 'N', 'R', 'B']
[docs]
reference = "https://doi.org/10.1109/36.134076"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, L: OperandType, N: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"L": L, "N": N, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SAVI(WCPSExpr):
"""Soil-Adjusted Vegetation Index"""
[docs]
long_name = "Soil-Adjusted Vegetation Index"
[docs]
bands = ['L', 'N', 'R']
[docs]
reference = "https://doi.org/10.1016/0034-4257(88)90106-X"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, L: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"L": L, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SAVI2(WCPSExpr):
"""Soil-Adjusted Vegetation Index 2"""
[docs]
long_name = "Soil-Adjusted Vegetation Index 2"
[docs]
bands = ['N', 'R', 'slb', 'sla']
[docs]
reference = "https://doi.org/10.1080/01431169008955053"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, slb: OperandType, sla: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "slb": slb, "sla": sla})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SAVIT(WCPSExpr):
"""Soil-Adjusted Vegetation Index Thermal"""
[docs]
long_name = "Soil-Adjusted Vegetation Index Thermal"
[docs]
bands = ['L', 'N', 'R', 'T']
[docs]
reference = "https://doi.org/10.1080/01431160600954704"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, L: OperandType, N: OperandType, R: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"L": L, "N": N, "R": R, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SEVI(WCPSExpr):
"""Shadow-Eliminated Vegetation Index"""
[docs]
long_name = "Shadow-Eliminated Vegetation Index"
[docs]
bands = ['N', 'R', 'fdelta']
[docs]
reference = "https://doi.org/10.1080/17538947.2018.1495770"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, fdelta: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "fdelta": fdelta})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SI(WCPSExpr):
"""Shadow Index"""
[docs]
long_name = "Shadow Index"
[docs]
bands = ['B', 'G', 'R']
[docs]
reference = "http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.8749&rep=rep1&type=pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SIPI(WCPSExpr):
"""Structure Insensitive Pigment Index"""
[docs]
long_name = "Structure Insensitive Pigment Index"
[docs]
bands = ['N', 'A', 'R']
[docs]
reference = "https://eurekamag.com/research/009/395/009395053.php"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, A: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "A": A, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SLAVI(WCPSExpr):
"""Specific Leaf Area Vegetation Index"""
[docs]
long_name = "Specific Leaf Area Vegetation Index"
[docs]
bands = ['N', 'R', 'S2']
[docs]
reference = "https://www.asprs.org/wp-content/uploads/pers/2000journal/february/2000_feb_183-191.pdf"
[docs]
contributor = "https://github.com/geoSanjeeb"
def __init__(self, N: OperandType, R: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SR(WCPSExpr):
"""Simple Ratio"""
[docs]
long_name = "Simple Ratio"
[docs]
reference = "https://doi.org/10.2307/1936256"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SR2(WCPSExpr):
"""Simple Ratio (800 and 550 nm)"""
[docs]
long_name = "Simple Ratio (800 and 550 nm)"
[docs]
reference = "https://doi.org/10.1080/01431169308904370"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SR3(WCPSExpr):
"""Simple Ratio (860, 550 and 708 nm)"""
[docs]
long_name = "Simple Ratio (860, 550 and 708 nm)"
[docs]
bands = ['N2', 'G', 'RE1']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(98)00046-7"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N2: OperandType, G: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N2": N2, "G": G, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SR555(WCPSExpr):
"""Simple Ratio (555 and 750 nm)"""
[docs]
long_name = "Simple Ratio (555 and 750 nm)"
[docs]
reference = "https://doi.org/10.1016/S0176-1617(11)81633-0"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SR705(WCPSExpr):
"""Simple Ratio (705 and 750 nm)"""
[docs]
long_name = "Simple Ratio (705 and 750 nm)"
[docs]
reference = "https://doi.org/10.1016/S0176-1617(11)81633-0"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SWI(WCPSExpr):
"""Snow Water Index"""
[docs]
long_name = "Snow Water Index"
[docs]
bands = ['G', 'N', 'S1']
[docs]
reference = "https://doi.org/10.3390/rs11232774"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SWM(WCPSExpr):
"""Sentinel Water Mask"""
[docs]
long_name = "Sentinel Water Mask"
[docs]
bands = ['B', 'G', 'N', 'S1']
[docs]
reference = "https://eoscience.esa.int/landtraining2017/files/posters/MILCZAREK.pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, G: OperandType, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "G": G, "N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class SeLI(WCPSExpr):
"""Sentinel-2 LAI Green Index"""
[docs]
long_name = "Sentinel-2 LAI Green Index"
[docs]
reference = "https://doi.org/10.3390/s19040904"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N2: OperandType, RE1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N2": N2, "RE1": RE1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TCARI(WCPSExpr):
"""Transformed Chlorophyll Absorption in Reflectance Index"""
[docs]
long_name = "Transformed Chlorophyll Absorption in Reflectance Index"
[docs]
bands = ['RE1', 'R', 'G']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(02)00018-4"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, R: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "R": R, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TCARIOSAVI(WCPSExpr):
"""TCARI/OSAVI Ratio"""
[docs]
short_name = "TCARIOSAVI"
[docs]
long_name = "TCARI/OSAVI Ratio"
[docs]
bands = ['RE1', 'R', 'G', 'N']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(02)00018-4"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, R: OperandType, G: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "R": R, "G": G, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TCARIOSAVI705(WCPSExpr):
"""TCARI/OSAVI Ratio (705 and 750 nm)"""
[docs]
short_name = "TCARIOSAVI705"
[docs]
long_name = "TCARI/OSAVI Ratio (705 and 750 nm)"
[docs]
bands = ['RE2', 'RE1', 'G']
[docs]
reference = "https://doi.org/10.1016/j.agrformet.2008.03.005"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType, G: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1, "G": G})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TCI(WCPSExpr):
"""Triangular Chlorophyll Index"""
[docs]
long_name = "Triangular Chlorophyll Index"
[docs]
bands = ['RE1', 'G', 'R']
[docs]
reference = "http://dx.doi.org/10.1109/TGRS.2007.904836"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TDVI(WCPSExpr):
"""Transformed Difference Vegetation Index"""
[docs]
long_name = "Transformed Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1109/IGARSS.2002.1026867"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TGI(WCPSExpr):
"""Triangular Greenness Index"""
[docs]
long_name = "Triangular Greenness Index"
[docs]
bands = ['R', 'G', 'B']
[docs]
reference = "http://dx.doi.org/10.1016/j.jag.2012.07.020"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, G: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "G": G, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TRRVI(WCPSExpr):
"""Transformed Red Range Vegetation Index"""
[docs]
long_name = "Transformed Red Range Vegetation Index"
[docs]
bands = ['RE2', 'R', 'N']
[docs]
reference = "https://doi.org/10.3390/rs12152359"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, R: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "R": R, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TSAVI(WCPSExpr):
"""Transformed Soil-Adjusted Vegetation Index"""
[docs]
long_name = "Transformed Soil-Adjusted Vegetation Index"
[docs]
bands = ['sla', 'N', 'R', 'slb']
[docs]
reference = "https://doi.org/10.1109/IGARSS.1989.576128"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, sla: OperandType, N: OperandType, R: OperandType, slb: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"sla": sla, "N": N, "R": R, "slb": slb})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TTVI(WCPSExpr):
"""Transformed Triangular Vegetation Index"""
[docs]
long_name = "Transformed Triangular Vegetation Index"
[docs]
bands = ['RE3', 'RE2', 'N2']
[docs]
reference = "https://doi.org/10.3390/rs12010016"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE3: OperandType, RE2: OperandType, N2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE3": RE3, "RE2": RE2, "N2": N2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TVI(WCPSExpr):
"""Transformed Vegetation Index"""
[docs]
long_name = "Transformed Vegetation Index"
[docs]
reference = "https://ntrs.nasa.gov/citations/19740022614"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TWI(WCPSExpr):
"""Triangle Water Index"""
[docs]
long_name = "Triangle Water Index"
[docs]
bands = ['RE1', 'RE2', 'G', 'S2', 'B', 'N']
[docs]
reference = "https://doi.org/10.3390/rs14215289"
[docs]
contributor = "https://github.com/remi-braun"
def __init__(self, RE1: OperandType, RE2: OperandType, G: OperandType, S2: OperandType, B: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "RE2": RE2, "G": G, "S2": S2, "B": B, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class TriVI(WCPSExpr):
"""Triangular Vegetation Index"""
[docs]
long_name = "Triangular Vegetation Index"
[docs]
bands = ['N', 'G', 'R']
[docs]
reference = "http://dx.doi.org/10.1016/S0034-4257(00)00197-8"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class UI(WCPSExpr):
"""Urban Index"""
[docs]
long_name = "Urban Index"
[docs]
reference = "https://www.isprs.org/proceedings/XXXI/congress/part7/321_XXXI-part7.pdf"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, S2: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"S2": S2, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VARI(WCPSExpr):
"""Visible Atmospherically Resistant Index"""
[docs]
long_name = "Visible Atmospherically Resistant Index"
[docs]
bands = ['G', 'R', 'B']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(01)00289-9"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VARI700(WCPSExpr):
"""Visible Atmospherically Resistant Index (700 nm)"""
[docs]
long_name = "Visible Atmospherically Resistant Index (700 nm)"
[docs]
bands = ['RE1', 'R', 'B']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(01)00289-9"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, R: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "R": R, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VDDPI(WCPSExpr):
"""Vertical Dual De-Polarization Index"""
[docs]
long_name = "Vertical Dual De-Polarization Index"
[docs]
reference = "https://doi.org/10.1016/j.rse.2018.09.003"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VV: OperandType, VH: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VV": VV, "VH": VH})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VHVVD(WCPSExpr):
"""VH-VV Difference"""
[docs]
long_name = "VH-VV Difference"
[docs]
reference = "https://doi.org/10.3390/app9040655"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VH: OperandType, VV: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VH": VH, "VV": VV})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VHVVP(WCPSExpr):
"""VH-VV Product"""
[docs]
long_name = "VH-VV Product"
[docs]
reference = "https://doi.org/10.1109/IGARSS47720.2021.9554099"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VH: OperandType, VV: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VH": VH, "VV": VV})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VHVVR(WCPSExpr):
"""VH-VV Ratio"""
[docs]
long_name = "VH-VV Ratio"
[docs]
reference = "https://doi.org/10.1109/IGARSS47720.2021.9554099"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VH: OperandType, VV: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VH": VH, "VV": VV})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VI6T(WCPSExpr):
"""VI6T Index"""
[docs]
long_name = "VI6T Index"
[docs]
reference = "https://doi.org/10.1080/01431160500239008"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, T: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "T": T})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VI700(WCPSExpr):
"""Vegetation Index (700 nm)"""
[docs]
long_name = "Vegetation Index (700 nm)"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(01)00289-9"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE1: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE1": RE1, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VIBI(WCPSExpr):
"""Vegetation Index Built-up Index"""
[docs]
long_name = "Vegetation Index Built-up Index"
[docs]
bands = ['N', 'R', 'S1']
[docs]
reference = "http://dx.doi.org/10.1080/01431161.2012.687842"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VIG(WCPSExpr):
"""Vegetation Index Green"""
[docs]
long_name = "Vegetation Index Green"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(01)00289-9"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VVVHD(WCPSExpr):
"""VV-VH Difference"""
[docs]
long_name = "VV-VH Difference"
[docs]
reference = "https://doi.org/10.1109/IGARSS47720.2021.9554099"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VV: OperandType, VH: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VV": VV, "VH": VH})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VVVHR(WCPSExpr):
"""VV-VH Ratio"""
[docs]
long_name = "VV-VH Ratio"
[docs]
reference = "https://doi.org/10.3390/app9040655"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VV: OperandType, VH: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VV": VV, "VH": VH})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VVVHS(WCPSExpr):
"""VV-VH Sum"""
[docs]
long_name = "VV-VH Sum"
[docs]
reference = "https://doi.org/10.1109/IGARSS47720.2021.9554099"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, VV: OperandType, VH: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"VV": VV, "VH": VH})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VgNIRBI(WCPSExpr):
"""Visible Green-Based Built-Up Index"""
[docs]
long_name = "Visible Green-Based Built-Up Index"
[docs]
reference = "https://doi.org/10.1016/j.ecolind.2015.03.037"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class VrNIRBI(WCPSExpr):
"""Visible Red-Based Built-Up Index"""
[docs]
long_name = "Visible Red-Based Built-Up Index"
[docs]
reference = "https://doi.org/10.1016/j.ecolind.2015.03.037"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, R: OperandType, N: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"R": R, "N": N})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class WDRVI(WCPSExpr):
"""Wide Dynamic Range Vegetation Index"""
[docs]
long_name = "Wide Dynamic Range Vegetation Index"
[docs]
bands = ['alpha', 'N', 'R']
[docs]
reference = "https://doi.org/10.1078/0176-1617-01176"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, alpha: OperandType, N: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"alpha": alpha, "N": N, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class WDVI(WCPSExpr):
"""Weighted Difference Vegetation Index"""
[docs]
long_name = "Weighted Difference Vegetation Index"
[docs]
bands = ['N', 'sla', 'R']
[docs]
reference = "https://doi.org/10.1016/0034-4257(89)90076-X"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, sla: OperandType, R: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "sla": sla, "R": R})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class WI1(WCPSExpr):
"""Water Index 1"""
[docs]
long_name = "Water Index 1"
[docs]
reference = "https://doi.org/10.3390/rs11182186"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class WI2(WCPSExpr):
"""Water Index 2"""
[docs]
long_name = "Water Index 2"
[docs]
reference = "https://doi.org/10.3390/rs11182186"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, B: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"B": B, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class WI2015(WCPSExpr):
"""Water Index 2015"""
[docs]
long_name = "Water Index 2015"
[docs]
bands = ['G', 'R', 'N', 'S1', 'S2']
[docs]
reference = "https://doi.org/10.1016/j.rse.2015.12.055"
[docs]
contributor = "https://github.com/remi-braun"
def __init__(self, G: OperandType, R: OperandType, N: OperandType, S1: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "N": N, "S1": S1, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class WRI(WCPSExpr):
"""Water Ratio Index"""
[docs]
long_name = "Water Ratio Index"
[docs]
bands = ['G', 'R', 'N', 'S1']
[docs]
reference = "https://doi.org/10.1109/GEOINFORMATICS.2010.5567762"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, G: OperandType, R: OperandType, N: OperandType, S1: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"G": G, "R": R, "N": N, "S1": S1})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class bNIRv(WCPSExpr):
"""Blue Near-Infrared Reflectance of Vegetation"""
[docs]
long_name = "Blue Near-Infrared Reflectance of Vegetation"
[docs]
reference = "https://doi.org/10.1029/2024JG008240"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, B: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "B": B})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class kEVI(WCPSExpr):
"""Kernel Enhanced Vegetation Index"""
[docs]
long_name = "Kernel Enhanced Vegetation Index"
[docs]
bands = ['g', 'kNN', 'kNR', 'C1', 'C2', 'kNB', 'kNL']
[docs]
reference = "https://doi.org/10.1126/sciadv.abc7447"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, g: OperandType, kNN: OperandType, kNR: OperandType, C1: OperandType, C2: OperandType, kNB: OperandType, kNL: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"g": g, "kNN": kNN, "kNR": kNR, "C1": C1, "C2": C2, "kNB": kNB, "kNL": kNL})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class kIPVI(WCPSExpr):
"""Kernel Infrared Percentage Vegetation Index"""
[docs]
long_name = "Kernel Infrared Percentage Vegetation Index"
[docs]
reference = "https://doi.org/10.1126/sciadv.abc7447"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, kNN: OperandType, kNR: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"kNN": kNN, "kNR": kNR})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class kNDVI(WCPSExpr):
"""Kernel Normalized Difference Vegetation Index"""
[docs]
long_name = "Kernel Normalized Difference Vegetation Index"
[docs]
reference = "https://doi.org/10.1126/sciadv.abc7447"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, kNN: OperandType, kNR: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"kNN": kNN, "kNR": kNR})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class kRVI(WCPSExpr):
"""Kernel Ratio Vegetation Index"""
[docs]
long_name = "Kernel Ratio Vegetation Index"
[docs]
reference = "https://doi.org/10.1126/sciadv.abc7447"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, kNN: OperandType, kNR: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"kNN": kNN, "kNR": kNR})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class kVARI(WCPSExpr):
"""Kernel Visible Atmospherically Resistant Index"""
[docs]
long_name = "Kernel Visible Atmospherically Resistant Index"
[docs]
bands = ['kGG', 'kGR', 'kGB']
[docs]
reference = "https://doi.org/10.1126/sciadv.abc7447"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, kGG: OperandType, kGR: OperandType, kGB: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"kGG": kGG, "kGR": kGR, "kGB": kGB})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class mND705(WCPSExpr):
"""Modified Normalized Difference (705, 750 and 445 nm)"""
[docs]
long_name = "Modified Normalized Difference (705, 750 and 445 nm)"
[docs]
bands = ['RE2', 'RE1', 'A']
[docs]
reference = "https://doi.org/10.1016/S0034-4257(02)00010-X"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, RE1: OperandType, A: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "RE1": RE1, "A": A})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class mSR705(WCPSExpr):
"""Modified Simple Ratio (705 and 445 nm)"""
[docs]
long_name = "Modified Simple Ratio (705 and 445 nm)"
[docs]
reference = "https://doi.org/10.1016/S0034-4257(02)00010-X"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, RE2: OperandType, A: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"RE2": RE2, "A": A})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class sNIRvLSWI(WCPSExpr):
"""SWIR-enhanced Near-Infrared Reflectance of Vegetation for LSWI"""
[docs]
short_name = "sNIRvLSWI"
[docs]
long_name = "SWIR-enhanced Near-Infrared Reflectance of Vegetation for LSWI"
[docs]
reference = "https://doi.org/10.1029/2024JG008240"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class sNIRvNDPI(WCPSExpr):
"""SWIR-enhanced Near-Infrared Reflectance of Vegetation for NDPI"""
[docs]
short_name = "sNIRvNDPI"
[docs]
long_name = "SWIR-enhanced Near-Infrared Reflectance of Vegetation for NDPI"
[docs]
bands = ['N', 'alpha', 'R', 'S2']
[docs]
reference = "https://doi.org/10.1029/2024JG008240"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, alpha: OperandType, R: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "alpha": alpha, "R": R, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class sNIRvNDVILSWIP(WCPSExpr):
"""SWIR-enhanced Near-Infrared Reflectance of Vegetation for the NDVI-LSWI Product"""
[docs]
short_name = "sNIRvNDVILSWIP"
[docs]
long_name = "SWIR-enhanced Near-Infrared Reflectance of Vegetation for the NDVI-LSWI Product"
[docs]
bands = ['N', 'R', 'S2']
[docs]
reference = "https://doi.org/10.1029/2024JG008240"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class sNIRvNDVILSWIS(WCPSExpr):
"""SWIR-enhanced Near-Infrared Reflectance of Vegetation for the NDVI-LSWI Sum"""
[docs]
short_name = "sNIRvNDVILSWIS"
[docs]
long_name = "SWIR-enhanced Near-Infrared Reflectance of Vegetation for the NDVI-LSWI Sum"
[docs]
bands = ['N', 'R', 'S2']
[docs]
reference = "https://doi.org/10.1029/2024JG008240"
[docs]
contributor = "https://github.com/davemlz"
def __init__(self, N: OperandType, R: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])
[docs]
class sNIRvSWIR(WCPSExpr):
"""SWIR-enhanced Near-Infrared Reflectance of Vegetation"""
[docs]
short_name = "sNIRvSWIR"
[docs]
long_name = "SWIR-enhanced Near-Infrared Reflectance of Vegetation"
[docs]
bands = ['N', 'R', 'S2']
[docs]
reference = "https://doi.org/10.1029/2024JG008240"
[docs]
contributor = "https://github.com/MartinuzziFrancesco"
def __init__(self, N: OperandType, R: OperandType, S2: OperandType):
super().__init__(operands=[eval(self.formula, {}, {"N": N, "R": R, "S2": S2})])
def __str__(self):
return super().__str__() + str(self.operands[0])