GEE 10m近实时 LULC 数据集Dynamic World

Google Earth Engine 和 Dynamic World

Google 利用其地球引擎(Earth Engine)和人工智能(AI)平台技术,推出了 Dynamic World 数据库,能够提供接近实时的全球土地环境数据。Dynamic World 是基于 Google Earth Engine 和 AI Platform 制作而成的一个近乎实时的 10 米分辨率全球土地利用和土地覆盖数据集。该数据集使用 Sentinel-2 影像并通过深度学习方法生成。

  • 访问链接:https://www.dynamicworld.app/
  • 论文访问链接:https://www.nature.com/articles/s41597-022-01307-4
    • 《Nature Scientific Data》上的文章:Dynamic World, Near real-time global 10m land use land cover mapping。


Dynamic World 数据集简介

  • Dynamic World 是一个近乎实时的 (NRT) 10米分辨率土地利用/土地覆盖 (LULC) 数据集,包括九个类别的分类概率和标签信息。
  • Dynamic World 的预测适用于 2015-06-27 至今的 Sentinel-2 L1C 集合。根据纬度不同,Sentinel-2 的重访频率为 2-5 天。Dynamic World 预测适用于 CLOUDY_PIXEL_PERCENTAGE <= 35% 的 Sentinel-2 L1C 图像。使用 S2 Cloud Probability、Cloud Displacement Index 和 Directional Distance Transform 的组合方法,去除云和云影以生成预测结果。
  • Dynamic World 集合中的图像名称与其派生自的 Sentinel-2 L1C 资产名称相匹配,例如:
    • ee.Image('COPERNICUS/S2/20160711T084022_20160711T084751_T35PKT')
  • 对应的 Dynamic World 图像名称为:
    • ee.Image('GOOGLE/DYNAMICWORLD/V1/20160711T084022_20160711T084751_T35PKT')

Dynamic World 波段信息表

波段名称最小值最大值描述
water01估算完全被覆盖的概率
trees01估算完全被覆盖的概率
grass01估算完全被覆盖的概率
flooded_vegetation01估算完全被淹没植被覆盖的概率
crops01估算完全被农作物覆盖的概率
shrub_and_scrub01估算完全被灌木和灌丛覆盖的概率
built01估算完全被建筑覆盖的概率
bare01估算完全裸露的土地覆盖的概率
snow_and_ice01估算完全被雪和冰覆盖的概率
label08具有最高估算概率的波段的索引

label 类别表

颜色描述
0#419bdf水体
1#397d49树木
2#88b053草地
3#7a87c6被淹没的植被
4#e49635农作物
5#dfc35a灌木和灌丛
6#c4281b建筑物
7#a59b8f裸露地面
8#b39fe1雪和冰

Dynamic World 的主要创新

现实世界如同塑造它的人类和自然过程一样动态。Dynamic World 是一个近乎实时的 10 米分辨率全球土地利用和土地覆盖数据集,使用深度学习技术生成,免费开放使用。它是 Google 和世界资源研究所(World Resources Institute)合作的成果,旨在创建一个地球表面物理材料的动态数据集。Dynamic World 旨在作为一个数据产品,供用户添加自定义规则来分配最终的分类值,从而生成派生的土地覆盖地图。

  1. 近实时数据:每天生成超过 5000 张 Dynamic World 图像,而传统的土地覆盖数据构建方法可能需要数月或数年才能完成。借助一种基于 Sentinel-2 Top of Atmosphere 的新型深度学习方法,Dynamic World 提供每 2-5 天根据位置进行一次全球土地覆盖更新。
  2. 每个像素的 9 种土地覆盖类别概率:AI 驱动方法的一个主要优势是,模型会查看传入的 Sentinel-2 卫星图像,并对图像中的每个像素进行估计,例如树木覆盖程度、特定区域的建成情况或是否有积雪覆盖(如近期有暴风雪)。
  3. 十米分辨率:由于欧盟委员会的哥白尼计划使欧洲航天局的 Sentinel 数据免费和公开可用,Dynamic World 等产品能够提供 10 米分辨率的土地覆盖数据。这一点非常重要,因为更高分辨率的数据量化能够更准确地反映地球表面的真实情况。

