GEEer成长日记二十:使用Sentinel 2影像计算水体指数NDWI、MNDWI并下载到本地

一、NDWI和MNDWI计算公式介绍

NDWI(归一化差异水体指数)

NDWI = (GREEN-NIR)/(GREEN+NIR)

式中: GREEN为绿光波段; NIR为近红外波段。NDWI主要利用了在近红外波段水体强吸收几乎没有反射而植被反射率很强的特点,通过抑制植被和突出水体用来提取影像中的水体信息,效果较好。但是由于NDWI只考虑了植被因素,忽略了建筑物和土壤这2个重要的地物,通过NDWI提取水体信息时由于绿光波段的反射率远远高于近红外波段,所以提取结果往往混淆有土壤和建筑物信息。用NDWI提取城市水体时会有较多建筑物阴影的水体,效果较差。

MNDWI(改进的归一化差异水体指数)

公式:MNDWI=(GREEN-SWIR)/(GREEN+SWIR)

式中:GREEN为绿光波段; SWIR为短波红外波段。建筑物等阴影在绿光和近红外波段的波谱特征与水体相似,当采用短波红外波段替换近红外波段时,可以使计算出的水体与建筑物指数的反差明显增强,大大降低了二者的混淆程度,从而有利于城镇中水体信息的准确提取。

二、使用Sentinel-2影像计算NDWI和MNDWI

获取Sentinel影像
以研究时间段内的中值为例

//*********************************************************************************
//Function to mask clouds using the Sentinel-2 QA band.
//*********************************************************************************
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 the masked and scaled data, without the QA bands.
  return image.updateMask(mask).divide(10000)
      .select("B.*")
      .copyProperties(image, ["system:time_start"])
}
//*********************************************************************************
var collection = ee.ImageCollection("COPERNICUS/S2")
                         .filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 10))
                         .filterDate('2020-01-01' ,'2020-12-31')
                         .filterBounds(geometry)
                         .map(maskS2clouds);

var medianS2 = collection.median().clip(geometry);

在这里插入图片描述
2、计算NDWI
​ Sentinel2影像中:B3表示GREEN波段,B8表示NIR波段。

var NDWI = medianS2.normalizedDifference(['B3', 'B8']).rename('NDWI')

在这里插入图片描述

3、计算MNDWI
Sentinel2影像中:B3表示GREEN波段,B11表示SWIR波段。

var MNDWI = medianS2.normalizedDifference(['B3','B11']).rename(['MNDWI']); 

在这里插入图片描述

三、结果导出

1、导出NDWI

Export.image.toDrive({
  image: NDWI,
  description: 'S2_NDWI',
  crs: "EPSG:4326",
  scale: 10,
  region: geometry,
  maxPixels: 1e13,
  folder: 'S2_NDWI'
});

2、导出MNDWI

Export.image.toDrive({
  image: MNDWI,
  description: 'S2_MNDWI',
  crs: "EPSG:4326",
  scale: 10,
  region: geometry,
  maxPixels: 1e13,
  folder: 'S2_MNDWI'
});

更多GEE教程可关注GZH:”GEEer成长日记“,有讨论群哦,一起学习!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值