空间统计分析网络服务的设计与实现

2014-08-25 01:19周贺杰郭庆胜
测绘工程 2014年12期
关键词:服务端客户端距离

周贺杰,郭庆胜,陈 勇

(1.武汉大学 资源与环境科学学院,湖北 武汉 430079;2.湖北省鄂东地质大队,湖北 孝感 432000)

空间统计分析网络服务的设计与实现

周贺杰1,郭庆胜1,陈 勇2

(1.武汉大学 资源与环境科学学院,湖北 武汉 430079;2.湖北省鄂东地质大队,湖北 孝感 432000)

针对互联网上海量POI数据的特点,结合开放地理信息系统协会网络处理服务(OGC WPS)规范,研究空间统计方法的服务机制,并以点模式分析中的K函数算法为例,在网络服务的环境下对算法进行优化,最后在微软因特网信息服务(IIS)平台下实现对主要空间统计分析服务的发布。

POI;空间统计;K函数;Web服务;WPS规范

地理信息服务可分为地理数据服务(Geodata Service)和地理数据处理服务(Geoprocessing Service)两部分内容[1]。其中地理处理服务是通过对空间数据的操作,挖掘出数据背后所蕴藏的规律和知识,其核心是空间分析服务。但目前国内外大多数提供了地理信息服务的服务商如谷歌、微软、百度、天地图等均是提供了地图服务等与用户互动的地理数据服务[2-4],很少有把地理处理服务作为其基本服务。

国外少数几个开源平台如GeoServer、52North等提供了一些基于OGC WPS规范的空间数据处理和分析服务,但这些服务仅实现了诸如缓冲区分析、叠置分析等简单分析方法。在空间分析中,还有一类重要的方法是空间统计方法。在单机环境下,包括ArcGIS在内的GIS软件和SPSS统计软件都有自己的空间统计包[5-6],但却很少有平台实现其服务。本文针对互联网上获得的POI兴趣点数据,研究了空间统计算法服务机制,并以OGC WPS规范为基础,优化并实现了部分常用的空间统计分析服务。

1 POI数据的空间统计分析方法

POI(Point of Interest)即兴趣点,泛指一切可以被抽象为点的地理实体,尤其是与人们生活密切相关的设施,如商场、车站和学校等。其具有数据量大、种类繁多、属性值丰富等特点。POI数据的分布在一定程度上可以反映某类地物的分布,因此,通过对POI数据的分析可以挖掘出某类地物的分布规律和特点,为后续进一步研究提供依据。

针对POI数据的这一特点,目前包括ArcGIS在内的GIS软件针对点数据的空间统计分析主要集中在统计描述和统计推断两个方面。

1.1 统计描述

统计描述主要是通过一个度量值来描述点要素的集中趋势、离散趋势以及分布方向。主要有中心分析、标准差圆和标准差椭圆等方法[7]。中心分析就是通过一个点来描述给定要素集的地理中心(或密度中心);标准差圆是根据一个圆的半径大小来反映给定要素集的集中或分散程度;标准差椭圆则是以一个椭圆的长轴方向来表示给定要素集的分布方向。

1.2 统计推断

统计推断是通过假设检验的方法对选取的空间样本进行估计从而推断出总体的分析方法。对于POI数据来说主要是点模式分析,即推断给定的点数据集是否符合聚集、分散或随机的模式,并且说明该推断的可信度是多少。每一个空间模式都由一个空间过程驱动,通过分析POI数据的空间模式可以推断出产生这一模式的空间过程。点模式的主要分析方法有样方分析法、多阶近邻点分析、K函数分析以及针对属性值的空间自相关分析[7]。

通过上述两个方面的空间统计分析,可以得出一个或多个种类、一个或多个时序的POI数据分布特征规律。对不同种类、不同时序的分析结果进行对比可以得出不同种类、不同时间点POI数据之间的内在联系。

2 网络服务概述

2.1 Web服务

Web服务是一种自包含、自解释、模块化的应用程序,能够被发布、定位、并且从互联网上的任何位置进行调用[8]。通常情况下,一个Web服务包含一个或一系列处理,它使用规范的、通用的XML标签进行描述,为服务使用者提供消息格式和足够的信息来与服务提供者进行交互[9]。

地理信息服务是Web服务在GIS领域的应用。由于空间数据的特殊性,使得Web服务在传输协议中并没有包含空间数据元数据信息和空间数据的标准化[10]。为此,致力于建立开放地理信息Web服务标准的开放地理信息系统协会OGC的OGC Web服务工作组针对地理空间数据提出了一系列W*S服务规范,如WMS(Web Map Service)、WFS(Web Feature Service)、WCS(Web Coverage Service)以及最新提出的WPS(Web Processing Service)等。

