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

2019-02-22 08:48:28    来源:《测绘地理信息》2019年第1期

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

  来源:《测绘地理信息》2019年第1期

  作者:宋关福,钟耳顺,吴志峰,李绍俊,蔡文文,王少华

  

  摘 要:近年来,信息技术在地理信息技术的发展过程中发挥着越来越重要的作用。伴随着云计算与大数据在地理信息领域的应用,地理信息技术步入了一个新的发展阶段。本文从我国地理信息技术的发展历程出发,总结了当今GIS技术的发展情况。包括:将地理信息运行环境从Windows操作系统扩展到Linux和UNIX操作系统的跨平台GIS技术,推动GIS应用从桌面PC端延伸到云端、Web端和移动端并实现云端互联与云端协同的云GIS技术,涵盖从二维空间到全空间地理信息且具备对象级三维空间分析能力的三维GIS技术,以及支撑大规模多源异构数据的价值挖掘和知识发现的大数据GIS技术。

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

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

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

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

新一代GIS基础软件的四大关键技术_地理信息系统_勘测联合网

图1 跨平台GIS技术架构

  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],可以帮助地理信息行业更充分地分享信息技术突飞猛进带来的红利。

声明:中国勘测联合网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。