APP下载

GIS时空参考动态坐标系Web标识与解析

2018-04-18余劲松弟佟瑞菊陈远杰

计算机应用与软件 2018年3期
关键词:嵌套坐标系时空

余劲松弟 佟瑞菊 陈远杰

1(福州大学福建省空间信息工程研究中心 福建 福州 350116) 2(福建工程学院交通学院 福建 福州 350002)

0 引 言

正随着空天地一体化地球观测、物联网、云计算、大数据等技术的成熟和发展,与人类生存和发展相关的各个领域——自然、环境、人文、经济和社会的时空数据的增长将人类带入了“时空大数据”时代[1-2]。在这样的背景下,如何在统一参考坐标系下实现不同主题信息的存储、检索和分析[3-4],充分共享及利用有效信息并予以集成,提供一致访问,支持时空大数据动态挖掘以提供决策支持,成为国家信息化软实力提升急需解决的问题[5-9]。

空间坐标系标识SRID(Spatial Reference System Identifier)可唯一标识坐标系或坐标轴等坐标系组成元素,已被欧洲石油勘探组织EPSG(European Petroleum Survey Group)、开放地理信息联盟OGC(Open Geospatial Consortium)等国际组织所采用,广泛应用于资源调查、环境评估、灾害预测等GIS应用。坐标系解析提供了坐标系标识与坐标系参数的映射关系[10],可通过Web服务实现[11]。目前,常见坐标系解析服务由spatialreference、EPSG和OGC提供[12-13]。例如,Oracle在其数据库空间数据项SDO(Spatial Data Option)中采用SRID,仅需获得SRID标识值即可通过EPSG的解析服务获得坐标系参数,并应用于传统二三维地图服务。

SRID为静态标识,只可通过预定义的标识与表达的匹配,无法标识动态生成的参考坐标系。大气、海洋或地球物理等GIS领域多维时空大数据互操作,往往涉及时空数据的动态互操作,产生了时空参考动态坐标系Web标识与解析需求。目前,针对这种临时产生的动态坐标系标识和解析还没有标准化解决方案。在回顾和比较业界主流参考坐标标识、表达与解析模型的基础上,针对静态标识与解析的不足,提出了时空参考坐标系动态解析模型。设计基于URL的动态标识规则和基于OGC 地理标志语言GML(Geography Markup Language)的动态表达模版,引入标识解析规则,提出通过还原序列化参数层次结构的方法,获得坐标系组成元素及结构信息。再与相应表达模版匹配并实例化,满足了时空参考动态坐标系标识与解析需求。最后,基于开源Rasdaman的Semantic Cordinate Reference System Resolver (SECORE)组件,实现了时空参考动态坐标系标识与解析原型服务部署。

1 坐标系标识方法比较

参考坐标系标识是WebGIS互操作过程中不一致坐标系统识别、表达及转换的前提。目前,主要有三种标识方法,分别是数字字符串、统一资源名称URN(Uniform Resource Name)和统一资源标识符URI(Uniform Resource Identifier)标识方法。详见表1。

表1 主要坐标系标识方法比较

1.1 数字字符串标识

数字字符串标识通过固定数字字符串标识一个坐标系或相关组成元素。该标识可通过网络解析,亦可通过本地解析,获得坐标系参数,可移植性强。该类标识及解析方式需各系统采用相同解析库以达到一致性,对于动态产生的参考坐标系标识则需通过更新并同步解析库实现,如无统一动态参考坐标系标识生成规则,易产生标识定值不一致问题。EPSG的SRID属于固定数字字符串标识,Oracle和ESRI等公司的GIS产品皆采用该类标识。

1.2 URL标识

URL是互联网标准资源的地址,同一资源的URL入口可不唯一。URL标识方式除包含网络协议、域名或IP、路径等网络资源定位信息,还包括参数信息,参数信息通过键值对KVP(Key-Value Pair)组成,可满足多元素组合需求,为动态参考坐标系标识生成提供前提条件。其键值对数量仅受URL最大路径长度限制。目前,OGC已提供两种基于URL的规范化参考坐标系Web定位方法[14],分别是表述性状态转移REST(Representational State Transfer)和KVP方法。两种方法在标识参考坐标系上是等效的[14]。其中,REST方法标识坐标系的命名规则如下:

