【MODIS数据处理#12】例七:基于MOD09Q1数据集合成NDVI


系列文章目录: MODIS数据处理

一、MOD09Q1数据介绍

官网介绍链接:https://lpdaac.usgs.gov/products/mod09q1v006/
user guide:https://lpdaac.usgs.gov/documents/306/MOD09_User_Guide_V6.pdf
在这里插入图片描述
MOD09Q1(分辨率8day 250m),相对于MODIS产品系列中已经合成好的MOD13Q1 NDVI(分辨率16day 250m)有更高的时间分辨率16-day。
在这里插入图片描述
查看MOD09数据集的user guide可以得知Band1和Band2分别对应红光波段®和近红光波段(NIR)。
在这里插入图片描述


二、处理步骤

2.1 MRT工具预处理

具体步骤可参考以下两篇专栏,这里不赘述
[MODIS数据处理#1]利用MRT工具预处理MODIS数据——以MOD16、MOD13为例
MRT(MODIS Reprojection Tool)安装、影像批量拼接、重投影和格式转换
``
在这里插入图片描述
将栅格数据导入Arcmap中
在这里插入图片描述

2.2 去除无效值

根据官方文档的说明,栅格的有效值范围是-100~16000,因此我们需要将在此范围之外的像元设为空值,用到的工具是设为空函数,该工具的详细操作说明可以参考这篇的第四节:
[MODIS数据处理#2]常用的Arcmap内置工具(一)
在这里插入图片描述
在这里插入图片描述
或者也可以用栅格计算器,地图代数表达式可以参考下式

SetNull(("sur_refl_b01.tif" <  -100) | ("sur_refl_b01.tif" > 16000),"sur_refl_b01.tif")

在这里插入图片描述

2.3 计算NDVI

经过上面的步骤,我们已经得到了b01(红色波段)和b02(近红外波段)有效范围-100~16000内的栅格数据
在这里插入图片描述
接下来可以用栅格计算器来计算NDVI
在这里插入图片描述
地图代数表达式为:

# 注意Float中的F要大写
(Float("A2021121.h28v05.b02.tif") - Float("A2021121.h28v05.b01.tif")) / (Float("A2021121.h28v05.b02.tif") + Float("A2021121.h28v05.b01.tif")) 

在这里插入图片描述
NDVI的范围应该是在-1~1之间,这里出现了在此范围之外的值,原因可能是由于云或者海的影响,见下图h28v05区块的位置
在这里插入图片描述

可以用栅格计算器对数据的范围进行再次筛选
在这里插入图片描述

SetNull(("A2021121.h28v05.NDVI.tif" <  - 1) | ("A2021121.h28v05.NDVI.tif"> 1),"A2021121.h28v05.NDVI.tif")

最终得到的NDVI栅格及局部放大细节见下图:
在这里插入图片描述


  • 4
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
以下是使用Python和GEE API批量下载逐月MOD13Q1 NDVI数据的示例代码: ``` import ee import datetime # 初始化 GEE ee.Initialize() # 定义区域范围 region = ee.Geometry.Polygon( [[[-124.8876953125, 42.014192020743394], [-120.64697265625, 42.014192020743394], [-120.64697265625, 45.72017789701005], [-124.8876953125, 45.72017789701005], [-124.8876953125, 42.014192020743394]]], None, False) # 定义时间范围 start_date = datetime.datetime(2000, 1, 1) end_date = datetime.datetime(2021, 12, 31) # 定义数据集 dataset = ee.ImageCollection('MODIS/006/MOD13Q1').select('NDVI') # 遍历每个月份下载数据 for year in range(start_date.year, end_date.year + 1): for month in range(1, 13): date_str = f'{year}-{month:02}-01' current_date = datetime.datetime.strptime(date_str, '%Y-%m-%d') if current_date < start_date or current_date > end_date: continue start_date_str = current_date.strftime('%Y-%m-%d') end_date_str = (current_date + datetime.timedelta(days=32)).strftime('%Y-%m-%d') filtered = dataset.filterDate(start_date_str, end_date_str).filterBounds(region) image = filtered.mean() task = ee.batch.Export.image.toDrive(image=image, description=f'MOD13Q1_NDVI_{year}_{month:02}', folder='GEE MODIS NDVI', region=region, scale=500, maxPixels=1e13) task.start() print(f'Starting export task for {year}-{month:02}') ``` 此代码将从2000年1月到2021年12月遍历每个月,并使用GEE API从MOD13Q1数据集中筛选出NDVI图像并将其平均化,然后将其导出到Google Drive中的文件夹“GEE MODIS NDVI”中。你可以在代码中修改区域、时间范围、数据集和导出设置,以适应你的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Salierib

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

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

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

打赏作者

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

抵扣说明:

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

余额充值