瞻通车辆实时追踪定位物联网无线通信技术有限公司
瞻通实时定位GPS

新一代GIS基础软件应该具备的四大关键技术探讨及其应用

简体   繁體 字体:

近年来,信息技术在地理信息技术的发展过程中发挥着越来越重要的作用。伴随着云计算与大数据在地理信息领域的应用,地理信息技术步入了一个新的发展阶段。

包括:将地理信息运行环境从Windows操作系统扩展到Linux和UNIX操作系统的跨平台GIS技术,推动GIS应用从桌面PC端延伸到云端、Web端和移动端并实现云端互联与云端协同的云GIS技术,涵盖从二维空间到全空间地理信息且具备对象级三维空间分析能力的三维GIS技术,以及支撑大规模多源异构数据的价值挖掘和知识发现的大数据GIS技术。

本文从我国地理信息技术的发展历程出发,总结了当今GIS技术的发展情况。

1 我国地理信息技术的发展历程

地理信息系统(geographic information systems,GIS)经过几十年的发展,已经从最初的计算机机助制图技术,发展到了建立在云计算和大数据之上的地理信息服务,融入了智慧城市、资源环境、交通运输、商业金融等人类社会的方方面面。GIS技术的发展方向,一直备受学术界和产业界的重视[1-4]。国际咨询机构Gartner的研究报告也表明,最有影响力的技术趋势都与GIS有关[3]。分析和把握GIS技术的发展方向,对于理论研究、技术研发和产业发展都具有重要的参考价值[4]。

根据我国GIS基础软件30年的发展经验,地理信息技术发展的驱动因素主要是信息科学技术(information technology,IT)和应用需求[5]。本文从这两个角度出发,结合云计算、大数据等IT技术潮流,以及丰富多彩的地理信息应用情况,总结和思考了新一代GIS基础软件发展的关键问题与技术方向。

10余年来,信息技术一直是GIS技术演化与发展最为直接的动力。每一轮信息技术的变革,都深刻影响并推动了GIS软件的发展。2005年,GoogleEarth的出现,开启了互联网地图服务的新时代,极大地扩展了地理认知的范围,服务式API,Java Applets,CORBA,微软.NET、互联网通信协议等IT技术进入GIS领域,带动了网络GIS的发展[6]。一些GIS厂商包括ESRI、MapInfo、Intergraph、Autodesk、武大吉奥、超图软件在当时都推出了各自的WebGIS平台[7]。随后,IT 领域的面向服务架构(service-oriented architecture,SOA)和富互联网应用程序(rich internet application,RIA)开始应用于Web系统———诸如用于分布式空间数据集成平台的建设,允许客户端应用访问和分析物理地址各异的空间数据,以及用于企业业务系统的建设,提高组织内部软件组件之间的业务一致性、互操作性和敏捷性,降低因业务变化导致的系统更新和维护损失[8-9]。

随着物联网、云计算、移动计算、大数据和智慧城市的发展,带来了智能感知、虚拟化、分布式、并行处理等突破性技术[10-11],推动了云GIS的发展,以及云GIS和多种终端的协同[12],使得地理信息应用无处不在。云GIS是在商用的Amazon EC2、Windows Azure 或者开源的OpenStack、VMware、Docker等IT云平台之上,增加GIS的时空分析能力,解决地理信息领域的数据密集、计算密集、时空密集和高并发访问难题[13]。云GIS平台软件提供商如ESRI、超图软件、中地数码、武大吉奥都提供互相关联或依赖的云服务模式[14]。云GIS作为GIS发展过程中的一个里程碑,提供与高端网格计算框架下相同的并行计算能力,但更易访问与可伸缩,降低了发现、获取、处理和利用大规模数据进行科学发现的成本[15]。

