【Python】GDAL库计算NDVI指数简易教程

该代码示例展示了如何使用Python中的numpy、gdal和matplotlib库从遥感图像中读取数据,计算NDVI(归一化植被指数),并保存为新的TIFF文件。主要步骤包括读取图像、选择特定波段、处理数据中的零值、计算NDVI以及将结果写入新文件。
摘要由CSDN通过智能技术生成
直接上代码
import numpy as np
from osgeo import gdal
from matplotlib import pyplot as plt
import numpy.ma as ma

#read the image
data = gdal.Open("E:\data\L9.tif")
arr = data.ReadAsArray()

#slice 我这里红波段和近红外波段是第四和第五个波段
bandRed = arr[3].astype(float)
bandIFR = arr[4].astype(float)
#掩膜去除图像中0值部分,否则回导致计算指数时分母为0无法计算
mask1 = bandRed == 0
mask2 = bandIFR == 0
bandRedm = ma.array(bandRed,mask = mask1,fill_value=None)
bandIFRm = ma.array(bandIFR,mask = mask2,fill_value=None)
#calc the index
NDVI = (bandIFRm-bandRedm)/(bandRedm+bandIFRm)
#output
outfile1 = "E:\data\L9_NDVI.tif"
#加载驱动
driver = gdal.GetDriverByName('GTiff') #loading drivers
#这一步注意如果报错了的话是不是长宽写反了
output1 = driver.Create(outfile1,xsize = 7671,ysize = 7781,bands = 1,eType = gdal.GDT_Float64)
output1.WriteArray(NDVI, xoff = 0, yoff = 0, interleave = 'band')

del output1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值