python+gdal+numpy计算ndvi

from osgeo import gdal
import numpy as np


ds: gdal.Dataset = gdal.Open('gf.tif')
# 红波段
red = ds.GetRasterBand(3).ReadAsArray() * 0.0001
# 近红外波段
nir = ds.GetRasterBand(4).ReadAsArray() * 0.0001

np.seterr(all="ignore")

ndvi = (nir - red) / (nir + red)
# NAN——>0
nan_index = np.isnan(ndvi)
ndvi[nan_index] = 0
ndvi = ndvi.astype(np.float32)
# 创建tif
tif_driver = gdal.GetDriverByName('GTiff')
out_ds = tif_driver.Create('ndvi.tif', ds.RasterXSize, ds.RasterYSize, 1, gdal.GDT_Float32)
# 设置投影坐标
out_ds.SetProjection(ds.GetProjection())
out_ds.SetGeoTransform(ds.GetGeoTransform())
# 写入数据
out_band = out_ds.GetRasterBand(1)
out_band.WriteArray(ndvi)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llc的足迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值