2.2 WPS服务规范

WPS是OGC制定的用来规范空间处理服务的一套规范。其定义了GetCapabilities、DescribeProcess和Execute 3个接口。调用GetCapabilities接口可以获取一个描述了服务名称、功能的元数据文档;调用DescribeProcess接口可以获得一个对指定服务的所需参数种类和类型的详细描述;调用Execute接口可以执行一个由WPS实现了的具体算法,该算法通过用户输入相关参数计算并返回相关计算结果。

2.3 WPS服务机制

采用WPS规范的服务主要是将各个分析算法打包成插件,再注册到实现了WPS的服务器上[10]。这样,每个算法便成了一条服务。与传统单机版上算法实现不同的是,待注册成服务的算法首先要实现WPS所规定的3个接口中的两个,即DescribeProcess和Execute 接口,前者主要描述该算法传入和传出参数的详细说明,后者是算法执行的具体过程。WPS中的另一个接口GetCapabilities需在实现了WPS的服务引擎上实现,用来描述该服务端上所有的服务名称等相关信息。算法注册完成后服务使用者可以调用这3个接口与WPS服务器进行交互,如图1所示。

图1 WPS服务机制

3 服务的设计与实现

由于针对POI数据的空间统计方法众多,因此本文以点模式分析中的K函数分析法为例,详细阐述了服务环境下算法的优化、服务的设计与实现。其他空间统计分析服务与此类似,不再赘述。

3.1 K函数分析法概述

空间统计学家Ripley在1977年提出了K函数[11],被广泛应用于空间点模式分析中。它通过假设检验的统计学方法推断出点要素集的分布模式。用户需要指定一个观测窗口、一个距离尺度以及一个置信度。K函数的估值公式为

(1)

式中:n为观测窗口中的点要素总数,|A|为观测窗口面积,ωij为边界改正权重,c(i,j,d)为一个指示器,d为给定的距离尺度。当窗口内中心点i到其他一点j的距离大于距离尺度d时,指示器c(i,j,d)的值为0,反之,其值为1。

为了便于结果进行分析,统计学家Besag对K函数的估值公式进行了平滑处理,得到了L函数[12]

(2)

3.2 服务环境下K函数算法优化

由式(1)可以看出,K函数的计算需要先计算出观测窗口内点的距离矩阵。距离矩阵的计算是非常费时的操作,也是程序的热点。考虑到POI数据数据量大,在服务环境下必须提高算法的执行效率。因此,针对距离矩阵,从对称性和并行化计算两个角度出发,提出了算法的优化方法。

3.2.1 利用距离矩阵对称性进行优化

K函数算法中的距离矩阵存在两种形式:一种是在用户未选择边界修正的情况下,公式(1)中的ωij≡1,窗口内中心点i不仅需计算到窗口内各点的距离,还需计算到窗口外各点的距离,此时距离矩阵为非对称矩阵,如图2所示;另一种是在用户选择了边界修正的情况下,仅靠近窗口边缘的点会得到一个大于1的ωij权重改正值,窗口内中心点i仅需计算到窗口内各点的距离,此时距离矩阵是一个对阵矩阵。

无论哪种形式,距离矩阵中总存在着对称的部分。由于程序对距离矩阵的计算主要是对各个矩阵元素,即欧氏距离的计算,传统的方法是用一个嵌套循环逐行或逐列计算各个矩阵元素,但由于矩阵的对称性,这样就会产生对距离的不必要重复计算,增加程序的开销。因此,如果能利用矩阵的对称性,只计算矩阵的一半元素,就会减少程序的开销,提高计算效率。

另一方面,由式(1)可以看出,计算K函数所需要的并不是距离矩阵中的每个元素,而是矩阵中各个列和。因此,程序在计算的过程中无需存储每个元素,而是采用一行大小的临时内存空间,该空间用于存储对每个元素的累加和计算结果,当完成一次计算后,下一次计算就会在原有计算结果的基础上进行累加,这样降低了算法对内存使用量,提高了计算效率。

结合对对称性的利用,临时存储可以以一行、一列的内存空间创建行和数组和列和数组。计算的过程如下:

1)逐列(逐行)从0到n计算一半的对称部分矩阵元素,然后求和,存储于行(列)和数组。如图2所示,当i=2时,a[2]=d32+d42。

2)计算步骤1)的同时将列(行)和数组累加更新。如图2所示,当i=2时,b[3]+=d32,b[4]+=d42。

3)将行和数组和列和数组中的各个对应元素进行相加,合并成一个新数组。如图2所示,当i=2时,新数组c[2]=a[2]+b[2]。

