首页 > 其他分享 >基于 GEE Sentinel-1 数据集提取水体

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

时间:2025-01-08 16:33:41浏览次数:3  
标签:roi 提取 ee 水体 SDWI var GEE Sentinel

目录

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号影像

水体提取结果

叠加显示结果

标签:roi,提取,ee,水体,SDWI,var,GEE,Sentinel
From: https://blog.csdn.net/ZK180531/article/details/144990812

相关文章

  • 基于 GEE Landsat C02 数据集合成 1986-2023 年的逐年年均 NDVI、多年均值、多年均值
    目录1完整代码2运行结果1完整代码//感兴趣的区域信息varroi=ee.FeatureCollection('projects/ee-zhangkanghnust/assets/HengShaoLou');Map.centerObject(roi);Map.addLayer(roi,{'color':'grey'},'roi');//Appliesscalingfactors.......
  • wx.onLocationChangeError
    wx.onLocationChangeError(functionlistener)基础库2.19.5开始支持,低版本需做兼容处理。小程序插件:不支持微信鸿蒙OS版:支持功能描述监听持续定位接口返回失败时触发。参数functionlistener的监听函数参数Objectres属性类型说明errCodenumber错......
  • 【微服务】5、服务保护 Sentinel
    Sentinel学习内容概述Sentinel简介与结构Sentinel是SpringCloudAlibaba的组件,由阿里巴巴开源,用于服务流量控制和保护。其内部核心库(客户端)包含限流、熔断等功能,微服务引入该库后只需配置规则。规则配置方式有Java编码(较复杂)和使用控制台(较简便)两种。Sentinel控制台安......
  • 对Sentinel的链路分析与客户端服务端交互理解
    Sentinel介绍略https://sentinelguard.io/zh-cn/https://github.com/alibaba/Sentinelhttps://sentinelguard.io/zh-cn/docs/quick-start.htmlhttps://github.com/alibaba/Sentinel/wiki/Sentinel-核心类解析Sentinel定义的术语Entry:表示对某个资源的访问请求,通过SphU.e......
  • Sentinel之动态规则扩展
    Sentinel中的动态规则1,Sentinel提供两种方式修改规则:通过API直接修改(loadRules)FlowRuleManager.loadRules(List<FlowRule>rules);//修改流控规则DegradeRuleManager.loadRules(List<DegradeRule>rules);//修政降级规则通过Datasource适配不同数据源修改2,DataS......
  • 使用 `hash-wasm` 的 `createMD5`方法,生成md5值,批处理500张图片会报错, `RangeError: W
    处理大量文件时遇到RangeError:WebAssembly.instantiate():Outofmemory错误,通常是因为一次性创建了过多的WebAssembly实例,导致内存不足。每个createMD5()调用都会创建一个新的WebAssembly实例,这对于大量的并发操作来说是不可行的。为了优化代码并避免此问题,可以考虑......
  • 面试官:Sentinel是如何实现限流的?
    限流是一种通过控制系统对外提供的资源、服务或接口的访问数量或速率,以保护系统免受过载的一种策略。它的目的是确保系统能够在承受范围内提供稳定和可靠的服务,避免因过多的请求而导致系统崩溃、资源耗尽或响应延迟过高的情况发生。在Sentinel中,实现限流的方法有以下两......
  • 基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解
    目录1、三种方式介绍1.1请求限流1.2线程隔离方案1.3服务熔断2、基于sentinel实现2.1启动sentinel2.2基于springboot整合sentinel2.2.1请求限流2.2.2请求隔离2.2.2.1 OpenFeign整合Sentinel2.2.3服务熔断2.2.3.1编写降级代码2.2.3.2服务熔断1、三种方......
  • 两款卸载工具Geek & UninstallTool功能对比
    卸载功能Geek:提供普通卸载、强制卸载和批量卸载等方式,能自动扫描并列出计算机上所有应用程序,卸载后自动查找并清理残留痕迹,还可卸载系统组件、隐藏组件及Windows商店应用。UninstallTool:除常规卸载外,强制卸载功能强大,可移除系统自带程序功能无法删除的程序。支持批量卸载,能......
  • sentinel学习笔记6-限流降级(上)
    本文属于sentinel学习笔记系列。网上看到吴就业老师的专栏,写的好值得推荐,我整理的有所删减,推荐看原文。https://blog.csdn.net/baidu_28523317/category_10400605.htmlsentinel实现限流降级、熔断降级、黑白名单限流降级、系统自适应限流降级以及热点参数限流降级都是由Pro......