在应用需求的推动方面,各行业对地理信息系统相关技术和资源的需求不断扩大,行业应用的广度和深度不断扩展,成为GIS发展的强大动力[11]。大数据时代,智慧城市、不动产登记、城市治理、国防军事、应急救援、公共安全、航空航海等众多领域都对带有位置信息的大数据的空间分析、流处理、动态可视化等在内的新GIS技术产生强烈需求。如社会感知(social sensing)应用的发展,需要GIS扩展其空间模型和分析方法,解决智慧城市中“人地关系”定量化短板问题[16];“滴滴打车”等共享经济的出现,需要GIS实现基于位置的高精度的轨迹预测和距离估计等空间分析方法[17]。为了应对这些具有位置信息的、大体量、流质、异构数据的存储管理、分析与可视化,需要发展大数据GIS技术[18-19]来支持更高效、更明智的决策,解决人类社会的可持续发展问题。

而对于多源、异构、多类型的三维内容,如何实现其在云、Web和移动终端上的流式传输、高性能可视化和空间分析,则是三维GIS需要解决的新问题[20-21]。总体而言,我国在GIS的应用水平方面,尤其在包括云计算、三维建模、虚拟现实等在内的大量新技术的应用领域,已处于国际第一梯队,甚至站在国际最前沿[22]。领先的应用蕴含领先的需求,领先的需求催生卓越的产品和技术,从而促使GIS技术不断开拓创新。

信息技术的发展,和地理信息应用需求的变化,使GIS技术面临新的发展机遇。当前,新一代GIS需要支撑不同硬件设备和操作系统的通用GIS功能、优化提升云GIS的服务效能、强化支持点云等新兴三维数据源的三维GIS能力和实现大数据环境与GIS挖掘分析的深度集成,同时要与IT技术和应用需求持续共同发展,使新的GIS应用模式成为可能,进而对GIS应用开发商及最终用户产生深远的影响。

2 新一代GIS基础软件的关键技术

在应用需求牵引和信息科学技术的推动下,本文将GIS技术的发展方向概括为跨平台GIS技术、云GIS技术、三维GIS技术和大数据GIS技术,这也是新一代GIS基础软件发展的技术基础。

2.1 跨平台GIS技术

GIS技术正朝着地理信息应用多样化、硬件设备与操作系统多样性、开放和云特性等方向发展,要求GIS软件具备跨平台特征[23]。跨平台指同一个软件或其开发的应用,其运行不依赖于硬件设备和操作系统[24]。硬件设备包括具有不同CPU类型的(云)服务器、桌面电脑和移动设备等;操作系统包括服务器和桌面设备采用的具有不同CPU 指令集(如32位或64位的x86或ARM 架构)的Windows、Linux和UNIX操作系统,以及移动端设备采用的Android和iOS操作系统等。

随着云计算和大数据等新IT技术的出现,GIS软件只有具备跨平台能力,才能充分发挥这些技术的性能,因为这些技术大都原生于Linux和UNIX操作系统[25]。我国政府空间信息化建设的国产化替代也需要GIS软件支持各种国产Linux操作系统。跨平台GIS技术是指基于同一套GIS内核,同时支持上述多种硬件设备和操作系统,具体包括以下3个方面:

1)支持各种终端尤其是移动终端。移动设备种类繁多,操作系统主要是Android和iOS。在线模式下,采用B/S架构即可让各种终端高效访问服务器上强大的GIS功能,实现对多种移动终端的支持。而离线模式下,如在没有信号的海洋、沙漠、原始森林等区域,或因保密原因不能连接网络的应用场景中,由于跨平台GIS技术的微内核和松耦合设计能够保证GIS软件随硬件平台的变化裁剪体积且基本GIS功能不缺失,从而实现离线应用。

2)支持主流的服务器和操作系统。云计算和大数据技术多采用性能更高更稳定的Linux操作系统,尤其是Apache Hadoop、Apache Spark等大数据技术都原生于Linux,因此建设于其上的生产运营系统大都运行于Linux。为更高效地发挥新技术的效能,GIS要能够运行于各种主流的服务器操作系统。