http://hier_part/authority/version/code

objectType表示对象类型,authority表示机构部门,version是版本信息,code是标识号。比如EPSG 2363西安80坐标系的REST表示如下:

http://www.opengis.net/def/crs/EPSG/0/2363

KVP方法标识坐标系的命名规则如下:

http://hier_part/objectType?authority=AUTHORITY & version= VERSION&code=CODE

KVP采用键值对的方式进行坐标系标识,参数与REST方法是一致的,objectType表示对象类型,authority表示机构部门,version是版本信息,code是标识号。比如EPSG 2363的KVP表示如下:

http://hier_part/crs?authority=EPSG&version=0&code=2363

1.3 数字字符串标识

URN无法直接定位网络资源,需通过URL获得资源定位。URN标识具有持久性、唯一性和地址无关性特点。URN提供命名空间识别,且同一URN可引用多个URL。目前,OGC已提供URN方式的SRID标识,但仅支持已知的参考坐标系标识,无法标识动态参考坐标系,定义规则如下:

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版本数据库的2363坐标系定义给出。

2 坐标系表达方法比较

参考坐标系往往包括坐标系标识、名称、坐标轴等信息,可通过中间交换格式表达,常见中间交换格式包括OGC Well Known Text (WKT)、GML、Proj4、JavaScript Object Notation(JSON)等。不同表达格式异构,但语义具有一致性,是可转换的。这些格式按结构可分两种,分别是序列化参数对和可嵌套对象结构。其中,可嵌套对象结构又可根据属性的表达方式分为显式参数表达与隐式参数表达,见表2。

表2 主要参考坐标系定义的结构比较

2.1 序列化参数对

序列化参数对的每一参数对由参数名及参数值组成,所有参数依次排列,需对每一参数及其组合预定义,以确保每一参数是可解析的。目前,针对动态生成的参考坐标系还未有相关组合规则定义。坐标系转换工具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为中央经线、lon_0为纬线、k为比率、x_0为东偏移、y_0为北偏移、a为长半轴为、 b为短半轴、units为单位信息。

2.2 可嵌套对象结构显式方式

可嵌套对象结构显式方式的对象参数嵌套形成树状结构,参数值的属性名称直接出现在定义文本中,提供了详尽的坐标系组成元素信息,可验证参考坐标系表达文档的一致性。GML和JSON参考坐标系表达采用可嵌套对象结构显式方式。其中,JSON采用完全独立于语言的文本格式,通过对象和数组两种结构表达复杂参考坐标系结构。对象参数在JSON中表示为“{}”括起来的内容,结构为 {key:value, key:value, …}的键值对结构,key为对象的属性,value为对应的属性值;数组在JSON中是中括号“[]”括起来的内容,结构为 ["字段值","字段值","字段值", …],字段值类型可以是数字、字符串、数组和对象。GeoJSON的参考坐标系表达以“type”和“properties”做为必需的关键字,其中,“type”是类型,“properties”是其标识,比如,EPSG 2363在GeoJSON中表达如下:

{′type′: ′EPSG′,′properties′: {′code′: 2363}}

目前,GeoJSON仅提供参考坐标系标识引用,并无具体组成元素定义,因此,对于动态生成的参考坐标系无相关标识定义。

GML参考坐标系参数对象属性亦以显式方式存在,以XML方式提供详尽的坐标系组成元素表达。GML参考坐标系表达基于ISO19111[14]国际标准定义,对象参数、属性及其组合规则通过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″>

urn:ogc:def:crs:EPSG::2363

Xian 1980 / 3-degree Gauss-Kruger zone 39

Also found with truncated false easting - see Xian 1980 / 3-degree Gauss-Kruger CM 117E (code 2384).

Large scale topographic mapping, cadastral and engineering survey.

