概要
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.