GEE 应用案例

  • 案例网址:https://www.dynamicworld.app/explore

示例代码

// Construct a collection of corresponding Dynamic World and Sentinel-2 for
// inspection. Filter the DW and S2 collections by region and date.
var START = ee.Date('2021-04-02');
var END = START.advance(1, 'day');var colFilter = ee.Filter.and(ee.Filter.bounds(ee.Geometry.Point(20.6729, 52.4305)),ee.Filter.date(START, END));var dwCol = ee.ImageCollection('GOOGLE/DYNAMICWORLD/V1').filter(colFilter);
var s2Col = ee.ImageCollection('COPERNICUS/S2').filter(colFilter);// Join corresponding DW and S2 images (by system:index).
var DwS2Col = ee.Join.saveFirst('s2_img').apply(dwCol, s2Col,ee.Filter.equals({leftField: 'system:index', rightField: 'system:index'}));// Extract an example DW image and its source S2 image.
var dwImage = ee.Image(DwS2Col.first());
var s2Image = ee.Image(dwImage.get('s2_img'));// Create a visualization that blends DW class label with probability.
// Define list pairs of DW LULC label and color.
var CLASS_NAMES = ['water', 'trees', 'grass', 'flooded_vegetation', 'crops','shrub_and_scrub', 'built', 'bare', 'snow_and_ice'];var VIS_PALETTE = ['419bdf', '397d49', '88b053', '7a87c6', 'e49635', 'dfc35a', 'c4281b','a59b8f', 'b39fe1'];// Create an RGB image of the label (most likely class) on [0, 1].
var dwRgb = dwImage.select('label').visualize({min: 0, max: 8, palette: VIS_PALETTE}).divide(255);// Get the most likely class probability.
var top1Prob = dwImage.select(CLASS_NAMES).reduce(ee.Reducer.max());// Create a hillshade of the most likely class probability on [0, 1];
var top1ProbHillshade =ee.Terrain.hillshade(top1Prob.multiply(100)).divide(255);// Combine the RGB image with the hillshade.
var dwRgbHillshade = dwRgb.multiply(top1ProbHillshade);// Display the Dynamic World visualization with the source Sentinel-2 image.
Map.setCenter(20.6729, 52.4305, 12);
Map.addLayer(s2Image, {min: 0, max: 3000, bands: ['B4', 'B3', 'B2']}, 'Sentinel-2 L1C');
Map.addLayer(dwRgbHillshade, {min: 0, max: 0.65}, 'Dynamic World V1 - label hillshade');

显示效果

操作文档

  • 官方链接:https://developers.google.com/earth-engine/tutorials/community/introduction-to-dynamic-world-pt-1

欢迎来到Google Earth Engine教程,本教程将指导您如何使用动态世界(DW)数据集。该数据集包含基于Sentinel-2影像创建的近实时(NRT)土地利用/土地覆盖(LULC)预测,涵盖了下表中描述的九种土地利用/土地覆盖(LULC)类别。
本教程提供了如何使用Earth Engine加载和可视化这个丰富的10米分辨率每像素土地利用土地覆盖概率数据集的示例。教程还涵盖了计算统计数据和分析概率时间序列数据以进行变化检测的技术。

先决条件

本教程假设您对代码编辑器和Earth Engine API有一定的了解。在继续之前,请确保:

  • 注册Earth Engine。一旦您的申请获得批准,您将收到一封电子邮件,其中包含更多信息。 熟悉Earth
  • Engine代码编辑器,这是一个在Web浏览器中编写Earth Engine
  • JavaScript代码的IDE。在这里了解更多关于代码编辑器的信息。 如果您不熟悉JavaScript,请查看JavaScript
  • for Earth Engine教程。 如果您不熟悉Earth Engine API,请查看Earth Engine API简介教程。
  • 一旦您熟悉了JavaScript、Earth Engine API和代码编辑器,就可以开始本教程了!
