Google Earth Engine (GEE)——张量流水灾模型数据集(Sentinel-1)

简介: Google Earth Engine (GEE)——张量流水灾模型数据集(Sentinel-1)

Tensor Flow Hydra Flood Models

这个数据集是水文遥感分析洪水(HYDRAFloods)系统的地表水输出图像,利用深度学习TensorFlow方法。具体来说,这个联合研究中心(JRC)调整后的学习率二元交叉熵(BCE)Dice模型和方法在最近的利用谷歌地球引擎的Sentinel-1地表水制图的深度学习方法中得到了详细讨论。

洪水的水文遥感分析(或HYDRAFloods)是一个开源的Python应用程序,用于下载、处理和提供来自遥感数据的地表水地图。该工具背后的基础是提供与传感器无关的方法来制作地表水地图。此外,还有一些工作流程,结合利用多个遥感数据集,为洪水应用提供每日地表水地图。

HYDRAFloods应用程序是使用谷歌地球引擎和谷歌云平台(GCP)建立的,以利用云计算进行大规模计算和处理高数据量输出。该软件包的目标是让用户以最小的努力获得高质量、基于云的地表水绘图算法。为了实现这一目标,hydrafloods在地球引擎Python API的基础上提供了一个高级API,以减少代码的重复,如过滤或携带元数据进行图像处理,并提供复杂的地表水算法。此外,该软件包还提供了一些GCP功能,以读取和传输数据,在地球引擎内使用。

快速启动

为了突出 hydrafloods API 的一个快速例子和制作高质量地表水地图的简单性,我们提供了一个快速的例子,在柬埔寨的湄公河和洞里萨河的汇合处使用哨兵-1绘制地表水,那里经常发生洪水。

文献:

Mayer, T., Poortinga, A., Bhandari, B., Nicolau, A.P., Markert, K., Thwal, N.S., Markert, A., Haag, A., Kilbride, J., Chishtie, F. and Wadhwa, A.,
2021. Deep Learning approach for Sentinel-1 Surface Water Mapping leveraging Google Earth Engine. ISPRS Open Journal of Photogrammetry and Remote
Sensing, p.100005.

关于HYDRAFloods开源Python应用程序的更多细节,用于下载、处理和提供从遥感数据得到的地表水地图。请参见HYDRAFloods文档。 HYDRAFloods Documentation.

 代码:

var HydraFloods_Deep_Learning_Output = ee.Image("users/tjm0042/Hydrafloods_Outputs/TensorFlow_Surface_Water_Model_Mosaic")
Map.setCenter(104.9614, 12.2642,9);
var palettes = require('users/gena/packages:palettes');
Map.addLayer(HydraFloods_Deep_Learning_Output,{min: 0,max: 1, palette: palettes.cmocean.Tempo[7]},
"HYDRAFloods TensorFlow Model Approach: Joint Research Centre Adjusted Learning Rate Binary Cross Entropy Dice")
//Add a grayscale map to help higlight the feature
var SubtleGrayscale
 = 
