余勁松弟 佟瑞菊 陳遠杰
1(福州大學福建省空間信息工程研究中心 福建 福州 350116) 2(福建工程學院交通學院 福建 福州 350002)
正隨著空天地一體化地球觀測、物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)等技術的成熟和發(fā)展,與人類生存和發(fā)展相關的各個領域——自然、環(huán)境、人文、經(jīng)濟和社會的時空數(shù)據(jù)的增長將人類帶入了“時空大數(shù)據(jù)”時代[1-2]。在這樣的背景下,如何在統(tǒng)一參考坐標系下實現(xiàn)不同主題信息的存儲、檢索和分析[3-4],充分共享及利用有效信息并予以集成,提供一致訪問,支持時空大數(shù)據(jù)動態(tài)挖掘以提供決策支持,成為國家信息化軟實力提升急需解決的問題[5-9]。
空間坐標系標識SRID(Spatial Reference System Identifier)可唯一標識坐標系或坐標軸等坐標系組成元素,已被歐洲石油勘探組織EPSG(European Petroleum Survey Group)、開放地理信息聯(lián)盟OGC(Open Geospatial Consortium)等國際組織所采用,廣泛應用于資源調查、環(huán)境評估、災害預測等GIS應用。坐標系解析提供了坐標系標識與坐標系參數(shù)的映射關系[10],可通過Web服務實現(xiàn)[11]。目前,常見坐標系解析服務由spatialreference、EPSG和OGC提供[12-13]。例如,Oracle在其數(shù)據(jù)庫空間數(shù)據(jù)項SDO(Spatial Data Option)中采用SRID,僅需獲得SRID標識值即可通過EPSG的解析服務獲得坐標系參數(shù),并應用于傳統(tǒng)二三維地圖服務。
SRID為靜態(tài)標識,只可通過預定義的標識與表達的匹配,無法標識動態(tài)生成的參考坐標系。大氣、海洋或地球物理等GIS領域多維時空大數(shù)據(jù)互操作,往往涉及時空數(shù)據(jù)的動態(tài)互操作,產(chǎn)生了時空參考動態(tài)坐標系Web標識與解析需求。目前,針對這種臨時產(chǎn)生的動態(tài)坐標系標識和解析還沒有標準化解決方案。在回顧和比較業(yè)界主流參考坐標標識、表達與解析模型的基礎上,針對靜態(tài)標識與解析的不足,提出了時空參考坐標系動態(tài)解析模型。設計基于URL的動態(tài)標識規(guī)則和基于OGC 地理標志語言GML(Geography Markup Language)的動態(tài)表達模版,引入標識解析規(guī)則,提出通過還原序列化參數(shù)層次結構的方法,獲得坐標系組成元素及結構信息。再與相應表達模版匹配并實例化,滿足了時空參考動態(tài)坐標系標識與解析需求。最后,基于開源Rasdaman的Semantic Cordinate Reference System Resolver (SECORE)組件,實現(xiàn)了時空參考動態(tài)坐標系標識與解析原型服務部署。
參考坐標系標識是WebGIS互操作過程中不一致坐標系統(tǒng)識別、表達及轉換的前提。目前,主要有三種標識方法,分別是數(shù)字字符串、統(tǒng)一資源名稱URN(Uniform Resource Name)和統(tǒng)一資源標識符URI(Uniform Resource Identifier)標識方法。詳見表1。
表1 主要坐標系標識方法比較
數(shù)字字符串標識通過固定數(shù)字字符串標識一個坐標系或相關組成元素。該標識可通過網(wǎng)絡解析,亦可通過本地解析,獲得坐標系參數(shù),可移植性強。該類標識及解析方式需各系統(tǒng)采用相同解析庫以達到一致性,對于動態(tài)產(chǎn)生的參考坐標系標識則需通過更新并同步解析庫實現(xiàn),如無統(tǒng)一動態(tài)參考坐標系標識生成規(guī)則,易產(chǎn)生標識定值不一致問題。EPSG的SRID屬于固定數(shù)字字符串標識,Oracle和ESRI等公司的GIS產(chǎn)品皆采用該類標識。
URL是互聯(lián)網(wǎng)標準資源的地址,同一資源的URL入口可不唯一。URL標識方式除包含網(wǎng)絡協(xié)議、域名或IP、路徑等網(wǎng)絡資源定位信息,還包括參數(shù)信息,參數(shù)信息通過鍵值對KVP(Key-Value Pair)組成,可滿足多元素組合需求,為動態(tài)參考坐標系標識生成提供前提條件。其鍵值對數(shù)量僅受URL最大路徑長度限制。目前,OGC已提供兩種基于URL的規(guī)范化參考坐標系Web定位方法[14],分別是表述性狀態(tài)轉移REST(Representational State Transfer)和KVP方法。兩種方法在標識參考坐標系上是等效的[14]。其中,REST方法標識坐標系的命名規(guī)則如下:
http://hier_part/authority/version/code
objectType表示對象類型,authority表示機構部門,version是版本信息,code是標識號。比如EPSG 2363西安80坐標系的REST表示如下:
http://www.opengis.net/def/crs/EPSG/0/2363
KVP方法標識坐標系的命名規(guī)則如下:
http://hier_part/objectType?authority=AUTHORITY & version= VERSION&code=CODE
KVP采用鍵值對的方式進行坐標系標識,參數(shù)與REST方法是一致的,objectType表示對象類型,authority表示機構部門,version是版本信息,code是標識號。比如EPSG 2363的KVP表示如下:
http://hier_part/crs?authority=EPSG&version=0&code=2363
URN無法直接定位網(wǎng)絡資源,需通過URL獲得資源定位。URN標識具有持久性、唯一性和地址無關性特點。URN提供命名空間識別,且同一URN可引用多個URL。目前,OGC已提供URN方式的SRID標識,但僅支持已知的參考坐標系標識,無法標識動態(tài)參考坐標系,定義規(guī)則如下:
urn:ogc:def:objectType:authority:[version]:code
其中,urn:ogc:def是OGC URN的命名空間,objectType表示對象類型,authority表示機構部門,version是版本信息,code是標識號。比如urn:ogc:def:crs:EPSG:6.6:2363表示的OGC命名空間的參考坐標系對象,由EPSG的6.6版本數(shù)據(jù)庫的2363坐標系定義給出。
參考坐標系往往包括坐標系標識、名稱、坐標軸等信息,可通過中間交換格式表達,常見中間交換格式包括OGC Well Known Text (WKT)、GML、Proj4、JavaScript Object Notation(JSON)等。不同表達格式異構,但語義具有一致性,是可轉換的。這些格式按結構可分兩種,分別是序列化參數(shù)對和可嵌套對象結構。其中,可嵌套對象結構又可根據(jù)屬性的表達方式分為顯式參數(shù)表達與隱式參數(shù)表達,見表2。
表2 主要參考坐標系定義的結構比較
序列化參數(shù)對的每一參數(shù)對由參數(shù)名及參數(shù)值組成,所有參數(shù)依次排列,需對每一參數(shù)及其組合預定義,以確保每一參數(shù)是可解析的。目前,針對動態(tài)生成的參考坐標系還未有相關組合規(guī)則定義。坐標系轉換工具Proj4采用該方式提供坐標系表達信息。例如,西安80坐標系的Proj4表達如下:+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +a=6378140 +b=6356755.2882 +units=m +no_defs
其中,porj為投影、lat_0為中央經(jīng)線、lon_0為緯線、k為比率、x_0為東偏移、y_0為北偏移、a為長半軸為、 b為短半軸、units為單位信息。
可嵌套對象結構顯式方式的對象參數(shù)嵌套形成樹狀結構,參數(shù)值的屬性名稱直接出現(xiàn)在定義文本中,提供了詳盡的坐標系組成元素信息,可驗證參考坐標系表達文檔的一致性。GML和JSON參考坐標系表達采用可嵌套對象結構顯式方式。其中,JSON采用完全獨立于語言的文本格式,通過對象和數(shù)組兩種結構表達復雜參考坐標系結構。對象參數(shù)在JSON中表示為“{}”括起來的內容,結構為 {key:value, key:value, …}的鍵值對結構,key為對象的屬性,value為對應的屬性值;數(shù)組在JSON中是中括號“[]”括起來的內容,結構為 ["字段值","字段值","字段值", …],字段值類型可以是數(shù)字、字符串、數(shù)組和對象。GeoJSON的參考坐標系表達以“type”和“properties”做為必需的關鍵字,其中,“type”是類型,“properties”是其標識,比如,EPSG 2363在GeoJSON中表達如下:
{′type′: ′EPSG′,′properties′: {′code′: 2363}}
目前,GeoJSON僅提供參考坐標系標識引用,并無具體組成元素定義,因此,對于動態(tài)生成的參考坐標系無相關標識定義。
GML參考坐標系參數(shù)對象屬性亦以顯式方式存在,以XML方式提供詳盡的坐標系組成元素表達。GML參考坐標系表達基于ISO19111[14]國際標準定義,對象參數(shù)、屬性及其組合規(guī)則通過Schema預定義,可基于標準機器驗證參考坐標系表達文檔的一致性。比如,EPSG 2363的GML表達如下:
xmlns:epsg=″urn:x-ogp:spec:schema-xsd:EPSG:1.0:dataset″ xmlns:gml=″http://www.opengis.net/gml/3.2″ xmlns:xlink=″http://www.w3.org/1999/xlink″ gml:id=″epsg-crs-2363″>
GML參考坐標系表達的對象層次支持元素嵌套,如大地坐標系元素gml:baseGeodeticCRS嵌套于投影坐標系gml:ProjectedCRS元素中。其中,gml:baseGeodeticCRS元素細節(jié),通過xlink間接給出詳細表達,如下:
xmlns:gml=″http://www.opengis.net/gml/3.2″ xmlns:xlink=″http://www.w3.org/1999/xlink″ gml:id=″ogp-crs-4610″>
GML定義通過xlink支持遞歸遍歷此類非葉子元素,以葉子元素為遞歸遍歷終止條件獲得參考坐標系全定義。通過標準化參考坐標系Schema的定制,可進行葉子及非葉子元素動態(tài)組合,支持動態(tài)生成的參考坐標系表達。
OGC WKT的參數(shù)屬性名稱以隱式方式存在。通過一串大寫字符標識參數(shù)對象,對象參數(shù)值置于括號(小括號或中括號)之內,參數(shù)之間用逗號閣開,而無參數(shù)屬性名稱,解析需依據(jù)預定義對象層次和參數(shù)值次序進行解析。例如,EPSG 2363的坐標系表達如下:
PROJCRS[″Xian 1980 / 3-degree Gauss-Kruger zone 39″,
BASEGEODCRS[″Xian 1980″,
DATUM[″Xian 1980″,
ELLIPSOID[″IAG 1975″,6378140,298.257,LENGTHUNIT[″metre″,1.0]]]],
CONVERSION[″3-degree Gauss-Kruger zone 39″,
METHOD[″Transverse Mercator″,ID[″EPSG″,9807]],
PARAMETER[″Latitude of natural origin″,0,ANGLEUNIT[″degree″,0.01745329252]],
PARAMETER[″Longitude of natural origin″,117,ANGLEUNIT[″degree″,0.01745329252]],
PARAMETER[″Scale factor at natural origin″,1,SCALEUNIT[″unity″,1.0]],
PARAMETER[″False easting″,39500000,LENGTHUNIT[″metre″,1.0]],
PARAMETER[″False northing″,0,LENGTHUNIT[″metre″,1.0]]],
CS[cartesian,2],
AXIS[″northing (X)″,north,ORDER[1]],
AXIS[″easting (Y)″,east,ORDER[2]],
LENGTHUNIT[″metre″,1.0],
ID[″EPSG″,2363]]
該方式對象層次以WKT對象嵌套方式存在,如參考橢球對象ELLIPSOID嵌套于大地基準面對象DATUM中。參數(shù)值依次排列,而無參數(shù)屬性名稱,如6 378 140表示長半軸,298.257是扁率倒數(shù)。目前,該方式無動態(tài)生成的參考坐標系表達定制支持。
參考坐標系解析,通過建立參考坐標系標識與表達匹配關系,使得GIS Web服務可通過參考坐標系標識獲得詳細參數(shù)定義。參考坐標系動態(tài)解析,亦需先建立動態(tài)坐標系標識和表達模型,再建立兩者對應匹配模型。
動態(tài)坐標系標識需包含坐標系組成元素的動態(tài)組合信息。URL標識支持按鍵值對方式進行組成元素的多標識組合,生成新坐標系URL標識。這種混合參考坐標系定義標識規(guī)則如下:
crs-compound?{n=crs}
其中,crs-compound表示該坐標系標識為動態(tài)坐標系標識,n為組成元素次序,crs為參考坐標系標識。例如,北京80坐標系和Unix時間戳組成的三維時空混合坐標系的動態(tài)標識如下:
http://hier_part/def/crs-compound?1=http://hier_part/def/crs/EPSG/0/2363&2=http://hier_part/def/crs/OGC/0/UnixTime
其中,http://hier_part/def/crs/EPSG/0/2363為北京80坐標系標識,http://hier_part/def/crs/OGC/0/UnixTime為Unix時間戳標識。
動態(tài)坐標系表達應包含相應動態(tài)坐標系的組成元素參數(shù)信息。GML可嵌套對象結構支持坐標系參數(shù)對象的嵌套及遞歸遍歷,充分滿足動態(tài)坐標系表達的需求?;旌蠀⒖甲鴺讼祫討B(tài)坐標系表達模型,如下:
xmlns:epsg=′urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset′ xmlns:xlink=′http://www.w3.org/1999/xlink′ gml:id=′crs′ xmlns:gco=″http://www.isotc211.org/2005/gco″xmlns:gmd=″http://www.isotc211.org/2005/gmd″> {
其中,identifier為動態(tài)坐標系標識,crsName為新生成的坐標系名稱,URL(crs)為原坐標系標識。通過解析動態(tài)坐標系標識獲得各組成元素標識,用于實例化動態(tài)坐標系表達模型,得到動態(tài)坐標系表達。例如,北京80坐標系和Unix時間戳所組成的三維時空混合坐標系表達如下:
xmlns:epsg=′urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset′ xmlns:xlink=′http://www.w3.org/1999/xlink′ gml:id=′crs′ xmlns:gco=″http://www.isotc211.org/2005/gco″ xmlns:gmd=″http://www.isotc211.org/2005/gmd″>
http://hier_part/def/crs-compound?1=http://hier_part/def/crs/EPSG/0/2363&2=http://hier_part/def/crs/OGC/0/UnixTime為新坐標系標識,Xian 1980/3-degree Gauss-Kruger zone 39/Unix Time為新坐標系名稱,http://www.opengis.net/def/crs/EPSG/0/2363和http://www.opengis.net/def/crs/OGC/0/UnixTime為組成新坐標系的坐標系標識。源坐標系以xlink方式嵌套于動態(tài)坐標系根元素,通過遞歸遍歷非葉子元素,并按相應層次結構次序展開即可獲得新坐標系的全表達。
參考坐標系解析是將參考坐標系標識指向相應表達并獲得坐標系參數(shù)的過程。對于靜態(tài)標識解析可通過預定義標識與表達的匹配關系完成,而動態(tài)標識則需建立標識解析規(guī)則。通過還原序列化參數(shù)的層次結構,獲得組成元素及結構信息,再與相應表達模版匹配并實例化完成解析。研究分別針對模版識別及參數(shù)識別建立解析規(guī)則。其中,模版識別通過預定義模版名稱識別,參數(shù)識別采用有序參數(shù)序列識別,有序參數(shù)識別基于預定義遍歷序列,順次還原層次結構,并實例化模版。
研究基于SECORE[11]展開解析服務原型研究。SECORE底層數(shù)據(jù)庫為BaseX,支持XQuery API for Java (XQJ)的XML查詢接口,提供基于URL的文檔解析,可通過定制GML模版實現(xiàn)基于EPSG坐標系定義文檔的動態(tài)參考坐標系表達。動態(tài)解析首選需對接收的URL解析,獲取鍵值對中坐標系或坐標軸標識,調用GML模版,通過XQuery對其實例化同時比對數(shù)據(jù)庫判定標識有效性,最后返回結果。解析服務交互模型見圖1。
圖1 解析服務交互模型
SECORE是一個可用于定制GIS時空參考動態(tài)坐標系Web標識與解析的開源組件[15]。在實際應用中,該開源組件本身所提供模版并不局限于坐標系組合模版,亦支持定制坐標系組成元素組合模版及其他組合形式的模版,與BaseX進行查詢交互,通過Tomcat進行部署,以滿足互操作需要。
大數(shù)據(jù)時代,空天地時空GIS數(shù)據(jù)增長迅速,對GIS數(shù)據(jù)互操作涉及的坐標系一致性提出了挑戰(zhàn)。統(tǒng)一的時空坐標系標識、表達和相應的解析模型可為GIS數(shù)據(jù)互操作提供一個良好的坐標系一致性支持,有助于提高基于WebGIS服務的時空互操作效率。通過對現(xiàn)有坐標系表達和標識的比較,提出了基于URL和GML的動態(tài)坐標系標識、表達和解析模型,設計了相關實現(xiàn)并展示了服務原型,將地理信息互操作的一致性坐標系支持擴展到多維時空。再結合OGC的新一代模塊化格網(wǎng)服務標準OGC WCS 2.0[16],可使地理信息應用的深度和廣度達到一個新的水平。
OGC WCS 2.0是OGC的新一代模塊化時空格網(wǎng)服務標準,在核心操作模塊的基礎上定義了格網(wǎng)編碼、空間參考、服務處理、傳輸協(xié)議等擴展模塊,并可基于核心及各擴展模塊靈活定制領域應用標準。研究成果的實現(xiàn)可有效支持WCS 2.0參考坐標系擴展標準[15]定義的動態(tài)坐標系標識及其參數(shù)獲取,相應Web請求示例如下:
http://localhost/wcs2?service=WCS&VERSION=2.0.1&request=GetCoverage&coverageid=eoID &OUTPUTCRS=http://localhost/def/crs-compound?1= http://localhost/def/crs/EPSG/0/2363&2= http://localhost/def/crs/OGC/0/UnixTime
該請求指定了返回格網(wǎng)的坐標系參數(shù)組成,WCS2.0格網(wǎng)服務在接收到該請求后,對該坐標系標識進行解析核對,若所部署WCS2.0服務支持該坐標系則按該坐標系返回時空格網(wǎng)數(shù)據(jù)。
動態(tài)坐標系標識、表達和解析服務的應用前景非常廣泛,在此基礎上可進一步開發(fā)一致性的時空坐標系解析服務。通過提取和解析各種主題時空數(shù)據(jù)的相關參考坐標系信息,加強現(xiàn)有WebGIS系統(tǒng)之間的時空參考一致性,提高系統(tǒng)在社會、人口、資源、環(huán)境等方面的動態(tài)分析、監(jiān)測與預報的整合能力,為區(qū)域可持續(xù)、協(xié)調發(fā)展服務。然而,目前對動態(tài)坐標系標識、表達和解析服務平臺的發(fā)展前景還沒有完全成熟的看法。從地球表層各圈層的時空分析,到人類發(fā)展、未來環(huán)境與社會的變化預測,涉及到時空地理信息互操作一致性的方方面面。如何更好地做好動態(tài)坐標系標識、表達和解析的應用基礎研究,將為數(shù)字地球廣泛而深入的應用提供重要手段,也將為地球信息系統(tǒng)互操作新概念與新理論的研究孕育強有力的信息應用基礎設施。OGC 發(fā)布的OGC 11-135r2規(guī)范已采用了基于URL的動態(tài)時空參考坐標系統(tǒng)Web標識并在全世界推廣,有利增強了地理信息Web服務互操作能力,其標準化應用可有效提供地理信息服務的時空一致性支持。
[1] 李德仁.展望大數(shù)據(jù)時代的地球空間信息學[J].測繪學報,2016,45(4):379-384.
[2] Goodchild M F,Guo Huadong,Annoni A,et al.Next-generation digital earth[J].Proceedings of the National Academy of Sciences of the United States of America,2012,109(28):11088-11094.
[3] 張忠貴,吳信才.一種通用的網(wǎng)絡時空數(shù)據(jù)模型[J].計算機應用與軟件,2015,32(9):84-87.
[4] 門葆紅,董文亮,孫付平,等.國際地球參考框架建立與維持的研究進展[J].測繪科學,2016,41(2):20-25.
[5] 桂德竹,張月,劉芳,等.常態(tài)化地理國情監(jiān)測內涵的再認識[J].測繪通報,2017(2):133-137.
[6] 張良培,沈煥鋒.遙感數(shù)據(jù)融合的進展與前瞻[J].遙感學報,2016,20(5):1050-1061.
[7] 邊馥苓.時空大數(shù)據(jù)的技術與方法[M].測繪出版社,2016.
[8] 李艷,李莉.位置服務中的空間參照系[J].測繪通報,2013(3):57-60.
[9] 黃文輝,柳澤榮.基于GPS/BaiduMap的位置信息服務平臺[J].計算機應用與軟件,2015,32(4):100-103.
[10] 柴樹春,唐建智.一種基于WKT自動填充空間坐標參考系到Oracle Spatial的方法[J].測繪與空間地理信息,2015(6):161-163.
[11] Baumann P,Campalani P,Yu J,et al.Finding my CRS:a systematic way of identifying CRSs[C]//International Conference on Advances in Geographic Information Systems.ACM,2012:71-78.
[12] 謝艷玲,夏正清,黃萍.基于GDAL的GIS產(chǎn)品坐標系統(tǒng)批量轉換[J].地理空間信息,2015(5):102-104.
[13] OGC 11-135r2,OGC? Name Type Specification for Coordinate Reference Systems[S].Washington:OGC,2013.
[14] OGC 07-092r1,Definition identifier URNs in OGC namespace[S].Washington:OGC,2007.
[15] Peter Baumann.SECORE Developer’s Documentation[OL].(2016-04-02).[2017-07-31].http:// www.rasdaman.org/wiki/SecoreDevGuide.
[16] OGC 11-153r1,OpenGIS Web Coverage Service Interface Standard-CRS Extension[S].Washington:OGC,2014.