3)支持自主可控的硬件与软件。为保障空间信息安全,越来越多的政府和军事应用采用自主可控的计算设备。这就要求GIS 软件能够较好地支持龙芯、飞腾、申威、元芯等自主CPU,以及中标麒麟、优麒麟、深度Linux、凝思磐石等自主操作系统。

跨平台GIS技术的实现难点在于不同硬件设备和操作系统具有不同的处理器架构,不同的CPU指令集,不同的应用程序接口(如3DAPI),需要从GIS内核(基础GIS功能模块)上实现差异化屏蔽,为应用程序提供统一的接口。其主要技术特点可以概括为以下3点:

1)跨硬件平台。不同处理器架构对数据处理的方式存在差别,如x86架构的Intel系列或AMD系列处理器采用小端(Little Endian)方式对数据进行编码,而IBM 的PowerPC处理器则采用大端(Big Endian)方式,有些ARM 处理器可同时采用这两种方式。如果不屏蔽这种差异,GIS软件在不同平台间传递和处理数据时会出现数据错乱、分析结果错误等情况。利用标准C++语言,在GIS内核中封装对大小端的自动转换处理,制定内存流访问和数据访问的规范,解决不同硬件平台因字节序处理方式不同产生的问题。

2)跨操作系统。广泛应用于各种操作系统的典型CPU 指令集包括x86/x64、Power、MIPS、ARM(32bit)、RAM(64bit)、Itanium、A7、SW-64等。不同CPU指令集由于行尾标识符、路径分隔符、字符编码、大小写敏感、数值长度、字节对齐方式等不同,使同一程序在编译后存在差异,无法在跨平台运行。利用标准C++语言,编写数据结构和空间分析算法等内核功能,屏蔽不同CPU 指令集的差异,实现“一次编写,到处运行”。

3)跨平台显示。不同操作系统图形可视化技术和可视化效果存在明显差异。利用虚拟显示引擎为不同操作系统下GIS可视化引擎的开发提供统一的访问接口和显示协议,据此标准,在Windows上利用GDI+,在Linux和UNIX上利用QT等技术开发各自的可视化引擎。为解决不同显示引擎导致不同操作系统上显示效果的差异,采用标准C++实现基于内存绘制的通用跨平台显示引擎,通过内存和处理器实现不依赖显卡的图形绘制和输出,并在不同平台上保持显示的一致性。

目前,能够从内核原生支持Windows和Linux等操作系统的GIS基础软件,主要有开源软件和商业软件两大类。开源GIS软件大多原生于开源操作系统Linux,可以在不同CPU 平台上编译运行,具有跨平台能力[24],开源GIS软件的主要贡献来自于技术爱好者和科研工作者,缺乏足够的技术支持和服务,较少被商业应用开发者使用[26]。相比之下,商业GIS软件在系统性、完整性、成熟度和易用性等方面都具有显著优势。这源于规模化的研发队伍及持续性的积累与开发,更源于广泛的市场需求的响应与促进[23],可以帮助地理信息行业更充分地分享信息技术突飞猛进带来的红利。

2.2 云GIS技术

云计算作为分布式计算的最新进展,是通过网络集中计算资源并按需使用,达到节约和经济地利用计算资源的一种技术,可以方便地实现更大规模的计算[27]。这为解决地理信息领域面临的数据密集、计算密集、并发密集等问题提供了技术方案[18,28-29]。云GIS技术是地理信息科学的理论和方法在云计算中的实现,具备按需自服务、跨网络访问、资源池化、动态可伸缩和按使用付费等特征[30],并提供Geo-IaaS、Geo-PaaS、Geo-SaaS、Geo-DaaS等云GIS服务模式(图2)

GIS云平台结构与服务模式

