APP下载

面向分布式共享的海洋监测时空数据表达与传输模式研究

2018-07-04宋苗苗李文庆王文彦刘世萱王晓燕苗斌

山东科学 2018年3期
关键词:压缩算法压缩比数据量

宋苗苗,李文庆,王文彦,刘世萱,王晓燕,苗斌

(齐鲁工业大学(山东省科学院),山东省科学院海洋仪器仪表研究所,山东省海洋监测仪器装备技术重点实验室,国家海洋监测设备工程技术研究中心,山东 青岛 266001)

海洋监测是环境监测的重要组成部分,包括传感器数据采集、数据传输、数据接收与存储、数据发布与共享等,经过数十年的积累,产生了大量的时空监测数据,但是普遍存在数据共享程度不高、甚至是无共享的问题,严重影响了相关组织和部门的协作和面向国际、公众的社会化服务能力。广义的数据共享包括数据的开放式访问、网络发布、下载、互操作、引用、语义关联等,李国庆等[1]提出了基于数据开放、交换、互联三个层次的数据共享概念体系。在分布式数据共享与集成系统[2]中,数据表达和数据传输是关键,数据表达指面向网络传输的数据编码式表达。海洋时空监测数据的分布式共享对于扩大海洋监测活动的社会化效益、促进海洋科学领域大数据化分析技术的发展具有重要意义。

开放地理空间联盟(open geospatial consortium, OGC)国际标准化组织致力于全球地理信息的共享与互操作,先后推出了地理标记语言(geography markup language, GML)、keyhole标记语言(keyhole markup language, KML)[3]、观察与测量(observations and measurements, O&M)数据模型[4]、GeoJSON[5]等数据编码标准,以一种自描述且支持语义的方式定义了地理信息数据概念结构与模型,促进了分布式时空数据服务系统中的数据互操作式共享。OGC采用面向服务的思想和技术,在全球范围里建立数据共享的方案和思路,提供了可调用的网络数据服务[6]实现数据共享,如已建立的网络地图服务(web map service,WMS)、网络要素服务(web feature service,WFS)、网络覆盖服务(web coverage service,WCS)、网络处理服务(web processing service, WPS),均在经济、气象观测、环境、城市规划、土地利用、农业、海洋观测等领域[7-9]得到广泛应用。遵循统一的标准建立和发布的数据共享服务,能够更好地支持跨平台、异构数据的无缝集成。目前,在CyberGIS[10]系统中,GML、GeoJSO、KML表达矢量数据已经非常普遍。虽然各类的开源软件(如GeoServer、Openlayers、leaflet、GDALOGR、GeoTools、D3等)中通常也支持这几种数据编码格式,但是其表达空间数据所产生的数据量却相差很大。Li等[11]在通过实验证明表达线数据时,发现采用GML格式 与 GeoJSON格式产生的数据量较小,而对于点数据则相反,GeoJSON格式的数据量要远远小于GML。数据格式的选择不仅受到数据类型的影响,还与数据构成密切相关,数据的几何信息和属性信息所占的比重不同,各种数据格式所表现出的优势也不同。Chen[12]在信息基础设施 Portal中集成了地理空间Web服务,建立了精准农业辅助决策系统,但是数据量较大的情况下,数据实时网络传输会成为性能瓶颈,在分布式环境下运行将直接影响客户端的数据总体响应时间。黄冬梅等[13]采用金字塔模型对海洋空间数据进行分层和分块处理,建立栅格瓦片地图,提高了海洋大数据的显示速度,但是此方法展示的空间数据不具有空间和属性信息,亦不支持查询监测时序数据。时空矢量数据实时压缩[14]成为提高数据传输性能的有效途径,但是已有的模式将数据的解压缩放在Web Server端进行,并没有直接有效地提高客户端的数据响应效率。

本文从分布式数据在线共享与协同查询分析的需求出发,针对海洋时空数据的特点,研究高效稳定的数据编码方式和快速高质量的数据压缩方法,建立海洋时空数据表达与传输模式,实现面向海洋监测的分布式GIS系统,并通过实验对比和定量分析,验证和评价海洋时空数据表达与传输模式的适用性。

