全球GIMMS NDVI 1982-2022植被归一化指数逐年逐月批量处理

概要

PKU GIMMS归一化植被指数产品(PKU GIMMS NDVI,版本1.2)提供了1982年至2022年半月、1/12°时空一致的全球NDVI数据。它是为了解决当前全球长期植被存在的重大不确定性而创建的。术语 NDVI 产品,即 NOAA 卫星轨道漂移和 AVHRR 传感器退化的影响。

北京大学GIMMS NDVI是基于特定生物群落的BPNN模型生成的,该模型采用了GIMMS NDVI3g产品和360万个高质量的全球Landsat NDVI样本。然后将其与 MODIS NDVI (MOD13C1) 合并,通过像素随机森林融合方法将时间覆盖范围扩展到 2022 年。

根据 Landsat NDVI 样本评估,PKU GIMMS NDVI 总体精度较高。此外,它有效地消除了卫星轨道漂移和传感器退化的影响,并在像素值和全球植被趋势方面与MODIS NDVI呈现出良好的时间一致性。它有可能为全球变化研究提供更坚实的数据基础。

这里我们提供两个版本的PKU GIMMS NDVI供下载,一个版本仅基于AVHRR数据(1982−2015年),另一个版本与MODIS NDVI(1982−2022年)合并。我们强烈建议在产品中充分利用质量控制 (QC) 层。请参阅自述文件了解更多详细信息。我们还建议在趋势分析中按阈值(例如0.1)去除稀疏植被(Zhou et al., 2001; Liu et al., 2016)

数据介绍

原始数据按照半个月一个TIF格式储存,我们可以按照需要进行年度和月度的合成。
请添加图片描述在这里插入图片描述在这里插入图片描述

逐年合成Python代码

import numpy as np
import rasterio
import os

# 设置输入文件夹的路径
inpath = 'D:/GIMMS NDVI/'
# 设置输出文件夹的路径
outpath = 'D:/GIMMS NDVI/result/'  # 请将此处替换为你的输出文件夹路径
# 设置时间覆盖范围(按需修改时间范围,取决于输入的文件时间范围)
start_year = 2011
end_year = 2022
start_month = 1
end_month = 12

for year in range(start_year, end_year + 1):
    yearly_ndvi = []
    for month in range(start_month, end_month + 1):
        monthly_ndvi = []
        for half_month in range(1, 3):
            # 检查前缀
            prefix = 'PKU_GIMMS_NDVI_V1.2_'
            inname = inpath + prefix + str(year*10000 + month*100 + half_month) + '.tif'
            # 读取数据
            with rasterio.open(inname) as src:
                data = src.read()
                profile = src.profile
            data_ndvi = data[0, :, :]
            data_ndvi = data_ndvi.astype(float)
            data_ndvi[data_ndvi == 65535] = 0.0  # 将值为65535的数据设置为NaN
            data_ndvi = data_ndvi * 0.001
            monthly_ndvi.append(data_ndvi)
        # 计算每月的NDVI均值
        monthly_ndvi = np.nanmean(monthly_ndvi, axis=0)
        yearly_ndvi.append(monthly_ndvi)
    # 计算年度NDVI的平均值
    yearly_ndvi = np.nanmean(yearly_ndvi, axis=0)
    # 保存合成影像
    outname = outpath + 'Yearly_NDVI_' + str(year) + '.tif'
    profile.update(dtype=rasterio.float32, count=1)  # 更新波段数量为1
    with rasterio.open(outname, 'w', **profile) as dst:
        dst.write(yearly_ndvi, 1)
    print(outname + " 输出完成")

逐月合成Python代码

import numpy as np
import rasterio
import os

# 设置输入文件夹的路径
inpath = 'D:/GIMMS NDVI/'
# 设置输出文件夹的路径
outpath = 'D:/GIMMS NDVI/month/'  # 请将此处替换为你的输出文件夹路径
# 设置时间覆盖范围
start_year = 2011
end_year = 2022
start_month = 1
end_month = 12

for year in range(start_year, end_year + 1):
    for month in range(start_month, end_month + 1):
        monthly_ndvi = []
        for half_month in range(1, 3):
            # 检查前缀
            prefix = 'PKU_GIMMS_NDVI_V1.2_'
            inname = inpath + prefix + str(year*10000 + month*100 + half_month) + '.tif'
            # 读取数据
            with rasterio.open(inname) as src:
                data = src.read()
                profile = src.profile
            data_ndvi = data[0, :, :]
            data_ndvi = data_ndvi.astype(float)
            data_ndvi[data_ndvi == 65535] = 0.0  # 将值为65535的数据设置为NaN
            data_ndvi = data_ndvi * 0.001
            monthly_ndvi.append(data_ndvi)
        # 计算每月的NDVI均值
        monthly_ndvi = np.nanmean(monthly_ndvi, axis=0)
        # 保存合成影像
        outname = outpath + 'Monthly_NDVI_' + str(year) + '_' + str(month) + '.tif'
        profile.update(dtype=rasterio.float32, count=1)  # 更新波段数量为1
        with rasterio.open(outname, 'w', **profile) as dst:
            dst.write(monthly_ndvi, 1)
        print(outname + " 输出完成")

小结

目前GIMMS NDVI是最长时间序列的植被覆盖度数据集,此文章代码目的在于通过Pyhon代码对原始数据进行二次处理,按照年度/月度合成后,方便后续的研究。

1.来源:https://daac.ornl.gov/VEGETATION/guides/Global_Veg_Greenness_GIMMS_3G.html·
2.引用格式:
[1] Pinzon, J.E., and C.J. Tucker. 2014. A non-stationary 1981–2012 AVHRR NDVI3g time series. Remote Sensing 6:6929-6960. https://doi.org/10.3390/rs6086929.
[2] Tucker, C.J., J.E. Pinzon, M.E. Brown, D.A. Slayback, E.W. Pak, R. Mahoney, E.F. Vermote, and N.E. Saleous. 2005. An extended AVHRR 8-km NDVI dataset compatible with MODIS and SPOT vegetation NDVI data. International Journal of Remote Sensing 26:4485-4498. https://doi.org/10.1080/01431160500168686.

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

KryingCu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值