Spaces:
Sleeping
Sleeping
| import numpy as np | |
| def indices(X): | |
| # Calculate vegetation indices | |
| #S2REP | |
| #OTHERS | |
| X["MTCI"] = (X["B06"]-X["B05"])/(X["B05"]-X["B04"]) | |
| X["AWEInsh"] = 4.0*(X["B03"]-X["B11"])-0.25*X["B08"]+2.75*X["B12"] | |
| X["NBSIMS"] = 0.36*(X["B03"]+X["B04"]+X["B08"]) - (((X["B02"]+X["B12"])/X["B03"])+X["B11"]) | |
| X["MuWIR"] = -4.0*((X["B02"]-X["B03"])/(X["B02"]+X["B03"]))+2.0*((X["B03"]-X["B08"])/(X["B03"]+X["B08"]))+2.0*((X["B03"]-X["B12"])/(X["B03"]+X["B12"]))-((X["B03"]-X["B11"])/(X["B03"]+X["B11"])) | |
| X["VARI700"] = (X["B05"]-1.7*X["B04"]+0.7*X["B02"])/(X["B05"]+1.3*X["B04"]-1.3*X["B02"]) | |
| X["S2WI"] = (X["B05"]-X["B12"])/(X["B05"]+X["B12"]) | |
| X["NBAI"] = ((X["B12"]-X["B11"])/X["B03"])/((X["B12"]+X["B11"])/X["B03"]) | |
| X["TCARI"] = 3*((X["B05"]-X["B04"]))-0.2*(X["B05"]-X["B03"])*(X["B05"]/X["B04"]) | |
| X["WI2015"] = 1.7204+171*X["B03"]+3*X["B04"]-70*X["B08"]-45*X["B11"]-71*X["B12"] | |
| X["BAIM"] = 1.0/((0.05-X["B08"])**2.0)+((0.2-X["B12"])**2.0) | |
| X["NDDI"] = (( (X["B08"]-X["B04"])/(X["B08"]+X["B04"])-((X["B03"]-X["B08"])/(X["B03"]+X["B08"])))/((X["B08"]-X["B04"])/(X["B08"]+X["B04"]))+((X["B03"]-X["B08"])/(X["B03"]+X["B08"]))) | |
| X["BCC"] = X["B02"]/(X["B04"]+X["B03"]+X["B02"]) | |
| X["RCC"] = X["B04"]/(X["B04"]+X["B03"]+X["B02"]) | |
| X["IKAW"] = (X["B08"]-X["B02"])/(X["B08"]+X["B02"]) | |
| X["ARI"] = (1/X["B03"])-(1/X["B05"]) | |
| X["MIRBI"] = 10.0*X["B12"]-9.8*X["B11"]+2.0 | |
| X["NMDI2"] = (X["B08"]-(X["B11"]-X["B12"]))/(X["B08"]+(X["B11"]-X["B12"])) | |
| X["TTVI"] = 0.5*((865.0-740.0)*(X["B8A"]-X["B06"]-(X["B07"]-X["B06"])*(783.0-740))) | |
| X["NHFD"] = (X["B05"]-X["B01"])/(X["B05"]+X["B01"]) | |
| X["NDSWIR"] = (X["B11"]-X["B8A"])/(X["B11"]+X["B8A"]) | |
| X["NBRSWIR"] = (X["B12"]-X["B11"]-0.02)/(X["B12"]+X["B11"]+0.1) | |
| X["NBR"] = (X["B12"]-X["B8A"])/(X["B12"]+X["B8A"]) | |
| X["NBRplus"] = (X["B12"]-X["B8A"]-X["B03"]-X["B02"])/(X["B12"]+X["B8A"]+X["B03"]+X["B02"]) | |
| X["NDWI2"] = (X["B02"]-X["B08"])/(X["B02"]+X["B08"]) | |
| X["NDWI2"] = (X["B01"]-X["B08"])/(X["B01"]+X["B08"]) | |
| X["S2REP"] = 705 + 35 * ((((X["B07"] + X["B04"])/2) - X["B05"])/(X["B06"] - X["B05"])) | |
| #S2REP = 705 + 35 * ((((X[:, 6, :] + X[:, 3, :])/2) - X[:, 4, :])/(X[:, 5, :] - X[:, 4, :])) | |
| X["CCCI"] = ((X["B08"] - X["B05"]) / (X["B08"] + X["B05"])) / ((X["B08"] - X["B04"]) / (X["B08"] + X["B04"])) | |
| #CCCI = ((X[:, 7, :] - X[:, 4, :]) / (X[:, 7, :] + X[:, 4, :])) / ((X[:, 7, :] - X[:, 3, :]) / (X[:, 7, :] + X[:, 3, :])) | |
| X["MCARI"] = ((X["B05"] - X["B04"]) - 2 * (X["B05"] - X["B03"])) * (X["B05"] / X["B04"]) | |
| #MCARI = ((X[:, 4, :] - X[:, 3, :]) - 2 * (X[:, 4, :] - X[:, 2, :])) * (X[:, 4, :] / X[:, 3, :]) | |
| X["TCARI"] = 3 * ((X["B05"] - X["B04"]) - 0.2 * (X["B05"] - X["B03"]) * (X["B05"] / X["B04"])) | |
| #TCARI = 3 * ((X[:, 4, :] - X[:, 3, :]) - 0.2 * (X[:, 4, :] - X[:, 2, :]) * (X[:, 4, :] / X[:, 3, :])) | |
| X["PVI"] = (X["B08"] - 0.3 * X["B04"] - 0.5) / ((1 + 0.3 * 2) ** (1/2.0)) | |
| #PVI = (X[:, 7, :] - 0.3 * X[:, 3, :] - 0.5) / ((1 + 0.3 * 2) ** (1/2.0)) | |
| X["ndvi"] = (X["B08"] - X["B04"]) / (X["B08"] + X["B04"]) | |
| #ndvi = (X[:, 7, :] - X[:, 3, :]) / (X[:, 7, :] + X[:, 3, :]) | |
| X["evi"] = 2.5 * (X["B08"] - X["B04"]) / (X["B08"] + 6 * X["B04"] - 7.5 * X["B02"] + 1) | |
| #evi = 2.5 * (X[:, 7, :] - X[:, 3, :]) / (X[:, 7, :] + 6 * X[:, 3, :] - 7.5 * X[:, 1, :] + 1) | |
| X["savi"] = (X["B08"] - X["B04"]) / (X["B08"] + X["B04"] + 0.5) | |
| #savi = (X[:, 7, :] - X[:, 3, :]) / (X[:, 7, :] + X[:, 3, :] + 0.5) | |
| X["mndwi"] = (X["B03"] - X["B08"]) / (X["B03"] + X["B08"]) | |
| #mndwi = (X[:, 2, :] - X[:, 7, :]) / (X[:, 2, :] + X[:, 7, :]) | |
| X["ARVI"] = (X["B08"] - (2 * X["B04"]) + X["B02"]) / (X["B08"] + (2 * X["B04"]) + X["B02"]) | |
| #ARVI = (X[:, 7, :] - (2 * X[:, 3, :]) + X[:, 1, :]) / (X[:, 7, :] + (2 * X[:, 3, :]) + X[:, 1, :]) | |
| X["SIPI"] = (X["B08"] - X["B02"]) / (X["B08"] - X["B04"]) | |
| #SIPI = (X[:, 7, :] - X[:, 1, :]) / (X[:, 7, :] - X[:, 3, :]) | |
| X["RENDVI"] = (X["B06"] - X["B05"]) / (X["B06"] + X["B05"]) | |
| #RENDVI = (X[:, 5, :] - X[:, 4, :]) / (X[:, 5, :] + X[:, 4, :]) | |
| X["MRESR"] = (X["B06"] - X["B01"]) / (X["B05"] - X["B01"]) | |
| #MRESR = (X[:, 5, :] - X[:, 0, :]) / (X[:, 4, :] - X[:, 0, :]) | |
| # CANOLA | |
| X["RYI"] = X["B03"] / X["B02"] | |
| #RYI = X[:, 2, :] / X[:, 1, :] | |
| X["NDYI"] = (X["B03"] - X["B02"]) / (X["B03"] + X["B02"]) | |
| #NDYI = (X[:, 2, :] - X[:, 1, :]) / (X[:, 2, :] + X[:, 1, :]) | |
| X["DYI"] = X["B03"] - X["B02"] | |
| #DYI = X[:, 2, :] - X[:, 1, :] | |
| X["ACI"] = X["B08"] * (X["B04"] + X["B03"]) | |
| #ACI = X[:, 7, :] * (X[:, 3, :] + X[:, 2, :]) | |
| # WEED | |
| X["CVI"] = (X["B08"] / X["B03"]) * (X["B04"] / X["B03"]) | |
| #CVI = (X[:, 7, :] / X[:, 2, :]) * (X[:, 3, :] / X[:, 2, :]) | |
| X["AVI"] = (X["B08"] * (1 - X["B04"]) * (X["B08"] - X["B04"])) | |
| #AVI = (X[:, 7, :] * (1 - X[:, 3, :]) * (X[:, 7, :] - X[:, 3, :])) | |
| X["SI"] = ((1 - X["B02"]) * (1 - X["B03"]) * (1 - X["B04"])) | |
| #SI= ((1 - X[:, 1, :]) * (1 - X[:, 2, :]) * (1 - X[:, 3, :])) | |
| X["BSI"] = ((X["B11"] + X["B04"]) - (X["B08"] + X["B02"])) / ((X["B11"] + X["B04"]) + (X["B08"] + X["B02"])) | |
| #BSI= ((X[:, 10, :] + X[:, 3, :]) - (X[:, 7, :] + X[:, 1, :])) / ((X[:, 10, :] + X[:, 3, :]) + (X[:, 7, :] + X[:, 1, :])) | |
| # WINE GRAPES | |
| X["MTCI"] = (X["B06"] - X["B05"])/(X["B05"] - X["B04"]) | |
| #MTCI = (X[:, 5, :] - X[:, 4, :])/(X[:, 4, :] - X[:, 3, :]) | |
| X["NPCRI"] = (X["B04"] - X["B02"]) / (X["B04"] + X["B02"]) | |
| #NPCRI = (X[:, 3, :] - X[:, 1, :]) / (X[:, 3, :] + X[:, 1, :]) | |
| # ROOIBOS | |
| X["BAI"] = 1/((0.1 - X["B04"]) ** 2 + (0.06 - X["B08"]) ** 2) | |
| #BAI = 1/((0.1 - X[:, 3, :]) ** 2 + (0.06 - X[:, 7, :]) ** 2) | |
| #MTVI2 = list(1.5*(1.2 * (i - j) - 2.5 * (k - j))* ((2 * i + 1)**2-(6 * i - 5 * k ** (1/2.0)) - 0.5)**(1/2.0) for i, j, k in zip(X[:, 7, :], X[:, 2, :], X[:, 3, :])) | |
| MTVI2 = list(1.5*(1.2 * (i - j) - 2.5 * (k - j))* ((2 * i + 1)**2-(6 * i - 5 * k ** (1/2.0)) - 0.5)**(1/2.0) for i, j, k in zip(X["B08"], X["B03"], X["B04"])) | |
| X["MTVI2"] = np.array(MTVI2) | |
| X["NDSI"] = (X["B03"] - X["B11"]) / (X["B03"] + X["B11"]) | |
| #NDSI = (X[:, 2, :] - X[:, 10, :]) / (X[:, 2, :] + X[:, 10, :]) | |
| # DRYNESS / DROUGHT | |
| X["NDMI"] = (X["B08"] - X["B11"])/(X["B08"] + X["B11"]) | |
| #NDMI = (X[:, 7, :] - X[:, 10, :])/(X[:, 7, :] + X[:, 10, :]) | |
| TNDVI = [(x)**(1/2.0) for x in ((X["B08"] - X["B04"]) / (X["B08"] + X["B04"]) + 0.5)] | |
| X["TNDVI"] = np.array(TNDVI) | |
| # GENERAL | |
| X["TVI"] = (120 * (X["B06"] - X["B03"]) - 200 * (X["B04"] - X["B03"])) / 2 | |
| #TVI = (120 * (X[:, 5, :] - X[:, 2, :]) - 200 * (X[:, 3, :] - X[:, 2, :])) / 2 | |
| X["EXG"] = 2 * X["B03"] - X["B04"] - X["B02"] | |
| #EXG = 2 * X[:, 2, :] - X[:, 3, :] - X[:, 1, :] | |
| X["PSRI"] = (X["B04"] - X["B02"]) / X["B06"] | |
| #PSRI = (X[:, 3, :] - X[:, 1, :]) / X[:, 5, :] | |
| return X |