1 面向服务的海洋时空数据分布式共享框架

在地理空间网络基础设施环境下构建面向服务的分布式海洋时空监测数据Web GIS 系统,逻辑上分为4个层次(图1),自底向上分别是数据层、Web 服务层、应用系统Portal 层、客户端浏览器层。数据层定义了数据的组织形式和物理存储结构,包括基础地理数据、电子海图数据、海洋监测数据(如台站数据、船舶报数据、断面数据、浮标数据)等原始时空数据,以及经过规整化处理后的预处理数据,支持数据库和文件两种存储方式。在Web服务层,数据访问接口被设计成表述性状态表达(representational state transfer, REST) Web服务,向应用层提供海洋时空监测数据的读写改删操作,并建立时空索引策略和查询优化策略,以提高数据的访问效率。 Web服务层的设计使得系统可以进行分布式部署,且具有松散耦合性、高度可扩展性,为数据共享、数据开放式访问提供了有力的技术支撑。应用系统层,建立Web GIS应用程序,提供统一的门户,实现海洋监测信息管理、查询、可视化、分析、统计等功能,用以辅助决策和预警预报等。最后,用户可通过浏览器访问系统,数据在浏览器中实时解析和渲染。

在分布式的应用场景中,Web服务层用于提供统一的数据访问接口,应用系统层负责提供交互式操作界面和数据可视化绘制。数据层和Web服务层位于同一网络中,可部署于不同的计算节点上。应用系统可以集成本节点或其他分布式节点的Web服务,通过网络访问应用系统的任何一台计算机均可作为客户端。数据实时传输是系统的性能瓶颈,存在于两个阶段:(1)实时查询数据从Web服务层传输到应用系统层;(2)数据从应用系统层传输到客户端。因此,涉及两个关键问题需要解决:(i)数据的编码格式直接影响数据的大小,采用何种格式对数据进行编码表达产生的数据量最小;(ii)采用何种数据传输策略使得系统的总体响应速度最快。

图1 面向服务的海洋时空数据分布式共享服务框架Fig. 1 Service-oriented distributed sharing framework for ocean observing spatio-temporal data

2 关键技术

2.1 矢量数据共享式编码表达

GML、KML、GeoJSON编码方式能够有效表达地理要素的空间位置和属性等,解决了异构Web GIS系统中数据编码多样化、可重用性差、交换困难等问题。表1给出了3种编码格式的对比, GML、KML采用XML结构编码,每个数据元素都包裹在开始标记和结束标记之间,可读性强,但是字符冗余度较高;GeoJSON采用键值对(key-value pairs)文本标记结构,对数据进行编码,具有简洁的特点,但是依赖于辅助字符(如:大括号、中括号、双引号)建立数据分层结构。

时空数据表达的复杂性,体现在给定实体的空间和非空间属性在不同时间以不同频率发生变化。海洋浮标监测数据以站位为基本单位进行物理划分,包括监测站点的位置信息、水文气象监测参数等信息,数据随时间变化具有时序特性。采用关系模型和面向对象的思想对海洋监测数据进行组织与存储,建立空间、属性和时间综合集成的时空数据模型,基于GML、KML、GeoJSON实现模型的编码表达。表1列出的3种海洋监测数据共享式编码方式,增加"stationID"扩展属性信息,将海洋监测数据的空间、属性和时间信息关联在一起,体现时空过程特性,具有开放、共享、松散耦合的优势。

表1 3种海洋监测数据共享式编码方式

2.2 文本数据压缩算法

