java|Google Earth Engine(GEE)对指定地点Sentinel-2 Level1C数据进行NDVI指数的计算

Google Earth Engine (GEE) 是由谷歌公司开发的众多应用之一。借助谷歌公司超强的服务器运算能力以及与NASA的合作关系,GEE平台将Landsat/Sentinel等可以公开获取的遥感图像数据存储在谷歌的磁盘阵列中,使得GEE用户可以方便的提取、调用和分析海量的遥感大数据资源。

本文基于GEE平台,实现对指定地点Sentinel-2 Level1C数据进行NDVI指数的计算,示例地点为湖南省长沙市。代码如下:
【java|Google Earth Engine(GEE)对指定地点Sentinel-2 Level1C数据进行NDVI指数的计算】(JS)

var cs = China.filterBounds(point).geometry(); var roi = cs; function NDVI_V3(img) { var ndvi = img.clip(roi).normalizedDifference(["B8","B4"]); return ndvi; } //使用QA波段去云 function maskS2clouds(image) { var qa = image.select('QA60'); // Bits 10 and 11 are clouds and cirrus, respectively. var cloudBitMask = 1 << 10; var cirrusBitMask = 1 << 11; // Both flags should be set to zero, indicating clear conditions. var mask = qa.bitwiseAnd(cloudBitMask).eq(0) .and(qa.bitwiseAnd(cirrusBitMask).eq(0)); return image.updateMask(mask).divide(10000); } //sentinel2 and roi var dataset = ee.ImageCollection("COPERNICUS/S2") .filterDate("2018-01-01", "2018-12-31") .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) .map(maskS2clouds); var img = dataset.median().clip(roi) //var img = ee.Image(dataset.filterBounds(roi).first()); print(img) var ndvi3 = NDVI_V3(img); var visParam = { min: -0.2, max: 0.8, palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' + '3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301' }; var rgbVis = { min: 0.0, max: 3048, bands: ['B8', 'B4', 'B3'], }; Map.addLayer(img, rgbVis, "raw_img"); Map.addLayer(ndvi3, visParam, "ndvi_3"); Map.centerObject(roi, 9);

注:①使用前,需要import我国的行政区划文件,其次需要选取例如湖南省长沙市境内的一点(point),最后import导入S2图像。
②关于我国行政区划文件,分享百度网盘:链接:https://pan.baidu.com/s/1vrT5AmRTX8KmMMbpGtTAcg
提取码:o5vt
效果:
java|Google Earth Engine(GEE)对指定地点Sentinel-2 Level1C数据进行NDVI指数的计算
文章图片


参考文章:
1.https://zhuanlan.zhihu.com/p/29637993

    推荐阅读