前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!

Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!

作者头像
此星光明
发布2024-02-02 08:16:41
1.7K0
发布2024-02-02 08:16:41
举报

地球引擎代码编辑器

code.earthengine.google.com 上的地球引擎 (EE) 代码编辑器 是用于地球引擎 JavaScript API 的基于网络的 IDE。代码编辑器功能旨在快速轻松地开发复杂的地理空间工作流程。代码编辑器具有以下元素(如图 1 所示):

  • JavaScript 代码编辑器
  • 用于可视化地理空间数据集的地图显示
  • API 参考文档(文档选项卡)
  • 基于Git的脚本管理器(脚本选项卡)
  • 控制台输出(控制台选项卡)
  • 任务管理器(任务选项卡)处理长时间运行的查询
  • 交互式地图查询(检查器选项卡)
  • 搜索数据存档或保存的脚本
  • 几何绘图工具

地球引擎代码编辑器的组件图

代码编辑器具有多种功能,可帮助您利用 Earth Engine API。在脚本 选项卡上查看示例脚本或保存您自己的脚本。使用检查器选项卡查询放置在地图上的对象。 使用 Google Visualization API显示和绘制数字结果。使用“获取链接”按钮与合作者和朋友共享脚本的唯一 URL 。您在代码编辑器中开发的脚本会发送到 Google 进行处理,生成的地图图块和/或消息会发送回以显示在“地图”和/或“控制台”选项卡中。运行代码编辑器只需要一个网络浏览器(使用Google Chrome以获得最佳效果)和互联网连接。以下部分更详细地描述了地球引擎代码编辑器的元素。


JavaScript 编辑器

JavaScript 编辑器将:

  • 键入时格式化并突出显示代码
  • 在有问题的代码下划线,提供修复和其他提示以获得正确的语法
  • 自动补全引号、方括号和圆括号对
  • 为地球引擎功能提供代码完成提示

代码编辑器上方是用于运行脚本、保存脚本、重置输出映射和控制台以及获取脚本链接的按钮。当按下“获取链接”按钮时,浏览器地址栏中将出现一个唯一链接。此链接表示按下按钮时编辑器中的代码。

注意:编辑器支持 ECMAScript 5 (ES5) 的大部分功能,这是 JavaScript 语言的标准化规范。目前不支持 ECMAScript 6 (ES6) 及更高版本中引入的语言功能。


API 参考(文档选项卡)

代码编辑器的左侧是Docs选项卡,其中包含完整的 JavaScript API 文档。可以从“文档”选项卡搜索和浏览文档

脚本管理器(脚本选项卡)

脚本选项卡是在代码编辑器的左侧面板旁边的API文档。脚本管理器将私有、共享和示例脚本存储在 Google 托管的Git存储库中。存储库按访问级别排列,您的私有脚本存储在您在Owner文件夹中拥有的存储库中:users/username/default。您(并且只有您)有权访问Owner文件夹中的存储库,除非您与其他人共享它们。Writer 中的存储库 文件夹是其所有者已授予您写入权限的存储库。您可以向Writer文件夹中的存储库添加新脚本、修改其中的现有脚本或更改对存储库的访问权限(您不得删除其所有者)。在该仓库阅读器文件夹是系统信息库,其读取权限是已经被其所有者授予您。该示例文件夹是一种特殊的资源库由谷歌托管包含代码样本。该归档文件夹包含您有权访问,但还没有被他们的老板从旧版本的脚本管理的迁移旧仓库。使用顶部的过滤器栏搜索您的脚本脚本选项卡。



脚本模块

编写无需大量复制和粘贴即可在脚本之间共享的模块化、可重用代码是一种很好的做法。为了实现模块化开发,Earth Engine 提供了在脚本之间共享代码的能力。例如,假设您编写了一个执行一组有用操作的函数。与将函数的代码复制到新脚本中相比,新脚本更容易直接加载函数。要使函数或对象可用于其他脚本,请将其添加到名为exports. 要在另一个脚本中使用代码,请使用该require函数从另一个脚本加载导出。例如,假设您在名为的文件中定义以下模块,该文件 FooModule.js位于名为Modules