文本数据不同于视频、音频数据,对数据的真实性要求较高,要求数据压缩后信息无损失,经过解压能够还原全部原始信息,基于这一原则,文件压缩多采用无损压缩算法[15]。根据算法原理不同,无损数据压缩算法分为基于字典的压缩算法和基于统计的压缩算法两类。基于字典的压缩算法采用一个滑动的窗口向前向后遍历数据,选取重复出现的字符串建立字典,用代码表示字典中字符串,达到压缩数据减少数据量的目的,匹配越长,压缩效果越好,陆续发展起来的有LZ77算法、LZ78算法、LZSS算法、LZMA算法、LZMA2算法等。基于统计的数据压缩算法对每个字符出现次数进行统计得到字符概率,建立统计模型,采用二进制对数据重新编码,典型的算法有Shannon-Fano 编码算法,huffman编码算法、动态自适应huffman算法、算术算法等。字典压缩算法压缩速度较快、压缩率较低;统计压缩算法理论上更能够接近熵的极值,压缩率较高、压缩速度较慢。压缩效果的好坏不仅依赖于压缩算法,也依赖于压缩数据的特点,不同的数据最适应的压缩算法可能不同。实际中,通常结合各原始算法的优势,进行组合和改进,设计出综合性较强、性能较高的压缩算法,表2对比分析了国内外比较成熟的几种改进的无损压缩算法。

表2 国内外几种改进的无损压缩算法对比分析

2.3 数据压缩传输模式

数据实时压缩传输机制的基本原理是在数据传输的开始端对数据进行压缩,在数据传输的终端对数据进行解压缩,在分布式系统下,根据压缩与解压位置的不同,将其归纳分为4种模式,如图2所示。

图2 分布式WebGIS系统中的数据压缩传输模式Fig. 2 Data transmission mode based on data compression in distributed WebGIS system

模式a:无压缩模式,数据以GML、KML、GeoJSON编码格式进行传输;

模式b:在web服务层对数据进行压缩,在web应用系统收到数据后进行解压缩,该模式减少了第一个阶段的数据传输量,在该模式中数据的压缩/解压缩均在服务器上执行;

模式c:在Web应用系统层对数据进行压缩,在客户端浏览器层对数据进行解压缩,该模式减少了第二阶段的数据传输量;

模式d:在web服务层对数据进行压缩,在客户端浏览器层对数据进行解压缩,该模式中,第一阶段和第二阶段的数据传输量均减少了,但是在客户端的计算能力较弱的情况下,解压缩的速度会较慢,进而影响整体响应时间。

当web服务与web应用系统在同一台服务器上时,模式b的压缩/解压缩在同一台机器上进行,其实质等同于无压缩模式。模式c等同于模式d,可以简单地归纳成在服务器端进行压缩数据,在浏览器端对数据解压缩。在完全分布式环境下,即web服务、web应用系统、web浏览器分布位于不同的机器上,模式d可以最大程度地减少数据的实时传输量。系统响应时间,通过以下方式计算:

Ttotal=TI/0+Tcom+Ttrans+Tdecom

(1)

式中,Ttotal为总时间,TI/0为数据读写时间,Tcom为数据压缩时间,Ttrans为数据传输时间,Tdecom为数据解压缩时间。

Ttrans=m*s′,

(2)

式(2)中,m为网络数据读取速率的倒数,s′为压缩后的数据大小。

s′=s*r,

(3)

式中,r为压缩比,s为原始数据字节数。

所以,Ttotal最终由式(4)计算得出:

Ttotal=TI/0+Tcom+m*s*r+Tdecom。

(4)

对于相同的空间区域和时间范围,采用不同的文件格式表达数据,产生的原始数据字节数不同,不同压缩/解压缩算法的Tcom,Tdecom及压缩比不同。压缩时间、解压缩时间,与压缩比往往是成反比的,压缩比较高的,往往压缩/解压缩时间比较长;相反,压缩/解压缩速度较快的,往往压缩比较高。当网络状况较稳定的情况下,m可以看做是常量,但是由于每个终端用户所处的网络位置不同、网络传输速度也千差万别,直接影响m的值。当网络数据读取速度较快时,m的值较小;当网络数据读取速率较慢时,m的值较大。当m的值较小时,会消减压缩比,使得压缩比对总时间的贡献削弱,那么可以采取牺牲压缩比,换取压缩/解压缩时间的策略,即用较短的时间压缩出一个较大的数据,但是网络数据读取速率较快,可以完全抵消多出的压缩/解压缩时间。反之,当m的值较大时,则应考虑尽量使传输的数据量小。

