GEE(google earth engine )读取NDVI数据集(MODIS/061/MOD13Q1),获得NDVI图和NDVI时间序列变化图,并导出。
GEE读取MODIS16天NDVI数据集并画出NDVI时序变化图。
·
数据集介绍
MOD13Q1 V6.1 产品提供植被指数 (VI) 以每像素为基础的值。有两个主要植被层。 第一个是归一化差异植被指数(NDVI) 这被称为现有国家 海洋和大气管理局-高级超高分辨率 辐射计 (NOAA-AVHRR) 衍生的 NDVI。第二植被层 是最小化冠层背景的增强植被指数 (EVI) 在茂密的植被条件下变化并保持敏感性。 EVI还使用蓝色波段来去除残留的大气污染 由烟雾和亚像素薄云引起。MODIS的NDVI EVI 乘积是根据大气校正的双向计算得出的 被水、云、重物掩盖的表面反射率 气溶胶和云影。
数据集链接: https://developers.google.com/earth-engine/datasets/catalog/MODIS_061_MOD13Q1
生成NDVI变化曲线代码
本文目的是以某点(十进制经纬度)为中心,生成一定半径的缓冲区作为研究区域,获取每张NDVI影像在该范围内的均值,并画出所定义时间范围内的研究区域NDVI时间变化曲线。
/*
2024年3月28日
writted by CUGB——small snail
*/
// 定义ROI,也可自己导入所需的矢量边界
//定义经纬度
var lon =116;
var lat = 40;
var point = ee.Geometry.Point(lon, lat);
//生成缓冲区
var bufferRadius = 2000;
var roi = point.buffer(bufferRadius);
//地图上显示研究区
Map.addLayer(roi, { color: "ffff00ff", fillColor: "00000000" }, "所选地区");
Map.centerObject(roi, 13);
// 定义时间范围
var startDate = '2019-01-01';
var endDate = '2020-12-31';
// 获取时间范围内的MODIS NDVI影像集
var ndviCollection = ee.ImageCollection('MODIS/061/MOD13Q1')
.filterDate(startDate, endDate)
.filterBounds(roi)
.select('NDVI');
print(ndviCollection);
// 计算每16天的平均值
var ndviMean = ndviCollection.map(function(image) {
image = image.clip(roi);
var ndviScaled = image.divide(10000); // 除以比例因子
var mean = ndviScaled.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: roi,
scale: 250, // 设置适当的分辨率
maxPixels: 1e9
});
return image.set('mean_ndvi', mean.get('NDVI'));
});
print(ndviMean);
// 转换为FeatureCollection
var ndviFeatures = ndviMean.map(function(image) {
return ee.Feature(null, {
'date': image.date().format('yyyy-MM-dd'),
'mean_ndvi': image.get('mean_ndvi')
});
});
// 转换为表格
var ndviTable = ee.FeatureCollection(ndviFeatures);
print('NDVI Table:', ndviTable);
// 输出表格到 Google Drive
Export.table.toDrive({
collection: ndviTable,
description: 'NDVI_Table',
fileFormat: 'CSV', // 也可以选择其他格式
selectors: ['date', 'mean_ndvi'], // 选择要导出的列
});
// 创建一个时间序列图表
var chartNDVI = ui.Chart.feature.byFeature(ndviTable, 'date', ['mean_ndvi'])
.setChartType('LineChart')
.setOptions({
title: 'NDVI 时间序列',
hAxis: {title: '日期'},
vAxis: {title: '平均 NDVI'},
series: {0: {color: 'green'}}
});
// 直接打印图表,使其显示在右侧控制台栏中
print(chartNDVI);
运行结果

显示NDVI地图代码
/*
2024年5月1日
writted by CUGB small snail
*/
//可以自己框选范围设置自己想要的roi。
var roi = ee.Geometry.Polygon(
[[[115.6927503485495, 41.13799022822679],
[115.6927503485495, 39.707895740978756],
[117.7911390204245, 39.707895740978756],
[117.7911390204245, 41.13799022822679]]], null, false);
var dataset = ee.ImageCollection('MODIS/061/MOD13Q1')
.filter(ee.Filter.date('2018-01-01', '2018-05-01'))
.filterBounds(roi) // 过滤在指定几何范围内的图像
.map(function(image) {
return image.clip(roi);
});
var ndvi = dataset.select('NDVI');
var ndviVis = {
min: 0,
max: 8000,
palette: [
'ffffff', 'ce7e45', 'df923d', 'f1b555', 'fcd163', '99b718', '74a901',
'66a000', '529400', '3e8601', '207401', '056201', '004c00', '023b01',
'012e01', '011d01', '011301'
],
};
//在地图中展示
Map.addLayer(ndvi, ndviVis, 'NDVI');
运行结果

求赞,如果觉得有用的话,动动您的小手点个赞吧。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)