Python&&GDAL實現NDVI的計算方式
阿新 • • 發佈:2020-01-10
很短的幾句程式碼,可是我卻花了很長的時間才寫出來,因為array那裡的除法運算結果老是不對,正常在-1-1之間的。從別的資料摘來處理NDVI計算的array程式碼處,出現了很多問題,可能它用了什麼優化計算的函式,但是結果不對,果斷放棄了。
直接硬算,影像波段是整數,轉成浮點型數字就行,然後再參與運算得出了正確的結果範圍。
這個效率還是不行,用c++&&GDAL計算速率快得多了。
from osgeo import gdal_array as ga import gdal,ogr,os,osr import numpy as np b3=r'C:\Users\suns\Desktop\b4.TIF' b4=r'C:\Users\suns\Desktop\b5.TIF' arr=ga.LoadFile(b3) arr1=ga.LoadFile(b4) ga.numpy.seterr(all="ignore") ndvi=((arr1-arr)*1.0)/((arr1+arr)*1.0) ndvi1=ga.numpy.nan_to_num(ndvi) target=r'C:\Users\suns\Desktop\ndvi1.tif' out=ga.SaveArray(ndvi1,target,format = "GTiff",prototype = b4) out=None
以上這篇Python&&GDAL實現NDVI的計算方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。