这是我们导入文本的形式,可以这样来进行:

代码语言:javascript
复制
exports.doc = 'The Foo module is a demonstration of script modules.' +
    '\n It contains a foo function that returns a greeting string. ' +
    '\n It also contains a bar object representing the current date.' +
    '\n' +
    '\n foo(arg):' +
    '\n   @param {ee.String} arg The name to which the greeting should be addressed' +
    '\n   @return {ee.String} The complete greeting.' +
    '\n' +
    '\n bar:' +
    '\n   An ee.Date object containing the time at which the object was created.';

exports.foo = function(arg) {
  return 'Hello, ' + arg + '!  And a good day to you!';
};

exports.bar = ee.Date(Date.now());

请注意exports以 的形式使用关键字 exports.objectToExport。您可以通过使用该require函数在另一个脚本中使用此模块。例如:

代码语言:javascript
复制
//答应出我们想要的结果
//当然这里打印要打印自己的一个路径,否则会报错,也就是你的这个里面自己的写的代码可以在这里调用!
var Foo = require('users/username/default:Modules/FooModule.js');

print(Foo.doc);

print(Foo.foo('world'));

print('Time now:', Foo.bar);

require函数需要一个描述模块位置绝对路径的字符串。具体来说, 的参数require()的形式为 'pathToRepository:pathToModuleScript'。您只能从您拥有和/或具有读取权限的存储库加载模块。如果您希望其他人能够使用您的模块,则必须与您想要访问的其他用户共享存储库。

您可以使用 URL 参数 ?scriptPath={repo}:{script} 来共享对存储库中文件的引用,例如 https://code.earthengine.google.com/?scriptPath=users/username/utils:utils . 访问 URL 后,引用的文件及其存储库将添加到Scripts选项卡上的 Reader 或 Writer 目录中 ,具体取决于您对共享存储库的权限级别。


资产管理器(资产选项卡)

资产管理器位于左侧面板的资产选项卡中。使用资产管理器在 Earth Engine 中上传和管理您自己的图像资产。


脚本链接

代码编辑器脚本可以通过编码的 URL 共享。以下部分描述了生成脚本 URL 的各种方法、可用选项以及管理脚本 URL 的方法。

注意:如果您的共享脚本包含私人资产导入,请务必 与目标用户共享或公开共享。未共享的资产导入很容易导致您的脚本中断。

获取链接

代码编辑器顶部的“获取链接”按钮(图 4)提供了一个用于生成脚本 URL 和设置脚本行为选项的界面。请注意下面描述的快照 URL 和保存的脚本 URL 之间的区别。

“获取链接”按钮可将代码分享给别人

快照脚本链接

可以通过单击代码编辑器顶部的“获取链接”按钮创建的编码快照 URL 来共享编辑器中的代码。当拥有 Earth Engine 帐户的人访问 URL 时,浏览器将导航到代码编辑器并复制创建链接时的环境,包括代码、导入、地图图层和地图位置。单击“获取链接”按钮将自动将脚本链接复制到剪贴板。此外,将出现一个对话框,提供控制共享脚本执行的选项,以及复制和访问生成链接的按钮。控制选项包括阻止脚本自动运行,以及在有人打开共享链接时隐藏代码窗格。

保存的脚本链接

保存的脚本有一个共享链接的选项,该链接将始终加载最新保存的版本,并且只有您和其他人可以访问包含脚本的存储库的当前访问权限。要使用此功能,请从“脚本管理器”选项卡加载保存的脚本,单击“获取链接”按钮右侧的下拉箭头并选择“复制脚本路径”。将出现一个对话框,显示可共享的脚本 URL。请注意,脚本 URL 也已在浏览器的地址栏中设置。

脚本链接管理

“获取链接”按钮右侧的下拉按钮有一个“管理链接”选项。单击此选项会加载一个带有界面的新浏览器选项卡,供您调用、删除和下载以前生成的脚本链接。选择一个脚本并按下下载按钮会将一个压缩文件夹(“code_editor_links.zip”)下载到您的系统,其中包含每个选定脚本的 .txt 文件表示。

