GEE:基于GEE的单个湖泊的实时水体提取(以武汉东湖为例)

您所在的位置:网站首页 ndwi归一化水体指数公式 GEE:基于GEE的单个湖泊的实时水体提取(以武汉东湖为例)

GEE:基于GEE的单个湖泊的实时水体提取(以武汉东湖为例)

2023-10-27 23:42| 来源: 网络整理| 查看: 265

前言

博主不主修遥感方向,不是专业人士,由于毕设需要使用GEE,故临时学习并做了记录,由于是博主自己钻研的,不知道有无其他更便捷的方式。若文中有错误欢迎指正。

在做毕设的时候是对武汉市所有湖泊进行分别的某项数据分析,初期的目标是对东湖进行这项分析,所以第一步就是需要把东湖提取出来。 在这里需要注意的是,由于温度等各种因素的变化,湖泊范围并不是固定的,因此我在提取东湖时是根据影像提取的实时湖泊范围。

数据

卫星影像:Landsat 8 OLI、Sentinel 2 MSI的SR(地表反射率)影像

Landsat 8

其中Landsat 8的Level-1的数据是经过几何校正和辐射定标处理过的,Level-2的数据是在Level-1级别数据的基础上经过大气校正处理得到的;Collection 1包含了自 1972 年至今从 Landsat 1-8 获取的所有 Level-1 数据。Collection 2中同时包含了Landsat 1-8 的Level-1 数据(1972年至今)和Landsat 4-8 的Level-2数据(1982年至今);T1存放的是L1TP(Level-1 Precision and Terrain)处理等级的数据,T2存放的是不满足T1标准(主要指几何校正精度)的数据,RT是实时数据,目前在役的 Landsat 7 ETM+ 和 Landsat 8 OLI/TIRS 数据,获取但尚未处理的临时数据存放在RT中。数据处理之后就会放到T1或T2中,并从RT中删除。(来源:https://zhuanlan.zhihu.com/p/400543396)

在此我采用的是Landsat 8 Level 2, Collection 2, Tier 1影像

在GEE官网中给出的引用案例如下: https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR_HARMONIZED

// 引用并筛选2021-05-01至2021-06-01之间的影像 var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2') .filterDate('2021-05-01', '2021-06-01'); // 为了减少存储设置了比例因子,在正常使用时,需要进行还原 // Applies scaling factors. function applyScaleFactors(image) { var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2); var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0); return image.addBands(opticalBands, null, true) .addBands(thermalBands, null, true); } dataset = dataset.map(applyScaleFactors); var visualization = { bands: ['SR_B4', 'SR_B3', 'SR_B2'], min: 0.0, max: 0.3, }; Map.setCenter(-114.2579, 38.9275, 8); Map.addLayer(dataset, visualization, 'True Color (432)');

运行结果如下(在此我进行了一定的缩放) 在这里插入图片描述

Sentinel 2

与Landsat 8相同理由,我选用的是Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-2A影像 (由于哨兵2号对数据进行了调整,会影响2022.1.24之后的数据协调时间序列,所以将COPERNICUS/S2or COPERNICUS/S2_SR切换成了COPERNICUS/S2_HARMONIZEDand COPERNICUS/S2_SR_HARMONIZED)

官网给出的引用案例如下: https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR_HARMONIZED

function maskS2clouds(image) { var qa = image.select('QA60'); // Bits 10 and 11 are clouds and cirrus, respectively. var cloudBitMask = 1 min: 0, max: 1, palette: ['0000FF', 'FF0000']}; Map.addLayer(ndwi, visParams1, "Donghu_Jan_NDWI");

效果如图: Landsat 8 SR NDWI Sentinel 2 SR的Green波段为B3,NIR波段为B8

var ndwi = Donghu_Jan.normalizedDifference(['B3','B8']).float().rename('NDWI'); var visParams1 = {min: 0, max: 1, palette: ['0000FF', 'FF0000']}; Map.addLayer(ndwi, visParams1, "Donghu_Jan_NDWI");

效果如图: Sentinel 2 SR NDWI

获取掩膜

将算出的ndwi添加到影响波段,经过updateMask,选取 ndwi>0 的即可

var Donghu_Jan = Donghu_Jan.addBands(ndwi); var Donghu_Mask = Donghu_Jan.updateMask(ndwi.gt(0)); Map.addLayer(Donghu_Mask,vis_L8SR,'Water');

在这里插入图片描述

源代码: Landsat 8 https://code.earthengine.google.com/9256bc33273fd6af23abd0d2235471eb

Sentinel 2 https://code.earthengine.google.com/f40367fa90e69af23264a73ff3b1ef23

P.S. 1.实际实现两种卫星大同小异 2.源代码网址可能会在之后删掉



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3