GML参考坐标系表达的对象层次支持元素嵌套,如大地坐标系元素gml:baseGeodeticCRS嵌套于投影坐标系gml:ProjectedCRS元素中。其中,gml:baseGeodeticCRS元素细节,通过xlink间接给出详细表达,如下:

xmlns:gml=″http://www.opengis.net/gml/3.2″

xmlns:xlink=″http://www.w3.org/1999/xlink″

gml:id=″ogp-crs-4610″>

urn:ogc:def:crs:EPSG::4610

Xian 1980

Replaces Beijing 1954 (CRS code 4214). Replaced by CGCS2000(CRS code 4490).

Geodetic survey.

GML定义通过xlink支持递归遍历此类非叶子元素,以叶子元素为递归遍历终止条件获得参考坐标系全定义。通过标准化参考坐标系Schema的定制,可进行叶子及非叶子元素动态组合,支持动态生成的参考坐标系表达。

2.3 可嵌套对象结构隐式方式

OGC WKT的参数属性名称以隐式方式存在。通过一串大写字符标识参数对象,对象参数值置于括号(小括号或中括号)之内,参数之间用逗号阁开,而无参数属性名称,解析需依据预定义对象层次和参数值次序进行解析。例如,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中。参数值依次排列,而无参数属性名称,如6 378 140表示长半轴,298.257是扁率倒数。目前,该方式无动态生成的参考坐标系表达定制支持。

3 动态坐标系解析模型及实现

参考坐标系解析,通过建立参考坐标系标识与表达匹配关系,使得GIS Web服务可通过参考坐标系标识获得详细参数定义。参考坐标系动态解析,亦需先建立动态坐标系标识和表达模型,再建立两者对应匹配模型。

3.1 动态坐标系标识规则设计

动态坐标系标识需包含坐标系组成元素的动态组合信息。URL标识支持按键值对方式进行组成元素的多标识组合,生成新坐标系URL标识。这种混合参考坐标系定义标识规则如下:

crs-compound?{n=crs}

其中,crs-compound表示该坐标系标识为动态坐标系标识,n为组成元素次序,crs为参考坐标系标识。例如,北京80坐标系和Unix时间戳组成的三维时空混合坐标系的动态标识如下:

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时间戳标识。

3.2 模板化表达

动态坐标系表达应包含相应动态坐标系的组成元素参数信息。GML可嵌套对象结构支持坐标系参数对象的嵌套及递归遍历,充分满足动态坐标系表达的需求。混合参考坐标系动态坐标系表达模型,如下:

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″>

compound

identifier

{}

其中,identifier为动态坐标系标识,crsName为新生成的坐标系名称,URL(crs)为原坐标系标识。通过解析动态坐标系标识获得各组成元素标识,用于实例化动态坐标系表达模型,得到动态坐标系表达。例如,北京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″>

compound

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方式嵌套于动态坐标系根元素,通过递归遍历非叶子元素,并按相应层次结构次序展开即可获得新坐标系的全表达。

3.3 解析模型及其原型服务

参考坐标系解析是将参考坐标系标识指向相应表达并获得坐标系参数的过程。对于静态标识解析可通过预定义标识与表达的匹配关系完成,而动态标识则需建立标识解析规则。通过还原序列化参数的层次结构,获得组成元素及结构信息,再与相应表达模版匹配并实例化完成解析。研究分别针对模版识别及参数识别建立解析规则。其中,模版识别通过预定义模版名称识别,参数识别采用有序参数序列识别,有序参数识别基于预定义遍历序列,顺次还原层次结构,并实例化模版。

研究基于SECORE[11]展开解析服务原型研究。SECORE底层数据库为BaseX,支持XQuery API for Java (XQJ)的XML查询接口,提供基于URL的文档解析,可通过定制GML模版实现基于EPSG坐标系定义文档的动态参考坐标系表达。动态解析首选需对接收的URL解析,获取键值对中坐标系或坐标轴标识,调用GML模版,通过XQuery对其实例化同时比对数据库判定标识有效性,最后返回结果。解析服务交互模型见图1。

