周賀杰,郭慶勝,陳 勇
(1.武漢大學(xué) 資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079;2.湖北省鄂東地質(zhì)大隊,湖北 孝感 432000)
空間統(tǒng)計分析網(wǎng)絡(luò)服務(wù)的設(shè)計與實現(xiàn)
周賀杰1,郭慶勝1,陳 勇2
(1.武漢大學(xué) 資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079;2.湖北省鄂東地質(zhì)大隊,湖北 孝感 432000)
針對互聯(lián)網(wǎng)上海量POI數(shù)據(jù)的特點,結(jié)合開放地理信息系統(tǒng)協(xié)會網(wǎng)絡(luò)處理服務(wù)(OGC WPS)規(guī)范,研究空間統(tǒng)計方法的服務(wù)機制,并以點模式分析中的K函數(shù)算法為例,在網(wǎng)絡(luò)服務(wù)的環(huán)境下對算法進(jìn)行優(yōu)化,最后在微軟因特網(wǎng)信息服務(wù)(IIS)平臺下實現(xiàn)對主要空間統(tǒng)計分析服務(wù)的發(fā)布。
POI;空間統(tǒng)計;K函數(shù);Web服務(wù);WPS規(guī)范
地理信息服務(wù)可分為地理數(shù)據(jù)服務(wù)(Geodata Service)和地理數(shù)據(jù)處理服務(wù)(Geoprocessing Service)兩部分內(nèi)容[1]。其中地理處理服務(wù)是通過對空間數(shù)據(jù)的操作,挖掘出數(shù)據(jù)背后所蘊藏的規(guī)律和知識,其核心是空間分析服務(wù)。但目前國內(nèi)外大多數(shù)提供了地理信息服務(wù)的服務(wù)商如谷歌、微軟、百度、天地圖等均是提供了地圖服務(wù)等與用戶互動的地理數(shù)據(jù)服務(wù)[2-4],很少有把地理處理服務(wù)作為其基本服務(wù)。
國外少數(shù)幾個開源平臺如GeoServer、52North等提供了一些基于OGC WPS規(guī)范的空間數(shù)據(jù)處理和分析服務(wù),但這些服務(wù)僅實現(xiàn)了諸如緩沖區(qū)分析、疊置分析等簡單分析方法。在空間分析中,還有一類重要的方法是空間統(tǒng)計方法。在單機環(huán)境下,包括ArcGIS在內(nèi)的GIS軟件和SPSS統(tǒng)計軟件都有自己的空間統(tǒng)計包[5-6],但卻很少有平臺實現(xiàn)其服務(wù)。本文針對互聯(lián)網(wǎng)上獲得的POI興趣點數(shù)據(jù),研究了空間統(tǒng)計算法服務(wù)機制,并以O(shè)GC WPS規(guī)范為基礎(chǔ),優(yōu)化并實現(xiàn)了部分常用的空間統(tǒng)計分析服務(wù)。
POI(Point of Interest)即興趣點,泛指一切可以被抽象為點的地理實體,尤其是與人們生活密切相關(guān)的設(shè)施,如商場、車站和學(xué)校等。其具有數(shù)據(jù)量大、種類繁多、屬性值豐富等特點。POI數(shù)據(jù)的分布在一定程度上可以反映某類地物的分布,因此,通過對POI數(shù)據(jù)的分析可以挖掘出某類地物的分布規(guī)律和特點,為后續(xù)進(jìn)一步研究提供依據(jù)。
針對POI數(shù)據(jù)的這一特點,目前包括ArcGIS在內(nèi)的GIS軟件針對點數(shù)據(jù)的空間統(tǒng)計分析主要集中在統(tǒng)計描述和統(tǒng)計推斷兩個方面。
1.1 統(tǒng)計描述
統(tǒng)計描述主要是通過一個度量值來描述點要素的集中趨勢、離散趨勢以及分布方向。主要有中心分析、標(biāo)準(zhǔn)差圓和標(biāo)準(zhǔn)差橢圓等方法[7]。中心分析就是通過一個點來描述給定要素集的地理中心(或密度中心);標(biāo)準(zhǔn)差圓是根據(jù)一個圓的半徑大小來反映給定要素集的集中或分散程度;標(biāo)準(zhǔn)差橢圓則是以一個橢圓的長軸方向來表示給定要素集的分布方向。
1.2 統(tǒng)計推斷
統(tǒng)計推斷是通過假設(shè)檢驗的方法對選取的空間樣本進(jìn)行估計從而推斷出總體的分析方法。對于POI數(shù)據(jù)來說主要是點模式分析,即推斷給定的點數(shù)據(jù)集是否符合聚集、分散或隨機的模式,并且說明該推斷的可信度是多少。每一個空間模式都由一個空間過程驅(qū)動,通過分析POI數(shù)據(jù)的空間模式可以推斷出產(chǎn)生這一模式的空間過程。點模式的主要分析方法有樣方分析法、多階近鄰點分析、K函數(shù)分析以及針對屬性值的空間自相關(guān)分析[7]。
通過上述兩個方面的空間統(tǒng)計分析,可以得出一個或多個種類、一個或多個時序的POI數(shù)據(jù)分布特征規(guī)律。對不同種類、不同時序的分析結(jié)果進(jìn)行對比可以得出不同種類、不同時間點POI數(shù)據(jù)之間的內(nèi)在聯(lián)系。
2.1 Web服務(wù)
Web服務(wù)是一種自包含、自解釋、模塊化的應(yīng)用程序,能夠被發(fā)布、定位、并且從互聯(lián)網(wǎng)上的任何位置進(jìn)行調(diào)用[8]。通常情況下,一個Web服務(wù)包含一個或一系列處理,它使用規(guī)范的、通用的XML標(biāo)簽進(jìn)行描述,為服務(wù)使用者提供消息格式和足夠的信息來與服務(wù)提供者進(jìn)行交互[9]。
地理信息服務(wù)是Web服務(wù)在GIS領(lǐng)域的應(yīng)用。由于空間數(shù)據(jù)的特殊性,使得Web服務(wù)在傳輸協(xié)議中并沒有包含空間數(shù)據(jù)元數(shù)據(jù)信息和空間數(shù)據(jù)的標(biāo)準(zhǔn)化[10]。為此,致力于建立開放地理信息Web服務(wù)標(biāo)準(zhǔn)的開放地理信息系統(tǒng)協(xié)會OGC的OGC Web服務(wù)工作組針對地理空間數(shù)據(jù)提出了一系列W*S服務(wù)規(guī)范,如WMS(Web Map Service)、WFS(Web Feature Service)、WCS(Web Coverage Service)以及最新提出的WPS(Web Processing Service)等。
2.2 WPS服務(wù)規(guī)范
WPS是OGC制定的用來規(guī)范空間處理服務(wù)的一套規(guī)范。其定義了GetCapabilities、DescribeProcess和Execute 3個接口。調(diào)用GetCapabilities接口可以獲取一個描述了服務(wù)名稱、功能的元數(shù)據(jù)文檔;調(diào)用DescribeProcess接口可以獲得一個對指定服務(wù)的所需參數(shù)種類和類型的詳細(xì)描述;調(diào)用Execute接口可以執(zhí)行一個由WPS實現(xiàn)了的具體算法,該算法通過用戶輸入相關(guān)參數(shù)計算并返回相關(guān)計算結(jié)果。
2.3 WPS服務(wù)機制
采用WPS規(guī)范的服務(wù)主要是將各個分析算法打包成插件,再注冊到實現(xiàn)了WPS的服務(wù)器上[10]。這樣,每個算法便成了一條服務(wù)。與傳統(tǒng)單機版上算法實現(xiàn)不同的是,待注冊成服務(wù)的算法首先要實現(xiàn)WPS所規(guī)定的3個接口中的兩個,即DescribeProcess和Execute 接口,前者主要描述該算法傳入和傳出參數(shù)的詳細(xì)說明,后者是算法執(zhí)行的具體過程。WPS中的另一個接口GetCapabilities需在實現(xiàn)了WPS的服務(wù)引擎上實現(xiàn),用來描述該服務(wù)端上所有的服務(wù)名稱等相關(guān)信息。算法注冊完成后服務(wù)使用者可以調(diào)用這3個接口與WPS服務(wù)器進(jìn)行交互,如圖1所示。
圖1 WPS服務(wù)機制
由于針對POI數(shù)據(jù)的空間統(tǒng)計方法眾多,因此本文以點模式分析中的K函數(shù)分析法為例,詳細(xì)闡述了服務(wù)環(huán)境下算法的優(yōu)化、服務(wù)的設(shè)計與實現(xiàn)。其他空間統(tǒng)計分析服務(wù)與此類似,不再贅述。
3.1 K函數(shù)分析法概述
空間統(tǒng)計學(xué)家Ripley在1977年提出了K函數(shù)[11],被廣泛應(yīng)用于空間點模式分析中。它通過假設(shè)檢驗的統(tǒng)計學(xué)方法推斷出點要素集的分布模式。用戶需要指定一個觀測窗口、一個距離尺度以及一個置信度。K函數(shù)的估值公式為
(1)
式中:n為觀測窗口中的點要素總數(shù),|A|為觀測窗口面積,ωij為邊界改正權(quán)重,c(i,j,d)為一個指示器,d為給定的距離尺度。當(dāng)窗口內(nèi)中心點i到其他一點j的距離大于距離尺度d時,指示器c(i,j,d)的值為0,反之,其值為1。
為了便于結(jié)果進(jìn)行分析,統(tǒng)計學(xué)家Besag對K函數(shù)的估值公式進(jìn)行了平滑處理,得到了L函數(shù)[12]
(2)
3.2 服務(wù)環(huán)境下K函數(shù)算法優(yōu)化
由式(1)可以看出,K函數(shù)的計算需要先計算出觀測窗口內(nèi)點的距離矩陣。距離矩陣的計算是非常費時的操作,也是程序的熱點??紤]到POI數(shù)據(jù)數(shù)據(jù)量大,在服務(wù)環(huán)境下必須提高算法的執(zhí)行效率。因此,針對距離矩陣,從對稱性和并行化計算兩個角度出發(fā),提出了算法的優(yōu)化方法。
3.2.1 利用距離矩陣對稱性進(jìn)行優(yōu)化
K函數(shù)算法中的距離矩陣存在兩種形式:一種是在用戶未選擇邊界修正的情況下,公式(1)中的ωij≡1,窗口內(nèi)中心點i不僅需計算到窗口內(nèi)各點的距離,還需計算到窗口外各點的距離,此時距離矩陣為非對稱矩陣,如圖2所示;另一種是在用戶選擇了邊界修正的情況下,僅靠近窗口邊緣的點會得到一個大于1的ωij權(quán)重改正值,窗口內(nèi)中心點i僅需計算到窗口內(nèi)各點的距離,此時距離矩陣是一個對陣矩陣。
無論哪種形式,距離矩陣中總存在著對稱的部分。由于程序?qū)嚯x矩陣的計算主要是對各個矩陣元素,即歐氏距離的計算,傳統(tǒng)的方法是用一個嵌套循環(huán)逐行或逐列計算各個矩陣元素,但由于矩陣的對稱性,這樣就會產(chǎn)生對距離的不必要重復(fù)計算,增加程序的開銷。因此,如果能利用矩陣的對稱性,只計算矩陣的一半元素,就會減少程序的開銷,提高計算效率。
另一方面,由式(1)可以看出,計算K函數(shù)所需要的并不是距離矩陣中的每個元素,而是矩陣中各個列和。因此,程序在計算的過程中無需存儲每個元素,而是采用一行大小的臨時內(nèi)存空間,該空間用于存儲對每個元素的累加和計算結(jié)果,當(dāng)完成一次計算后,下一次計算就會在原有計算結(jié)果的基礎(chǔ)上進(jìn)行累加,這樣降低了算法對內(nèi)存使用量,提高了計算效率。
結(jié)合對對稱性的利用,臨時存儲可以以一行、一列的內(nèi)存空間創(chuàng)建行和數(shù)組和列和數(shù)組。計算的過程如下:
1)逐列(逐行)從0到n計算一半的對稱部分矩陣元素,然后求和,存儲于行(列)和數(shù)組。如圖2所示,當(dāng)i=2時,a[2]=d32+d42。
2)計算步驟1)的同時將列(行)和數(shù)組累加更新。如圖2所示,當(dāng)i=2時,b[3]+=d32,b[4]+=d42。
3)將行和數(shù)組和列和數(shù)組中的各個對應(yīng)元素進(jìn)行相加,合并成一個新數(shù)組。如圖2所示,當(dāng)i=2時,新數(shù)組c[2]=a[2]+b[2]。
圖2 距離矩陣的計算
3.2.2 利用處理器多核性進(jìn)行優(yōu)化
一般來說,服務(wù)器的硬件配置要高于客戶機的硬件配置。將算法服務(wù)化的優(yōu)勢就在于可以充分利用高端配置的服務(wù)器硬件資源。多核處理器便是服務(wù)器硬件配置的優(yōu)勢之一。從上述距離矩陣的計算方式可以看出,觀測窗口內(nèi)的每一個中心點都遵循著相同的計算操作,即計算與其他點的歐氏距離,然后求和。因此,可以考慮采用共享內(nèi)存式的數(shù)據(jù)并行[13],將觀測窗口內(nèi)的中心點計算分成幾組任務(wù),然后將各個任務(wù)并發(fā)地分配到程序的各個工作線程中,操作系統(tǒng)會根據(jù)底層的線程池將各個線程載負(fù)均衡地分配到不同的內(nèi)核中,從而實現(xiàn)對處理器多核性的利用。
3.3 服務(wù)環(huán)境的設(shè)計
根據(jù)前面所述的基于OGC WPS服務(wù)機制,結(jié)合針對POI數(shù)據(jù)的分析,實驗設(shè)計了如下的服務(wù)環(huán)境:
3.3.1 硬件環(huán)境
考慮到POI數(shù)據(jù)的管理與顯示,硬件方面采用3臺服務(wù)器+客戶機的形式。一臺服務(wù)器專門用于提供空間統(tǒng)計分析的WPS服務(wù),一臺服務(wù)器用于提供地理底圖的地圖服務(wù),另一臺服務(wù)器則用于POI數(shù)據(jù)儲存管理以及與客戶機交互。各個服務(wù)器與客戶機由互聯(lián)網(wǎng)相連。
3.3.2 軟件環(huán)境
提供了WPS服務(wù)和數(shù)據(jù)管理的服務(wù)器運行在微軟的IIS信息服務(wù)的平臺上。其中實驗用法國BRGM (the French geological survey)團隊開發(fā)的開源的WPS.NET實現(xiàn)分析服務(wù)功能,該WPS引擎能夠在微軟IIS信息服務(wù)平臺上運行,用MySQL數(shù)據(jù)庫實現(xiàn)POI數(shù)據(jù)的儲存管理功能。實驗的客戶機運行在Windows系統(tǒng)上,采用開源的OpenLayer JavaScript開發(fā)包進(jìn)行客戶端腳本的開發(fā)??臻g統(tǒng)計算法部分是由C#語言編寫而成,并在.NET 4.0環(huán)境下進(jìn)行編譯。
3.3.3 數(shù)據(jù)環(huán)境
地理底圖是由開放的OpenStreetMap提供的地圖服務(wù),POI數(shù)據(jù)是由網(wǎng)絡(luò)爬蟲軟件在2013年6月采集到的成都市47個類型130 683個POI點。
3.4 服務(wù)架構(gòu)的設(shè)計
圖3所示,在WPS規(guī)范的基礎(chǔ)上,采用了B/S的3層體系架構(gòu)。
圖3 3層服務(wù)架構(gòu)
客戶層用于人機交互,向用戶可視化空間數(shù)據(jù)及分析結(jié)果,同時根據(jù)用戶的指令向服務(wù)層發(fā)出各個請求。服務(wù)層主要有3類。第1類是WPS服務(wù)端,向用戶提供已注冊的算法服務(wù);第2類是數(shù)據(jù)管理服務(wù)端,通過與客戶端以及本地數(shù)據(jù)庫的交互實現(xiàn)POI數(shù)據(jù)的管理與儲存;第3類地圖服務(wù)端,該服務(wù)端可位于遠(yuǎn)程,例如谷歌地圖的地圖服務(wù),主要向用戶提柵格圖片形式的地理底圖。數(shù)據(jù)層主要是根據(jù)數(shù)據(jù)管理端發(fā)出的SQL指令,向數(shù)據(jù)管理端提供或保存POI矢量數(shù)據(jù)。
3.5 K函數(shù)分析服務(wù)的實現(xiàn)
一次完整的分析服務(wù)過程應(yīng)該分為以下4個步驟:
1)請求數(shù)據(jù)??蛻舳讼驍?shù)據(jù)管理端和地圖服務(wù)端請求地理底圖和POI數(shù)據(jù),并對其可視化。
2)請求服務(wù)列表。用戶通過客戶端腳本向WPS服務(wù)端發(fā)出GetCapabilities請求,WPS服務(wù)端會查詢已注冊的服務(wù),以XML Schema文檔格式返回已注冊的服務(wù)信息給客戶端。
3)請求參數(shù)列表。用戶根據(jù)客戶端列出的服務(wù)目錄,選擇K函數(shù)分析服務(wù),客戶端腳本會向WPS服務(wù)端發(fā)出DescribeProcess請求查詢K函數(shù)分析算法的相關(guān)參數(shù)信息,并以XML Schema文檔格式返回給客戶端。
4)請求服務(wù)。最后用戶根據(jù)返回的參數(shù)信息,輸入必要的參數(shù)。輸入?yún)?shù)完畢后通過客戶端腳本向WPS服務(wù)端發(fā)出Execute請求,將參數(shù)以符合WPS規(guī)范的XML Schema文檔傳入WPS服務(wù)端。其中由于待分析的POI數(shù)據(jù)量可能較大,編碼后的XML格式文檔不便于在內(nèi)存中儲存,因此,數(shù)據(jù)管理端將其輸出成文件形式,由WPS服務(wù)端通過URL引用的方式進(jìn)行調(diào)用。計算完畢后,又以XML格式向客戶端返回計算結(jié)果,并由客戶端腳本將計算結(jié)果可視化給用戶。
3.5.1 實驗結(jié)果
實驗以K函數(shù)為例分析了130 683個POI點中類型為“村委會”的4203個POI數(shù)據(jù)。選取如圖4(b)所示的觀測窗口,設(shè)定開始距離尺度為200 m、距離尺度遞增量為200 m、距離尺度數(shù)量為10個、開啟邊界修正、設(shè)定了90%的置信區(qū)間。程序在算法實現(xiàn)環(huán)節(jié)加上了一段用于計時的代碼,以便測試優(yōu)化前和優(yōu)化后算法在執(zhí)行Execute請求時所用時間。由于程序運行時的系統(tǒng)運行環(huán)境具有一定的隨機性,因此將實驗重復(fù)進(jìn)行了5次,統(tǒng)計得到如表1所示測試結(jié)果。實驗最終得到的分析結(jié)果如圖4(b)所示。圖4(a)是將實驗得到的分析結(jié)果用ArcGIS里的繪制圖表功能進(jìn)行的可視化結(jié)果。
表1 優(yōu)化前后K函數(shù)算法執(zhí)行時間
圖4 分析結(jié)果
3.5.2 實驗結(jié)果分析
由表1可以看出優(yōu)化后的算法相較于優(yōu)化前的算法,執(zhí)行時間縮短了80%以上,且當(dāng)處理器核心增加時可進(jìn)一步縮短算法的執(zhí)行時間,使其計算效率的提高具有可擴展性。由于距離矩陣計算在空間統(tǒng)計分析算法中具有普遍性,因此利用對稱性和多核計算的優(yōu)化方法可以推廣到其他算法中去。
由圖4(a)可以看出在圖4(b)所示的觀測窗口內(nèi)的POI數(shù)據(jù)在不同尺度上的空間模式以及其變化趨勢。在距離尺度為200 m時,POI數(shù)據(jù)具有置信度為90%的顯著性聚集,且隨著距離尺度的遞增,聚集性越來越小。當(dāng)距離尺度大于1 500 m時,POI數(shù)據(jù)開始表現(xiàn)出不顯著的離散模式,且隨著距離尺度的遞增,離散性越來越大。當(dāng)距離尺度為2 000 m時,POI數(shù)據(jù)具有置信度為90%的顯著性離散。
針對網(wǎng)上海量的POI,本文設(shè)計并實現(xiàn)了一種基于OGC WPS規(guī)范的空間統(tǒng)計分析服務(wù),并以空間統(tǒng)計方法中的K函數(shù)分析為例,充分運用距離矩陣的對稱性和服務(wù)器的多核處理器,在服務(wù)環(huán)境下優(yōu)化了算法,實現(xiàn)了包括統(tǒng)計描述和統(tǒng)計分析在內(nèi)的POI數(shù)據(jù)空間統(tǒng)計分析服務(wù)的發(fā)布。實驗結(jié)果驗證了空間統(tǒng)計分析服務(wù)的可行性,表明了服務(wù)環(huán)境下算法的優(yōu)化取得了良好效果。與此同時,算法的服務(wù)化也有利于空間統(tǒng)計分析方法在GIS領(lǐng)域的推廣,但本文對空間統(tǒng)計分析算法的服務(wù)化也存在著服務(wù)粒度過大、未能與其他地理信息服務(wù)相互組合形成服務(wù)鏈模型等缺點,還有待今后進(jìn)一步研究。
[1]陶闖,王全科. 基于地學(xué)信息服務(wù)的Internet 3維數(shù)GIS: GeoEye 3D[J]. 測繪學(xué)報,2002,31(1):17-21.
[2]馮駿,劉文兵,夏翔. Web2.0下網(wǎng)絡(luò)地圖的發(fā)展及存在問題探討[J]. 測繪工程,2013,22(2):37-41.
[3]曲鑫,張偉.云服務(wù)平臺下的地理信息系統(tǒng)技術(shù)研究[J].測繪與空間地理信息,2014,37(9):113-115.
[4]劉小春,孫慶輝,趙軍喜,等.WMS網(wǎng)絡(luò)地圖服務(wù)的應(yīng)用研究[J].測繪與空間地理信息,2014,37(3):13-15.
[5]楊中慶. 基于R語言的空間統(tǒng)計分析研究與應(yīng)用[D]. 廣州:暨南大學(xué),2006.
[6]譚詩騰,劉憲鑫.基于SPSS的高鐵路基沉降處理技術(shù)研究[J].交通科技與經(jīng)濟,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的開發(fā)方法研究 [J]. 測繪科學(xué),2011,36(1):140-142.
[9]RUTKOWSKA J,SUBVERTING VISTATMKernel For Fun And Profit [J]. Blackhat Presentation, August 2006.
[10]孫雨,李國慶,黃震春. 基于OGC WPS規(guī)范的處理服務(wù)實現(xiàn)研究[J]. 計算機科學(xué),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.
[責(zé)任編輯:劉文霞]
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);國家自然科學(xué)基金資助項目(41071289,41171350)
周賀杰(1987-),男,碩士研究生.
P208
:A
:1006-7949(2014)12-0043-05