使用GEE进行MODIS NDVI影像的筛选、可视化和批量导出

代码概述

该代码基于Google Earth Engine (GEE) 平台,实现了从MODIS NDVI数据集中筛选、裁剪和展示指定区域和时间范围内的影像,并使用外部工具进行批量导出。

数据集

MODIS (MOD13A1):提供全球范围内的16天合成的植被指数数据(NDVI和EVI),空间分辨率为500米。该数据集适用于大范围植被监测和分析。

代码流程

  1. 定义研究区:通过筛选属性为“jiangsu”的区域定义感兴趣区域(江苏省),并将其显示在地图中央。
  2. 筛选影像函数:定义一个函数 get_ndvi,用于在指定时间范围内筛选并获取NDVI影像。
  3. 获取影像:使用定义的函数,获取2020年1月1日至2022年1月1日期间的NDVI影像。
  4. 可视化:选择第一幅影像进行裁剪,并使用预定义的颜色调色板进行可视化显示。
  5. 引入批量导出函数:使用外部工具 geetools:batch 进行批量导出。
  6. 导出影像:将筛选到的NDVI影像以500米的分辨率、EPSG:4326坐标系导出到Google Drive。

运行结果

代码运行后,将在GEE地图上展示江苏省区域在2020年1月1日至2022年1月1日期间的第一幅MODIS NDVI影像,并应用预定义的调色板进行显示。代码使用 geetools:batch 工具将所有筛选到的NDVI影像批量导出到Google Drive,便于后续分析和处理,方便地获取、分析并导出指定区域和时间范围内的MODIS NDVI遥感数据。

完整代码:

var MOD13A1 = ee.ImageCollection("MODIS/061/MOD13A1")
var roi =  table.filter(ee.Filter.eq('provinces', 'jiangsu'));
Map.addLayer(roi)
Map.centerObject(roi,6)

// 筛选影像函数
function get_ndvi(start_time,end_time){
  var ndvi = MOD13A1.filterDate(start_time,end_time).filterBounds(roi).select('NDVI')
  return ndvi
}

//获取影像
var start_time = '2020-1-1'
var end_time = '2022-1-1'
var ndvi = get_ndvi(start_time,end_time)
print(ndvi)

//map demo看一下
var demo = ndvi.first().clip(roi) 
Map.addLayer(demo,{min: -1.0, max: 1.0, palette: ['#ee2820', '#f9823f', '#fcc377', '#fffcc1', '#c0d996', '#71b975', '#00975c']})

//引入批量导出函数
var batch = require('users/fitoprincipe/geetools:batch')

//导出影像
batch.Download.ImageCollection.toDrive( ndvi,'ndvi' , {
  scale: 500,//分辨率
  region: roi,//研究区
  crs: 'EPSG:4326',//坐标系
})

运行示例:

工作台输出:

### 使用 GEE 计算 MODIS 数据中埃及区域的 NDVI 指数 为了在 Google Earth Engine (GEE) 中计算 MODIS 数据中埃及区域的 NDVI 值,可以按照以下方法实现。此过程涉及加载数据集、筛选时间范围、定义研究区域以及执行 NDVI计算。 #### 1. 加载 MODIS 数据集 MODIS 提供多种植被指数产品,其中 `MOD13Q1` 是常用的全球植被指数数据集之一,具有每 16 天一次的时间分辨率 250 米的空间分辨率[^3]。可以通过以下代码片段加载该数据集: ```javascript // 加载 MODIS/MOD13Q1 数据集 var modis = ee.ImageCollection('MODIS/006/MOD13Q1'); ``` #### 2. 定义研究区域(埃及) 使用几何对象来限定研究区域为埃及边界。可以通过导入矢量文件或者直接绘制多边形表示埃及地理范围。以下是基于预设坐标创建埃及轮廓的方法: ```javascript // 创建代表埃及的研究区域 var egyptRegion = ee.Geometry.Polygon( [[[-32.8, 31], [-32.8, 22], [51.7, 22], [51.7, 31]]] ); Map.centerObject(egyptRegion, 5); // 设置地图中心缩放级别 Map.addLayer(egyptRegion, {color: 'yellow'}, 'Egypt Region'); // 可视化研究区 ``` 注意:上述经纬度仅作为示意;实际应用时应替换为精确覆盖整个埃及国界的坐标集合。 #### 3. 筛选时间空间条件 指定所需时间段内的影像过滤掉不符合质量标准的数据点。这里假设我们关注最近十年间每年一月份的情况为例说明操作流程: ```javascript // 设定日期区间 var startDate = '2013-01-01'; var endDate = '2023-01-01'; // 过滤图像集合至特定时期与地点 var filteredModis = modis.filterDate(startDate, endDate) .filterBounds(egyptRegion); print('Filtered Collection Size:', filteredModis.size()); // 查看符合条件图片数量 ``` #### 4. 计算 NDVI 处理云遮挡等问题 NDVI 被定义为 `(NIR - Red) / (NIR + Red)` ,对于 MODIS 来说分别对应波段编号 `nir=2`, `red=1`. 同时考虑到可能存在的噪声干扰因素如大气效应等影响最终结果准确性,在此处加入简单的掩膜逻辑去除低置信度像素。 ```javascript function calculateNdvi(image){ var ndvi = image.normalizedDifference(['sur_refl_b02', 'sur_refl_b01']).rename('NDVI'); // 应用简单阈值法清理异常值 return image.updateMask(ndvi.gte(-1).and(ndvi.lte(1))); } // 将函数映射到所有选定场景上 var withNdvi = filteredModis.map(calculateNdvi); ``` #### 5. 导出结果 最后一步就是把得到的结果导出来做进一步分析或存档用途。下面展示如何设置参数将每个月份的最大NDVI值保存成GeoTIFF格式文件上传云端存储服务端口处等待下载链接生成完毕即可完成全部任务! ```javascript Export.image.toDrive({ image: withNdvi.qualityMosaic('NDVI').select('NDVI'), description:'Max_NDVI_EGYPT', folder:"GEE_Results", region:egyptRegion, scale:250, maxPixels:1e9 }); ``` 以上即是在 GEE 上针对某一国家——比如本例中的埃及——利用 MODIS 卫星遥感资料提取其境内植被健康状况指标 NDVI 的全过程概述[^1][^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值