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

yipeiwu_com6年前Python基础

很短的几句代码,可是我却花了很长的时间才写出来,因为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的计算方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python获取网段内ping通IP的方法

问题描述 在某些问题背景下,需要确认是否多台终端在线,也就是会使用我们牛逼的ping这个命令,做一些的ping操作,如果需要确认的设备比较少,也还能承受。倘若,在手中维护的设备很多。那么...

Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析

Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析

本文实例讲述了Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法。分享给大家供大家参考,具体如下: 函数的返回值: 函数一旦执行到&...

python通过Windows下远程控制Linux系统

python通过Windows下远程控制Linux系统

一、学习目标 【通过Windows下远程控制Linux系统实现对socket模块认识】 二、实验环境 Windows下(模拟客户端 [ IP:192.168.43.87 ] ):pyth...

python验证码识别教程之利用投影法、连通域法分割图片

python验证码识别教程之利用投影法、连通域法分割图片

前言 今天这篇文章主要记录一下如何切分验证码,用到的主要库就是Pillow和Linux下的图像处理工具GIMP。首先假设一个固定位置和宽度、无粘连、无干扰的例子学习一下如何使用Pillo...

Python实现PS图像调整颜色梯度效果示例

Python实现PS图像调整颜色梯度效果示例

本文实例讲述了Python实现PS图像调整颜色梯度效果。分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 中的色彩图,可以看到颜色的各种渐变,具体的效果可以参考附录说明...