图2 距离矩阵的计算

3.2.2 利用处理器多核性进行优化

一般来说,服务器的硬件配置要高于客户机的硬件配置。将算法服务化的优势就在于可以充分利用高端配置的服务器硬件资源。多核处理器便是服务器硬件配置的优势之一。从上述距离矩阵的计算方式可以看出,观测窗口内的每一个中心点都遵循着相同的计算操作,即计算与其他点的欧氏距离,然后求和。因此,可以考虑采用共享内存式的数据并行[13],将观测窗口内的中心点计算分成几组任务,然后将各个任务并发地分配到程序的各个工作线程中,操作系统会根据底层的线程池将各个线程载负均衡地分配到不同的内核中,从而实现对处理器多核性的利用。

3.3 服务环境的设计

根据前面所述的基于OGC WPS服务机制,结合针对POI数据的分析,实验设计了如下的服务环境:

3.3.1 硬件环境

考虑到POI数据的管理与显示,硬件方面采用3台服务器+客户机的形式。一台服务器专门用于提供空间统计分析的WPS服务,一台服务器用于提供地理底图的地图服务,另一台服务器则用于POI数据储存管理以及与客户机交互。各个服务器与客户机由互联网相连。

3.3.2 软件环境

提供了WPS服务和数据管理的服务器运行在微软的IIS信息服务的平台上。其中实验用法国BRGM (the French geological survey)团队开发的开源的WPS.NET实现分析服务功能,该WPS引擎能够在微软IIS信息服务平台上运行,用MySQL数据库实现POI数据的储存管理功能。实验的客户机运行在Windows系统上,采用开源的OpenLayer JavaScript开发包进行客户端脚本的开发。空间统计算法部分是由C#语言编写而成,并在.NET 4.0环境下进行编译。

3.3.3 数据环境

地理底图是由开放的OpenStreetMap提供的地图服务,POI数据是由网络爬虫软件在2013年6月采集到的成都市47个类型130 683个POI点。

3.4 服务架构的设计

图3所示,在WPS规范的基础上,采用了B/S的3层体系架构。

图3 3层服务架构

客户层用于人机交互,向用户可视化空间数据及分析结果,同时根据用户的指令向服务层发出各个请求。服务层主要有3类。第1类是WPS服务端,向用户提供已注册的算法服务;第2类是数据管理服务端,通过与客户端以及本地数据库的交互实现POI数据的管理与储存;第3类地图服务端,该服务端可位于远程,例如谷歌地图的地图服务,主要向用户提栅格图片形式的地理底图。数据层主要是根据数据管理端发出的SQL指令,向数据管理端提供或保存POI矢量数据。

3.5 K函数分析服务的实现

一次完整的分析服务过程应该分为以下4个步骤:

1)请求数据。客户端向数据管理端和地图服务端请求地理底图和POI数据,并对其可视化。

2)请求服务列表。用户通过客户端脚本向WPS服务端发出GetCapabilities请求,WPS服务端会查询已注册的服务,以XML Schema文档格式返回已注册的服务信息给客户端。

3)请求参数列表。用户根据客户端列出的服务目录,选择K函数分析服务,客户端脚本会向WPS服务端发出DescribeProcess请求查询K函数分析算法的相关参数信息,并以XML Schema文档格式返回给客户端。

4)请求服务。最后用户根据返回的参数信息,输入必要的参数。输入参数完毕后通过客户端脚本向WPS服务端发出Execute请求,将参数以符合WPS规范的XML Schema文档传入WPS服务端。其中由于待分析的POI数据量可能较大,编码后的XML格式文档不便于在内存中储存,因此,数据管理端将其输出成文件形式,由WPS服务端通过URL引用的方式进行调用。计算完毕后,又以XML格式向客户端返回计算结果,并由客户端脚本将计算结果可视化给用户。

3.5.1 实验结果

实验以K函数为例分析了130 683个POI点中类型为“村委会”的4203个POI数据。选取如图4(b)所示的观测窗口,设定开始距离尺度为200 m、距离尺度递增量为200 m、距离尺度数量为10个、开启边界修正、设定了90%的置信区间。程序在算法实现环节加上了一段用于计时的代码,以便测试优化前和优化后算法在执行Execute请求时所用时间。由于程序运行时的系统运行环境具有一定的随机性,因此将实验重复进行了5次,统计得到如表1所示测试结果。实验最终得到的分析结果如图4(b)所示。图4(a)是将实验得到的分析结果用ArcGIS里的绘制图表功能进行的可视化结果。

表1 优化前后K函数算法执行时间

图4 分析结果

3.5.2 实验结果分析

