本文主要对GEE中的各类外部数据导入、下载与管理以及数据与代码分享等操作加以介绍。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第七篇,更多GEE文章请参考专栏:GEE学习与应用(https://blog.csdn.net/zhebushibiaoshifu/category_11081040.html)。
首先,提到GEE的外部数据管理,不得不提及目前已经停止服务但曾经赫赫有名的Fusion Tables。Fusion Tables是谷歌提供用以存储、可视化与分享数据的网络应用程序,在其退役前在GEE中尤为常见,常用来导入、管理矢量数据(GEE中栅格数据的导入方式在当初和目前都是一致的,没有发生大的变化);但这一网络应用程序在2019年12月就被谷歌官方关闭。
尽管Fusion Tables已经被关闭,但本文开头还是对其当初的外部矢量数据导入方法加以回顾,从而找寻GEE中目前最新的外部矢量数据导入方法与Fusion Tables外部矢量数据导入方法相比的优势。
在当年,若需要通过Fusion Tables导入矢量数据,首先需要打开谷歌云端硬盘官网(https://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教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117296956)中导入的Landsat 8 Collection 1 Tier 1的大气表观反射率TOA Reflectance产品效果是一样的。
同样,按照第二篇GEE教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117296956)中内容,可以对其加以重命名并在地图中加以显示:
Map.addLayer(Wuhan,{},"WUHAN");
此外,点击“SHARE”可以对这一景遥感影像加以分享。
在弹出的界面中,可以对遥感影像的分享权限加以配置。
此外,如果我们需要下载GEE中的栅格图像,可以基于.getDownloadURL({})
函数实现:
var URL=Wuhan.getDownloadURL({});
print(URL);
其中,.getDownloadURL({})
获取对应栅格数据的下载链接,并通过print()
函数加以打印。
我们这里就直接以刚刚上传好的遥感影像为例进行下载;但是遇到一个问题:我们上传的遥感影像空间区域比较大,波段数量比较多,导致整幅图像下载时超出了GEE下载最大数据量的限制。
我们可以再来看一下遥感影像中波段的信息,从而尝试选择其中一个波段下载。
依据第六篇GEE教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/119145230)中内容,依据波段名称对某一波段加以选择,并对选择后的单波段栅格图像加以下载:
var band=Wuhan.select("b10");
print(band);
var URL=band.getDownloadURL({});
print(URL);
可是发现,单一波段图像虽然在数据量上显著下降,但是还是超出了GEE数据下载的限制。
因此,我们手动划定一个矢量矩形区域,并对单波段图像进行裁剪,从而减少下载数据的空间范围,看看能不能下载。
在地图左上角,选择以下按钮:
并在原有遥感影像范围内划定一个小的区域:
可以看到,划定完毕后这一矢量区域已经加入了GEE中。
对其加以重命名后,我们依据第三篇GEE教学博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/117390431)中内容,依据刚刚划定的矢量区域对单波段遥感影像加以裁剪,并重新执行.getDownloadURL({})
函数。
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”进行共享,即可实现将其内部的代码分享给他人。