动态世界

动态世界(DW)数据集是一个持续更新的图像集合,它提供了全球一致的、10米分辨率的近实时(NRT)土地利用土地覆盖(LULC)预测,这些预测是基于Sentinel-2影像创建的。该数据集中的图像包含十个波段:九个波段为每个DW LULC类别的估计概率,以及一个类别“标签”波段,指示估计概率最大的类别。这些独特的属性使用户能够进行多时相分析以及创建适合其需求的自定义产品。

使用NRT图像集合

动态世界近实时(NRT)图像集合包括从2015年6月23日至今的Sentinel-2 L1C采集的LULC预测,其中CLOUDY_PIXEL_PERCENTAGE元数据小于35%。随着Google Earth Engine中新的Sentinel-2 L1C协调图像的可用,图像集合会持续以近实时更新预测。

动态世界NRT集合可在GOOGLE/DYNAMICWORLD/V1中找到。该集合中的图像名称与它们派生的各个Sentinel-2 L1C产品名称相匹配。

让我们看看如何查找和加载特定Sentinel-2图像的动态世界分类。

  • 我们首先定义包含开始日期、结束日期和位置坐标的变量。在这里,我们定义了一个以美国马萨诸塞州的Quabbin水库为中心的点。
var startDate = '2021-10-15';
var endDate = '2021-10-25';
var geometry = ee.Geometry.Point([-72.28525, 42.36103]);
  • 加载Sentinel-2图像
    我们可以通过在Sentinel-2 L1C协调集合上应用日期范围和感兴趣位置的过滤器来找到Sentinel-2图像。由于动态世界分类仅适用于云量覆盖小于35%的场景,我们还应用了一个元数据过滤器。
var s2 = ee.ImageCollection('COPERNICUS/S2_HARMONIZED').filterDate(startDate, endDate).filterBounds(geometry).filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 35));

s2变量中的结果是符合过滤器的所有图像集合。我们可以调用.first()来提取集合中的单个图像(符合我们条件的最早图像)。一旦我们有了图像,让我们将其添加到地图中以进行可视化。代码还将视口中心设置在点位置的坐标上。

var s2Image = ee.Image(s2.first());
var s2VisParams = {bands: ['B4', 'B3', 'B2'], min: 0, max: 3000};
Map.addLayer(s2Image, s2VisParams, 'Sentinel-2 Image');
Map.centerObject(geometry, 13);

美国马萨诸塞州Quabbin水库的Sentinel-2 L1C图像

找到匹配的动态世界图像

要在动态世界集合中找到匹配的分类图像,我们需要使用system:index属性提取产品ID。

var imageId = s2Image.get('system:index');
print(imageId);

您将在控制台中看到打印出的Sentinel-2产品ID。我们可以使用相同的ID来加载匹配的动态世界场景。下面的代码片段对动态世界集合应用了过滤器,并提取了匹配的场景。

var dw = ee.ImageCollection('GOOGLE/DYNAMICWORLD/V1').filter(ee.Filter.eq('system:index', imageId));
var dwImage = ee.Image(dw.first());
print(dwImage);

控制台将显示有关动态世界图像的信息。展开波段部分,您将注意到图像包含10个波段。

………


术语表

术语解释
Google Earth Engine一个用于存储和分析地理空间数据的云平台。
AI PlatformGoogle 提供的人工智能平台,用于构建和部署机器学习模型。
Sentinel-2欧洲航天局的一组地球观测卫星,提供高分辨率的地球表面影像。
Resource Watch世界资源研究所提供的一个平台,用于监测和展示全球环境数据。
WRI世界资源研究所(World Resources Institute),一个全球环境研究机构。

如果这对您有所帮助,希望点赞支持一下作者! 😊

点击查看原文

file

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ QT 实现QMediaPlayer播放音频显示音频级别指示器

