《CarisHPD纸海图符号库本地化方法的探讨-邬金》由会员分享,可在线阅读,更多相关《CarisHPD纸海图符号库本地化方法的探讨-邬金(9页珍藏版)》请在金锄头文库上搜索。
1、1Caris HPD 纸海图符号库本地化方法的探讨 邬 金(广东海事局海测大队,广州)摘要:详细说明了 CARIS HPD 中海图符号库表示机制,并结合实际简要介绍了我们在符号库本地化中所作的一些工作, 及遇到问题的一些总结。关键字:HPD,PCE,纸海图符号库,本地化 A Study on The Localization Methods of Caris HPD Paper Chart Editor SYMBOL Presentation LibraryWU JIN1 引言CARIS HPD(以下简称 HPD) 是部海事局 2007 年引进和实施的航测重点发展项目。HPD能实现数据采集、管
2、理、维护以及纸海图和电子海图制作的一体化,从根本上改变现有的测绘生产模式、工艺流程和管理理念。CARIS 公司自 1999 年酝酿研发 HPD,2001 年首推商业版(HPD V1.0) ,现已更新到V2.7 版。然而,由于是国外软件,它自身只支持 IHO S52、INT1 海图符号库,本文通过对HPD 中符号库的存储和显示机制的分析,介绍了建立基于中国海图图式的符号库的方法。2 HPD海图符号库机制在CARIS HPD Paper Chart Editor (以下简称PCE)中,主要通过以下两组文件控制海图符号库。2.1 S-57 Presentation Library Files:这组文
3、件存储在.CARISHPDPaperChartEditorsystemPCEConfiglookup 中。它包含 psymrefs.txt,lsymrefs.txt 和 asymrefs.txt 三个对应表文件,分别用来控制点、线、面物标的显示。图1所示为aymref.dic文件的部分内容:(图 1 aymref.dic 文件的部分内容示意)上述三个文件的内容都包含相同的七列格式结构。每一列以逗号分隔,并被包含在引号中。在 PCE 中我们仅使用最初四列用于数据的显示,各列具体意义如图 2 所示:2BUISGL, FUNCTN15,LC(ALBDDT),4,O,OTHER,32220(图2 *.
4、dic文件中某条记录前四列意义的解析)要素在显示窗口中绘制匹配S-57类型物标的被调用图形符号。例如,假设是面状物标,PCE则在asymrefs.dic文件中寻找对应的物标记录。接下来简要描述PCE读入对应表的过程:物标编码是六字符S-57物标首字母缩写词,按字母顺序排列。一般来说,同一物标编码的所有实体记录排列在一起。如果对应表中未发现相应的物标的编码,则该表中的第一个实体被用于绘制该物标。属性编码也是六字符属性首字母缩写词,它以 格式列出。如果某属性被定义,则对象必须包含该属性;如果属性值以?标记,则属性值设为UNKNOWN;匹配的属性值必须为整型或浮点型(字符型属性不能匹配);根据观察发
5、现,对具体属性值有要求的特殊实体记录一般列在普通实体后。一旦物标类型被确定(点、线、面),相应的LOOKUP表被选择。PCE检查对应的表来寻找相应物标及其属性。如果表中有多条该物标记录,但属性值没有完全匹配的,则使用该物标的普通实体记录替代。如图3所示,如果数据集包含一个属性编码CATACH=2的ACHARE物标,图3中ACHARE物标的第三条实体记录被选择。假如ACHARE物标未包含属性值,或包括了未列入该LOOKUP表的别的属性值,则采用该物标的第一条实体记录代替。(图3 ACHARE物标各实体记录示例)调用图形符号化时,各符号实体以逗分隔,实体按记录中给定的顺序排列,面色填充列在线或中心
6、符号后。未符号化的要素绘制,该列只给出双引号表示。物标编码属性编码及值调用图形符号化显示优先级3表 1 列出了物标类型和相应符号化代码:符号类型 符号代码 注释SY(FEATURE_CODE)编码使用ih_master.txt文件中的特定符号编码并按INT1绘制符号。如果符号编码在master文件中不存在,或符号非法,使用?代替。点SY(FEATURE_CODE, ORIENT)本编码类似于上者,除了编码外,还指定了距真北方向(北方位)角度距离。可以作为属性值(特别是方向)或外在数值。LC(FEATURE_CODE)本编码使用 ih_master.txt 文件中的特定符号编码按 INT1 绘制
7、线符号。如果符号编码在 master文件中不存在,或符号非法,使用?代替。LC 编码实现符号绘制首选编码。LS(SOLD, 1, COLOUR_CODE)本编码绘制了线。第一个参数是线型(SOLD 实线, DOTT 点线,DASH虚线);第二个参数是线的宽度(按像素计);第三个参数是颜色。线SY(FEATURE_CODE, ORIENT)本编码用于绘制线中央的符号。本编码类似于点符号化。AC(COLOUR_CODE) 本编码指定在ih_colour.xml文件中面的颜色名。AC(COLOUR_CODE,TRANSPARENCY_VALUE)第二个参数用来指定透明度(1=25%,2=50%,3=
8、75%)。符号不再被PCE支持,仅实色被绘制。AP(FEATURE_CODE) 模式填充名使用参考模式填充定义。LC(FEATURE_CODE) 参见线部分定义。LS(SOLD,1,COLOUR_CODE)参见线部分定义。面SY(FEATURE_CODE, ORIENT)更多信息见点部分(表 1 物标类型和符号化代码表)显示优先级控制了对象绘制的顺序,它是基于 S-52 标准的。在 PCE 中以 8 个级别显示,如表 2 所示:优先级 S-57 对象0 没有数据填充面模式1 S-57第一组物标填充面域(LNDARE, DEPARE等)2,3 阶层数据5 受限区域6 交通区域4,5 陆地要素43
9、,4,5,6 水域要素5,6,7 海岸要素5,6,7 道路要素4,5,6 线或面符号8 危险物(桥,危险水深)(表 2 物标显示优先级表)要素以数字顺序绘制,因此LNDARE 和DEPARE(优先级 1)首先绘制,然后高优先级要素在这些要素上绘制。我们也可以使用属性覆盖文件中的默认优先级值。2.2 INT1 Presentation Support Files这组文件存储在.HPDPaperChartEditorsystemPCEConfig 中。它包括控制文件ih_master.txt,符号文件 ih_symbol.bin,颜色表文件 fcmap.txt,彩色地图文件ih_colour.xm
10、l。ih_master.txt(以下简称 master 文件)文件列出了所有 INT1 图形化符号编码以及包含线型、宽度、符号尺寸等指令。图是 master 文件中部分内容的截图:(图 4 ih_master.txt 文件的部分内容的截图)图 5 描述了该文件各列的信息:行 列 值 解释/注释1 NPFPLT 符号编码(PCE 图形化符号编码)2 常为一个空白字符3 0 常为 04 IN21 Fishing ProhibitedINT1 要素编码参考描述5 PR 忽略6 N 忽略7 DR 以DD=rounded ends或DR=rectangular ends结束绘制线8 03 使用的栏 9
11、的线粗符号化线9 08 线粗(一英寸包含多少千)10-12 栏 10-12 可能为空113 13 CARIS 的数据编码:流线(1),点-点线(3)1 NPFPLT 对同一要素附加绘制命令2 L L-附加线模式指令53 0 第一分行常为 024 线模式指令1 NPFPLT 对同一要素附加绘制命令33 1 每一分行值增加4 3 2 每一分行值增加(图5 ih_master.txt文件各列意义的解析)此外,我们可以通过直接修改master文件来修改符号例如,修改线模式,定义新符号尺寸等。ih_symbol.bin文件定义了可用于PCE的INT1图形化符号库。每个图形化符号被赋予符号编码,它被PCE
12、 的master文件调用。PCE包含了ASCII和二进制符号文件,但程序一般使用二进制文件。符号在Symbol Editor中创建,当他们在Editor被编译后,符号将被加到ih_symbol.bin文件中。fcmap.txt文件或PCE颜色表相关于要素符号编码,选取颜色列于ih_colour.xml文件。PCE颜色表的例子如图6所示:(图 6 PCE 颜色表文件的部分内容的截图)我们可以通过直接修改文件来添加或更改颜色。格式是 ,但没有仅限于一个空间。PCE 查找相关文件,这些文件中列出了符号代6码和符号代码的实例,特殊代码列于普通代码之前。文件最后一行包含了未列入fcmap.txt所有代码
13、的默认颜色。如果颜色为黑色,所有未在文件中列出的代码都在PCE显示为黑色。文件同样采用*字符作为通配符。这就意味着,如果有要素NP*=Nautical_Purple,所有以NP开头的要素代码都将以Nautical_Purple色显示。ih_colour.xml 定义了符号、水深、文本、线和面状要素在 PCE 中的颜色。每一颜色被赋于一个索引号和颜色。颜色可以用 RGB(红绿蓝) 、CYMK、HLS(色相,亮度,饱和度)定义,图 7 显示了彩色地图文件。(图 7 彩色地图文件的部分内容的截图)2.3 两组文件的协调运行机制通过以上两组工作文件,HPD 建立起了 S-57 数据和 INT1 规范纸
14、海图符号库显示之间的协调运行机制。其逻辑关系如图 8 所示:(图 8 HPD 纸海图符号库原理图)7下面以ACHARE(CATACH=1)点要素为例描述S-57数据文件如何在PCE中显示符号:因为ACHARE是点状物标,PCE在psymrefs.dic文件中查找物标编码为ACHARE的所有实体记录。ACHARE物标可能有多个实体,PCE使用在其数据集中匹配了该物标属性值的第二条实体记录:ACHARE,SY(IN10),8,S,DISPLAYBASE,0ACHARE,CATACH1,SY(DLAN),8,S,DISPLAYBASE,0ACHARE,CATACH4,SY(IN12),8,S,DIS
15、PLAYBASE,0ACHARE,CATACH5,SY(NPALHO),8,S,DISPLAYBASE,0ACHARE,CATACH6,SY(NPAWSP),8,S,DISPLAYBASE,0PCE接着读取该行记录的第三列。在本例中,应用程序调用代码为DLAN的图形化符号绘制该锚地。程序从ih_master.txt文件中获得该图形化符号的绘制命令:DLAN 0 IN12.1 Anchorage BK N DD 08 10 00 1 00 8DLAN S0 DLAN1/LWT=.203/SIZ=3.54,DLAN S1 DLAN2/LWT=.102/SIZ=4.80其子特征码为 DLAN1 和
16、DLAN2,PCE 在 ih_symbol.bin 文件中找到这两个符号代码显示图形。PCE 颜色表文件(fcmap.txt)指示了该符号编码的颜色,在本例中 DLAN 颜色是航海紫色。ih_colour.xml 文件指示了航海紫色使用的颜色定义为 RGB(226,66,204),最后在显示窗口中物标绘制如 。 3 HPD 符号库本地化通过以上对 HPD 符号库机制的探究,我们了解到 HPD 数据库并不保存物标的主要表现信息,如颜色、大小、图形化符号等,所有这些表现信息都保存在客户端配置文件中。它们都以文本格式来保存各物标的表现信息。PCE 默认只支持遵循 INT1 标准的符号库,为使 PCE 能够显示符合中国海图图式规范的纸海图符号库系统,我们可以通过修改我们客户端的配置文件来