GEE数据集:探索动态水面范围 (Dynamic Surface Water Extent,DSWE)

目录

探索动态水面范围 (DSWE)

引用

教程大纲 

1. 访问和准备 Landsat 数据 

步骤: 

2. 生成 DSWE 层 

DSWE 类别: 

3. 创建月度 DSWE 合成图

4. 可视化 DSWE 图层

5. 导出 DSWE 数据 

全部代码

 结论

许可证


探索动态水面范围 (DSWE)

USGS contacts: Chris SoulardJessica Walker from US Geological Survey (USGS)
美国地质调查局(USGS)联系人:Chris Soulard、Jessica Walker

理解地表水动态对于有效的水资源管理、洪水制图、生态研究和气候变化分析至关重要。动态地表水范围(DSWE)数据集提供了从陆地卫星图像生成的可靠、可重复和一致的水体存在地图。最初由 Jones(2015 年)引入,DSWE 已持续改进,现在利用 Google Earth Engine(GEE)的力量提供月度地表水合成图。有关代码输出的详细信息,请参阅美国地质调查局官方源代码存档。


在本教程中,我们将:

  • 访问和预处理陆地卫星图像以生成 DSWE 图层。
  • 理解 DSWE 分类和置信水平。
  • 可视化月度 DSWE 合成图。
  • 导出数据以进行进一步分析。
引用
Walker JJ, Waller EK, Kreitler JR, Petrakis RE, Soulard CE. (2025). DSWE_GEE v2.0.0 Software release. U.S. Geological Survey. DOI: https://doi.org/10.5066/P14CF2B2.

Landsat DSWE Google Earth Engine code originally developed for this paper:

Walker, J.J., Soulard, C.E. and Petrakis, R.E., 2020. Integrating stream gage data and Landsat imagery to complete time-series of surface water extents in Central Valley, California. International Journal of Applied Earth Observation and Geoinformation, 84, p.101973.

MODIS DSWE Google Earth Engine code originally developed for this paper:

Soulard, C.E., Waller, E.K., Walker, J.J., Petrakis, R.E. and Smith, B.W., 2022. DSWEmod—The production of high‐frequency surface water map composites from daily MODIS images. JAWRA Journal of the American Water Resources Association, 58(2), pp.248-268.

教程大纲 


1. 访问和准备 Landsat 数据 


DSWE 分析使用 Landsat 卫星图像数据集,特别是 Landsat 4 到 Landsat 9,时间跨度从 1982 年至今。在应用 DSWE 方法之前,图像必须进行预处理以保持反射率的一致性,并且要消除云污染。

步骤: 
  • 定义你的兴趣区域(AOI)和日期范围。
  • 加载 Landsat Collection 2 影像。
  • 应用缩放和云掩膜。
  • 计算地形和太阳几何指数(例如,坡度阴影)。


这是用于访问和预处理数据的 Earth Engine JavaScript 代码片段:

// Define your date range (within Landsat availability)
var startdate = ee.Date('2000-08-01');
var enddate = ee.Date('2000-10-31');

// Define your AOI (user-defined polygon or drawn geometry)
var aoi = ee.Geometry.Polygon([
   [-113.285, 40.423],
   [-111.318, 40.423],
   [-111.318, 41.952],
   [-113.285, 41.952],
   [-113.285, 40.423]
]);

// Load and preprocess Landsat collections (example for Landsat 8)
var ls8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
            .filterBounds(aoi)
            .filterDate(startdate, enddate)
            .map(function(img) {
              var scaled = img.select('SR_B.*').multiply(0.0000275).add(-0.2);
              var qaMask = img.select('QA_PIXEL').bitwiseAnd(parseInt('111101', 2)).neq(0);
              return scaled.updateMask(qaMask);
            });

// Merge multiple collections (if using multiple Landsat sensors)


2. 生成 DSWE 层 

DSWE 算法根据多个光谱指数和来自 Landsat 波段的位逻辑测试对地表水存在进行分类。输出是一个分类图层,表示地表水存在的不同置信度。

DSWE 类别: 
  • 0 - Not water   0 - 非水
  • 1 - High-confidence water
    高置信度水体
  • 2 - Moderate-confidence water
    中置信度水体
  • 3 - Partial surface water pixel
    部分水面像素
  • 4 - Low-confidence water or wetland
    低置信度水体或湿地
  • 9 - Cloud, cloud shadow, or snow
    9 - 云、云阴影或雪

这是 GEE 中如何进行分类的:

// DSWE indices calculation (e.g., MNDWI, NDVI, AWEsh)
var calculateIndices = function(img) {
    var ndvi = img.normalizedDifference(['SR_B5', 'SR_B4']).rename('ndvi');
    var mndwi = img.normalizedDifference(['SR_B3', 'SR_B6']).rename('mndwi');
    return img.addBands([ndvi, mndwi]);
};

var indexedCollection = ls8.map(calculateIndices);

// Apply DSWE decision logic (simplified example)
var dsweLayer = indexedCollection.map(function(img) {
  var water = img.select('mndwi').gt(0.124).rename('dswe');
  return water.set('system:time_start', img.get('system:time_start'));
});


3. 创建月度 DSWE 合成图

