遥感云计算平台:Google Earth Engine
发布于 2021-10-16 11:43
卫星以及地面传感器所提供的地理信息数据量的迅速增长,正在鼓励产生一种新的、第四类的、大数据的科学范式,这种范式强调国际间合作、数据密集型分析、巨大的计算资源以及高端的可视化方式。
—— Goodchild
1. 背景
当今无所不在的数据感知,信息互联与动态交互,使得地理数据呈爆炸式增长,数据存储、处理和共享对计算机性能要求越来越高,传统的地理计算分析模式受限于软硬件的性能,面对海量的地理大数据分析捉襟见肘,在本地平台存储、管理以及分析数据的传统方式已经较难满足当前分析需求。另外,超级计算机和高性能计算系统逐渐过剩,大量的云计算以商品的形式变得触手可得,与此同时,来自 NASA、U.S. Geological Survey 和 NOAA 等多个美国政府机构和 European Space Agency 的 PB 级别存档遥感数据已免费对外提供,相应的地理信息数据大量级处理技术(如 TerraLib、Hadoop、GeoSpark 和 GeoMesa)也日臻成熟,但是要充分利用这些海量数据资源仍然有相当高的技术要求。其中一个主要障碍就是基础的信息技术管理:数据的获取和存储;解析模糊文件格式;管理数据库、机器分布、任务及队列、CPUs、GPU、网络;地理信息数据处理框架等等;这就导致了很多研究者难以触及这些大数据处理工具,从而限制了研究人员对于海量遥感数据的研究。
针对以上问题,Google Earth Engine(GEE)应运而生。由谷歌、卡内基梅隆大学和美国地质调查局联合开发的 GEE 是目前世界上先进的 PB 级地理数据科学分析及可视化平台。GEE 面向用户提供海量卫星影像数据集与地理数据集,包括 40 多年历史卫星影像数据与欧空局的卫星影像数据。同时,GEE 提供基于 JavaScript 和 Python 语言的 API 接口、分析算法与工具,方便用户实现大型数据的处理分析与信息挖掘。
2. GEE云计算平台介绍
GEE 全称为Google earth engine,它是一个集科学分析以及地理信息数据可视化的综合性平台。2008年Landsant系列卫星数据面向全球免费开放,Google公司将其全部数据集存储于高性能数据库中,并与云计算引擎相链接开发出GEE,面向科研人员、教育人员、非盈利性机构,企业以及政府机构等提供免费的遥感数据分析服务。至今,其数据库已经涵盖多个卫星平台数据,提供的历史影像数据时间序列最早可以追溯到上世纪70年代。另外,GIS的矢量数据集正在不断提交到数据库中,在数据存储中心支持下为全球用户提供云计算服务。
作为地理云计算服务平台,GEE 将地理数据分析算法封装成函数接口的形式提供给用户,通过互联网可以使用户快速地访问海量的影像数据以及其他空间数据,而不需要下载到本地,在云端实现当前地理空间数据分析的全部流程。通过云计算还可以使共享的计算机软硬件资源和地理大数据,按需求提供给用户使用,使任何用户都可以使用服务商提供的多平台软硬件资源和地理大数据,开展常规个人计算机无法实现的地理计算和数据分析。
3. GEE云平台系统架构
GEE云平台建立在Google 数据中心的一系列支持技术之上,包括Borg集群管理系统、Bigtable和Spanner分布式数据库、Colossus和执行流水线并行计算的FlumeJava框架。
GEE整个系统由前端调用服务,API,云端服务器和后台数据库4个模块组成(见图1)。
前端调用服务包括Earth Engine 自带的编辑器Code Editor,以及第三方的应用Web Apps。API包括基于Web的JavaScript开发网站和基于Google Colab开发框架的Python API客户端,两者均部署在Web开发环境。另外,用户还可以将客户端API安装到具有Python环境的本地终端设备。云端服务器模块由计算硬件和服务软件构成。用户利用客户端通过Web REST APIs(本质为Http请求)来向系统发送交互或批量请求。这些即时请求通过 Front End servers 进行处理并向 Compute Master 发送下一级请求。Compute Master 则负责在 Compute Servers 资源池中进行分布式计算的任务规划。Batch Computation 的运行逻辑与此基本一致,只不过是通过 FlumeJava 框架来管理分布规划。如果用户请求计算量较小,服务器则进行动态计算,反之则进行批处理。计算完成后将过程数据进行高速缓存,并将结果传给前端经过解析后进行显示。最后,后台数据管理模块包括用户数据、资源数据以及数据传输服务3 个部分,其中用户数据包括上传到资源列表的表格、矢量和栅格数据,资源数据即GEE自带的全部数据资源,数据传输服务提供下载和上传。前面提到的 Borg 集群管理软件则负责管理系统的每个组件和每项服务在多用户之间的负载均衡。任何单一用户的请求失败只会导致重新发起查询请求而不会对系统造成其他影响。
图1 GEE 平台的系统架构
3. GEE计算服务
GEE面向遥感影像分类、预处理和地理分析计算提供超过800个计算函数库,并且在持续完善的过程中,函数如表1所示。
用户向 Earth Engie 发送的请求是基于功能进行整合和求解的。用户通过从 Earth Engine 的 800 多个函数中选取自己需要的组合起来构建自己的数据或数据处理请求,这里面既有用于地理信息处理的简繁不等的数学函数,又有机器学习、图像处理等相关的操作函数。这个算法库使得用户可以通过图像代数方法很轻松地处理图像数据,并且支持高阶的函数比如:map()和 iterate()(二者均支持对一系列图像应用随机函数)、reduce()(用来计算按照区域、滑窗、时域、光谱或其他形式组织的统计数据)。在客户端库中包含的各种类型的函数和算法。
表1图12 GEE提供的函数分类
该库的基于图像的函数的大部分是对每个像素进行代数运算,在每个频段或频段之间的基础上运行,涵盖整数和浮点数学运算,逻辑比较,位操作,类型转换,条件替换和用于处理像素数组值化的多维数组操作。另外还包括常见的像素操纵函数,例如表查找,分段线性插值,多项式求解和普遍存在的归一化差异等。该库利用几个预制的机器学习工具包,可以轻松访问 20 多种类型的监督分类,回归和无监督集群,以及用于准确性求解的混淆矩阵操作。对于机器视觉任务,可以使用常见的基于内核的窗口操作,例如卷积,形态操作,距离和纹理分析,以及简单的基于邻域的操作,例如梯度,斜率,宽高比和连通性。其他功能还包括图像和波段元数据操作,投影和重采样操作,屏蔽和裁剪,图像到图像位移和配准以及遥感应用常用的各种专用工具,包括约束光谱分离,区域增长和成本映射操作等等。
用户可以组合这些库函数以构建希望执行的计算描述。该计算描述最终以有向非循环图(DAG)的形式呈现给 Earth Engine,其中每个节点代表一个单一函数或数据访问器的执行,并包含命名函数参数的键/值对。实质上,这是一个纯函数式编程环境,而 Earth Engine 利用了函数式语言常用的标准技术,例如参考透明度和惰性求值,以实现显著的优化和效率提升。
用户使用客户端库(目前可用 Python 和 JavaScript 语言)编写 Earth Engine 程序,允许用户使用熟悉的程序式编程范式来描述如何处理图表。客户端库为图像、集合和其他数据类型(如数字,字符串,几何和列表)提供代理对象。用户脚本操纵这些代理对象,这些对象记录操作链并将它们组装成能够表达完整计算的 DAG。然后将此 DAG 发送到 Earth Engine 服务进行求解,见图2。
图2 GEE非循环分析过程
在传统的影像分析过程中,通常是直接计算栅格数据的合成像素,而这种操作则要求对输入数据集进行预处理来获取统一的投影坐标系和分辨率等。在GEE 中采取了不同的分析过程,它延迟了计算输出像素值的过程,而是针对下一步的实际需要决定对像素的计算层次,例如当要求缩放显示结果到交互地图区时,可以实时地确定输出分辨率和投影,在需要进行下一步分类或叠加分析时,则将结果直接作为输入数据集,并确定合适的分辨率和投影来计算合成像素。正是通过这种优化过程的方式,研究者可以专注于数据分析和迭代算法的开发,将算法提交到GEE 后完成大规模计算,最后把结果作为表格、影像或其他文件格式下载到本地。
4. GEE云平台公共数据目录
GEE公共数据目录提供了四十多年来的历史影像和科学数据集,并且每天都有数据更新,采用数据层和集合的方式将数据分层包装,来帮助用户实现对大规模数据的快速查询和调用,同类型数据归入同一个集合,将底层地图切片存储。涵盖气候与天气数据(Climate and Weather)、影像数据(Imagery)和地球物理数据(Geophysical)三类(见表2)。用户也可以申请向GEE公共数据目录中添加新的数据,或者上传自己的私有数据,并根据需要选择是否共享。
气候与天气数据集包括地表温度、气候、大气和天气数据等。GEE 的地表温度数据来源有Landsat 卫星热传感器以及一些航天传感器(MODIS、ASTER 和AVHRR),其范围覆盖陆地和海洋。气候模型数据可以生成长期的气候预测和地表变量的历史插值,包括NCEP/NCAR 的历史再分析数据,NLDAS-2 和GridMET 等格网化气象数据集。天气数据集包括美国国家海洋和大气局的全球预报系统(NOAA.GFS)和美国国家环境预报中心(NCEP)气候预报系统(CFSv2)的预报数据,以及热带降雨测量任务(TRMM)的传感器数据。
影像数据集的主要数据源包括Landsat、Sentinel、MODIS 和High-Resolution Imagery 系列卫星传感器平台。USGS 为Landsat 卫星生成三类数据:Tier 1(T1)是符合几何和辐射质量要求的数据;Tier 2(T2)是不符合T1 要求的数据;RT(real time)则是尚未评估的数据,评估时间可能长达一个月。此外,数据目录还包含Landsat 卫星平台的衍生数据集产品。Sentinel 数据来源于由欧洲委员会与欧洲空间局(ESA)合作发起的哥白尼计划,包括Sentinel 1A 和1B 的全天候雷达影像、Sentinel 2A 和2B 的高分辨率光学影像,以及Sentinel 3 适合环境和气候监测的海洋和陆地数据。MODIS 数据来自美国国家航天局(NASA)的Terra 和Aqua 卫星上的中分辨率成像光谱仪(MODIS)传感器,包括每日采集的地球影像和表面反射率数据,以及植被指数和积雪等衍生产品。High-Resolution Imagery是由美国国家农业影像计划(NAIP)发布的航空影像数据,分辨率为1 m,可以捕捉到很多城市细节。
地球物理数据集包含地形、土地覆盖、农田以及其他地球物理数据。地形数据集即数字高程模型(DEMs)用以描述地球形状,在数据目录中的全球地形数据集有航天飞机雷达地形测量(SRTM)数据集(30 m 分辨率)、区域高分辨率DEM 及其衍生产品如世界自然基金会(WWF)的流域水文数据库;土地覆盖图是根据土地覆盖类型描述自然景观,如MODIS 衍生年度土地覆盖图等;农田数据集由农田数据产品组成,提供农田范围、作物优势和水源等信息;其他数据集有来自国防气象卫星计划的Operational Linescan系统(DMSP-OLS)的夜间灯光数据等。
表2 GEE云平台公共数据目录常用数据集
5. GEE平台优势与应用
随着云计算技术的不断发展,GEE 从2008 年提出构想不断发展至今天,已经成为提供覆盖全球的地理空间数据的集成、处理、可视化和综合分析一站式解决方案的云端共享平台,总结GEE的平台具有如下优势:
(1)免费向非商业用户提供使用。GEE面向全球科研人员、学生、教育工作者等提供非商业性质用户提供免费服务。
(3)算法高集成度以及可定制性。在算法集成方面,提供了持续更新的智能算法以及可供研究者定制的功能接口,这将激励研究者不断尝试新的算法来实现科学构想,而不只是停留在理论层面,这将进一步促进平台的智能化发展,很多以往难以解决的问题都将开启新的思路。
(4)后台处理运算能力强。使用GEE平台,用户可以比较方便地处理全球影像数据,解决了用户受限自己本地机器运算能力不强,以及存储空间不足的问题,能够高校、快速地处理大范围的影像。
(5)完整的生态开发环境。目前GEE 已经拥有一个完整而良好的开发生态环境,开发者和平台核心团队人员可以通过论坛,会议等多种形式进行深入甲流,探讨各种问题,除了现有的工具资源,用户还可以利用GEE提供的开发包做二次开发,满足更多的需求,实现更加强大的功能。
GEE被广泛应用于各个领域,涵盖全球森林变化,全球地表水变化、作物产量估算、稻田制图、城市测绘、洪水测绘、火灾恢复和疟疾风险绘图等等不同主题。它还被整合到许多第三方应用中,例如分析物种栖息地范围(Map of Life)、监测气候(Climate Engine)和评估土地利用变化(Collect Earth)等等。
参考文献
1.郝斌飞, 韩旭军, 马明国, 等. Google Earth Engine 在地球科学与环境科学中的应用研究进展[J]. 遥感技术与应用, 2018, 33(4): 600-611.
2. GorelickN, Hancher M, Dixon M, et al. Google Earth Engine: Planetary-scale geospatialanalysis for everyone[J]. Remote sensing of Environment, 2017, 202: 18-27.
3.曹博文,杨现坤,邱俊良.基于Google Earth Engine的遥感大数据分析研究进展与应用[J].地理空间信息,2021,19(04):13-19.
4.付东杰,肖寒,苏奋振, 等.遥感云计算平台发展及地球科学应用[J].遥感学报,2021,25(01):220-230.
5. 董金玮等. 遥感云计算与科学分析—应用与实践[M]. 北京: 科学出版社, 2020.
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材