图2 GIS云平台结构与服务模式

  云GIS也可以简单的理解为GIS软件和应用在云计算环境上运行,将云计算的各种特征用于支撑地理空间数据的存储、建模、处理与分析,改变了传统GIS的应用方法和建设模式,使得GIS应用无处不在。其技术特征可以概括为如下几个方面。

1)云环境下的GIS资源集成和并行计算。针对云环境下数据的异构多源分布式等特点造成的数据孤岛难题,利用开放式空间数据库互联互访(open geospatial database connectivity,OGDC)接口[31],统一对数据的共享与无缝集成方式。利用云计算多核、大内存、64位计算环境和弹性扩展优势,优化数据处理算法,实现了空间分析算法的多线程并行、适应分布式集群环境的GIS并行计算,大幅提升了数据密集和计算密集场景的处理效率。利用云计算的微服务架构和实例化技术(如Docker容器技术),实现GIS功能的解耦和服务化拆分以及相互间的运行隔离,提高GIS计算性能和资源利用率。

2)支持跨终端的资源访问和应用开发。针对B/S架构下多种应用终端(组件GIS、桌面GIS、移动GIS和WebGIS)的统一访问问题,采用表述性状态转移(representational state transfer,REST)架构,实现基于标准Http协议的应用程序接口,使其通过互联网、移动互联网就能获取云计算支撑下的GIS计算、服务、软件和数据。在应用中,融合Web-GL技术实现轻量级开发客户端,减少Web应用开发对终端的依赖,最大化发挥云计算优势。

3)云端互联和云端协同。云GIS和各种终端之间的连接,除了直接连接之外,还存在跨内外网、多级、混合等连接方式,面临着不同程度的复杂问题,如网络带宽压力、异构服务访问等。通过远程服务代理和Geo-CDN 缓存加速技术[32-33],缓解超高并发访问网络压力,提高终端访问能力和效率。通过服务端聚合和客户端聚合[34],实现跨区域、跨层级、跨部门异构GIS应用系统的资源整合,这使终端直接利用云上的多源地理信息和服务,再利用消息队列等机制,实现多终端在线协同工作。

2.3 三维GIS技术

随着三维空间信息获取技术的发展,大规模、高精度、低成本数据的获取成为现实,大幅降低了三维应用建设成本。多源异构三维空间数据及其Web应用的增长,要求形成统一的数据规范和服务标准,实现数据的共享和互操作。虚拟现实(virtual reality,VR)、增强现实(augment reality,AR)、3D 打印、WebGL等新IT 技术也在积极与三维GIS技术融合。当下,三维GIS的技术特点概括为几个方面。

三维GIS技术

图3 三维GIS技术

  1)研究对象从地球表面扩展至全空间。三维GIS技术不仅支持侧重表达物体表面或轮廓的数据模型,如倾斜摄影模型、激光点云,也支持能够表达物体内部结构的数据模型,如建筑信息模型(building information model,BIM)、三维实体数据模型,将对地理空间的表达扩展至地理信息全空间。其中,三维实体数据模型采用高精度、拓扑闭合的三角网表示三维实体对象,不仅可表达真实物体(如建筑),也可表达抽象三维空间(如监控范围等),定义了三维实体的交、并、差等布尔运算和相离、邻接、包含等空间关系判断及通视分析、可视域分析等三维空间分析算法。

2)多源数据融合。将新型测绘手段获取的倾斜摄影、BIM、激光点云等三维数据与传统的影像、矢量、地形数据、精细模型、地下管线、水面数据、场数据等多源数据进行融合,提高了三维场景的建模成本和精度。

3)三维GIS标准化与数据共享。三维数据呈现多源异构互不兼容的特点,为实现不同格式三维数据的共享和互操作,Skyline的3DML、Cesium的3D-Tiles、ESRI的I3S、SuperMap的S3M 等在内的众多数据标准先后推出。若所有数据源都采用统一的数据和服务规范,那么海量三维数据在异构三维系统间的高效传输与解析将成为现实,大幅降低三维Web应用的建设难度和建设成本。

