【GEE】1、Google 地球引擎简介

news2024/11/24 17:25:15

1简介

在本模块中,我们将讨论以下概念:

定义 Google 地球引擎中的主要数据类型以及如何使用它们。
如何探索数据集并限制特定研究站点的输出。
如何可视化火灾前后景观之间光合活动的差异。

2背景

遥感可以成为生态学家在更大空间尺度上了解研究系统或感兴趣区域的有力工具。单独的遥感工具不能替代实地工作或样品的物理收集,但有助于描述时空景观特征,从而加深我们对生态过程的理解。

有许多数据源可用于下载遥感数据产品,但收集这些数据集长期以来一直是一项繁琐且耗时的任务。Google 地球引擎 (GEE) 消除了传统上使用遥感数据所涉及的下载、预处理和繁重的计算环境。虽然针对“大数据”进行了优化,但 GEE 是一个灵活且透明的平台,可以处理从林业到干旱监测再到作物制图的各种研究领域。

在本模块中,您将开始使用来自国家农业影像计划 (NAIP) 的数据来探索 GEE 的功能。NAIP 数据包括在美国大陆农业生长季节获取的航空影像。根据给定的位置和时间范围,NAIP 图像以四个波段收集:蓝色、绿色、红色和近红外。有关 NAIP 的更多信息,请点击此处。

3开始使用 Google 地球引擎

Google Earth Engine 是一个基于 Web 的平台,提供对大型地理空间数据库(通常为栅格格式)的访问权限,并且是 Google 服务器上的分布式计算环境,可让您快速提出问题并开发可测试的工作流程。但是,GEE 确实需要通过 Google 帐户进行注册。因此,在继续此模块之前,您需要创建一个帐户/注册。您可以在GEE 注册页面上注册并信息。注册后,导航到code.earthengine.google.com,然后继续学习该模块。

3.1浏览用户界面

下图是您第一次访问 GEE 主页时将看到的内容。下面列出的是了解我们将在这些模块中定期访问的功能的快速指南。有关整个用户界面的更详细介绍,请单击屏幕右上角的图标,然后从下拉菜单中单击“功能导览”。
在这里插入图片描述
Google 地球引擎界面。按照下面的编号了解每个交互部分的扩展定义。

  1. 搜索栏

这是 GEE 用户可用的无数数据集的便捷快捷方式。搜索城市名称(“地点”)是放大到所需地理位置的便捷方式。

  1. 左面板
    脚本
    在此选项卡中,您保存的任何脚本都将列在“所有者”下。单击脚本的名称将在脚本编辑器窗格中打开其内容。值得庆幸的是,如果在打开新脚本之前有任何未保存的更改,GEE 会提供警告。
    文档
    在此选项卡中,您将看到编写脚本时要使用的可用函数的分类列表。单击函数名称会显示其定义和要求。在脚本编辑器中,如果您只能记住部分函数名称,则可以通过按 ctrl-space(Mac 上为 cmd-space)调出建议列表来避免查找它。
    资产
    您上传到 GEE 的所有文件都将在此选项卡中列出。单击文件名会显示有关文件的一些基本信息,并为您提供导入、共享或删除的选项。更多关于资产的内容将在 第4单元 中介绍。
  2. 脚本编辑器
    这就是神奇发生的地方!所有 GEE 脚本都是用 javascript 编写的(参见第 3.2 节),可以通过单击“运行”按钮或按 ctrl-enter(Mac 上为 cmd-enter)来激活。提醒一句:一定要尽早并经常保存。没有自动保存功能!

4.Right Panel
Inspector
打开此选项卡会更改我们与 Map Viewer 的交互。鼠标光标变为十字准线,单击地图可让我们从特定纬度和经度中采样数据。更多关于“检查器”选项卡的内容将在 第3单元 中介绍。
控制台
这是 GEE 加载时的默认选项卡,包含与在脚本编辑器中访问的数据相关的有用信息以及统计打印输出和错误消息。
任务
在此选项卡中,我们可以跟踪导出/下载队列中任何数据的进度。模块 4将介绍更多关于将数据移出 GEE 的内容。

  1. 地图查看器
    最后,我们所有的图像可视化都将在此窗格中进行。该地图以与谷歌地图相似的方式运行,带有 GEE 专业插件,例如绘制形状和切换可见或隐藏图层的能力。

3.2 JavaScript 简介

