1. 程式人生 > 程式設計 >Python&&GDAL實現NDVI的計算方式

Python&&GDAL實現NDVI的計算方式

很短的幾句程式碼,可是我卻花了很長的時間才寫出來,因為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的計算方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。