谷歌地球引擎GEE:导入、下载自己的栅格、矢量数据

本文主要对GEE 中的各类外部数据导入、下载与管理以及数据与代码分享等操作加以介绍。

本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第七篇,更多GEE 文章请参考专栏:GEE学习与应用

首先,提到GEE 的外部数据管理,不得不提及目前已经停止服务但曾经赫赫有名的Fusion TablesFusion Tables 是谷歌提供用以存储、可视化与分享数据的网络应用程序,在其退役前在GEE 中尤为常见,常用来导入、管理矢量 数据(GEE栅格数据的导入方式在当初和目前都是一致的,没有发生大的变化);但这一网络应用程序在2019年12月就被谷歌官方关闭。

尽管Fusion Tables 已经被关闭,但本文开头还是对其当初的外部矢量数据导入方法加以回顾,从而找寻GEE目前最新的外部矢量数据导入方法Fusion Tables外部矢量数据导入方法相比的优势。

在当年,若需要通过Fusion Tables 导入矢量数据,首先需要打开谷歌云端硬盘官网drive.google.com/

接下来,选择左上角的"New"。

随后,依次选择"More "→"Connect more apps"。

在弹出的界面中,搜索fusion tables

在得到搜索结果后,点击进入弹出的界面,进行表格类型数据的导入即可。当然,由于目前Fusion Tables已经退役,上述搜索界面已经找不到对应的数据导入界面了。

上述即为当年Fusion Tables导入矢量数据的方式,可以看到虽然并不算麻烦,但是也略显繁琐,尤其是需要导入大量数据时,就显得比较费时间。

那么,最新的GEE 外部数据导入方式(包括栅格与矢量数据)则显得非常简洁;由于目前GEE栅格与矢量数据导入方法已经统一 ,我们本文就仅以一景外部栅格遥感影像的导入与数据管理为例进行介绍。

首先,打开GEE ,在左上角选择"Assets ";并选择"Image Upload"下属的这一项。

在弹出的界面中,选择遥感影像文件、在GEE Asset 中的存放路径、元数据,同时对金字塔构建规则、掩膜模式等加以调整。在这里需要注意,GEE Asset 中的存放路径(也就是下图中的Asset Name)所填内容如果不包含符号/,则自动存放在自己GEE 帐号中"Asset"的总文件夹下。

相反,如果大家不想放到总文件夹下,而想放到某个单独的子文件夹下(例如假设想放到WuhanBC这个子文件夹下),就需要在存放路径中填写/WuhanBC/Test

在本文中,我们直接将导入的遥感影像放在总文件夹下,其他配置如下图所示:

随后,可以在GEE 右侧"Tasks"中看到遥感影像的上传进度。

等待一定时间后,可以看到右侧显示已经上传完毕,同时在左侧"Asset "中可以看到Test这个遥感影像已经存在(并且是在总文件夹下)。

单击这一遥感影像的名称,可以看到其空间位置、数据大小、波段数量、修改时间等基本信息。

其中,"BANDS"一栏可以看到遥感影像的波段信息。

"PROPERTIES"一栏可以看到遥感影像的元数据信息。这里需要注意,元数据是当初我们在导入数据时选择添加的,如果当初没有添加则此处就不会有信息。

选择"IMPORT ",即可将数据导入GEE地图中。

可以看到,导入后的效果和# 谷歌地球引擎GEE:栅格数据的导入、筛选与可视化中导入的Landsat 8 Collection 1 Tier 1 的大气表观反射率TOA Reflectance产品效果是一样的。

同样,按照# 谷歌地球引擎GEE:栅格数据的导入、筛选与可视化中内容,可以对其加以重命名并在地图中加以显示。

js 复制代码
Map.addLayer(Wuhan,{},"WUHAN");

此外,点击"SHARE"可以对这一景遥感影像加以分享。

在弹出的界面中,可以对遥感影像的分享权限加以配置。

此外,如果我们需要下载GEE 中的栅格图像,可以基于.getDownloadURL({})函数实现:

js 复制代码
var URL=Wuhan.getDownloadURL({});
print(URL);

其中,.getDownloadURL({})获取对应栅格数据的下载链接,并通过print()函数加以打印。

我们这里就直接以刚刚上传好的遥感影像为例进行下载;但是遇到一个问题:我们上传的遥感影像空间区域比较大,波段数量比较多,导致整幅图像下载时超出了GEE下载最大数据量的限制。

我们可以再来看一下遥感影像中波段的信息,从而尝试选择其中一个波段下载。

依据# 谷歌地球引擎GEE:波段代数与波段计算中内容,依据波段名称对某一波段加以选择,并对选择后的单波段栅格图像加以下载。

js 复制代码
var band=Wuhan.select("b10");
print(band);
var URL=band.getDownloadURL({});
print(URL);

可是发现,单一波段图像虽然在数据量上显著下降,但是还是超出了GEE数据下载的限制。

因此,我们手动划定一个矢量矩形区域,并对单波段图像进行裁剪,从而减少下载数据的空间范围,看看能不能下载。

在地图左上角,选择以下按钮:

并在原有遥感影像范围内划定一个小的区域:

可以看到,划定完毕后这一矢量区域已经加入了GEE中。

对其加以重命名后,我们依据# 谷歌地球引擎GEE:基于矢量裁剪栅格图像中内容,依据刚刚划定的矢量区域对单波段遥感影像加以裁剪,并重新执行.getDownloadURL({})函数。

js 复制代码
var band=Wuhan.select("b10").clip(smallarea);
print(band);
var URL=band.getDownloadURL({});
print(URL);

可以看到,此时右侧"Console"中已经出现了下载链接,说明数据量已经符合要求了。

点击下载路径即可实现对应数据的下载。

最后,再介绍"Repository "的新建方法;其实这里的"Repository"就是前面我们提及的存放外部遥感影像的子文件夹。

选择"NEW "→"Repository"。

在弹出的界面中选择"Repository"的名称即可。

对于建立好的"Repository",可以点击其右侧的齿轮图标进行分享设置。

分享有多种方式,包括用GEE 内部的链接分享,以及通过Git 方式分享。对"Repository"进行共享,即可实现将其内部的代码分享给他人。

至此,大功告成。

相关推荐
小镇程序员17 分钟前
vue2 src自定义事件
前端·javascript·vue.js
炒毛豆1 小时前
vue3+echarts+ant design vue实现进度环形图
javascript·vue.js·echarts
nameofworld3 小时前
前端面试笔试(六)
前端·javascript·面试·学习方法·递归回溯
前端fighter3 小时前
js基本数据新增的Symbol到底是啥呢?
前端·javascript·面试
流着口水看上帝3 小时前
JavaScript完整原型链
开发语言·javascript·原型模式
guokanglun3 小时前
JavaScript数据类型判断之Object.prototype.toString.call() 的详解
开发语言·javascript·原型模式
Embrace9244 小时前
为什么 Vue2会出现数据更新视图不更新 Vue3不会出现
javascript·vue.js·ecmascript
qq_415628174 小时前
bpmn.js显示流程图
javascript·vue.js·流程图
乐闻x4 小时前
Pinia 实战教程:构建高效的 Vue 3 状态管理系统
前端·javascript·vue.js
前端Hardy5 小时前
HTML&CSS:比赛记分卡
前端·javascript·css·3d·html