Python&&GDAL实现NDVI的计算方式

时间:2021-05-22

很短的几句代码,可是我却花了很长的时间才写出来,因为array那里的除法运算结果老是不对,正常在-1-1之间的。从别的资料摘来处理NDVI计算的array代码处,出现了很多问题,可能它用了什么优化计算的函数,但是结果不对,果断放弃了。

直接硬算,影像波段是整数,转成浮点型数字就行,然后再参与运算得出了正确的结果范围。

这个效率还是不行,用c++&&GDAL计算速率快得多了。

from osgeo import gdal_array as gaimport gdal, ogr, os, osrimport numpy as npb3=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的计算方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章