GEE 代码编辑器中的所有脚本都是用 JavaScript (JS) 编写的。如果您不熟悉这种编程语言,请不要害怕!JS 有大量的在线资源,而 GEE 实际上对遵守所有规则相当宽松。例如,JS 的标准协议是以分号 (😉 结束每个命令。但是,如果您碰巧忘记了一个,GEE 会在(经常)顺利运行您的代码时提醒您。

3.3数据类型:栅格

GEE 中使用的主要数据类型是栅格,涵盖从本地到全球范围的图像,可从数百个卫星和航空资源获得图像。要开始编写您的第一个脚本,请将下面的代码复制到脚本编辑器窗格中。此代码请求来自 NAIP影像集合的栅格。但是,请求图像集合意味着我们可以访问集合中的所有数据——这比我们实际需要的要多得多。使用该filterDate() 功能修改我们的原始收藏并限制图像数量。

// Call in NAIP imagery as an image collection.
var NAIP = ee.ImageCollection("USDA/NAIP/DOQQ");
 
// Filter your dataset from the entire collection to the year of interest and extent.
var naip2011 = NAIP
  .filterDate("2011-01-01", "2011-12-31");

此代码设置了用于显示或运行对 NAIP 图像集合的一部分进行分析的框架,但仅此而已。在我们为 GEE 提供一个可执行任务之前,它不会对这些信息做任何事情。这意味着当你点击运行时,什么也没有发生。这有点令人困惑,但将 GEE 视为一个懒惰的软件程序。您可以给它指示,但在您请求可交付结果之前,它将推迟执行指示。

3.3.1查看栅格元数据

现在我们已经加载了 NAIP 图像,我们希望在地图上将其可视化。由于 NAIP 是作为一系列图像收集的,我们需要通过定义我们想要使用和可视化的波段来创建多光谱图像(更多关于第2单元的波段)。我们通过设置可视化参数并将它们保存为变量来做到这一点。但在我们设置可视化参数之前,我们需要能够按名称引用波段。要检索此信息,请在搜索栏中键入“NAIP”,然后单击“NAIP:国家农业影像计划”。数据集信息应显示在如下图所示的弹出窗口中。
在这里插入图片描述

在搜索栏中单击数据集的名称后查看 NAIP 元数据弹出窗口。

3.3.2定义可视化参数

现在我们知道了我们乐队的名称,我们将把我们的图像添加到我们的地图查看器中。真彩色图像可用于区分土地覆盖类型或景观上的物理对象。使用近红外波段的假彩色图像可以帮助识别景观上的光合作用活跃区域(红色)。由于 NAIP 图像通常以高空间分辨率(1 米)收集,因此在 GEE 中查看整个美国需要很长时间。因此,关注较小的地理范围是一个好主意。

将下面的代码附加到您现有的脚本中,然后单击运行。使用搜索栏,输入并选择 Longmire, WA 将您的地图缩放到雷尼尔山国家公园。您的地图查看器将类似于下图。请记住,您必须在地图查看器中打开“图层”选项卡,然后单击要激活的图层旁边的复选框。

// Define visualization parameters.
var visParamsFalse = {bands:['N', 'R', 'G']};
var visParamsTrue = {bands:['R', 'G', 'B']};
 
// Add 2011 imagery to the map with false color and true color composites
// here we specify either 'true; or 'false' in the third argument to toggle the layer to show automatically or to stay hidden when the code is exicuted. 
Map.addLayer(naip2011,visParamsFalse, "2011_false", true );
Map.addLayer(naip2011,visParamsTrue, "2011_true", false );

3.4数据类型:向量

在其他 GIS 和遥感系统中,点、线和多边形通常被归类为“矢量”对象。在 GEE 中,这些数据被称为几何。一般来说,您将负责上传或创建您希望在 GEE 中使用的几何特征。您可以使用下述任一技术手动创建感兴趣区域 (AOI)。

3.4.1定义关注区域

要探索特定地理区域中的数据,我们可以手动将 AOI 创建为 GEE 界面中的几何特征。这就像选择几何按钮(见下图)并绘制一个多边形来勾勒出您感兴趣的区域一样简单。通过单击初始点来完成几何特征。

当您通过在起始位置放置一个点来完成几何特征时,脚本编辑器顶部将出现一个新特征,其默认名称为geometry。此功能现在可用于限制 GEE 脚本的地理范围。这是一个有用的功能,可以帮助您养成使用 GEE 的习惯,默认是处理地图查看器窗格的范围。您的范围越大,加载输出所需的时间就越长!

注意:单击名称可以重新命名几何特征。要删除该功能,请查看脚本顶部并将鼠标悬停在声明几何对象的代码行上。垃圾桶图标将出现在代码行的左侧。单击要删除的垃圾桶。
在这里插入图片描述
另一种限制可视图像范围的方法是使用一组经纬度坐标。在下图中,我们使用该功能将图像限制在High Park Fire的范围内。filterBounds()为了避免每次加载脚本时都必须放大,我们还可以使用该centerObject()功能以预定义的缩放级别自动将 Map Viewer 窗格居中在我们的图像上。

如果您将第 3.3.2 节中的代码替换为以下代码并单击运行,它将生成类似于下图的图像。请注意,行后不需要分号,filterDate()因为我们尚未完成对 NAIP 集合的修改。

// Enter the desired coordinates for the upper left and lower right corners of your study area.
// You can find the lat long coordinates by using the inspector.
var bounds = ee.Geometry.Rectangle([[-105.53,40.75],[-105.17,40.56]]);
 
// Filter your dataset from the entire collection to the year of interest and extent
// and add the filterBounds function, moving the semicolon to the end of the statement.
var naip2011 = NAIP
  .filterDate("2011-01-01", "2011-10-31")
  .filterBounds(bounds);
 
// Define visualization parameters.
var visParamsFalse = {bands:['N', 'R', 'G']};
var visParamsTrue = {bands:['R', 'G', 'B']};
 
// Add 2011 imagery to the map with false color and true color composites.
Map.addLayer(naip2011,visParamsFalse,"2011_false", false );
Map.addLayer(naip2011,visParamsTrue,"2011_true", false );
 
Map.centerObject(naip2011, 11);

在这里插入图片描述
该ee.geometry.Rectangle()对象成功地界定了我们的 NAIP 图像的范围。

3.5把所有东西放在一起

利用我们在本模块中可视化的 NAIP 数据,我们已准备好使用 GEE 执行此介绍性分析。将额外的 NAIP 数据子集添加到我们的代码中,我们可以直观地比较 High Park Fire 边界内外的植被再生情况。运行以下代码,我们发现虽然真彩色图像有些帮助,但假彩色图像(如下所示)使我们能够轻松地区分低光合活性区域(较高烧伤严重程度)和光合活性相对不变的区域(严重程度低或未燃烧)。

var naip2013 = NAIP
  .filterDate("2013-01-01", "2013-12-31")
  .filterBounds(bounds);
 
// add 2013 imagery to the map with false color and true color composites
Map.addLayer(naip2013, visParamsFalse, "2013_false", false );
Map.addLayer(naip2013, visParamsTrue, "2013_true", false );

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2011 年(左上)和 2013 年(右上)的真彩色 NAIP 图像与 2011 年(左下)和 2013 年(右下)的假彩色图像相比。

但 NAIP 图像的实用性不仅限于大规模分析。放大到 High Park Fire 的较小区域(如下所示),我们可以看到由于数据集的高分辨率,可以在非常小的范围内评估烧伤程度。
在这里插入图片描述
仔细查看通过 NAIP 图像可获得的详细程度。在 2011 年的图像(上)中可以清楚地看到个别树木,而在 2013 年的图像(下)中仍然存在那些在火灾中幸存下来的树木。

4结论

在本单元中,我们介绍了 Google 地球引擎作为生态学家利用遥感数据的强大工具。然后,我们定义了 Google 地球引擎用户界面的交互元素。最后,我们对 NAIP 图像进行了简单的探索,以查看科罗拉多州北部高公园火灾前后的景观尺度差异。

5完整代码

// Call in NAIP imagery as an image collection.
var NAIP = ee.ImageCollection("USDA/NAIP/DOQQ");
 
// Enter the desired coordinates for the upper left and lower right corners of your study area.
var bounds = ee.Geometry.Rectangle([[-105.53,40.75],[-105.17,40.56]]);
 
// Filter your dataset from the entire collection to the year of interest and extent.
var naip2011 = NAIP
  .filterDate("2011-01-01", "2011-12-31")
  .filterBounds(bounds);
  
// Define visualization parameters.
var visParamsFalse = {bands:['N', 'R', 'G']};
var visParamsTrue = {bands:['R', 'G', 'B']};
 
// Add 2011 imagery to the map with false color and true color composites.
Map.addLayer(naip2011,visParamsFalse,"2011_false", false );
Map.addLayer(naip2011,visParamsTrue,"2011_true", false );
 
Map.centerObject(naip2011, 11);
 
// Add 2013 imagery to the map with false color and true color composites.
var naip2013 = NAIP
  .filterDate("2013-01-01", "2013-12-31")
  .filterBounds(bounds);
 
// Add 2013 imagery to the map with false color and true color composites.
Map.addLayer(naip2013,visParamsFalse,"2013_false", false );
Map.addLayer(naip2013,visParamsTrue,"2013_true", false );

6词汇和缩写

AOI:感兴趣的区域

GEE:谷歌地球引擎

JS:JavaScript

NAIP:国家农业影像计划

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

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

相关文章

如何用维格云搭建和一键训练你的钧瓷AI机器人?

大禹智库 第69期(总第400期) 2023年11月4日 如何用维格云搭建和一键训练你的钧瓷AI机器人? 钧瓷私有数据聊天机器人是一种能够根据预设的数据集进行智能对话的机器人。通过维格云,我们可以轻松地搭建自己的钧瓷私有数据聊天机器人。本文将以钧道机器人为例,详细介绍如何…

【C语言初学者周冲刺计划】2.4求一个3×3矩阵对角线元素之和

1解题思路&#xff1a; 首先学会怎么输入3*3矩阵的数值&#xff1b;然后细节处&#xff0c;比如最后求和应该加什么&#xff0c;怎么写问题&#xff1b; 2代码&#xff1a; #include<stdio.h> int main() {int str[3][3],i,j,sum0;for(i0;i<3;i){for(j0;j<3;j){…

过去60年145项全球开源系统杰出成果颁布,百度飞桨登榜!

近日&#xff0c;BenchCouncil&#xff08;国际测试委员会&#xff09;颁布首个开源系统杰出成果榜&#xff08;1960s-2021&#xff09;&#xff0c;评选了开源方面具有巨大影响并对软硬件发展产生重大推动作用的顶级成果。百度飞桨深度学习框架PaddlePaddle成功上榜。 BenchCo…

故障诊断模型 | Maltab实现SVM支持向量机的故障诊断

效果一览 文章概述 故障诊断模型 | Maltab实现SVM支持向量机的故障诊断 模型描述 Chinese: Options:可用的选项即表示的涵义如下   -s svm类型:SVM设置类型(默认0)   0 – C-SVC   1 --v-SVC   2 – 一类SVM   3 – e -SVR   4 – v-SVR   -t 核函数类型:核函…

Unity地面交互效果——3、曲面细分基础知识

大家好&#xff0c;我是阿赵。   之前介绍了使用动态法线贴图混合的方式模拟轨迹的凹凸感&#xff0c;这次来讲一下更真实的凹凸感制作。不过在说这个内容之前&#xff0c;这一篇先要介绍一下曲面细分着色器(Tessellation Shader)的用法。 一、为什么要做曲面细分 之前通过法…

数据分析师的就业前景看好

IT行业哪个方向比较好就业? 目前IT行业的发展速度非常的快&#xff0c;很多领域都已经开始和IT技术进行紧密的结合&#xff0c;这也带来了很多岗位的空缺。那么就一起来说说&#xff0c;IT行业里&#xff0c;哪些方向会更好就业。 大数据时代&#xff0c;呼唤数据分析师。 …

Java数组小练习求出数组中的最大值

加油&#xff0c;新时代打工人&#xff01; Java基础八之数组的定义和获取元素 package demo;/*** author wenhao* date 2023/11/04 10:47* description 数组练习*/ public class ArrDemo {public static void main(String[] args) {//求一个数组中的最大值int [] arr {66,12…

SpringBoot 将 jar 包和 lib 依赖分离,dockerfile 构建镜像

前言 Spring Boot 是一个非常流行的 Java 开发框架&#xff0c;它提供了很多便利的功能&#xff0c;例如自动配置、快速开发等等。 在使用 Spring Boot 进行开发时&#xff0c;我们通常会使用 Maven 或 Gradle 进行项目构建。 本文将为您介绍如何使用 Maven 将 Spring Boot …

「Verilog学习笔记」四选一多路器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 通过波形示意图我们可以发现&#xff0c;当sel为0&#xff0c;1&#xff0c;2时&#xff0c;输出mux_out分别为d3&#xff0c;d2&#xff0c;d1&#xff0c;那么sel3…

【触想智能】工业显示器上市前的检测项目分享

工业显示器在上市前&#xff0c;需要做一项重要的工作&#xff0c;那就是工业显示器出厂前的产品可靠性检测。 工业显示器选择的测试项目相比商用端更为严格&#xff0c;常见的性能测试项目包括高温老化、防尘防水、电磁静电干扰、防摔防撞等&#xff0c;在工业级应用领域&…

PS2024免费磨皮滤镜Portraiture插件下载

Portraiture 4是一款适用于LR的人像智能磨皮美化滤镜插件&#xff0c;操作简便、省去了选择蒙版和逐步像素处理的繁琐流程&#xff0c;帮助您实现高效的肖像修饰。快速对照片中皮肤、头发、眉毛等部位进行美化&#xff0c;无需手动调整&#xff0c;大大提高P图效率。全新4版本&…

《程序员必须要做副业》之公众号流量主如何快速做起?

1 如何快速生成文章 公众号本身还是一个内容平台&#xff0c;最核心的还是内容生产&#xff0c;谁能快速生成优质的内容&#xff0c;谁就占据了优势。 目前使用讨很多AT具&#xff0c;包含chatapt40.new bing.notion.claude1.claude2&#xff0c;还有一些国内的模型比如讯飞火…

UI设计感蓝色商务数据后台网站模板源码

蓝色商务数据后台网站模板是一款适合网站模板下载。提示&#xff1a;本模板调用到谷歌字体库&#xff0c;可能会出现页面打开比较缓慢。 演示下载 qnziyw点cn/wysc/qdmb/20852点html

PCL点云处理(007)-Ransac

随机抽样一致性算法RANSAC(Random sample consensus)是一种迭代的方法来从一系列包含有离异值的数据中计算数学模型参数的方法。 RANSAC算法本质上由两步组成&#xff0c;不断进行循环&#xff1a; 从输入数据中随机选出能组成数学模型的最小数目的元素&#xff0c;使用这些元素…

一周IT热门快讯 | 本周互联网界发生了啥?

一、微信新增独立发送按钮 网友&#xff1a;喜大普奔&#xff01;终于盼到了 10月31日&#xff0c;iOS版本微信更新了8.0.43版本&#xff0c;新增了一个换行按钮。 开启后&#xff0c;iPhone自带输入法原来的“发送”变成了“换行”&#xff0c;对话框右侧是发送键&#xff…

SOLIDWORKS参数化设计之部分打包 慧德敏学

参数化设计就是通过主参数来驱动整个模型的变化&#xff0c;类似于SOLIDWORKS的方程式中&#xff0c;使用全局变量来控制模型其它参数的变化&#xff0c;因此要做参数化就必须要确定好主参数以及变化逻辑。 我们之前介绍过SOLIDWORKS参数化设计软件-SolidKits.AutoWorks&#…

2023最新C语言编程练习题大全(一)

目录 一、初识C语言1.1 第一个C语言程序1.2 一个完整的C语言程序1.3 输出名言1.4 计算正方形的周长 二、一个简单的C语言程序2.1 输出一个正方形2.2 输出直角三角形2.3 设计一个简单的求和程序2.4 求10!2.5 三个数由小到大排序2.6 猴子吃桃2.7 阳阳买苹果 一、初识C语言 1.1 第…

软文如何找准用户痛点?媒介盒子分享

软文推广的必要因素就是找准用户痛点并放大痛点&#xff0c;这里的痛点需要与用户日常生活息息相关&#xff0c;在这里媒介盒子分享三个找准用户痛点的技巧&#xff1a; 一、挖掘实际需求 从用户视角分析&#xff0c;对用户的应用场景深入了解&#xff0c;挖掘用户的实际需求。…

Java如何快速读取解析JSON数据(文件),获取想要的内容?

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;https://zhangxiaofan.blog.csdn.net/article/details/132764186 目录 前言 准备工作 Json数据&#xff08;示例&#xff09; 解析Json文件 第一步&#xff1a;创建一个空类 第二步…

0-1背包 完全背包 + 至多/恰好/至少 + 空间优化 + 常见变形题(实战力扣题)

&#xff08;一&#xff09;01背包 1.回溯三问 # capacity:背包容量 # w[i]: 第 i 个物品的体积 # v[i]: 第 i 个物品的价值 # 返回:所选物品体积和不超过 capacity 的前提下&#xff0c;所能得到的最大价值和 def zero_one_knapsack(capacity:int,w:List[int],v:List[int])…