脚本链接 URL 参数

ui.url模块允许通过getset方法对脚本 URL 的片段标识符进行编程操作。这意味着代码编辑器脚本和地球引擎应用程序可以读取和存储页面 URL 中的值。请注意以下两个 URL 的结尾,第一个将debug变量设置为 false ,第二个将其设置为true; 访问这两个链接并注意控制台中的调试复选框在第一个中没有被选中,而在第二个中被选中,改变了每个脚本的行为。

代码语言:javascript
复制
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;
代码语言:javascript
复制
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;

此功能可用于设置地图缩放和居中,以及您在向特定人员或组发送链接时可能想要自定义的其他行为。


搜索工具

要查找要在脚本中使用的数据集,您可以使用数据存档的搜索工具。搜索工具是代码编辑器顶部的文本框,上面写着“搜索地点和数据集...” 在搜索栏中键入数据产品、传感器或其他关键字的名称,然后单击search按钮查看匹配地点、栅格和表数据集的列表。单击任何栅格或表结果以查看存档中该数据集的描述。要将数据集直接导入脚本,请单击数据集描述中的导入链接或 import按钮。

代码编辑器顶部的导入部分。

将数据集导入脚本的结果组织在脚本顶部的导入部分中,在您导入某些内容之前隐藏。创建一些导入后,您应该会看到类似于图 5 的内容。要将导入复制到另一个脚本,或将导入转换为 JavaScript,请单击 subject图标旁边的Imports 标题并将生成的代码复制到您的脚本中。您可以删除导入 delete 图标。

地图

API 中的 Map 对象是指代码编辑器中的地图显示。例如, Map.getBounds()将返回代码编辑器中可见的地理区域。检查MapAPI 中的函数以查看此显示的其他自定义。

层管理器

使用地图右上角的图层管理器​​来调整添加到地图的图层的显示。具体来说,您可以切换图层的可见性或使用滑块调整其透明度。单击 settings 图标以调整各个图层的可视化参数。出现的可视化工具允许您以交互方式配置图层显示参数。单击工具右侧的按钮(默认情况下,它会根据提供的最小和最大范围执行自定义拉伸)以将显示线性拉伸到显示窗口中图像值的百分位数或标准偏差。统计数据是根据当前缩放级别的地图窗口中的所有像素计算的。使用滑块调整伽马和/或透明度。单击调色板单选按钮并通过添加颜色指定自定义调色板 (add), 去除颜色 (remove) 或手动输入逗号分隔的十六进制字符串列表 (edit)。单击应用将可视化参数应用到当前显示。单击导入将可视化参数对象作为新变量加载到脚本的导入部分。

图层可视化工具

请注意,图层管理器​​右侧是用于不同地图背景的切换按钮。使用 自定义背景Map.setStyle()

检查器选项卡

任务管理器旁边的检查器选项卡可让您以交互方式查询地图。当检查器选项卡被激活时,光标变成一个十字准线,当您单击地图时,它将显示光标下的位置和图层值。例如,图显示了在Inspector选项卡中单击地图的结果 。光标位置和缩放级别与像素值和地图上的对象列表一起显示。对象列表是交互式的。要查看更多信息,请展开检查器选项卡中的对象。

Inspector 选项卡显示有关光标位置和光标下层值的信息。

控制台选项卡

当您print()从脚本中获取某些内容时,例如文本、对象或图表,结果将显示在Console 中。控制台是交互式的,因此您可以展开打印对象以获取有关它们的更多详细信息。

任务选项卡

对于长时间运行的任务,使用Export对象来执行导致Image或 的大型计算FeatureCollection。在“导出”选项卡上管理导出的任务。要开始导出,请单击任务 选项卡中导出任务旁边的 运行按钮。将出现一个配置对话框,允许您选择图像的分辨率或大小,以及表格的格式(CSV、GeoJSON、KML 或 KMZ)。运行任务后,将鼠标悬停在任务管理器中的任务上将显示“?” 可用于检查任务状态的图标。要取消任务,请单击任务旁边的旋转