图1 解析服务交互模型

SECORE是一个可用于定制GIS时空参考动态坐标系Web标识与解析的开源组件[15]。在实际应用中,该开源组件本身所提供模版并不局限于坐标系组合模版,亦支持定制坐标系组成元素组合模版及其他组合形式的模版,与BaseX进行查询交互,通过Tomcat进行部署,以满足互操作需要。

4 面向标准化的应用

大数据时代,空天地时空GIS数据增长迅速,对GIS数据互操作涉及的坐标系一致性提出了挑战。统一的时空坐标系标识、表达和相应的解析模型可为GIS数据互操作提供一个良好的坐标系一致性支持,有助于提高基于WebGIS服务的时空互操作效率。通过对现有坐标系表达和标识的比较,提出了基于URL和GML的动态坐标系标识、表达和解析模型,设计了相关实现并展示了服务原型,将地理信息互操作的一致性坐标系支持扩展到多维时空。再结合OGC的新一代模块化格网服务标准OGC WCS 2.0[16],可使地理信息应用的深度和广度达到一个新的水平。

OGC WCS 2.0是OGC的新一代模块化时空格网服务标准,在核心操作模块的基础上定义了格网编码、空间参考、服务处理、传输协议等扩展模块,并可基于核心及各扩展模块灵活定制领域应用标准。研究成果的实现可有效支持WCS 2.0参考坐标系扩展标准[15]定义的动态坐标系标识及其参数获取,相应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

该请求指定了返回格网的坐标系参数组成,WCS2.0格网服务在接收到该请求后,对该坐标系标识进行解析核对,若所部署WCS2.0服务支持该坐标系则按该坐标系返回时空格网数据。

5 结 语

动态坐标系标识、表达和解析服务的应用前景非常广泛,在此基础上可进一步开发一致性的时空坐标系解析服务。通过提取和解析各种主题时空数据的相关参考坐标系信息,加强现有WebGIS系统之间的时空参考一致性,提高系统在社会、人口、资源、环境等方面的动态分析、监测与预报的整合能力,为区域可持续、协调发展服务。然而,目前对动态坐标系标识、表达和解析服务平台的发展前景还没有完全成熟的看法。从地球表层各圈层的时空分析,到人类发展、未来环境与社会的变化预测,涉及到时空地理信息互操作一致性的方方面面。如何更好地做好动态坐标系标识、表达和解析的应用基础研究,将为数字地球广泛而深入的应用提供重要手段,也将为地球信息系统互操作新概念与新理论的研究孕育强有力的信息应用基础设施。OGC 发布的OGC 11-135r2规范已采用了基于URL的动态时空参考坐标系统Web标识并在全世界推广,有利增强了地理信息Web服务互操作能力,其标准化应用可有效提供地理信息服务的时空一致性支持。

[1] 李德仁.展望大数据时代的地球空间信息学[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] 张忠贵,吴信才.一种通用的网络时空数据模型[J].计算机应用与软件,2015,32(9):84-87.

[4] 门葆红,董文亮,孙付平,等.国际地球参考框架建立与维持的研究进展[J].测绘科学,2016,41(2):20-25.

[5] 桂德竹,张月,刘芳,等.常态化地理国情监测内涵的再认识[J].测绘通报,2017(2):133-137.

[6] 张良培,沈焕锋.遥感数据融合的进展与前瞻[J].遥感学报,2016,20(5):1050-1061.

[7] 边馥苓.时空大数据的技术与方法[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产品坐标系统批量转换[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.

猜你喜欢

嵌套坐标系时空
跨越时空的相遇
独立坐标系椭球变换与坐标换算
兼具高自由度低互耦的间距约束稀疏阵列设计
镜中的时空穿梭
玩一次时空大“穿越”
坐标系背后的故事
三角函数的坐标系模型
论电影嵌套式结构的内涵与类型
嵌套交易如何实现逆市盈利
求坐标系内三角形的面积