GEE开发之Modis_NDVI的数据分析

前言

主要介绍MODIS中NDVI的逐日数据和逐月数据的获取。


1 基础知识介绍

MODIS:中分辨率成像光谱仪(Moderate-resolution Imaging Spectroradiometer,缩写MODIS)是美国宇航局研制大型空间遥感仪器,以了解全球气候的变化情况以及人类活动对气候的影响。

NDVI:归一化植被指数,归一化植被指数是反映农作物长势和营养信息的重要参数之一。植被指数(NDVI)是检测植被生长状态、植被覆盖度和消除部分辐射误差等。NDVI能反映出植物冠层的背景影响,如土壤、潮湿地面、雪、枯叶、粗糙度等,且与植被覆盖有关。多种卫星遥感数据反演植被指数(NDVI)产品是地理国情监测云平台推出的生态环境类系列数据产品之一。它被称为现有国家海洋和大气管理局高分辨率辐射计 (NOAA-AVHRR) 衍生的 NDVI 的连续性指数。

EVI:增强型植被指数 (EVI),可最大限度地减少冠层背景变化并保持对茂密植被条件的敏感性。EVI 还使用蓝色波段去除由烟雾和亚像素薄云造成的残留大气污染。

2 MYD13Q1的数据获取(分辨率:250m)

MYD13Q1 V6 产品以每个像素为基础提供植被指数 (VI) 值。有两个主要植被层。NDVI和EVI。

2.1 遥感影像获取

代码如下(以南京市为例):

//以南京为例子 
var geometry = ee.FeatureCollection('users/www1573979951/nanjingshi');
Map.centerObject(geometry,6);
//选取影像集以及波段 NDVI
var ndvi = ee.ImageCollection("MODIS/006/MYD13Q1").filterDate('2020-01-01', '2020-12-31').select("NDVI");
print(ndvi)// 查看一年有多少多少影像 
//换算单位
var multiply = function(image){ 
 var img = image.multiply(0.0001);  
 return img.set('system:time_start',image.get('system:time_start'));
};
ndvi = ndvi.map(multiply);
//设置调色板并展示影像
var colorizedVis = {min: 0.0,  max: 1.0,  palette: ['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901', '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',  '012E01', '011D01', '011301']};
Map.addLayer(ndvi.median().clip(geometry), colorizedVis, 'NDVI');
      

影像数据截图(23个数据集):
在这里插入图片描述

遥感图像截图:
在这里插入图片描述

2.2 遥感数据获取

2.2.1 代码一如下(以南京市为例):

//以南京为例子 
var geometry = ee.FeatureCollection('users/www1573979951/nanjingshi');
//选取影像集以及波段 NDVI
var ndvi = ee.ImageCollection("MODIS/006/MYD13Q1").filterDate('2020-01-01', '2020-12-31').select("NDVI");
//换算单位
var multiply = function(image){ 
 var img = image.multiply(0.0001);  
 return img.set('system:time_start',image.get('system:time_start'));
};
ndvi = ndvi.map(multiply);
print(ndvi)
print(ui.Chart.image.series(ndvi, geometry, ee.Reducer.mean(), 1000));//打印成表格

表格截图:
在这里插入图片描述
CSV数据截图:
在这里插入图片描述

2.2.2 代码二如下(以南京市为例):

//以南京为例子 
var geometry = ee.FeatureCollection('users/www1573979951/nanjingshi');
//选取影像集以及波段 NDVI
var ndvi = ee.ImageCollection("MODIS/006/MYD13Q1").filterDate('2020-01-01', '2020-12-31').select("NDVI");
//换算单位
var multiply = function(image){ 
 var img = image.multiply(0.0001);  
 return img.set('system:time_start',image.get('system:time_start'));
};
ndvi = ndvi.map(multiply);
//重新计算数据 
var createNDVI = function(img){
  var date = img.get('system:time_start');
  var value = img.reduceRegion(ee.Reducer.mean(), geometry);
  return ee.Feature(null, {'system:time_start': date,'date': ee.Date(date).format('Y/M/d'), 'value': value});
};
ndvi = ndvi.map(createNDVI);
print(ndvi);

