File size: 949 Bytes
d846da7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt


EPS = 1e-10
    

def set_style() -> None:
    sns.set(font='serif')
    sns.set_style("darkgrid", {
        "font.family": "serif",
        "font.serif": ["umr10", "Times", "Palatino", "serif"]
    })
    plt.rcParams.update({"mathtext.fontset": "cm", "mathtext.rm": "serif"})


# 138, 74, 18, 43
def bsi(nir, red, blue, green):
    return ((nir+green-(red+blue))/(nir+green+red+blue+EPS))
    

# 138, 74
def sr(nir, red):
    return (nir)/(red+EPS)


# 138, 74
def ndvi(nir, red):
    return (nir-red)/(nir+red+EPS)

# 138, 74, 18
def evi(nir, red, blue):
    return (2.5*(nir-red))/(nir+6*red-7.5*blue+1+EPS)


# 138, 74, 18
def osavi(nir, red, blue):
    return (nir-red)/(nir+red+0.16+EPS)


def osavi2(nir, red, blue):
    n = improve_img_levels(nir)
    r = improve_img_levels(red)
    b = improve_img_levels(blue)
    return (1+0.16)*((nir-red)/(nir+red+0.16+EPS))