由表1可以看出优化后的算法相较于优化前的算法,执行时间缩短了80%以上,且当处理器核心增加时可进一步缩短算法的执行时间,使其计算效率的提高具有可扩展性。由于距离矩阵计算在空间统计分析算法中具有普遍性,因此利用对称性和多核计算的优化方法可以推广到其他算法中去。

由图4(a)可以看出在图4(b)所示的观测窗口内的POI数据在不同尺度上的空间模式以及其变化趋势。在距离尺度为200 m时,POI数据具有置信度为90%的显著性聚集,且随着距离尺度的递增,聚集性越来越小。当距离尺度大于1 500 m时,POI数据开始表现出不显著的离散模式,且随着距离尺度的递增,离散性越来越大。当距离尺度为2 000 m时,POI数据具有置信度为90%的显著性离散。

4 结束语

针对网上海量的POI,本文设计并实现了一种基于OGC WPS规范的空间统计分析服务,并以空间统计方法中的K函数分析为例,充分运用距离矩阵的对称性和服务器的多核处理器,在服务环境下优化了算法,实现了包括统计描述和统计分析在内的POI数据空间统计分析服务的发布。实验结果验证了空间统计分析服务的可行性,表明了服务环境下算法的优化取得了良好效果。与此同时,算法的服务化也有利于空间统计分析方法在GIS领域的推广,但本文对空间统计分析算法的服务化也存在着服务粒度过大、未能与其他地理信息服务相互组合形成服务链模型等缺点,还有待今后进一步研究。

[1]陶闯,王全科. 基于地学信息服务的Internet 3维数GIS: GeoEye 3D[J]. 测绘学报,2002,31(1):17-21.

[2]冯骏,刘文兵,夏翔. Web2.0下网络地图的发展及存在问题探讨[J]. 测绘工程,2013,22(2):37-41.

[3]曲鑫,张伟.云服务平台下的地理信息系统技术研究[J].测绘与空间地理信息,2014,37(9):113-115.

[4]刘小春,孙庆辉,赵军喜,等.WMS网络地图服务的应用研究[J].测绘与空间地理信息,2014,37(3):13-15.

[5]杨中庆. 基于R语言的空间统计分析研究与应用[D]. 广州:暨南大学,2006.

[6]谭诗腾,刘宪鑫.基于SPSS的高铁路基沉降处理技术研究[J].交通科技与经济,2014,16(5):103-106.

[7]WONG D W S, LEE J. Statistical Analysis of Geographic Information with ArcView GIS and ArcGIS[M]. New York: Wiley, 2005.

[8]徐卓揆,申小平. 基于52North WPS的Web Processing Service的开发方法研究 [J]. 测绘科学,2011,36(1):140-142.

[9]RUTKOWSKA J,SUBVERTING VISTATMKernel For Fun And Profit [J]. Blackhat Presentation, August 2006.

[10]孙雨,李国庆,黄震春. 基于OGC WPS规范的处理服务实现研究[J]. 计算机科学,2009,36(8): 86-88.

[11]RIPLEY B D. Modelling Spatial Patterns[J]. Journal of the Royal Statistical Society. Series B, 1977, 39(2): 172-212.

[12]BESAG J E. Comments on Ripley’s paper [J]. Journal of the Royal Statistical Society. Series B, 1977, 39(2): 193-195.

[13]HILLAR G. Professional Parallel Programming with CJHJ: Master Parallel Extensions with. NET 4 [M]. New York: Wiley, 2011.

[责任编辑:刘文霞]

Design and implement of spatial statistical analysis based on web service

ZHOU He-jie1, GUO Qing-sheng1, CHEN Yong2

(1.School of Resource and Environment Science,Wuhan University,Wuhan 430079, China;2. Northeastern Hubei Geological Brigade, Xiaogan 432000, China)

According to the characteristics of massive POI data, a service mechanism of spatial statistical method is studied based on the open geospatial consortium Web Process Service (OGC WPS) specification. Meanwhile, one of the point pattern analysis algorithms, theKfunction, is optimized as an example during the environment of web service. At last, some major services of spatial statistical analysis are published under Microsoft’s Internet Information Services (IIS) platform.

POI; spatial statistic;Kfunction; web service; WPS specification

2013-11-25;补充更新日期:2014-11-19

国家863计划资助项目(2012AA12A402);国家自然科学基金资助项目(41071289,41171350)

周贺杰(1987-),男,硕士研究生.

P208

:A

:1006-7949(2014)12-0043-05

猜你喜欢
服务端客户端距离
如何看待传统媒体新闻客户端的“断舍离”?
算距离
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
每次失败都会距离成功更近一步
爱的距离
距离有多远