Google Earth Engine实现地区年度最大NDVI值的影像合成

2022-09-20 15:49:04 浏览数 (2)

本期分享如何Google Earth Engine实现地区年度最大NDVI值的影像合成,相比于传统方法,GEE方法简单、高效且对电脑硬件要求较低!

1 教程介绍

首先,这个简单的教程是根据官方的一个案例“搬运”而来(我们不生产知识,只是知识的搬运工)。

之所以需要这么做的动机是:

由于Landsat卫星存在重访周期,所以对于某一地区而言,所获取的影像间存在一定的“phenology 差异”。为了最大程度的降低该差异对分析结果的影响,有时候可以尝试在大致相同的物候阶段设置合成物中的像素值,例如,植物达到最大绿色程度的时间(当叶子开着并具有光合活性时)。例如,如果我们在对比不同年份的地区植被覆盖率的时候,每年的影像成百上千,而且也无法保证每年所选取的影像都是相同时间,而这将会影响时间序列分析的结果准确性。

2 传统方法实现

(1) USGS下载影像,比如广州,轨道号122044,下载一年的Landsat8的影像保守估计,不知道多久(没试过,太离谱了)。

(2) 使用ENVI或者其它影像处理软件,进行NDVI计算,由于影像数量极多,所以这个工作量也不少。

(3) 利用波段计算器进行最大值合成,生成广州市全年的,逐像素位置的最大NDVI结果。

实际上,这个过程的工作量是海量的,而且,生成了全年最大值的NDVI后,也只能得到最大值的NDVI结果,无法获取每个像素位置上该最大NDVI所属影像的其它波段信息。

2 GEE实现

(1) GEE的工作台地址:

https://code.earthengine.google.com

(2) 导入对应的Landsat影像和广州shp:

检索Landsat 8影像

导入影像

自行上传已经处理好的shp

上传后,点击import

代码窗口自动填充以上语句

(3) 然后敲入以下几行代码:

代码语言:javascript复制
//定义addNDVI函数,该函数的输入是image,然后对image执行NDVI计算,并将结果命名为ndvi
//并将生成的ndvi添加到原有的image中
var addNDVI = function(image) {
  var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
  return image.addBands(ndvi);
};
//选择2019年的lc8影像
var lc82019 = l8.filterDate('2019-01-01', '2019-12-31');
//将筛选出来的2019年的影像均执行NDVI计算并添加该结果至原影像
var withNDVI = lc82019.map(addNDVI);
//利用qualityMosaic()函数执行NDVI最大值筛选,并用gz的边界进行裁剪
var greenest = withNDVI.qualityMosaic('NDVI').clip(gz);
//对筛选出来的像素,执行NDVI计算(由于筛选出来的是包含所有波段
//所以可以直接输出全波段影像而不仅仅是NDVI)
//接下来显示NDVI最大值合成的结果,可以有2个方案:
var bestndvi = greenest.select('NDVI').rename('bestNDVI');
//或者重新计算一次
//var bestndvi = greenest.normalizedDifference(['B5', 'B4']).rename('bestNDVI');
//添加生成的最优NDVI到图层窗口
Map.addLayer(bestndvi,{palette: ['black', 'blue', 'yellow']},'bestndvi')

(4) 结果:整个过程平均2s一个

2014年:

2014年广州最大NDVI值合成

2016年:

2016年广州最大NDVI值合成

2019年:

2019年广州最大NDVI值合成

(5) 总结:

可以说,GEE的存在极大的降低了对电脑硬件和网络的需求。使得很多原本无法实现的想法可以被实现。如果我们将广州的行政shp换成广东省,甚至全中国,这个操作也是可以实现的,比如:

海南省

长三角地区

北京地区2019

青海地区2019

中国地区2019(大约1分钟左右完成计算)

3 往期推荐

地表温度反演的单通道方法汇总—以Landsat 8 TIRS影像为例

2021-09-22

R语言实现随机森林超详细教程

2021-09-21

ArcGIS制作风场图和自定义漂亮的色带

2021-09-19

使用google earth engine(GEE)提取2000年到2019年长江下游水体(河流、湖泊)数据

2021-09-18

Python批量下载ECMWF欧洲中心数据

2021-09-17

本文原文作者zhengzh。


本期“Google Earth Engine实现地区年度最大NDVI值的影像合成”分享结束,感谢您的阅读!

0 人点赞