月度合成图有助于提供稳定且具有代表性的地表水范围图像。这些合成图处理多个观测结果,并优先考虑高置信度的水像元。

如何创建月度合成图:

// Generate monthly composites
var months = ee.List.sequence(0, enddate.difference(startdate, 'month').subtract(1));
var monthlyDSWE = ee.ImageCollection.fromImages(months.map(function(monthOffset) {
  var start = startdate.advance(monthOffset, 'month');
  var end = start.advance(1, 'month');
  var monthly = dsweLayer.filterDate(start, end).max(); // Example using max confidence
  return monthly.set('month', start.format('YYYY-MM'));
}));

print('Monthly DSWE Composites:', monthlyDSWE);

4. 可视化 DSWE 图层

有效地可视化 DSWE 图层需要清晰的符号来区分水的置信度类别。以下是一个可视化示例:

// DSWE visualization parameters
var dsweViz = {min:0, max:9, palette:['000000', '002ba1', '6287ec', '77b800', 'c1bdb6', 'ffffff']};

// Add the monthly composite layer to the map
Map.centerObject(aoi, 10);
var sampleMonth = monthlyDSWE.first();
Map.addLayer(sampleMonth, dsweViz, 'Monthly DSWE');

image


5. 导出 DSWE 数据 

DSWE 图层可以导出以进行进一步的 GIS 分析或研究应用:

Export.image.toDrive({
  image: sampleMonth,
  description: 'DSWE_Monthly_Composite',
  folder: 'EarthEngineExports',
  scale: 30,
  region: aoi,
  crs: 'EPSG:5070',
  maxPixels: 1e13
});


全部代码

// Define your date range (within Landsat availability)
var startdate = ee.Date('2015-08-01');
var enddate = ee.Date('2018-10-31');

// Define your AOI (user-defined polygon or drawn geometry)
var aoi = ee.Geometry.Polygon([
   [-113.285, 40.423],
   [-111.318, 40.423],
   [-111.318, 41.952],
   [-113.285, 41.952],
   [-113.285, 40.423]
]);

// Load and preprocess Landsat collections (example for Landsat 8)
var ls8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
            .filterBounds(aoi)
            .filterDate(startdate, enddate)
            .map(function(img) {
              var scaled = img.select('SR_B.*').multiply(0.0000275).add(-0.2);
              var qaMask = img.select('QA_PIXEL').bitwiseAnd(parseInt('111101', 2)).neq(0);
              return scaled.updateMask(qaMask);
            });

// Merge multiple collections (if using multiple Landsat sensors)

// DSWE indices calculation (e.g., MNDWI, NDVI, AWEsh)
var calculateIndices = function(img) {
    var ndvi = img.normalizedDifference(['SR_B5', 'SR_B4']).rename('ndvi');
    var mndwi = img.normalizedDifference(['SR_B3', 'SR_B6']).rename('mndwi');
    return img.addBands([ndvi, mndwi]);
};

var indexedCollection = ls8.map(calculateIndices);

// Apply DSWE decision logic (simplified example)
var dsweLayer = indexedCollection.map(function(img) {
  var water = img.select('mndwi').gt(0.124).rename('dswe');
  return water.set('system:time_start', img.get('system:time_start'));
});

// Generate monthly composites
var months = ee.List.sequence(0, enddate.difference(startdate, 'month').subtract(1));
var monthlyDSWE = ee.ImageCollection.fromImages(months.map(function(monthOffset) {
  var start = startdate.advance(monthOffset, 'month');
  var end = start.advance(1, 'month');
  var monthly = dsweLayer.filterDate(start, end).max(); // Example using max confidence
  return monthly.set('month', start.format('YYYY-MM'));
}));

print('Monthly DSWE Composites:', monthlyDSWE);

// DSWE visualization parameters
var dsweViz = {min:0, max:9, palette:['000000', '002ba1', '6287ec', '77b800', 'c1bdb6', 'ffffff']};

// Add the monthly composite layer to the map
Map.centerObject(aoi, 10);
var sampleMonth = monthlyDSWE.first();
Map.addLayer(sampleMonth, dsweViz, 'Monthly DSWE');

Export.image.toDrive({
  image: sampleMonth,
  description: 'DSWE_Monthly_Composite',
  folder: 'EarthEngineExports',
  scale: 30,
  region: aoi,
  crs: 'EPSG:5070',
  maxPixels: 1e13
});




 结论

DSWE 数据集提供了一种先进、一致、高分辨率的方法,用于从太空分析水动态。本教程将指导您使用 Google Earth Engine 访问、预处理、可视化和导出 DSWE 数据,促进水资源管理、洪水检测和生态研究中的实际分析。

Keywords: Dynamic Surface Water Extent (DSWE), Landsat, Google Earth Engine, Monthly Composites, Surface Water Mapping, Flood Monitoring, Visualization, GIS, Remote Sensing.
关键词:动态水面范围(DSWE)、陆地卫星、谷歌地球引擎、月度合成影像、水面测绘、洪水监测、可视化、地理信息系统、遥感。

许可证

This project is licensed under the Creative Commons Zero v1.0 Universal.
本项目根据知识共享零协议 v1.0 通用许可协议授权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值