3 面向海洋监测的分布式GIS系统

基于开源GIS软件工具(PostgreSQL/PostGIS、GeoServer 和Openlayers),采用图1所示分布式框架,集成矢量数据共享式编码格式、数据压缩算法、数据压缩传输模式,建立面向海洋监测的分布式GIS系统,实现了海洋浮标监测数据的实时在线接收、解析、入库、发布和共享。该系统支持完全分布式部署,为云计算环境下的海洋时空大数据表达与传输模型实验提供软件平台。该系统采用PostgreSQL/PostGIS时空数据,存储和管理海洋监测时空数据,使用GeoServer搭建Web服务引擎将海洋浮标监测数据发布为REST服务,提供实时/历史数据查询服务,利用OpenLayers实现图形化显示界面与数据的可视化显示,有效融合谷歌影像数据、天地图地名和道路网数据等多源空间信息数据服务,对海洋浮标的实时和历史位置进行准确标定,实现了浮标路径显示和轨迹回放,支持实时和历史监测数据的查询、显示和分析。数据发布与共享支持采用主动推送数据和被动响应索要数据请求两种方式,浮标监测数据采用GML、KML、GeoJSON数据格式表达,对于大数据采用数据实时压缩传输策略,以保证系统的稳定性和时效性,在实际应用中该系统可容纳的海洋浮标个数达到200多个,数据更新频率支持10、20、30 min/次 等。图3、4展示了面向海洋监测的分布式GIS系统可视化界面及时空查询分析结果。

图3 面向海洋监测的分布式GIS系统界面Fig. 3 Graphical user interface of a distributed GIS system for marine monitoring

图4 海洋监测数据时空查询分析Fig. 4 Spatio-temporal query & analysis results of marine monitoring data

4 实验分析

通过构建系统化的实验,揭示GML、KML、GeoJSON用于表达海洋时空监测数据时的性能优劣,以及Deflate、GZIP、XZ、LZ4、Snappy 5种压缩算法对于海洋时空监测数据的适应性。选取Argo剖面浮标数据为实验数据,时间范围为2010—2017年,空间区域为太平洋海域,观测量为温度、盐度、海水压力。在阿里云平台,搭建分布式系统软件,运行第3节所述海洋监测GIS系统进行实测分析。

4.1 3种矢量数据编码格式的性能对比

通过改变监测记录的条数来使数据递增,进而观测KML、GML、GeoJSON3种数据编码格式产生的数据量大小。采用7组数据进行实验,分别为2 000、4 000、8 000、16 000、32 000、64 000、128 000条记录。实验结果如图5所示,12.8万条监测记录,KML产生的数据量最大,为180 MB;GML 次之,为 169 MB;GeoJSON最小,为145 MB。 且随着监测记录条数的增加,GeoJSON的增幅最小。对比分析3种矢量数据编码格式,GeoJSON具有较突出的性能优势。

4.2 5种压缩算法的性能对比

压缩算法的压缩性能差异表现为压缩比、压缩时间、解压缩时间的不同。本实验中选用GeoJSON数据编码格式对比分析各压缩算法对性能。

压缩比是衡量压缩算法性能的一个重要指标。如图6所示,随着监测记录条数的成倍增加,数据量也是成倍增加的。采用GeoJSON格式表达12.8万条监测记录,产生的数据量大约是146 MB。XZ压缩后是27 MB,Deflate-6和GZIP压缩后是39.7 MB左右,Snappy压缩后是73 MB,LZ4压缩后是83 M字节。从压缩后的数据量比较,XZ具有较好的压缩效果, 采用XZ 压缩后的数据量约是LZ4的1/3, Deflate-6和GZIP压缩后数据量约为LZ4和Snappy的1/2。进一步对压缩比进行统计得出(见图7),Deflate-6与GZIP的压缩比均为27%,压缩比最高是的XZ,达到了15%,压缩比最低的是LZ4,保持在57%左右,Snappy的压缩比为50%,略高于LZ4。压缩比由高到低的排序结果是XZ、Deflate-6/GZIP、Snappy、LZ4,并且随着数据量的增加,压缩比基本保持稳定。

