计算归一化植被指数

import rasterio
import numpy as np

def calculate_ndvi(red_band_path, nir_band_path):
    # 打开红光波段和近红外波段的反射率数据文件
    with rasterio.open(red_band_path) as red_band, rasterio.open(nir_band_path) as nir_band:
        # 读取红光波段和近红外波段的反射率数据
        red = red_band.read(1)
        nir = nir_band.read(1)

        # 避免除以零的情况
        divisor = (nir + red).astype(float)
        divisor[divisor == 0] = 1.0  # 将零分母替换为1.0

        # 计算NDVI
        ndvi = (nir - red) / divisor

        # 创建输出文件
        profile = red_band.profile  # 使用红光波段的元数据作为输出文件的元数据
        profile.update(count=1, dtype=rasterio.float32)

        with rasterio.open(output_path, 'w', **profile) as dst:
            dst.write(ndvi.astype(np.float32), 1)
    print(ndvi)
    return ndvi

# 输入文件路径和输出路径
red_band_path = 'E:/.tif'
nir_band_path = 'E:/.tif'
output_path = 'E:/.tif'

# 计算NDVI
ndvi_result = calculate_ndvi(red_band_path, nir_band_path)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值