文章目录 效果图概述代码总结 效果图 概述 QMediaPlayer就不介绍了&#xff0c;就提供了一个用于播放音频和视频的媒体播放器 QAudioProbe 它提供了一个探针&#xff0c;用于监控音频流。当音频流被捕获或播放时&#xff0c;QAudioProbe 可以接收到音频数据。这个类在需要访问…

亚马逊云科技专家分享 | OPENAIGC开发者大赛能量加油站6月5日场预约开启~

由联想拯救者、AIGC开放社区、英特尔联合主办的“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”自上线以来&#xff0c;吸引了广大开发者的热情参与。 为了向技术开发者、业务人员、高校学生、以及个体创业人员等参赛者们提供更充分的帮助与支持&#xff0c;AIGC开放社区特别…

C# WinForm —— 24 Threading.Timer 组件介绍与使用

1. 简介 System.Threading.Timer 多线程 轻量级 精度高 提供以指定的时间间隔对线程池线程执行方法的机制 和System.Timers.Timer 类似&#xff0c;每隔一段时间触发事件&#xff0c;执行操作(不是由UI线程执行的)&#xff0c;即使事件中执行了比较耗时的操作&#xff0c;也…

万字长文深度解析Agent反思工作流框架Reflexion上篇:安装与运行

今天&#xff0c;我们将迈出从理论到实践的关键一步——通过安装和测试Reflexion框架&#xff0c;我们将揭开智能体工作流的神秘面纱&#xff0c;实现知识的深度融合与应用。由于框架东西较多&#xff0c;我们暂定分为上中下三篇来讲解。 1. 安装 1.1 克隆和查看项目 git clo…

JVM学习-类加载过程(二)

Initialization初始化阶段 为类的静态变量赋予正确的初始值 具体描述 类的初始化是类装载的最后一个阶段&#xff0c;如果前面的步骤没有问题&#xff0c;那么表示类可以顺利装载到系统中&#xff0c;此时&#xff0c;类才会开始执行Java字节码(即&#xff0c;到了初始化阶段…

React-基础样式控制

组件基础样式方案 React组件基础的样式控制有两种方式 1、行内样式&#xff08;不推荐&#xff09; 属性名是多个单词的需要使用驼峰写法 也可以把样式都提取到一个变量里&#xff0c;再赋值到style里 2、class类名控制 classnames优化类名控制 classnames是一个简单的JS库&…

arcgis api for javascript点击获取要素错乱的问题

今天帮同事看了一个前端地图点击的问题&#xff1a;点击时总会获取到周边的图元&#xff0c;即使我点击线的周围&#xff0c;也是能获取到的&#xff0c;除非离得特别远。 地图组件用的是arcgis api, 图层类是grahicslayer,要素类型是线。这是添加图元的代码&#xff1a; grap…

探索多模态MR图像的脑肿瘤分割任务结构| 文献速递-深度学习肿瘤自动分割

Title 题目 Exploring Task Structure for Brain Tumor Segmentation From Multi Modality MR Images 探索多模态MR图像的脑肿瘤分割任务结构 01 文献速递介绍 脑肿瘤分割旨在从多模态磁共振&#xff08;MR&#xff09;序列中自动分割肿瘤区域&#xff0c;这些序列由先进的…

万字长文深度解析Agent反思工作流框架Reflexion中篇

前文《LLM-Agents]万字长文深度解析Agent反思工作流框架Reflexion上篇&#xff1a;安装与运行》我们已经介绍了 Reflexion 框架的背景知识、数据集以及安装运行方法。在本文中&#xff0c;我们将深入探讨 Agent 的具体运行细节。 上篇讲到agent.run(reflect_strategystrategy)…

艾体宝方案 | redis赋能游戏开发,游戏玩家纵享丝滑

掉线&#xff0c;加载缓慢&#xff0c;反馈无跟进&#xff0c;这些令游戏玩家炸毛的问题&#xff0c;同时也是游戏开发者关注的问题。开发者将目光投向了Redis&#xff0c;一个实时数据平台&#xff0c;告别卡顿延迟&#xff01; 一、玩家不掉线&#xff0c;游戏更丝滑 在大型…