另一衡量压缩性能的指标是压缩和解压缩时间,表示压缩算法的时间效率。5种压缩算法的时间效率差别较大。从图8可以看出,XZ压缩算法耗时最长,并且随着数据量的不断增加,压缩和解压缩时间也不断增加,而且增幅较大。相比之下,Deflate-6和GZIP,LZ4和Snappy的时间效率较高,压缩和解压缩时间远远低于XZ。压缩16 000条以下的数据,Deflate-6和GZIP所需时间仅为毫秒级,压缩16 000条数据只需0.5 s左右的时间(图8中的第4组数据)。另外,LZ4和Snappy压缩32 000条数据仅需1 s(图8中的第5组数据),随着数据量的增加,压缩与解压缩时间增幅较小。压缩/解压缩128 000条记录,Deflate-6和GZIP耗时16 s,XZ耗时135 s,LZ4和Snappy耗时1.5 s(图8中的第7组数据)。尽管XZ算法的压缩比拥有绝对的优势,但是过长的压缩时间使其在网络实时压缩传输中并不占据优势。

图5 采用GML、KML、GeoJSON 3种格式产生的数据量对比Fig. 5 Comparison of data size using three encoding formats, including GML, KML and GeoJSON

图6 压缩前后的数据量对比 Fig. 6 Comparison of data size before and after compression

图7 5种压缩算法的压缩比 Fig. 7 Comparison of compression ratio of five algorithms

图8 5种压缩算法的压缩/解压缩时间对比Fig.8 Compression/decompression time of five algorithms

4.3 云计算环境下的实验

在阿里云平台选取华北(青岛)区域和华南(深圳)区域搭建两个计算节点,分别部署海洋监测GIS系统的Web服务器和客户端,针对10 Mbit/s、100 Mbit/s两种差别较大网络带宽条件,对2.3节所述数据压缩传输模式d进行测试,分别记录数据I/O时间、压缩时间、网络传输时间、解压缩时间,得到图9所示结果。

图9 分布式环境下的数据总体响应时间Fig.9 The overall data response time in a distributed environment

海洋浮标监测数据经过压缩传输后总体响应时间缩短,随着数据量的增加,压缩传输的优势更突出。5种压缩算法,按照总体响应时间从大到小的顺序排列为Deflat-6(GZIP)、Snappy、LZ4、XZ。总体响应时间由数据库I/O时间、压缩时间、网络传输时间、解压缩时间组成,数据库I/0时间基本维持在一个恒定值(约11 s),不因数据量的增加而增长。所有压缩算法的解压缩时间较小可忽略不计。总体响应时间主要由网络传输时间和压缩时间决定,因此公式(4)可以进一步优化为:

Ttotal≈Tcom+m×s×r+B

,

(5)

式中,m为网络数据读取速率的倒数,r为压缩比,s为原始数据量大小,B表示数据I/O读取时间,为常量。

针对海洋监测时空数据,在10 Mbit/s、100 Mbit/s网速带宽条件下分别进行分布式测试,结果均表明,除XZ外,压缩比对总体响应时间起主要作用,压缩比高的总体响应时间则快。总体响应时间可以由公式(5)估算。XZ压缩算法,由于其过长的压缩时间(压缩时间大于网络传输时间),不适合在分布式环境下的数据实时压缩传输模型中使用;Deflate-6/GZIP压缩算法,在数据实时压缩传输模型中表现出较好的性能;Snappy、LZ4算法的性能相对较差。相比无压缩模式,采用Deflate-6/GZIP实时压缩模式能够获得4~5倍的时间效率提升。采用该模式后在深圳、青岛两地实时按需共享12.8万条Argo浮标数据的时间从490 s降到123 s,表现出较突出的性能优势。

5 结语

本文建立的基于共享式编码与实时压缩的时空数据表达与传输模式,在分布式共享与集成系统中表现出较强的适用性和较突出的性能优势。该研究对于促进分布式计算环境下海洋时空数据的高效共享与互操作具有重要的意义,能够有效提高海洋时空大数据的实时在线查询效率与空间分析的性能,并且可以向更广阔的领域提供智能高效空间信息服务。

