专栏名称: 锐多宝
遥感技术教程、资讯与前沿论文
51好读  ›  专栏  ›  锐多宝

GEE | 逐日/逐年绘制NDWI时间序列图

锐多宝  · 公众号  ·  · 2024-05-09 18:05

正文

请到「今天看啥」查看全文



LXX

读完需要

2
分钟

速读仅需 1 分钟

前言:

分享一下绘制 NDWI 的时间序列图,以部分青海湖区域为例


1

NDWI 介绍

NDWI 是一种利用遥感数据计算的植被指数,主要用于评估地表水体的分布和水分含量。它通过比较可见光和近红外波段的反射率来检测水体覆盖情况。NDWI 的计算公式如下:

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

其中,NIR 代表近红外波段的反射率,SWIR 代表短波红外波段的反射率。NDWI 的取值范围通常在-1 到 1 之间,较高的值表示更多的水体覆盖,而较低的值则表示较少的水体覆盖。

NDWI 的应用:

NDWI 可以用来监测湖泊、河流、水库和水库等水体的变化,评估水资源的利用和分布情况,为水资源管理提供数据支持。

NDWI 可用于监测湿地的分布和变化。通过监测湿地的变化,可以及时采取保护措施,促进湿地生态系统的恢复和保护。

NDWI 还可通过评估水体的质量和分布,可以及时发现并解决环境问题,保护地球的水资源和生态环境。

NDWI 还可以通过监测农田土壤的水分含量,可以合理安排灌溉水量,提高农田的灌溉效率,减少水资源的浪费。

作为一种重要的植被指数,NDWI 在水资源管理、湿地监测、环境保护和农业灌溉等领域发挥着重要作用。

NDWI

https://baijiahao.baidu.com/s?id=1796959015512157552&wfr=spider&for=pc&searchword=ndwi计算公式

2

GEE 代码

// 为某一地区创建时间序列图表Map.addLayer(Titicaca_shore);Map.centerObject(Titicaca_shore);
// 加载 Sentinel-2 影像var getS2_SR_CLOUD_PROBABILITY = function () { var innerJoined = ee.Join.inner().apply({ primary: ee.ImageCollection("COPERNICUS/S2_HARMONIZED"), // TOA = 更长的时间范围 secondary: ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY"), condition: ee.Filter.equals({ leftField: 'system:index', rightField: 'system:index' }) });
var mergeImageBands = function (joinResult) { return ee.Image(joinResult.get('primary')) .addBands(joinResult.get('secondary')); };
var newCollection = innerJoined.map(mergeImageBands); return ee.ImageCollection(newCollection);};
// 屏蔽云层并应用 Sentinel-2 缩放因子var maskClouds = function (image) { var cloudProbabilityThreshold = 60; var cloudMask = image.select('probability').lt(cloudProbabilityThreshold); return image.updateMask(cloudMask) .multiply(0.0001) // 缩放到 0 - 1 范围(表面反射率) .copyProperties(image, ['system:time_start', 'CLOUDY_PIXEL_PERCENTAGE']); // 保留时间属性};
// 定义一个函数,为 Sentinel-2 图像添加 NDWI 波段var addNDWI = function (image) {    var ndwi = image.normalizedDifference(['B3''B8']).rename('NDWI'); return image.addBands(ndwi);};
// 在图像集中应用上述函数var S2 = getS2_SR_CLOUD_PROBABILITY() .filterBounds(Titicaca_shore).map(addNDWI).map(maskClouds);
// 创建并显示 NDWI 的时间序列图print('NDWI 年时间序列');print(ui.Chart.image.series(S2.select('NDWI'), Titicaca_shore, ee.Reducer.mean(), 10));
// 创建并显示 NDWI 的年内天序列图print('NDWI 天时间序列');print(ui.Chart.image.doySeriesByYear(S2, 'NDWI', Titicaca_shore, ee.Reducer.mean(), 10));


3

结果









请到「今天看啥」查看全文