吴瑞龙,何华贵,王明省,张鹏程,龚磊,曲宁
(广州市城市规划勘测设计研究院,广东 广州 510060)
城市地理空间大数据是指包含位置信息的特定类型的大数据,位置信息在大数据时代扮演着重要的角色,目前大多数数据本质上是空间数据,通过无处不在的位置感知传感器如卫星、GPS等[1~3],地理空间大数据在气候科学、灾害管理、公共卫生、精准农业和智慧城市等广泛领域的科学发现提供了巨大机遇[4,5]。如何从大数据中高效、及时地提取有意义信息的能力显得尤为重要,由于大数据的“5V”特性:数量(Volume)、速度(Velocity)、多样性(Variety)、准确性(Veracity)、价值(Value),以及地理空间数据的内在时空特征[6,7],高效提取这些有意义的信息和模式具有挑战性,尤其对于地理空间大数据而言,前四个特征必须在动态时空的背景下处理,才能从大数据中提取“价值”,这就给地理空间大数据带来了进一步的挑战[8]。高性能计算(HPC)其基本思路是对问题进行分而治之,为大数据分析提供了一个基本可行的解决方案[9~11],HPC处理地理空间大数据可以帮助我们在时间和空间约束条件下做出更快更好的决策,如自然资源调查监测、国土空间规划、遥感影像在线服务、应急响应等[12~15]。
(1)对地观测
地球观测系统利用远程传感器生成大量不同的、动态的、地理分布的地理空间数据,随着其越来越高的空间、时间和光谱分辨率[16],遥感成为全球范围内收集对地观测数据的主要手段之一,近年来无人机遥感为大数据采集开辟了另一条渠道,以其高机动性、灵活性、时效性强等优势被广泛应用于自然资源调查监测、气象、测绘、应急等领域,成为城市地理空间大数据的重要数据来源[17,18]。
(2)物联网
物联网(IoT)是Kevin Ashton在1999年使用射频识别(RFID)进行供应链管理时首次提出的,简单地说,物联网将“物”与互联网连接起来,让“物”之间相互交流和互动,形成一个由物联网组成的庞大网络,包括设备和对象,如传感器、手机、车辆、家电和医疗设备[19,20],这些设备加上无处不在的基于位置的传感器,正在生成大量的地理空间数据,与对地球观测生成的结构化多维地理空间数据不同,物联网持续生成全球范围内的非结构化或半结构化地理空间数据流,这些数据流更具动态性、异构性等特点[21]。
(3)自发地理信息
自发地理信息(VGI)是指由公众创造和传播地理信息的过程,在这个过程中,大众被视为地表自由移动的传感器,无时无刻不在生产空间相关的数据[22,23],同时随着5G的发展普及,数据呈爆发式增长,在GPS和智能终端的支持下,全球数十亿用户传感器正在生成和传播大量的基于位置的数据[24,25]。
数据存储和管理对于任何系统都是必不可少的,使用高性能计算处理地理空间大数据需要考虑两个因素:首先,海量的数据需要大而可靠的数据存储方案,传统存储和保护容错机制不能有效地处理PB级以上数据;其次,地理空间大数据的快速增长要求存储方案具有灵活性,方便扩展,以满足数据不断增长的存储需求。高性能计算通常采用三种数据存储方案,如图1所示:
(1)一切共享架构SEA(Share Everything):该架构的数据存储和处理通常由一台高性能计算机支持,并行化通常通过多核或图形处理单元(GPU)访问本地磁盘上的数据来实现,SEA的存储限制在一台计算机上,不能有效地处理大容量的数据集,不能满足地理空间大数据需求。
(2)共享磁盘架构SDA(Share Disks):SDA是一种传统高性能数据存储体系结构,它将数据存储在一个共享系统中,该系统可以由网络上的计算机集群并行访问,在大数据时代之前,该架构广泛应用于计算密集型的地理空间应用,然而SDA并不能很好地处理大数据,因为大数据量的网络传输会迅速造成系统瓶颈,同时共享磁盘容易成为系统单点故障。
(3)无共享架构SNA(Share Nothing):该架构将数据分布式地存储在集群计算机上,每个计算机本地存储数据的一个子集,各处理单元相互独立并通过协议通信,各自处理自己的数据,处理后的结果向上层汇总或在节点间流转,具有良好的并行处理和扩展能力,SNA的一个经典实现是Hadoop的分布式文件系统HDFS,HDFS将数据分割成块,并将它们存储在Hadoop集群中不同的计算节点上进行并行处理,大多数NoSQL数据库包括HBase、MongoDB都是像HDFS一样,采用SNA来存储和管理大型非结构化或半结构化数据。由于HDFS和NoSQL数据库不是为存储和管理地理空间数据而设计的,因此有很多研究通过整合空间数据来修改或扩展这些系统以支撑海量的地理空间数据,如HadoopGIS、SpatialHadoop、GeoSpark等框架,都是通过扩展HDFS来支持海量空间数据的存储与管理[26~29]。
图1 高性能计算系统中不同的数据存储架构
空间索引用于从海量空间数据集中快速查询所需数据,空间索引的性能决定了空间数据访问的效率,直接影响并行数据处理的性能和空间分析能力。大多数空间索引基于树结构,如四叉树、Kd-树、R-树及其变体,四叉树递归地根据每个叶单元的最大数据容量将二维空间划分为四个象限,Kd树是一种二叉树,通常用于最近邻搜索,R-树类似于Kd树,但它不仅可以处理点数据,而且还能处理多边形数据,因此R-树及其变体被广泛用于空间索引,特别是针对地理空间大数据,乐鹏、向隆刚等通过对SparkRDD进行优化扩展,提升Spark处理大规模空间数据的查询分析速度,其本质也是对空间索引的优化[30,31],SpatialHadoop使用一种基于R树的两级空间索引机制来管理矢量数据[26],GeoMesa扩展了HBase作为存储地理空间大数据的底层数据库支撑,基本原理是将时空数据的三个维度,经度、纬度、时间数据按照Z曲线进行降维,得到一维数据作为RowKey使用,能够快速有效地实现对海量空间大数据的查询处理[32,33],在高性能计算环境中处理地理空间大数据的大多数索引方法都需要对数据进行转换或预处理。HBase中GeoMesa的索引结构如图2所示。
图2 HBase中GeoMesa的索引结构
任务调度是指将子任务分配给并行处理的并行计算单元如CPU或GPU,是高性能计算中必不可少的技术,子任务的分配和执行直接影响并行化的性能,为地理空间大数据处理设计高效的任务调度方法,负载均衡是关键,用以保证每个计算单元接收的数据处理子任务数量相似,以便每个子任务同时完成,在并行计算中,任务的完成时间由最后完成的任务决定,因此应该考虑子任务处理的数量和工作负载[34~36]。虽然大多数大数据处理平台如Hadoop都有内置的负载平衡机制,但它们在处理地理空间大数据时效率并不高,如GeoSpark、SpatialHadoop等以Hadoop为基础的框架都是采用通用的负载平衡机制[26,27],这就需要结合地理空间大数据的空间特性,有针对地设计负载均衡算法,使其能够有效地将地理大数据处理进行任务分解,提高并行效率。多任务并行处理基本框架如图3所示。
图3 多任务并行处理基本框架
雾计算是一种新兴的计算范式,位于智能终端设备和传统云计算中心之间,其目标是实时处理分布式物联网设备产生的大数据,以支持智能城市、精准农业、灾害监测和自动驾驶等应用。传统物联网架构中,边缘设备计算能力有限,需要将其产生的数据上传到云进行处理,因为数据通常远离云,造成明显的网络延迟[37,38]。雾计算在边缘设备之间提供了一个中间计算层,即雾节点集群,雾节点具有更强的计算能力,且靠近网络延迟较低的边缘设备,可快速将边缘设备的数据传输给它们进行实时过滤和处理,边缘设备上无处不在的位置传感器产生海量地理空间大数据,实时地理空间数据处理在雾计算中至关重要[39,40],高性能计算成为雾环境中地理空间数据处理分析快速响应的重要保障,研究如何有效地从边缘设备传输数据到云环境中是非常必要的,需要研究适合雾计算节点的地理空间数据传输、并行计算算法及平台,如图4所示基于雾计算的地理空间大数据计算框架。
图4 基于雾计算的地理空间大数据计算框架
人工智能(AI)是一个计算机科学领域,它使用计算机模拟人类智能来解决问题,深度学习作为机器学习在人工智能中的一个分支[41,42],近年广泛应用在自然语言处理和计算机视觉,地理空间人工智能(GeoAI)利用深度学习等人工智能技术从地理空间大数据中提取有价值的信息,GeoAI已经广泛应用于各个领域,特别是在遥感应用领域,如图像分类、目标检测、土地覆盖制图等[43~45]。将高性能计算应用于GeoAI能够训练更优的神经网络模型,较大程度改善学习成果,国内外科技巨头一直致力于运行在大型计算集群上的人工智能平台研究,然而目前大多数GeoAI研究都是在单节点计算机或工作站上进行的,使用相对少量的数据来训练模型,大多缺乏面向地理空间数据的深度学习平台,只支持将整个训练集读取到计算机内存中,难以扩展到大数据集中,这就迫切需要从地理空间大数据和工程学角度开展更多的研究,开发高性能、可扩展的地理空间大数据框架和平台,充分利用地理空间大数据构建更大、更好的模型。
地理空间异质性体现在多个方面,包括数据收集方法、数据模型、数据格式、时空尺度、分辨率等,基于位置的传感器从各行各业收集地理空间大数据,进一步造成异质性,这种异构性使得地理空间大数据与高性能计算的集成和融合更具挑战性[46,47]。目前的高性能计算研究侧重于使用特定并行算法处理特定类型的地理空间数据,主要原因是缺乏统一的参考框架对地理空间数据进行有效存储、集成和管理,传统坐标系统如CGCS2000,WGS84作为参考框架已经被广泛应用,在异构空间大数据场景下,往往需要将各种坐标系进行统一,会产生大量的坐标投影转换工作,OGC在2017年提出了全球离散网格系统(DGGS)新一代参考系统标准规范,该参考系统旨在提供一个统一的、全局一致的参考框架,以集成不同时空尺度和分辨率的异构空间数据,如栅格数据、矢量数据和点云数据等,DGGS通过划分离散的数据子集,进行存储和管理[48,49],非常适合高性能计算的并行处理,目前大多数基于高性能计算的空间数据处理研究和工具仍停留在传统的参考框架上,DGGS框架下结合高性能计算的时空索引、并行算法和大数据计算平台有待进一步研究。
城市地理空间大数据在大数据时代发挥着越来越重要的作用,高效地处理地理空间大数据对于挖掘地理信息进行知识发现和决策辅助具有重要意义,利用高性能计算来处理地理空间大数据是可行的解决方案。本文首先总结了地理空间大数据的主要来源,讨论了使用高性能计算处理地理空间大数据的关键技术,最后在高性能计算和地理空间大数据的背景下,讨论了高性能计算在处理地理空间大数据的发展趋势,地理空间大数据同时给高性能计算带来了新的挑战和机遇,地理空间大数据、云计算、雾计算和人工智能的交叉学科影响正推动和重塑地理空间数据科学。