参考文献:

[1]李国庆,张红月,张连翀,等.地球观测数据共享的发展和趋势[J].遥感学报,2016,20(5):979-990.

[2]蒋永国.面向传感网的海洋观测数据集成关键技术研究[D].青岛:中国海洋大学, 2010.

[3]曾建刚,苗放,叶成名.基于GML/KML的空间数据库研究[J].计算机与数字工程,2009,37(2):51-54.

[4]COX S. An explicit OWL representation of ISO/OGC observations andmeasurements[EB/OL].[2017-10-12]. http://ontolog.cim3.net/file/work/OntologyBasedStandards/2013-10-17_Ontologies-for-Geospatial-Standards/wip/Cox_OM-OWL_20131017b1.pdf.

[5]ATKINSON S C, JUPITE S D, INGRAM J C, et al. Fiji mapped mangrove ecosystem service rankings in GeoJSON format[J]. PLoS ONE, 2016, 11(3): e0151992.

[6]程华兵. 基于Web服务的水文时空数据集成方法研究[D].武汉:华中科技大学, 2013.

[7]GORDOV E, OKLADNIKOV I, TITOV A. Development of Web GIS for complex processing and visualization of climate geospatial datasets as an integral part of dedicated Virtual Research Environment[EB/OL]. [2017-10-12].http://adsabs.harvard.edu/abs/2017EGUGA..19.2100G.

[8]CANNATA M, ANTONOVIC M, MOLINARI M E. Load testing of HELIDEM geo-portal: an OGC open standards interoperability example integrating WMS, WFS, WCS and WPS[EB/OL]. [2017-10-12]. https://www.researchgate.net/publication/266086638_Load_testing_of_HELIDEM_geo-portal_an_OGC_open_standards_interoperability_example_integrating_WMS_WFS_WCS_and_WPS.

[9]SONG M M, ZHOU B, ZHOU Z. The interoperation framework of ocean observation data using spatial information service[M]// 2012 2nd International Conference on Computer Science and Network Technology.[S.l.]:IEEE, 2012.

[10]WANG S W. A CyberGIS framework for the synthesis of cyberinfrastructure, GIS, and spatial analysis[J]. Annals of the Association of American Geographers, 2010,100(3):535-557.

[11]LI W W, SONG M M, ZHOU B, et al. Performance improvement techniques for geospatial web services in a cyberinfrastructure environment - A case study with a disaster management portal[J]. Computers Environment & Urban Systems, 2015,54:314-325.

[12]CHEN N C, ZHANG X, WANG C. Integrated open geospatial web service enabled cyber-physical information infrastructure for precision agriculture monitoring[J]. Computer and Electronic in Agriculture, 2015, 111:78-91.

[13]黄冬梅,季丽伟,袁小华,等. 基于时空一体化的海洋大数据快速展示平台[J]. 海洋环境科学,2015,34(5):743-748.

[14]JANET J, BALAKRISHNAN S, PRASAD E R. Optimizing data movement within cloud environment using efficient compression techniques[M]//2016 International Conference on Information Communication and Embedded Systems. [S.l.]:IEEE, 2016.

[15]郑翠芳.几种常用无损数据压缩算法研究[J].计算机技术与发展,2011,21(9):73-76.

猜你喜欢

压缩算法压缩比数据量
基于大数据量的初至层析成像算法优化
计算Lyapunov指数的模糊C均值聚类小数据量法
高刷新率不容易显示器需求与接口标准带宽
质量比改变压缩比的辛烷值测定机
宽带信号采集与大数据量传输系统设计与研究
基于参数识别的轨道电路监测数据压缩算法研究
一种基于嵌入式实时操作系统Vxworks下的数据压缩技术
PMU数据预处理及压缩算法
低温废气再循环及低压缩比对降低欧6柴油机氮氧化物排放的影响
高几何压缩比活塞的燃烧室形状探讨