运行截图:
在这里插入图片描述

3 MOD09GA_006_NDVI的数据获取(分辨率:500m)

MOD09GA_006_NDVI:获取一年中的每一天的NDVI数值。

3.1 遥感影像获取

代码如下(以南京市为例):

//以南京为例子 
var geometry = ee.FeatureCollection('users/www1573979951/nanjingshi');
Map.centerObject(geometry,6);
var dailyNDVI = ee.ImageCollection("MODIS/MOD09GA_006_NDVI").filterDate('2020-01-01', '2020-12-31').select('NDVI');
//设置调色板并展示影像
var colorizedVis = {min: 0.0,  max: 1.0,  palette: ['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901', '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',  '012E01', '011D01', '011301']};
Map.addLayer(dailyNDVI.median().clip(geometry), colorizedVis, 'NDVI');
print(dailyNDVI);

遥感图像截图:
在这里插入图片描述
影像数据截图(365个数据集):
在这里插入图片描述

3.2 逐日遥感数据获取

3.2.1 代码一如下(以南京市为例):

//以南京为例子 
var geometry = ee.FeatureCollection('users/www1573979951/nanjingshi');
var dailyNDVI = ee.ImageCollection("MODIS/MOD09GA_006_NDVI").filterDate('2020-01-01', '2020-12-31').select('NDVI');
print(dailyNDVI);//打印影集数据
print(ui.Chart.image.series(dailyNDVI, geometry, ee.Reducer.mean(), 1000));//打印成表格

打印图集截图:总共有365个数据,ndvi的值都在bands里面,没有直接体现出来,需要重新运算
在这里插入图片描述

打印表格截图(同时可以下载CSV、SVG和PNG数据):
PNG数据:
在这里插入图片描述
CSV数据:
在这里插入图片描述

3.2.2 代码二如下(以南京市为例):

var geometry = ee.FeatureCollection('users/www1573979951/nanjingshi');
var dailyNDVI = ee.ImageCollection("MODIS/MOD09GA_006_NDVI").filterDate('2020-01-01', '2020-12-31').select('NDVI');
var createNDVI = function(img){
  var date = img.get('system:time_start');
  var value = img.reduceRegion(ee.Reducer.mean(), geometry);
  return ee.Feature(null, {'system:time_start': date,'date': ee.Date(date).format('Y/M/d'), 'value': value});
};
dailyNDVI = dailyNDVI.map(createNDVI);
print(dailyNDVI);

运行截图:
在这里插入图片描述
注意:这样的做法是为了防止第一种代码无法在线生成表格所采取的方案。这种实现可以方便我们获取JSON数据,然后通过其他方式,最终拿到每天的NDVI值。

3.3 逐月遥感数据获取

代码如下(以南京市为例)

var geometry = ee.FeatureCollection('users/www1573979951/nanjingshi');
var dailyNDVI = ee.ImageCollection("MODIS/MOD09GA_006_NDVI").filterDate('2020-01-01', '2020-12-31').select('NDVI');

//时间范围
var years = ee.List.sequence(2020, 2020);
var months = ee.List.sequence(1, 12);

//将逐日数据生成月平均数据
var monthlymeanNDVI =  ee.ImageCollection.fromImages(
  years.map(function (y) {
    return months.map(function(m) {
      return dailyNDVI.filter(ee.Filter.calendarRange(y,y, 'year')).filter(ee.Filter.calendarRange(m, m, 'month')).mean().set('year', y).set('month', m).set('system:time_start', ee.Date.fromYMD(y, m, 1));
    });
  }).flatten());

print(ui.Chart.image.series(monthlymeanNDVI, geometry, ee.Reducer.mean(), 1000));

运行截图:
在这里插入图片描述
CSV数据展示:
在这里插入图片描述


总结

主要介绍了如何获取遥感图像、后去逐日的数据以及如何把每天的数据平均成每个月的数据。

  • 14
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

等待着冬天的风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值