当前位置: 首页 > article >正文

基于 GEE Sentinel-1 数据集提取水体

目录

1 水体提取原理

2 完整代码

3 运行结果


1 水体提取原理

水体提取是地理信息和遥感技术的关键应用之一,对于多个领域都具有重要的应用价值。它有助于更好地管理水资源,保护环境,减少灾害风险,促进可持续发展,以及确保饮用水供应的安全。水体提取技术的不断发展和改进将进一步提高这些应用的效益。

阈值分割方法是 SAR 数据提取水体方法中原理简单,应用最为广泛的。利用水体在 SAR 图像上散射值低,会呈现暗区的特点,通过求解图像直方图的极值点来设定成值,将图像中小于阈值部分标记为非水体大于阈值部分标记为水体。

使用 Google Earth Engine 进行水体提取的优点包括全球数据覆盖、强大的计算能力、多源数据集集成、实时数据更新、、易于使用的编程界面、可视化和交互性、协作和共享以及开放数据访问。这些特点使 GEE 成为处理水体提取和其他地理信息任务的强大工具。

下面简要介绍如何使用 GEE 来提取水体信息,采用 SDWI 指数提取水体,计算公式是 :SDWI = ln(10 * VH * VV) - 8

2 完整代码

// 设置时间范围
var startDate = '2022-01-01';
var endDate = '2022-12-31';

//感兴趣的区域信息
var roi = ee.FeatureCollection('projects/ee-zhangkanghnust/assets/HengShaoLou');

// 使用Sentinel-1数据集
var s1Collection = ee.ImageCollection('COPERNICUS/S1_GRD')
    .filterBounds(roi)
    .filterDate(startDate, endDate)
    .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
    .filter(ee.Filter.eq('instrumentMode', 'IW'));

// 定义SDWI计算函数
var calculateSDWI = function(image) {
    var XVH = image.select('VH');
    var XVV = image.select('VV');
    return image.expression('log(10 * VV * VH) - 8', {'VV': XVV, 'VH': XVH}).rename('SDWI');
};

// 计算SDWI
var s1SDWI = s1Collection.map(calculateSDWI);

// 合并SDWI图层
var sdwiComposite = s1SDWI.median().clip(roi);
Map.addLayer(sdwiComposite);

// 定义水体掩膜
var waterMask = sdwiComposite.gt(0).clip(roi);

// 可视化水体掩膜
var visParams = {
    min: 0,
    max: 1,
    palette: ['FFFFFF', '0000FF'] // 蓝色表示水体,白色表示非水体
};

// 在地图上显示水体掩膜
Map.centerObject(roi, 10);
Map.addLayer(waterMask, visParams, 'Water Mask');
Map.addLayer(roi, {}, "roi");

3 运行结果

研究区范围

哨兵1号影像

水体提取结果

叠加显示结果

http://www.kler.cn/a/488852.html

相关文章:

  • JavaSE——网络编程
  • 面试:C++类成员初始化顺序
  • tdengine数据库使用java连接
  • 工厂管理中 BOM(物料清单)
  • 芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU
  • 计算机网络之---数据传输与比特流
  • MySQL_单行函数和多行函数
  • 【MySQL】ON与WHERE的区别(临时表)
  • [tesseract]Deserialize header failed: FIRC.lstmf
  • 【力扣热题100】—— Day20.多数元素
  • 【网络协议】动态路由协议
  • 深入探索AI核心模型:CNN、RNN、GAN与Transformer
  • 【Leetcode-移动零】利用将非零元素移动至数组前解决移动零问题(剪枝优化)
  • TypeScript语言的网络编程
  • Linux第一个系统程序---进度条
  • 详细分析 Git 分支重命名与同步操作
  • Harmony OS开发-ArkUI框架速成八之交叉轴和自适应
  • 【Qt】控件概述和QWidget核心属性1(enabled、geometry、windowTitle、windowIcon、QRC机制)
  • 全文搜索-搜索权限,非侵入文档同步,权限同步 ,扩展字段
  • 深度解析如何使用Linux中的git操作
  • Python 教程 - 基本语句
  • 【Golang 面试题】每日 3 题(二十四)
  • LeetCode 3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口
  • 机器学习05-最小二乘法VS梯度求解
  • 单片机实现模式转换
  • 日语IT用语笔记