图标以取消它。


探查器

探查器显示有关特定算法和计算的其他部分消耗的资源(CPU 时间、内存)的信息。这有助于诊断脚本运行缓慢或由于内存限制而失败的原因。要使用探查器,请单击“运行”按钮下拉菜单中的“使用探查器运行”选项。作为快捷方式,按住 Alt(或 Mac 上的 Option)并单击运行,或按 Ctrl+Alt+Enter。这将激活代码编辑器右侧的Profiler选项卡。在脚本运行时,Profiler选项卡将显示脚本中的资源使用表。单击运行按钮(不进行分析)将使分析器 选项卡消失并禁用分析器。

分析器显示由脚本调用的计算产生的 CPU 和内存使用情况(每个算法和资产)的信息,以及地图中当前可见的每个图块的显示。分析器输出中的每一行都对应于“描述”列中描述的算法、计算、资产负载或开销操作。探查器中的列是:

说明

正在分析的计算、算法、资产负载或开销操作的文本描述。

计数

与调用“描述”中描述的操作的次数成正比的指示器。

计算

操作所用 CPU 时间的指示器。

当前内存

此列仅在由于脚本使用过多内存而出现错误时出现。它显示发生错误时任何单个计算节点上正在使用的内存量。

峰值内存

任何单个计算节点上用于该操作的最大内存。


几何工具

您还可以通过在屏幕上绘制几何图形将几何图形导入脚本。要创建几何图形,请使用地图显示左上角的几何图形绘制工具(图 8)。对于绘制点,使用地标图标

,对于绘制线,使用线图标,对于绘制多边形,使用多边形图标

,对于绘制矩形,使用矩形图标

。(请注意,矩形是平面几何图形,因此它们不能放置在具有测地线几何图形(如线和多边形)的图层上。)

几何绘图工具位于地图显示的左上角

使用任何绘图工具都会自动创建一个新的几何图层,并将该图层的导入添加到导入部分。要将几何图形添加到新图层,请将鼠标悬停在地图显示中的几何图形导入上,然后单击+new layer链接。您还可以从几何导入部分切换几何的可见性。请注意,绘制的几何图形默认为测地线,矩形除外,矩形仅为平面。使用 几何构造函数将它们转换为平面几何。在几何页面上了解有关 Earth Engine 中几何的更多信息 。

要配置几何图形导入脚本的方式,请单击

地图上Geometry Imports部分或代码编辑器的Imports部分中图层旁边的图标。几何图层设置工具将显示在一个对话框中,该对话框应类似于图 9。请注意,您可以将绘制的形状导入为几何、要素或要素集合。几何导入设置还允许您更改图层显示的颜色、向图层添加属性(如果它作为 aFeature或导入FeatureCollection)或重命名图层。

几何配置工具

最后,为了防止图层中的几何图形被编辑,您可以通过按

图层旁边的图标。这将阻止添加、删除或编辑图层上的任何几何图形。要再次解锁图层,请按

图标。防止你的改动或者删除之类的操作!


帮助!

单击 help

单击代码编辑器右上角的按钮,可以查看指向本开发人员指南、其他帮助论坛、代码编辑器导览以及有助于在地图上进行编码、运行代码和显示数据的键盘快捷键列表的链接。单击 feedback

按钮来提交错误报告、请求新功能、建议数据集或在不需要响应时发送反馈。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 地球引擎代码编辑器
    • JavaScript 编辑器
      • API 参考(文档选项卡)
        • 脚本管理器(脚本选项卡)
          • 脚本模块
            • 资产管理器(资产选项卡)
              • 脚本链接
                • 获取链接
                • 脚本链接管理
                • 脚本链接 URL 参数
              • 搜索工具
                • 地图
                  • 层管理器
                    • 检查器选项卡
                      • 控制台选项卡
                        • 任务选项卡
                          • 探查器
                            • 几何工具
                              • 帮助!
                              相关产品与服务
                              对象存储
                              对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档