CN101877005B - 一种基于文档模式的gml压缩方法 - Google Patents

一种基于文档模式的gml压缩方法 Download PDF

Info

Publication number
CN101877005B
CN101877005B CN201010148374XA CN201010148374A CN101877005B CN 101877005 B CN101877005 B CN 101877005B CN 201010148374X A CN201010148374X A CN 201010148374XA CN 201010148374 A CN201010148374 A CN 201010148374A CN 101877005 B CN101877005 B CN 101877005B
Authority
CN
China
Prior art keywords
document
state
coordinate
gml
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010148374XA
Other languages
English (en)
Other versions
CN101877005A (zh
Inventor
关佶红
魏勍颋
周水庚
朱付保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tongji University
Fudan University
Original Assignee
Tongji University
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tongji University, Fudan University filed Critical Tongji University
Priority to CN201010148374XA priority Critical patent/CN101877005B/zh
Publication of CN101877005A publication Critical patent/CN101877005A/zh
Application granted granted Critical
Publication of CN101877005B publication Critical patent/CN101877005B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

本发明属于信息技术中的空间信息获取与处理技术领域,具体为一种基于文档模式的GML压缩方法。该方法将结构与数据分离,用文档模式、及模式验证文档过程中树自动机的状态转换选择编码来表示结构;将空间数据与非空间数据分离,对几何坐标数据进行增量编码。从而去除大量冗余信息,有效减小GML文档体积。

Description

一种基于文档模式的GML压缩方法
技术领域
本发明属于信息技术中的空间信息获取与处理技术领域,具体涉及对异构地理信息系统之间进行数据交换所采用的GML格式地理数据的压缩方法。 
背景技术
随着地理信息系统(Geographic Information System)技术的不断成熟,特定领域的GIS应用越来越多,如农林业资源管理GIS、城市规划GIS、应急响应GIS等等。为了适应Internet环境下地理信息共享与互操作的需要,就不得不在各种GIS之间进行地理数据的交换。但这些GIS的数据格式各异,比较常见的有Mapinfo(*.MIF)数据格式、AutoCAD(*.DWG,*.DXF)数据格式、ESRI Shap(*.SHP)数据格式等,缺乏一个统一的编码标准。若经过多次格式转换才实现交换,代价将相当大,且很难保证数据无损。 
开放地理空间协会OGC(Open Geospatial Consortium)提出了一种地理数据无损交换的统一格式——地理标识语言GML(Geography Markup Language)。GML基于XML编码规范对地理信息进行建模,通过要素集合及其嵌套使用来描述地理空间对象的区域、位置和内容。并且,GML继承了XML的自描述、与平台无关等特性,使地理数据的交换变得简单灵活。从1.0到3.2.1,GML的规范不断完善,在Oracle、SQL Server等主流数据库以及ESRI等重要GIS软件厂商的广泛支持下,GML已成为事实上的地理数据编码的国际标准。 
然而,GML的迅猛发展也带来了地理数据存储和传输的高昂成本问题。遵循XML规范、用纯文本字符描述地理信息的GML文档,与传统的地理数据文件相比,数据的表现形态发生了根本变化,编码结构和数据本身都存在极大冗余。同样信息量的地理数据,GML文档往往比传统地理数据文件所需的磁盘空间高出很多倍,网络传输时也就占用巨额带宽,实际应用的成本高昂。 
为解决上述问题,必须对GML文档进行压缩。由于GML文档实质上是一种描述地理空间信息的文本文档,其压缩后的所有编码要求解压缩时能还原为原始字符,实现无损文本压缩。所以,常见文本压缩算法,如哈夫曼编码、算术编码、字典编码等,都可用于GML文档压缩。但是,这些文本压缩算法只把GML文档中的标签、属性等结构化文本当成普通字符处理,没利用其中的关联信息。 
GML文档又是一种特殊的XML文档,包含结构和数据的混合文本。所以,一些基于 文本压缩的XML压缩器,如XMill、XMLPPM、XWRT、Rngzip,它们考虑到了XML文档的结构特征,旨在降低文档压缩后的比率,也能用于GML文档压缩。但GML文档不同于一般的XML文档,它有以下特性:1)文档模式比较固定。由于所有GML文档的模式都继承于GML规范的核心模式,所以相同元素的局部模式基本一致,如属性名、子元素结构。这些局部模式在整个文档中不断重复。2)文档中存在大量坐标数据,这些数据以文本形式存储,长度较长。其中,几何坐标数据一般是精度较高的浮点小数,小数点后6-8位,如果以二进制形式表示只需4或8个字节,在GML文档中以文本形式存储却占用10-20个字节,冗余性很大。常见的XML压缩器在压缩GML文档时并没有利用这些特性。 
可见,无论是通用文本压缩器,还是XML压缩器,对GML文档压缩都不会十分有效,必须设计GML文档专用压缩器。目前,国内外对GML文档压缩的研究还较少。据我们所知,GPress是最早的GML专用压缩器,它采用了结构与内容分离、内容按路径分组、浮点坐标数据增量编码等方法,压缩GML文档的效果比较理想。但最近版本的GPress只编码了二维几何坐标数据,未考虑三维几何坐标数据和时间坐标数据的压缩。 
发明内容
本发明的目的在于提供一种压缩步骤简单、压缩效果好的GML地理数据的压缩方法,并提供相应的GML压缩系统(压缩器)。 
本发明提供的GML压缩方法是一种基于文档模式的GML压缩方法,对被压缩的GML文档执行如下处理: 
一、将结构与数据分离,用文档模式、及模式验证文档过程中树自动机的状态转换选择编码来表示结构。GML文档中结构重复出现的频率非常高,有时一个文档中只有少数不同的标签或属性名。因此,按如下步骤对结构编码: 
(1)先提取其树型文档模式,即RELAX NG格式的文档模式; 
(2)再构建立对应的模式树自动机; 
(3)用模式树自动机对文档进行验证; 
(4)对验证过程中树自动机的每次状态转换选择进行比特编码。 
二、空间数据与非空间数据分离,对几何坐标数据进行增量编码。GML文档中包含大量的几何坐标数据,一个坐标数据项包含多个用特殊字符分隔的坐标值,相邻的坐标值差异一般很小,其坐标字符串包含多个相同子串。因此,按如下步骤对坐标数据项编码: 
(1)先根据间隔符,把每一个坐标数据项分解为多个二维或三维的坐标字符串; 
(2)再对每个坐标字符串进行字符串增量编码,即表示为相对前一坐标字符串的字 符串增量; 
(3)最后把多个坐标字符串编码用间隔符相隔,重新组合成一个坐标数据项。基于上述GML压缩方法,本发明还提出了GML压缩器,其结构与流程如图1所示。本发明的特点: 
根据GML文档中标签和属性名重复出现的频率高、空间相邻两点的坐标值差异小等特点,用从文档提取出的模式去验证文档本身,不存储重复的文档结构,只存储模式及树自动机的状态转换选择编码;不存储坐标数据项的每个坐标字符串,只存储每个坐标字符串相对前一坐标字符串的增量编码。主要贡献包括: 
(1)提出了一种针对GML文档特性的基于文档模式的压缩方法; 
(2)实现了一个基于文档模式的GML专用压缩器GSC(GML Schema-basedCompressor); 
(3)通过大量对真实GML数据集的测试,证实了GSC的有效性。 
附图说明
图1GSC系统结构图。 
图2GML示例文档。 
图3RELAX NG Compact格式的GML文档模式。 
图4GML文档模式的树自动机图。 
图5GML示例文档的树形表示图。 
图6GML文档模式的树形表示图。 
图7GSC坐标数据增量编码图。 
图8压缩器的平均压缩率对比图。 
图9压缩器的数据集压缩率对比图。 
具体实施方式
1.GSC系统结构(GML压缩器) 
基于文档模式的GML压缩器由文档模式提取、树自动机构建、文档验证、文档编码和后端文本压缩五个部分组成,压缩器GSC的系统结构如图1所示。当输入一个待压缩的GML文档,GSC按以下过程执行压缩: 
(1)提取其树型文档模式,即RELAX NG格式的文档模式,并存入结构容器; 
(2)根据文档模式建立模式树自动机; 
(3)用模式树自动机验证原文档; 
(4)对树自动机的每一次状态转换选择进行比特编码,存入结构容器;对坐标数据项进行增量编码,存入坐标容器,其它数据项存入文本容器; 
(5)使用通用文本压缩器对各容器进行后端压缩,输出GML压缩文档。 
2.GML文档模式的提取 
GSC调用了Clark编写的Trang包,从输入的GML文档中提取Relax NG Compact格式的文档模式。Trang是一种XML模式转换器,不仅能将文档模式在DTD、Relax NG和XML Schema等几种格式间转换,还可以从指定的XML文档提取出DTD、Relax NG或XML Schema格式的文档模式。 
从图2的GML文档,可提取出图3所示的Relax NG Compact模式:根元素“MultiCurve”的元素内容包含一个或多个“curveMember”子元素。每个“curveMember”元素的内容是一个“LineString”子元素。每个“LineString”元素的内容由两部分顺序组成。第一部分内容是可选的属性“srsDimension”,具有文本属性值。第二部分内容是一个“posList”子元素或者“coordinates”子元素,包含文本数据项。 
3.树自动机构建 
为了用从文档提取出的模式验证文档本身,GSC构建了一个自上而下的有限树自动机FTA(Finite TreeAutomaton),定义如下: 
定义1自上而下的有限树自动机是一个四元组A=(Q,∑,I,Δ),Q是一个有限状态集合, 
Figure GSA00000086205400041
是初始状态集,∑是有限字符表,Δ是状态转换规则集合:q(a)→R,其中q∈Q,a∈∑, 
Figure GSA00000086205400042
是Q的正则式。 
对于GML文档的模式验证,Q是验证过程中树自动机的状态集合;I只包含一个初始状态元素,即验证开始时树自动机的状态;∑包括模式中定义的标签名、加上前缀“”的属性名和文本数据类型标识“#text”;Δ中的规则q(a)→R表示,当树自动机处于状态q,若从文档读取的字符串是a,则状态转换为R序列中的第一个状态。没有终止状态集,但输入常量“#text”或空字符串到达的状态被看成是终止状态,这时树自动机自动转换到状态序列定义的下一状态或停止工作。 
对于图3的GML文档模式,我们建立树自动机A=(Q,∑,I,Δ),其中: 
∑={MultiCurve,curveMember,LineString, 
srsDimension,coordinates,posList,#text} 
Q={q0,q1,q2,q3,q4,q5,q6,q7,q8,q9
I={q0
Δ={q0(MultiCurve)→q1, 
q1(curveMember)→q3·q2, 
q2(curveMember)→q3·q2, 
q2(ε)→q6, 
q3(LineString)→q8·q4, 
q4(coordinates)→q5, 
q4(posList)→q7, 
q5(#text)→q6
q7(#text)→q6
q8(srsName)→q9, 
q8(ε)→q6, 
q9(#text)→q6
建立的树自动机包含ε规则,即输入条件为空字符串的状态转换规则,因此实际上是一个非确定有限树自动机NFTA(Nondeterministic Finite Tree Automaton),工作过程如图4所示。圆形结点代表自动机的状态,圆中注明了状态ID。方形结点代表状态转换的目标,可以是单个状态,也可以为顺序的多个状态。方框中标明了状态的序号。带箭头的实线表示往某个方向的状态转换。线上标注了转换条件,即期待输入自动机的字符串。带箭头的虚线连接了状态转换的目标和对应的实际状态。在此树自动机中,q0是初始状态,q6是终止状态。 
为了构建如上树自动机,GSC将图3的GML文档模式转换成图6的GML文档模式树图,并采取如下算法构建相应的GML模式树自动机: 
输入:GML模式树P; 
输出:GML模式树自动机A=(Q,∑,I,Δ); 
Q←{q0
∑←{} 
I←{q0
Δ←{} 
AddRules(A,P,q0,{}) 
AddRules(树自动机A,模式树P,源状态q,目标状态集合的尾序列T) 
{  //返回与模式树P的根结点对应的状态集合S 
   root ←模式树P的根结点 
   list←root的子结点列表 
   label←root的结点标记 
   IF q为null并且label不为“,”THEN 
       创建新状态q并且Q←Q∪{q} 
   S←{q} 
   IF list为空THEN 
   { 
        IF“#text”不在∑中THEN∑←∑∪{#text} 
        Δ←Δ∪{q(#text)→FindOrCreateFinalState()} 
   } 
   ELSE 
      IF label为“|”THEN 
           FOR list中的每个结点node DO AddRules(A,node,q,{}) 
      ELSEIF label为“,” 
      { 
         S←{} 
         IF q为null THEN 
             FOR list中的每个结点node DO S←S∪ AddRules(A,node,null,{}) 
         ELSE 
         { 
             FOR i从1到list的长度-1 DO S←S ∪ AddRules(A,list[i],null,{}) 
             S←AddRules(A,list[0],q,S)∪S 
         } 
      } 
      ELSEIF label为“?” 
     { 
         AddRules(A,list[0],q,{}) 
         Δ←Δ∪{q(ε)→FindOrCreateFinalState()} 
      } 
      ELSEIF label为“+” 
      { 
         创建新状态q′并且Q←Q ∪{q′} 
         AddRules(A,list[0],q,{q′}) 
         AddRules(A,list[0],q′,{}) 
         Δ←Δ∪{q′(ε)→FindOrCreateFinalState()} 
      } 
      ELSEIF label为“*” 
      { 
          AddRules(A,list[0],q,{q}) 
         Δ←Δ∪{q(ε)→FindOrCreateFinalState()} 
      } 
      ELSE 
      { 
         IF label不在∑中THEN∑←∑∪{label} 
         R←FindTargetStates(label) 
         IF R为空THEN R←AddRules(A,list[0],null,{}) 
         IF T不为空THEN R←R ∪ T 
         Δ←Δ∪{q(label)→R} 
      } 
   返回S 
FindOrCreateFinalState() 
   在Δ中查找规则r=q(s)→R,其中s=“#text”或ε 
   IF r为null THEN创建新状态R并且Q←Q ∪{R} 
   返回R 
FindTargetStates(输入字符串label) 
    在Δ中查找规则r=q(s)→R,其中s=label 
    返回目标状态序列R 
4.文档验证 
使用模式树自动机验证文档,即树自动机从初始状态开始,判断从文档读入的字符串(标签名、属性名或文本标记)是否满足Δ中当前状态下状态转换规则的输入条件;当某一条规则的输入条件得到匹配,自动机的状态自动转换到此规则指定的目标状态;当整个文档读取结束,若树自动机处于终止状态,则文档通过验证,否则不通过。 
为实现以上过程,前序遍历图5所示的GML文档树,对于每个访问的结点,执行模式匹配。匹配每个结点时,记录自动机的状态转换选择,传给比特编码器;若结点标记为坐标数据,则把数据传给增量编码器,编码后送入坐标容器;否则,把数据直接送入文本容器。具体算法如下: 
输入:GML文档树D,GML模式树自动机A=(Q,∑,I,Δ) 
//S为全局堆栈,存放模式验证过程中树自动机的状态 
//matchflag是文档树结点的模式得到验证的指示变量 
对I中所有元素qi执行push(S,qi
FOR前序遍历D过程中访问的每个结点node DO 
  DO matchflag←MatchNode(A,node)UNTIL matchflag为true 
WHILE S不为空DO//自动机接受输入空字符串,转换到终止状态 
  q←pop(S) 
  Δ’←FindRules(q) 
  n←Δ’的长度 
  i←-1 
  FORΔ’中的每条规则r=q(s)→R DO 
  { 
     i←i+1 
      IF r.s为εTHEN 
      { 
          ToStrucContainer(BitEncode(i,n)) 
          退出循环 
      } 
   } 
MachNode(模式树自动机A,文档树结点N) 
{  //函数返回结点N的模式验证结果matchflag 
   //C={X,Y,Z,pos,posList,coordinates}为坐标标签名称的常量集合 
   //coordflag为文档树结点标记是否为坐标数据项的指示变量 
   //epsilonrule为源于当前状态的所有转换规则中ε规则的序号 
   q←pop(S) 
   label←结点N的标记 
   Δ’←FindRules(q) 
   n←Δ’的长度 
   matchflag←false 
   epsilonrule←-1 
   i←-1 
   FOR Rq中的每条规则r=q(s)→R DO 
   { 
      i←i+1 
      IF r.s为εTHEN epsilonrule←i 
      ELSEIF r.s=label 
      { 
         IF n大于1THEN ToStrucContainer(BitEncode(i,n)) 
         FOR变量j从目标状态序列r.R的长度-1到0 DO push(S,r.R[j]) 
         IF label∈C THEN coordflag←true 
         matchflag←true 
           退出循环 
       } 
       ELSE 
       { 
           IF r.s=“#text”并且label为文本数据THEN 
           { 
              IF n大于1THEN ToStrucContainer(BitEncode(i,n)) 
              IF coordflag为true THEN 
              { 
                 ToCoordContainer(DeltaEncode(label)) 
                 coordflag←true 
              } 
              ELSE ToTextContainer(label) 
              matchflag←true 
              退出循环 
           } 
       } 
   } 
   IF matchflag为false并且epsilonrule大于等于0 THEN 
       ToStrucContainer(BitEncode(epsilonrule,n)) 
   返回matchflag 
FindRules(源状态qs
   Δ’←{} 
   FORΔ中的每条规则r=q(s)→RDO IF q=qsTHEN将r加入Δ’集合 
   返回规则集合Δ’ 
5.状态选择比特编码 
GSC对模式验证中树自动机的每一次状态转换选择进行比特编码,和文档模式一起存储在压缩文件中,用来保持原始GML文档的结构信息。 
具体编码方案为:将一次状态转换选择表示为(k,N),表示当前状态的N条状态转换规则中第k条规则得到匹配,用固定 
Figure GSA00000086205400111
比特对k进行二进制编码。例如,状态转换选择(0,2)被编码为“0”。 
GSC的编码方案大大减少了存储GML结构的空间。以图3GML示例文档为例,若以文本存储所有的标签、属性名等结构,需186字节。而GSC只需142字节存储图4的文档模式定义,及验证整个文档过程中6比特的树自动机状态转换编码“0 0 0 1 1 1”。GSC使用的方法节约(186*8-(142*8+6))/(186*8)=23.3%的存储空间。如果文档中具有更多此模式的“curveMember”元素,则这个比例还会更高。 
6.坐标数据增量编码 
增量编码指,用与相邻数据的差值来编码当前数据,缩小动态范围,达到压缩的目的。在GML文档中,坐标数据项的相邻坐标值表示物理空间中相邻的两个点,一般差异很小,串长度也总相同,若表示为字符串的增量,字节长度会大大缩短。具体编码方案如下: 
①识别坐标数据项。在模式验证过程中,若树自动机在上一个状态从文档读入了标签“<pos>”、“<posList>”、“<coordinates>”、“<X>”、“<Y>”或“<Z>”,则在当前状态下读入的字符串就是坐标数据项,如图4中q5和q7状态下读入的字符串。 
②编码坐标字符串。如图7所示,若坐标数据项的父标签为“<posList>”或“<coordinates>”,文本往往包含以空格间隔的多个坐标字符串,则从第二个坐标字符串开始,将当前坐标字符串编码为与前一坐标字符串的字符串增量,再按原始顺序将所有坐标字符串编码组合成坐标数据项,存入坐标容器;若父标签为“<pos>”、“<X>”、“<Y>”或“<Z>”,文本只包含单个坐标字符串或坐标的某一维数据,则将其编码为与同标签前一文本的字符串增量,存入坐标容器。 
字符串增量编码用“Diff”操作实现,如图7所示。过程为:先逐字符比较当前坐标字符串curString与前一坐标字符串preString,统计每一段连续相同字符的个数len(其中len>=3),在增量编码curString’中用“L”(其中L=len-1)代替这len个相同字符,并复制curString的其它字符到curString’。例如,前一点坐标preString为“442066.515734111702.025744”,当前点坐标curString为“442044.135180 111704.403033”。若以文本存储包括空格的curString需27字节。而增量编码后的串curString’为“344.13518054.403033”, 共21字节,节约(27-21)/27=22%的存储空间。 
7.与其它压缩器的性能对比 
实验在Windows XP环境下进行,使用不支持查询、不依赖外部模式的十种压缩gzip1.2.4、XMill0.7、XWRT3.2、GPress、PPMDj.1、XMLPPM0.96.1、bzip2 1.0.5以及GML压缩器GSC-gzip、GSC-PPM、GSC-bzip2压缩实际GML文档。第2~4种压缩器都使用了gzip文本压缩后端,第5、6种压缩器都使用了PPM文本压缩后端。GSC-gzip、GSC-PPM、GSC-bzip2分别表示采用gzip、PPM和bzip文本压缩后端的GSC压缩器。 
GML文档来源于五种应用GML文档ALKIS、CityGML、CleanSeaNet、GeoSciML和OSMasterMap。ALKIS是德国国家地理GML数据集,主要包含时间坐标、以“pos”坐标为基本单位的点线面、URN(Uniform Resource Name)格式的属性值等数据。CityGML是使用GML对城市进行虚拟三维建模的数据集,主要包含以“posList”坐标为基本单位的点线面、UUID(Universally Unique Identifier)语法的属性值等数据。CleanSeaNet是通过卫星对海洋表面油膜实时监测的GML数据集,主要包含时间坐标、“pos”或“posList”点坐标、浮点型监测值等数据。GeoSciML是GML格式的水、土壤、海洋等地球资源观测数据集,主要包含以“posList”坐标为基本单位的点线面、URN格式的属性值和元素内容等数据。OSMasterMap是英国国家地理GML数据集,主要包含时间坐标、以“coordinates”坐标为基本单位的点线面等数据。实验从五种应用GML的公共示例文档中各随机选了5个,文档大小从到13K到84M,组成了五个实验数据集。 
压缩效果的衡量指标为压缩率(Compress Ratio),计算方法采用:压缩率=压缩后文档大小×8/原文档大小(比特/字节)。压缩率越低,说明压缩效果越好。 
图8比较了十种压缩器的平均压缩率。图9比较了十种压缩器对各数据集的压缩率,数据集名称下面标明了文档个数n和数据集大小。 
从图8和图9可以看出,压缩后端的选择对平均压缩率有较大影响。使用bzip2和PPM后端的GSC对GML文档的平均压缩率优于其它压缩器。尤其当压缩坐标数据平均比例高达90%GeoSciML数据集时,使用bzip2后端的GSC的压缩效果明显优于除PPMD以外的其它压缩器。 

Claims (1)

1.一种基于文档模式的GML压缩方法,其特征在于,对被压缩的GML文档执行如下处理:
1)将结构与数据分离,用文档模式、及模式验证文档过程中树自动机的状态转换选择编码来表示结构,其步骤为:
(1)先提取其树型文档模式,即直接调用Trang工具包提取RELAX NG格式的文档模式;
(2)再构建对应的模式树自动机,即构建一个四元组A=(Q,∑,I,Δ);Q是验证过程中树自动机的有限状态集合;∑是由模式定义的标签名、加上前缀“”的属性名和文本数据类型标识“#text”组成的有限字符表;是树自动机的初始状态集合;Δ是状态转换规则集合:q(a)→R,其中q∈Q,a∈∑,是Q的正则式,表示当树自动机处于状态q,若从文档读取的字符串是a,则状态转换为R序列中的第一个状态;自动机不包含终止状态集,但输入常量“#text”或空字符串到达的状态被看成是终止状态,这时树自动机自动转换到状态序列定义的下一状态或停止工作;
(3)用模式树自动机对文档进行验证,即树自动机从初始状态I开始,判断从文档读入的字符串是否满足Δ中当前状态下状态转换规则的输入条件;当某一条规则得到匹配,自动机的状态自动转换到此规则指定的目标状态;当整个文档读取结束,若自动机处于终止状态,则文档通过验证,否则不通过;
(4)对验证过程中树自动机的每次状态转换选择进行比特编码,即将每一次状态转换选择表示为(k,N),表示当前状态的N条状态转换规则中第k条规则得到匹配,用固定
Figure FSB00000632128100013
比特对k进行二进制编码;并将该编码存入结构容器;
2)将空间数据与非空间数据分离,对几何坐标数据进行增量编码,并将该编码存入坐标容器,其步骤为:
(1)先根据间隔符,把每一个坐标数据项分解为多个二维或三维的坐标字符串;
(2)再对每个坐标字符串进行字符串增量编码,即逐字符比较当前坐标字符串与前一坐标字符串,统计每一段连续相同字符的个数len,用“L”编码这len个相同字符,其它字符复制到编码后的坐标字符串中;
(3)最后把多个坐标字符串编码用间隔符相隔,重新组合成一个坐标数据项;
其他数据项存入文本容器;
3)使用通用文本压缩器对各容器进行后端压缩,输出GML压缩文档。
CN201010148374XA 2010-04-15 2010-04-15 一种基于文档模式的gml压缩方法 Expired - Fee Related CN101877005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010148374XA CN101877005B (zh) 2010-04-15 2010-04-15 一种基于文档模式的gml压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010148374XA CN101877005B (zh) 2010-04-15 2010-04-15 一种基于文档模式的gml压缩方法

Publications (2)

Publication Number Publication Date
CN101877005A CN101877005A (zh) 2010-11-03
CN101877005B true CN101877005B (zh) 2012-01-25

Family

ID=43019561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010148374XA Expired - Fee Related CN101877005B (zh) 2010-04-15 2010-04-15 一种基于文档模式的gml压缩方法

Country Status (1)

Country Link
CN (1) CN101877005B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591869A (zh) * 2011-01-10 2012-07-18 同济大学 一种高性能的gml多文档流压缩信息处理方法
CN103457610A (zh) * 2013-08-30 2013-12-18 百度在线网络技术(北京)有限公司 一种空间数据的编码方法及系统
CN109299202B (zh) * 2018-08-08 2022-03-15 中国地质大学(武汉) 一种基于GeoSciML的地质空间数据共享方法
CN109993152B (zh) * 2019-04-15 2021-03-09 武汉轻工大学 坐标曲线积分的模式转换方法、设备、存储介质及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法
CN101223699A (zh) * 2005-07-21 2008-07-16 易斯普维 压缩与解压缩结构化文档的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1547326A (zh) * 2003-11-28 2004-11-17 北京大学 可扩展标记语言数据流压缩器及其压缩方法
CN101223699A (zh) * 2005-07-21 2008-07-16 易斯普维 压缩与解压缩结构化文档的方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Yuzhen Li等.GML Topology Data Storage Schema Design.《Journal of Advanced Computational Intelligence and Intelligent Informatics》.2007,第11卷(第6期),701-702. *
关佶红等.GML模式匹配算法.《武汉大学学报· 信息科学版》.2004,第29卷(第2期),169-174. *
朱付保等.基于模型映射的GML文档存储和查询方法.《计算机研究与发展》.2006,第43卷510-516. *

Also Published As

Publication number Publication date
CN101877005A (zh) 2010-11-03

Similar Documents

Publication Publication Date Title
CN103026631B (zh) 用于压缩xml文档的方法和系统
CN101222476B (zh) 一种可扩展标记语言文件编辑器、文件传输方法及系统
CN102609417A (zh) 基于ifc标准的建筑信息模型数据集成与交换引擎装置和方法
CN108446517B (zh) 一种输变电三维设计数据跨软件平台交互的方法和系统
CN101877005B (zh) 一种基于文档模式的gml压缩方法
CN113221297B (zh) 一种电网信息模型转fbx三维模型及属性入库的方法
CN101483779A (zh) 一种二维矢量地图的压缩方法
CN101847998A (zh) 一种高性能gml流压缩方法
CN116126942B (zh) 一种多维空间气象网格数据分布式存储查询方法
CN104899340A (zh) 一种基于最紧致片段的ietm技术信息片段检索装置及其检索方法
CN101799825B (zh) 基于扩展邻接矩阵的xml文档结构及语义相似性计算方法
CN104484337B (zh) Xml文档的存储方法
CN115099315A (zh) 基于CityGML的多源异构地理信息数据语义融合转换方法
Bakalov et al. A network model for the utility domain
CN103975593A (zh) 基于三维模型压缩而生成重复性结构发现的比特流的方法和设备
CN101840426B (zh) 一种基于坐标分离的gml文档存储与查询方法
CN115359204A (zh) 一种基于北斗网格码的bim数据处理方法和系统
CN104867166A (zh) 一种基于稀疏字典学习的油井示功图压缩存储方法
Park et al. Design of data structure for system ENC kernel
CN102591869A (zh) 一种高性能的gml多文档流压缩信息处理方法
CN116452682B (zh) 基于树构造的免切片实时发布系统及方法
CN103309956B (zh) 一种多元遥感数据统一访问的方法及系统
CN117725255B (zh) Gis数据与cad数据的转换方法、装置、电子设备及存储介质
CN114330262B (zh) 一种材料数据的统计方法、装置及电子设备
CN111723549B (zh) 省间和省内电力市场的模型嵌套与信息交互方法、系统及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120125

Termination date: 20140415