4)基于WebGL技术的Web三维。随着HTML5技术和标准的普及,作为其重要特性的Web-GL,支持浏览器端硬件加速和OpenGL ES规范,为构建B/S架构的三维GIS应用提供了可行性。同时在跨平台GIS技术的基础上,发展出了Web端的三维空间分析能力。GPU 计算技术和VR软硬件技术为GIS提供了沉浸式的3D 交互方式,微软HoloLens、HTC VIVE Pro、Oculus等AR 设备成为GIS虚拟现实应用的入口[35]。

三维GIS技术在二维、三维一体化的数据模型、数据管理、空间分析与可视化的发展方面已经非常成熟,通过不断与三维信息获取技术、IT技术的融合,取得了新的进展。如与倾斜摄影和激光点云的融合,大幅提升了三维GIS数据采集与运算的生产效率,增强并提高了三维场景的真实感与精度,与BIM 的融合实现了室内外一体化的无缝衔接,与WebGL的融合将推动Web 3D应用的发展,并成为新的趋势。

2.4 跨平台GIS技术

互联网、移动互联网、物联网的发展,使全球数据出现爆发式增长。这些数据种类多、体量大、变化速度快、价值密度低[18],传统技术难以管理和分析。由于数据中绝大多数都带有或隐含空间位置信息,成为GIS新的数据来源,分析其空间模式和空间特征,挖掘其中的自然与人文社会变化规律,可使数据发挥更大的价值[36]。

Apache Hadoop、Apache Spark为代表的IT技术在大数据的分布式存储、分布式计算、流处理方面取得了较大的研究进展,但缺乏针对位置特征的空间索引和空间分析能力[19]。而传统GIS不支持针对大数据的分布式的存储与计算。对大数据进行空间检索和空间分析,需要利用大数据IT 技术进行GIS并行计算框架的研发,也需要重新编写传统GIS算法使其适合分布式处理[37]。目前大多数研究都处于大数据GIS技术的探索阶段,也有部分研究利用大数据IT技术实现了结构化查询和单一的空间分析框架[38-40],但还没有任何研究实现结合IT大数据处理能力和GIS空间管理与分析能力的大数据GIS基础软件。构建大数据GIS基础软件,使其原生支持IT大数据计算体系和运行环境,降低大数据空间分析挖掘的技术门槛,是GIS与大数据IT技术深度结合的意义所在。

大数据GIS技术是以云GIS技术、跨平台GIS技术和三维GIS技术为支撑(后者为大数据处理提供弹性的计算资源、跨平台的访问与应用能力和三维空间建模与分析能力),在GIS内核上与大数据IT技术融合,具备分布式存储与管理、流数据处理、分布式空间分析与可视化等基础核心能力[41]。其技术特点可分为以下几个部分。

1)分布式存储与管理。传统关系数据库的集中存储方式对大数据逐渐失效。大规模分布式存储系统如集群式关系数据库Postgres-XL,分布式文件系统HDFS,非关系型数据库(Not Only SQL,No-SQL)MongoDB 和Elasticsearch等。这些存储技术被大数据GIS综合用于PB级矢量数据、文件型数据和百亿级瓦片等异构数据的存储,并在内核上扩展了大数据引擎,提供统一的管理接口。

2)流数据处理。在环境监测、车辆位置监控、流动人口行为分析等应用场景下,数据一般持续到达、规模庞大,且状态变化不可预测,要求处理技术具备增量计算、时间窗口、横向扩展且高容错性的处理能力。在Apache Storm,Apache Flink,Apache Spark Streaming等流数据处理框架上扩展对空间对象和空间算法的支持,是空间流数据处理的有效手段。如采用模型化的方式,在Spark Streaming上封装了空间流数据分析模型,如地理围栏、路况计算等,并提供可视化的建模工具进行模型实现。