[
  {
    "featureType": "administrative",
    "elementType": "all",
    "stylers": [
      {
        "saturation": "-100"
      }
    ]
  },
  {
    "featureType": "administrative.province",
    "elementType": "all",
    "stylers": [
      {
        "visibility": "off"
      }
    ]
  },
  {
    "featureType": "landscape",
    "elementType": "all",
    "stylers": [
      {
        "saturation": -100
      },
      {
        "lightness": 65
      },
      {
        "visibility": "on"
      }
    ]
  },
  {
    "featureType": "poi",
    "elementType": "all",
    "stylers": [
      {
        "saturation": -100
      },
      {
        "lightness": "50"
      },
      {
        "visibility": "simplified"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "all",
    "stylers": [
      {
        "saturation": "-100"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "all",
    "stylers": [
      {
        "visibility": "simplified"
      }
    ]
  },
  {
    "featureType": "road.arterial",
    "elementType": "all",
    "stylers": [
      {
        "lightness": "30"
      }
    ]
  },
  {
    "featureType": "road.local",
    "elementType": "all",
    "stylers": [
      {
        "lightness": "40"
      }
    ]
  },
  {
    "featureType": "transit",
    "elementType": "all",
    "stylers": [
      {
        "saturation": -100
      },
      {
        "visibility": "simplified"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "geometry",
    "stylers": [
      {
        "hue": "#ffff00"
      },
      {
        "lightness": -25
      },
      {
        "saturation": -97
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "labels",
    "stylers": [
      {
        "lightness": -25
      },
      {
        "saturation": -100
      }
    ]
  }
]
Map.setOptions('SubtleGrayscale', {SubtleGrayscale: SubtleGrayscale})

代码链接:

https://code.earthengine.google.com/?scriptPath=users/sat-io/awesome-gee-catalog-examples:hydrology/TENSORFLOW-HYDRA-FLOOD-MODELS

代码:

# content of example.py Python file
# import the hydrafloods and ee package
import hydrafloods as hf
import ee
ee.Initialize()
# specify start and end time as well as geographic region to process
start_time = "2019-10-05"
end_time =  "2019-10-06"
region = ee.Geometry.Rectangle([104, 11.5, 106, 12.5 ])
# get the Sentinel-1 collection
# the hf.dataset classes performs the spatial-temporal filtering for you
s1 = hf.datasets.Sentinel1(region, start_time, end_time)
# apply a water mapping function to the S1 dataset
# this applies the "Edge Otsu" algorithm from https://doi.org/10.3390/rs12152469
water_imgs = s1.apply_func(
    hf.thresholding.edge_otsu,
    initial_threshold=-14,
    edge_buffer=300
)
# take the mode from multiple images
# since this is just imagery from one day, it will simply mosaic the images
water_map = ee.Image(water_imgs.collection.mode())
# export the water map
hf.geeutils.export_image(
    water_map,
    region,
    "users/<YOUR_USERNAME>/water_map_example",
    scale=30,
)

 

License

This work is licensed under a Creative Commons Attribution 4.0 International License. You are free to copy and redistribute the material in any medium or format, and to transform and build upon the material for any purpose, even commercially. You must give appropriate credit, provide a link to the license, and indicate if changes were made.

Curated by: Tim Mayer, Kel Markert, Biplov Bhandari, Ate Poortinga

Keywords: Surface Water Mapping, Floods, Deep Learning TensorFlow, SERVIR

Last updated: 2021-10-20

 

相关文章
|
9月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2911 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
9月前
|
编解码 算法 定位技术
GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)
GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)
781 3
|
9月前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
294 0
|
9月前
|
存储 编解码 数据可视化
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
【2月更文挑战第14天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,按照给定的地表分类数据,对每一种不同的地物类型,分别加以全球范围内随机抽样点自动批量选取的方法~
761 1
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
|
9月前
|
算法 数据挖掘 定位技术
GEE 案例——如何计算sentinel-2中每一个单景影像的波段的DN值并绘制直方图
GEE 案例——如何计算sentinel-2中每一个单景影像的波段的DN值并绘制直方图
155 5
|
9月前
|
存储 编解码 人工智能
GEE数据集——哨兵2号Sentinel-2 云概率数据集
GEE数据集——哨兵2号Sentinel-2 云概率数据集
427 2
|
6月前
|
Java UED Sentinel
微服务守护神:Spring Cloud Sentinel,让你的系统在流量洪峰中稳如磐石!
【8月更文挑战第29天】Spring Cloud Sentinel结合了阿里巴巴Sentinel的流控、降级、熔断和热点规则等特性,为微服务架构下的应用提供了一套完整的流量控制解决方案。它能够有效应对突发流量,保护服务稳定性,避免雪崩效应,确保系统在高并发下健康运行。通过简单的配置和注解即可实现高效流量控制,适用于高并发场景、依赖服务不稳定及资源保护等多种情况,显著提升系统健壮性和用户体验。
124 1
|
8月前
|
监控 Java Sentinel
使用Sentinel进行服务调用的熔断和限流管理(SpringCloud2023实战)
Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
209 3
|
4月前
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
5月前
|
监控 Java Nacos
SpringCloud基础5——微服务保护、Sentinel
sentinel、雪崩问题、流量控制、隔离和降级、授权规则、规则持久化
SpringCloud基础5——微服务保护、Sentinel