NVIDIA Blackwell Architecture

本文翻译自&#xff1a;NVIDIA Blackwell Architecture https://www.nvidia.com/en-us/data-center/technologies/blackwell-architecture/ 文章目录 了解技术突破1、新型人工智能超级芯片2、第二代 Transformer 引擎3、Secure AI4、NVLink 和 NVLink 交换机5、解压缩引擎6、可…

VNC server ubuntu20 配置

介绍 最近想使用实验室的4卡服务器跑一些深度学习实验&#xff0c;因为跑的是三维建图实验&#xff0c;需要配上可视化界面&#xff0c;本来自带的IPMI可以可视化&#xff0c;但分辨率固定在640*480&#xff0c;看起来很别扭&#xff0c;就捣鼓服务器远程可视化访问了两天&…

vue2转vue3初步下载pnpm遇到的问题 pnpm : 无法加载文件 D:\nodejs\pnpm.ps1

安装pnpm npm install -g pnpm pnpm -v 提示&#xff1a; 解决&#xff1a;nvm install 18.18.0 下载最稳定版本的nodejs nvm use 18.18.0 然后注意重新下载删除pnpm npm uninstall -g pnpm npm install -g pnpmlatest 在vscode使用pnpm报错 解决&#xff1a;管理员运行Windo…

web项目规范配置(husky、eslint、lint-staged、commit)

背景&#xff1a; 团队开发为了保证提交代码格式统一&#xff0c;通常在进行代码提交的时候对暂存区代码进行校验&#xff0c;如没有通过eslint(本例使用eslint)校验&#xff0c;则不能提交到远端。 安装依赖 husky 、eslint 、prettier 、lint-staged npm install husky e…

Satellite Stereo Pipeline学习

1.在Anaconda某个环境中安装s2p pip install s2p 2.在Ubuntu系统中安装s2p源代码 git clone https://github.com/centreborelli/s2p.git --recursive cd s2p pip install -e ".[test]" 3.在s2p中进行make all处理 中间会有很多情况&#xff0c;基本上哪个包出问题…

基于网关的ip频繁访问web限制

一、前言 外部ip对某一个web进行频繁访问&#xff0c;有可能是对web进行攻击&#xff0c;现在提供一种基于网关的ip频繁访问web限制策略&#xff0c;犹如带刀侍卫&#xff0c;审查异常身份人员。如发现异常或者暴力闯关者&#xff0c;即可进行识别管制。 二、基于网关的ip频繁访…

【Python】 倒序遍历列表:Python中的简单技巧

基本原理 在Python中&#xff0c;列表是一种非常灵活的数据结构&#xff0c;它允许我们存储一系列的元素。有时&#xff0c;我们需要按照与元素添加顺序相反的顺序来遍历列表。这通常被称为“倒序遍历”。Python提供了几种不同的方法来实现这一功能。 代码示例 示例1&#x…

【vueCms】vueCms后台管理系统安装问题集合

开源项目地址: https://www.vuecms.cn/ 开源代码地址: https://gitee.com/derekgo/vue-cms_xg 问题一 如果出现提示少了个index.html。如下图 解决办法: 重新安装前端(vue3_vite)项目依赖 问题二 npm版本高无法解析依赖树导致依赖下载失败 解决方案: npm install --legacy…

【Flask-app.py运行】已解决Cannot run program “D:\APP\python\python.exe”

文章目录 一、问题描述二、解决方法 一、问题描述 Cannot run program “D:\APP\python\python.exe” (in directory “F:\Codes\竞赛\大计赛\group\code\web\web”): CreateProcess error2, 系统找不到指定的文件。 这段报错源于运行 flask 项目的 app.py 时报错找不到程序&…

C++ | Leetcode C++题解之第119题杨辉三角II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> getRow(int rowIndex) {vector<int> row(rowIndex 1);row[0] 1;for (int i 1; i < rowIndex; i) {row[i] 1LL * row[i - 1] * (rowIndex - i 1) / i;}return row;} };