3)分布式计算与空间分析。在Spark弹性分布式数据集(resilient distributed datasets,RDD)模型上,扩展了适用于空间数据表达的分布式要素数据集(FeatureRDD),支持各种分布式系统中多源数据的接入。利用RDD基础接口从空间、时间、属性多个维度扩展或建立分布式的空间计算与空间分析模型,如属性汇总、要素连接、轨迹重建、热点分析、聚合分析、密度分析等,支持面向大数据的分析与挖掘。分析结果可以通过热力图、格网图、散点图、密度图、OD图等表达大数据空间分析对象的聚合程度、变化趋势和关联关系等,直观呈现数据隐藏的价值。

完整的空间大数据产品框架应该覆盖云和端上的所有产品,包括云上的GIS服务器,终端上的组件GIS、桌面GIS等,构成无处不在的大数据GIS应用(图4)。在空间大数据存储方面,综合关系数据库集群、文件系统、NoSQL数据库优势,实现多源异构数据的存储和管理。在组件GIS层,实现针对空间大数据处理的各种功能组件,诸如数据管理、空间分析和流数据处理等。在服务器GIS层,封装成相应的服务,不同的终端通过调用服务,实现大数据处理、分析与可视化。此外,大数据的处理与分析大都是多任务同时分布进行,需要管理调度软件保证容错性和处理的一致性。

大数据GIS基础软件架构

图4 大数据GIS基础软件架构

  大数据GIS技术着重解决两类问题:一是解决新兴的空间大数据的管理和分析问题;二是解决经典空间数据的计算性能问题。前者是利用HDFS、MongoDB、Elasticsearch 等分布式存储技术和Spark等分布式计算框架,构建针对空间大数据的存储、索引、管理和分析能力,支持较少编程或不用编程就能够管理和分析空间大数据,降低大数据空间分析的难度。后者是利用大数据分布式存储和分布式计算框架,重构传统GIS的空间数据处理和空间分析算法,实现过去很难实现的传统空间数据处理与分析性能的数量级提升,解决了传统GIS长期面对的经典空间数据不断增长带来的性能瓶颈问题[41]。

3 结束语

新一代GIS技术的4个方向是在应用需求和IT技术这两大推动力的作用下产生的。其中,跨平台GIS技术为应用系统提供统一的数据结构、统一的分析算法、统一的可视化能力、统一的访问和开发接口和统一的用户操作方式,能在多种终端包括移动终端甚至专业设备上一致地运行大数据的处理和分析,还可以友好的接入上下游的大数据和大数据环境,支持面向虚拟现实/增强现实、人工智能等新IT技术的扩展。云GIS技术是在云计算技术的推动下,为解决数据密集和计算密集问题而不断发展。

当下和未来一段时间,这4大技术方向将继续深度影响GIS软件升级与地理信息应用的发展。当然,GIS软件技术的发展,除了依靠地理信息产业体系内部的革新,更需要融入IT主流技术体系,不断产生新的技术方向。随着人工智能(artificial intelligence,AI)技术的发展,如卷积神经网络、自编码器、细胞自动向量机等的AI算法发展和精度的提高,TensorFlow等深度学习框架的开源,将推动GIS在智能化地理信息技术方面的研究进展[42-44],从而创新应用模式,智能化的服务于日益增长的空间信息需求。

它改变了传统GIS的应用模式,使得过去以桌面GIS为主的应用,逐渐走向了以网络和移动为主的应用形式。三维GIS技术为充分融合倾斜摄影、BIM、激光点云等多源数据,发展了三维实体数据模型,实现了三维全空间的建模与表达,提供了基于WebGL技术的三维模型数据的互联网化,推动了Web三维应用的发展。大数据GIS技术是以分布式存储为基础,以数据驱动的分布式空间分析和流数据分析为关键内容,以多种终端上丰富的可视化表达手段,来揭示人类社会的发展规律与趋势。其典型特征是以流的方式提供持续的数据,进行持续地处理动态的应用。

关键词: , , , , , , ,