蘇柱金,黃文輝,劉軍
(廣東省地震局,廣州510070)
空間地理信息在JOPENS系統(tǒng)中的應(yīng)用及優(yōu)化
蘇柱金,黃文輝,劉軍
(廣東省地震局,廣州510070)
空間地理信息是JOPENS系統(tǒng)中不可缺少的一項(xiàng)技術(shù),本文闡述了在JOPENS系統(tǒng)中空間地理信息技術(shù)在地震學(xué)中的應(yīng)用,利用空間基礎(chǔ)數(shù)據(jù)和算法進(jìn)行地震定位輔助計(jì)算、地圖數(shù)據(jù)存儲、地震速報(bào)、空間位置展示、地震信息發(fā)布,以及在各項(xiàng)應(yīng)用中的優(yōu)化,使程序的響應(yīng)時(shí)間、系統(tǒng)資源占用、系統(tǒng)運(yùn)行效率達(dá)到最優(yōu)。
空間地理信息;NetCDF;數(shù)據(jù)優(yōu)化;JOPENS
空間地理信息是地震學(xué)與生俱來的一個(gè)屬性,數(shù)據(jù)采集器記錄的每一個(gè)地脈動數(shù)據(jù)都帶有空間位置標(biāo)簽,空間地理信息的應(yīng)用貫穿了地震學(xué)的每一個(gè)領(lǐng)域,包括地震觀測、地震預(yù)報(bào)、災(zāi)害評估、應(yīng)急救援等,可以說是地震研究不可忽視的重要工具。同樣在JOPENS數(shù)字地震臺網(wǎng)中心處理系統(tǒng)[1](下面簡稱為:JOPENS系統(tǒng))中的多個(gè)功能模塊都與空間地理信息有著直接或間接的聯(lián)系,如地震定位輔助計(jì)算[2]、地圖數(shù)據(jù)存儲、地震速報(bào)、結(jié)果展示、信息發(fā)布等。
怎樣利用空間地理信息技術(shù)結(jié)合多種不同格式的基礎(chǔ)數(shù)據(jù),加以分析處理,解決各方面不同問題是JOPENS系統(tǒng)一個(gè)重要的研究方向。在最初的JOPENS中,空間地理信息技術(shù)只用于定位的輔助計(jì)算和獲取速報(bào)地名,隨著空間地理信息技術(shù)的發(fā)展,也在JOPENS中得到了廣泛的應(yīng)用,既豐富了JOPENS系統(tǒng)在可視化和用戶交互方面的功能,也大大提高了空間分析處理方面的能力。
圖1 空間基礎(chǔ)數(shù)據(jù)Fig.1 Spatial basic data
1.1 空間基礎(chǔ)數(shù)據(jù)
空間基礎(chǔ)數(shù)據(jù)是空間地理信息技術(shù)的根本,在JOPENS系統(tǒng)中空間基礎(chǔ)數(shù)據(jù)大致分為三類:行政邊界數(shù)據(jù)和河流數(shù)據(jù)、斷層數(shù)據(jù)、臺站位置數(shù)據(jù)(圖1)。根據(jù)使用目的和使用方法不同,三種數(shù)據(jù)的格式也有所不同,行政邊界數(shù)據(jù)因經(jīng)常需要更新,所以通常使用shape國際通用的矢量數(shù)據(jù)格式存儲,方便從測繪機(jī)構(gòu)獲取最新數(shù)據(jù);斷層數(shù)據(jù)不需要經(jīng)常更新,以專用的二進(jìn)制格式存儲;臺站位置信息是保密數(shù)據(jù),所以保存在加密的數(shù)據(jù)庫中。
1.2 定位輔助計(jì)算
利用定位算法確定震中位置時(shí),需要從臺站信息數(shù)據(jù)庫中讀取臺站經(jīng)緯度,并利用觸發(fā)臺站的相對空間位置、震相到時(shí)差計(jì)算出震中經(jīng)緯度、各臺站相對震中位置的方位角(圖2)。目前JOPENS系統(tǒng)中常用的定位算法有單純定位法、LocSAT定位法、HypoSAT定位法、單臺定位法等,還包括了不常用的川滇3D定位法。
1.3 地理編碼
地理編碼,是把地理位置與地址相匹配的過程,在JOPENS系統(tǒng)中就是利用地震震中位置的經(jīng)緯度值搜索該震中位置所在地址,并按照地震速報(bào)或地震編目的地名規(guī)定組合符合要求的地名的功能。
按照中國地震局地震速報(bào)規(guī)定,震中速報(bào)地名分為三級:省、市、縣,JOPENS系統(tǒng)利用定位算法得出震中經(jīng)緯度后,判斷該經(jīng)緯度所在的省、市、縣組合成三級地名。而編目規(guī)定則是所在省和縣的簡寫組成的兩級地名。
1.4 地理坐標(biāo)投影及顯示
所有的基礎(chǔ)數(shù)據(jù)或最后計(jì)算的結(jié)果最終都會在屏幕上以平面的方式展現(xiàn)出來。所以無論是在地圖展示或是在計(jì)算過程中都需要從地理坐標(biāo)投影轉(zhuǎn)換到平面坐標(biāo)。因?yàn)镴OPENS系統(tǒng)中只涉及簡單的地圖顯示,所以簡化了投影的計(jì)算,把地球假設(shè)為一個(gè)正球體,長軸短軸半徑均為常數(shù)6 371.3 km[3]。投影步驟為:①把各圖層中的對象元素的邊界離散為坐標(biāo)點(diǎn)集合;②以地圖中心的經(jīng)緯度坐標(biāo)為旋轉(zhuǎn)角度,把地圖中心旋轉(zhuǎn)到投影中心;③把投影點(diǎn)的地理坐標(biāo)(即極坐標(biāo))轉(zhuǎn)換成直角坐標(biāo);④判斷投影點(diǎn)在直角坐標(biāo)中的Z軸值,如果是負(fù)數(shù)則表明該點(diǎn)是球體背面的點(diǎn),不需要顯示,如果是正值則是顯示范圍內(nèi)的點(diǎn)。
圖2 震中位置及臺站分布Fig.2 Epicenter location and stations distribution
繞X軸旋轉(zhuǎn)矩陣:
繞Y軸旋轉(zhuǎn)矩陣:
繞Z軸旋轉(zhuǎn)矩陣:
經(jīng)過投影獲得以米為單位的平面地圖之后,再根據(jù)程序面板的長寬比例變換成以像素為單位的平面地圖顯示在面板上。
1.5 定制速報(bào)范圍和速報(bào)策略
在JOPENS系統(tǒng)中,空間地理信息技術(shù)在地震事件的速報(bào)范圍和速報(bào)策略方面還發(fā)揮著很重要的作用[4]。全國30多個(gè)省區(qū)域臺網(wǎng)都有各自不同的責(zé)任區(qū)域,包括自己省行政邊界范圍以及周邊區(qū)域,而且有時(shí)還會根據(jù)不同業(yè)務(wù)要求調(diào)整地震速報(bào)的范圍和對應(yīng)的發(fā)布條件。在這樣的背景下,JOPENS系統(tǒng)中的地震發(fā)布模塊允許各個(gè)區(qū)域臺網(wǎng)的用戶使用Google Earth工具軟件根據(jù)各自臺網(wǎng)的速報(bào)職責(zé)定制速報(bào)范圍的KML文件,KML(Keyhole Markup Language)是由開放地理空間聯(lián)盟(Open Geospatial Consortium,Inc.,簡稱OGC)維護(hù)的國際標(biāo)準(zhǔn),具有方便編輯和傳播的特點(diǎn),利用該KML文件可方便地生成地震速報(bào)的范圍。
2.1 存儲優(yōu)化(NetCDF)
在JOPENS系統(tǒng)中,因行政邊界數(shù)據(jù)需要定時(shí)更新,所以都以shape矢量數(shù)據(jù)格式存儲,這種數(shù)據(jù)格式的讀寫都需要一套第三方的API接口[5],而且在讀取過程中需要把數(shù)據(jù)中的所有元素都預(yù)先讀取到內(nèi)存中去,所以當(dāng)數(shù)據(jù)量非常大的時(shí)候程序占用操作系統(tǒng)資源非常多,甚至有時(shí)候會直接導(dǎo)致程序崩潰。為了徹底解決該問題,重新選用了一種新的存儲格式(NetCDF格式)對空間數(shù)據(jù)進(jìn)行存儲優(yōu)化。
NetCDF(network Common Data Format)網(wǎng)絡(luò)通用數(shù)據(jù)格式[6]是由美國大學(xué)大氣研究協(xié)會(University Corporation for Atmospheric Research,UCAR)的Unidata項(xiàng)目科學(xué)家針對科學(xué)數(shù)據(jù)的特點(diǎn)開發(fā)的,是一種面向數(shù)組型并適于網(wǎng)絡(luò)共享的數(shù)據(jù)的描述和編碼標(biāo)準(zhǔn)。目前,NetCDF廣泛應(yīng)用于大氣科學(xué)、水文、海洋學(xué)、環(huán)境模擬、地球物理等諸多領(lǐng)域。
NetCDF格式最大的優(yōu)點(diǎn)就是不需要把完整的數(shù)據(jù)預(yù)先讀取到內(nèi)存中,它可根據(jù)使用需要利用索引找到特定一個(gè)元素,然后再進(jìn)行讀取操作。因?yàn)樽畛醌@取的數(shù)據(jù)是shape格式,所以在JOPENS系統(tǒng)中提供了一套將shape格式優(yōu)化成NetCDF格式的接口,該接口把shape格式中的對象元素的信息提取出來生成NetCDF格式,然后將對象元素直接存儲在本地文件系統(tǒng)中,方便索引和讀取。生成NetCDF格式是一次性操作,生成一次之后以后每一次讀取數(shù)據(jù)都不需要使用原Shape格式的數(shù)據(jù),當(dāng)有新的shape文件更新時(shí),利用該接口對最新的對象元素進(jìn)行更新即可。
優(yōu)化后測試如圖3所示,優(yōu)化后程序內(nèi)存占用大大減小,藍(lán)色區(qū)域的已使用內(nèi)存(Used size)由原來的475.5 MB減小到53.08 MB,減小了89%。而圖表一半部分中表示內(nèi)存中駐留的JAVA對象數(shù)也大大減少,優(yōu)化前JAVA對象數(shù)最多的是經(jīng)緯度坐標(biāo)類com.vividsolutions.jts.geom.Coordinate,實(shí)例化了915萬個(gè)對象,優(yōu)化之后因?yàn)榭h對象元素的經(jīng)緯度坐標(biāo)不再長期駐留在內(nèi)存中,所以程序中最多的是JAVA語言的四個(gè)基本數(shù)據(jù)類型char、String、int和Object。
圖3 優(yōu)化存儲前后程序內(nèi)存和對象數(shù)對比(左邊為優(yōu)化前,右邊為優(yōu)化后)Fig.3 Comparison of system memory and object number before and after storage optimization
2.2 地理編碼提取優(yōu)化
國內(nèi)地名的地理編碼主要在存儲在縣行政邊界圖層中,地震速報(bào)三級地名和地震編目的二級地名都需要通過地理編碼功能接口從縣行政邊界圖層數(shù)據(jù)獲取。在獲取過程中需要根據(jù)震中經(jīng)緯度坐標(biāo)判斷震中所在的省市縣,再根據(jù)速報(bào)規(guī)定或編目規(guī)定組合成正式震中地名。而在縣行政邊界圖層中包含了全國3 000個(gè)縣對象元素,單個(gè)縣對象元素的邊界可由多達(dá)上萬個(gè)經(jīng)緯度坐標(biāo)點(diǎn)組成。如果程序在獲取國內(nèi)地名時(shí)把3 000多個(gè)縣行政邊界對象全部加載到計(jì)算機(jī)內(nèi)存中,需要長期占用大量的內(nèi)存資源。
在JOPENS系統(tǒng)中的優(yōu)化方案為:對縣對象元素進(jìn)行預(yù)處理,把縣對象元素的最大最小經(jīng)緯度提取出來,生成一個(gè)包含該縣對象元素的矩形對象。在判斷震中經(jīng)緯度是否位于該縣對象元素時(shí),先利用矩形對象初步判斷,因矩形對象只有四個(gè)經(jīng)緯度坐標(biāo)點(diǎn),所以進(jìn)行點(diǎn)包含的判斷操作時(shí)更加高效,最后再利用符合點(diǎn)包含判斷的矩形對象所對應(yīng)的縣對象元素進(jìn)行點(diǎn)包含判斷,使用優(yōu)化方案后資源占用大大降低,特別是需要對這3 000個(gè)縣對象進(jìn)行遍歷判斷時(shí),目標(biāo)在列表中的位置越靠后越能體現(xiàn)出性能優(yōu)勢。下面利用20組隨機(jī)經(jīng)緯度坐標(biāo)進(jìn)行地理編碼提取的性能對比測試。測試結(jié)果顯示,優(yōu)化后的每一次提取都有不同程度的性能提高,這取決于該組坐標(biāo)對應(yīng)的縣對象在列表中的位置,如果在列表靠前的位置,性能提高有限,如果在列表靠后的位置性能將會有很大的提高。
2.3 地圖顯示優(yōu)化
在JOPENS系統(tǒng)中,集成地圖顯示功能的模塊分別有:超快速報(bào)與預(yù)警模塊(JEEW)、人工交互分析模塊(MSDP)、臺站監(jiān)控模塊(MONITOR)、信息發(fā)布模塊(ALERT)。地圖顯示功能在這些模塊中發(fā)揮著重要的作用,負(fù)責(zé)把空間基礎(chǔ)數(shù)據(jù)、定位過程和定位結(jié)果等三類數(shù)據(jù)直觀地展現(xiàn)出來。這三類顯示數(shù)據(jù)中空間基礎(chǔ)數(shù)據(jù)是數(shù)據(jù)量最大,包括了全球經(jīng)緯度標(biāo)尺、海陸邊界、省市縣行政邊界、中國的主要河流、斷層、臺站分布、圖例。而定位過程和定位結(jié)果的數(shù)據(jù)則包括了臺站的狀態(tài)(是否參與定位、是否拾取到時(shí)震相、當(dāng)前的速度或加速度值)、P波S波傳播速度和范圍、盲區(qū)范圍、震中位置、震源機(jī)制解(圖4)。
表1 根據(jù)20組隨機(jī)坐標(biāo)進(jìn)行優(yōu)化前后的地理編碼提取時(shí)間對比Table 2 The comparison of geocoding extraction time from twenty groups of random coordinates before and after optimization
圖4 地震超快速報(bào)與預(yù)警客戶端地圖顯示Fig.4 Map view for earthquake super-fast report and early warning client
地圖顯示的優(yōu)化主要為了提高顯示效果和減小程序在畫圖方面的響應(yīng)時(shí)間,從而改善用戶體驗(yàn),針對不同的功能優(yōu)化方案分為三個(gè)層次:一是動靜分離,二是圖片緩沖,三是局部顯示。
2.3.1 動靜分離
把靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)分離顯示,同一個(gè)地震事件在觸發(fā)和定位過程中是不斷修正結(jié)果的過程,震中位置和參與定位的臺站會隨著修正結(jié)果不斷地微調(diào),P波S波也會隨著時(shí)間推移不變地?cái)U(kuò)大傳播范圍,如果每一次新的修正都在面板上重畫所有數(shù)據(jù)的話,時(shí)間和資源的代價(jià)太高,所以把基本不變的數(shù)據(jù)作為面板最底層畫圖,把時(shí)刻需要改變的數(shù)據(jù)作為面板的最頂層畫圖,這時(shí)只需要重畫頂層畫圖就可以把最新的數(shù)據(jù)表現(xiàn)出來。
2.3.2 圖片緩沖
JAVA的Graphics類提供了很多畫圖的基本接口,但在實(shí)際使用過程中,如果直接利用這些接口在JPanel面板上畫圖的話,效率很低,特別是縣行政邊界數(shù)據(jù)的一個(gè)縣對象元素就包含了上萬個(gè)經(jīng)緯度坐標(biāo)的情況下,甚至有可能會導(dǎo)致內(nèi)存泄漏或程序崩潰等嚴(yán)重問題。考慮到這種情況,優(yōu)化方法是為JPanel面板添加一個(gè)圖片緩沖,把畫圖和顯示分為兩個(gè)步驟進(jìn)行,先把地圖畫到PNG圖片上,然后再把PNG圖片顯示在JPanel面板上,有了這一層緩沖后大大提高了畫圖功能的效率,而且PNG圖片是可以重復(fù)利用的,為上面動靜分離的優(yōu)化方法提供了支撐。
2.3.3 局部顯示
局部顯示包含了兩個(gè)方面的含義:一是只顯示可視范圍內(nèi)的地圖數(shù)據(jù);二是只顯示某個(gè)比例尺范圍內(nèi)的特定圖層數(shù)據(jù)。
當(dāng)?shù)貓D放大到一定比例時(shí)由于面板大小的限制只會顯示面板范圍內(nèi)的數(shù)據(jù),所以只需要提取面板范圍內(nèi)的數(shù)據(jù)來進(jìn)行畫圖處理即可,當(dāng)?shù)貓D數(shù)據(jù)需要變化(通常是顯示比例或者地圖中心變化引起的)時(shí),重新獲取地圖中心周邊一定距離的地圖數(shù)據(jù)。例如JOPENS系統(tǒng)對地震事件進(jìn)行自動定位檢測時(shí),同一個(gè)地震事件的多次定位修正,其震中位置經(jīng)緯度坐標(biāo)差別細(xì)微,此時(shí)不需要重新加載面板上的地圖數(shù)據(jù)。
行政邊界地圖數(shù)據(jù)在JOPENS系統(tǒng)的基礎(chǔ)地圖數(shù)據(jù)中占比重最大的一類,所以能夠?qū)@一類數(shù)據(jù)進(jìn)行優(yōu)化處理就能大大減輕地圖顯示方面的壓力。按照人的視覺習(xí)慣,站在遠(yuǎn)處觀察時(shí),只想了解該物體的大致輪廓;靠近物體觀察時(shí)希望掌握細(xì)節(jié)。所以優(yōu)化方案把基礎(chǔ)地圖數(shù)據(jù)分成了四個(gè)等級,分別在四個(gè)等級的比例尺上顯示。這四個(gè)等級的數(shù)據(jù)分別為:海岸線和國界、省行政邊界、市行政邊界、縣行政邊界。當(dāng)用戶調(diào)整地圖比例時(shí),永遠(yuǎn)只需顯示在這個(gè)比例下的等級數(shù)據(jù),例如如果需要顯示縣行政邊界數(shù)據(jù)時(shí),需要放大顯示比例,如果需要顯示國界時(shí)縮小顯示比例。
圖5是這三個(gè)層次的優(yōu)化做出的綜合測試結(jié)果,結(jié)果以CPU工作時(shí)間為基礎(chǔ)的,因?yàn)楫?dāng)程序運(yùn)行并進(jìn)行特定的操作時(shí),系統(tǒng)CPU的工作時(shí)間能夠反應(yīng)程序的響應(yīng)時(shí)間,所以本次優(yōu)化通過監(jiān)控系統(tǒng)CPU的工作時(shí)間來對比優(yōu)化前后四項(xiàng)地圖基本操作的響應(yīng)時(shí)間,四項(xiàng)地圖基本操作按編號1到4分別為:地圖初始化加載、地圖放大操作、地圖縮小操作和地圖平移操作。
圖5的橫坐標(biāo)為時(shí)間軸,縱坐標(biāo)為CPU占用率,優(yōu)化前當(dāng)進(jìn)行四項(xiàng)地圖操作時(shí),CPU保持15%占有率左右持續(xù)8 s,實(shí)行優(yōu)化后,CPU占有率都有2個(gè)百分點(diǎn)左右的降低,而且CPU工作時(shí)間減少了50%,具體數(shù)據(jù)如下表所示。
空間地理信息是JOPENS系統(tǒng)中使用率非常高的一項(xiàng)技術(shù),在多個(gè)功能模塊中都得到應(yīng)用。針對各個(gè)功能模塊不同的特點(diǎn)和使用情況,對空間地理信息技術(shù)進(jìn)行了三項(xiàng)優(yōu)化,分別是:①利用NetCDF格式進(jìn)行了數(shù)據(jù)存儲優(yōu)化,提高了減少了程序在讀取空間數(shù)據(jù)時(shí)的內(nèi)存占用。②利用多邊形的空間特征對地理編碼提取功能進(jìn)行了優(yōu)化,提高了地理編碼提取的速度。③根據(jù)JAVA畫圖的原理及人眼的視覺習(xí)慣,對地圖顯示進(jìn)行了優(yōu)化,提高了程序的畫圖性能及縮短了用戶交互的響應(yīng)時(shí)間。
空間地理信息學(xué)科和地震學(xué)科可以說是無法分割的兩門科學(xué),隨著地震科學(xué)的發(fā)展,空間地理信息技術(shù)將會更多的用武之地,例如空間信息網(wǎng)絡(luò)服務(wù)、三維可視化及空間分析,甚至虛擬現(xiàn)實(shí)增強(qiáng)現(xiàn)實(shí)都是未來技術(shù)的方向。使用空間地理信息技術(shù)有利也有弊,它可增加JOPENS系統(tǒng)空間信息處理能力[7],使本來枯燥的數(shù)據(jù)有更直觀的可視化展現(xiàn)方式,但是空間數(shù)據(jù)占用系統(tǒng)資源非常大,影響系統(tǒng)響應(yīng)速度,甚至有導(dǎo)致系統(tǒng)崩潰的潛在危險(xiǎn)。所以做好各個(gè)功能的優(yōu)化是提高系統(tǒng)效率與用戶體驗(yàn)的關(guān)鍵所在。
圖5 優(yōu)化前后系統(tǒng)CPU占用及工作時(shí)間對比Fig.5 CPU utilization and working time before and after optimization
表2 地圖顯示優(yōu)化前后性能對比Table 2 The performance comparison of map view before and after optimization
[1]吳永權(quán),黃文輝.數(shù)據(jù)處理軟件系統(tǒng)JOPENS的架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)[J].地震地磁觀測與研究,2010,31(6):58-63.
[2]Buliung R N,Remmel T K.Open source spatial analysis and activity-travel behavior research:capabilities of a space package[J].Journal of Geographical Systems,2008(10):191-216.
[3]M.Neteler,H.Mitasova.Open Source GIS:A GRASS GIS approach[M].New York:Springer,2007.
[4]蘇柱金,黃文輝.基于JOPENS系統(tǒng)的地震速報(bào)信息聚合與發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].華南地震,2014,34(4):35-40
[5]GeoTools API Documents[EB/OL][2014-12-10].http:// docs.geotools.org.
[6]R Rew,G Davis.NetCDF:an interface for scientific data access[J].IEEE Computer Graphics and Applications,1990,10(4):76-82.
[7]段剛,張麗娜,蔡杏輝.J O P E N S常用定位方法對臺灣中深源地震定位差異分析[J].地震工程學(xué)報(bào),2014,36(4):1087-1092.
The Application and Optimization of Spatial Geographic Information Technology in JOPENS
SU Zhujin,HUANG Wenhui,LIU Jun
(Earthquake Administration of Guangdong Province,Guangzhou 510070,China)
Spatial geographic information is an important technology in JOPENS,and this paper discusses the application of spatial geographic information technology in seismology science,including taking advantage of spatial basic data and algorithm to assistant calculation for seismic location,map data storage,earthquake quick report,view of spatial location,seismic information publish,and the optimization in all these applications,make the program response faster,system resources consumption less and enhance the system running efficiency.
Spatial geographic information;NetCDF;Data optimization;JOPENS
P315.6
A
1001-8662(2016)03-0081-07
10.13512/j.hndz.2016.03.012
2015-07-29
蘇柱金(1983-),男,工程師,碩士研究生,主要從事地震監(jiān)測工作。
E-mail:suzo@foxmail.com
蘇柱金,黃文輝,劉軍.空間地理信息在JOPENS系統(tǒng)中的應(yīng)用及優(yōu)化[J].華南地震,2016,36(3):81-87.[SU Zhujin,HUANG Wenhui,LIU Jun.The Application and Optimization of Spatial Geographic Information Technology in JOPENS[J].South china journal of seismology,2016,36(3):81-87.]