刘贤三,阎 军,陈长安,栾振东
基于HYPACK的矢量航迹线生成方法研究
刘贤三1,2,阎军1,2,陈长安1,2,栾振东1,2
(1.中国科学院海洋研究所,山东 青岛 266071; 2.中国科学院 海洋地质与环境重点实验室,山东 青岛266071)
摘要:为了将HYPACK导航软件记录的导航数据用于地理制图,探讨了基于HYPACK原始导航数据的矢量航迹线几种生成方法,并给出了每种方法的具体思路。对这几种方法进行比较发现: 按照 Global Mapper中矢量文件的文本格式生成矢量航迹线文件最为简单,效率较高; 直接编码生成法比较直观、容易理解,但实现效率较低,实现过程较为复杂。在.Net环境下编制了统一框架下生成几种格式的文本文件的小工具,经过验证取得了较好的效果。
关键词:HYPACK; 导航数据; 航迹线; 矢量
[Foundation: Special Fund for strategic pilot technology Chinese Academy of Sciences,No.XDA11040103-05; The Open Fund of Key Laboratory of Marine Geology and Environment,the Chinese Academy of Sciences,No.MGE2015KG06]
在海洋测量中,经常需要利用导航软件为船只进行导航,同时记录测量船只的航迹。HYPACK综合导航系统是美国 Coastal Oceanographic公司开发用于海洋调查和海道测量的商业软件,可以与多种海洋测量设备连接、采集和处理海洋测量数据[1-6]。目前该软件已经升级到2014版本。利用该软件的测量模块可以很方便地获取到船只测量时的原始航迹线数据,该数据具有其固定的数据格式,但该数据格式往往不能直接为地图制图工具所用,给航迹图生成带来不便。因此,为了制作航迹线矢量图件,需将原始导航数据文件格式转化为符合地图制图工具要求的通用数据文件格式,如 shapefile(简称 shp)矢量等文件格式。本文针对在海洋测绘具体工作实践中遇到的上述问题展开讨论,较为全面地探讨了几种具体的实践方法,并对几种方法做了比较分析,给出了对比分析结果,最后介绍了自行编制的生成多种格式文本文件的小工具。
将导航定位设备与HYPACK 系统连接后,导航软件采集得到的原始数据为Raw文件格式。在软件的设置中,可以设置该文件包含的数据项[7]。在实际导航中,一般应包含的具体数据项如下表1所示。RAW文件格式的文件头以及其他数据项内容可以参见具体的软件说明手册[7],这里不再赘述。
RAW文件为文本文件格式,可以直接按文本格式打开,读取。每记录一个点时,都包含这几个具体数据项。图1为导航时记录的某个RAW文件部分数据内容。
表1 RAW文件格式部分数据项Tab.1 Partial data fields of RAW file
海洋测量项目中,通常布设了多条计划测线,完成一次测量过程会记录下多条测量航迹的 RAW文件格式的原始数据。为了利用地理信息系统制图软件快速制作出基于所有 RAW 文件的航迹线图件,需要对这些RAW文件进行批量处理,提取出相应的位置信息和航迹线名属性,生成满足制图软件需要的格式的数据文件,通常需要制作生成shp文件。本文以生成shp格式文件为例介绍了几种具体生成方法。
2.1直接编码生成
该方法最为直观,容易理解。但实现起来比较复杂,整个过程都需要编码完成。主要实现过程如下:(1)读取 HYPACK的原始航迹记录数据文件中 POS数据项中位置信息以及文件头中测线名信息;(2)按照 shp文件结构格式顺序写入航迹点数据和测线名属性信息。一个 Shapefile文件包括三个文件: 一个主文件(*.shp)、一个索引文件(*.shx)和一个 dBASE(*.dbf)表。坐标文件(.shp)由固定长度的文件头和接着的变长度空间数据记录组成; 属性文件(.dbf)是一个标准的 DBF文件,用于记录属性信息; 索引文件(.shx)主要包含坐标文件的索引信息,每个记录包含对应的坐标文件记录距离坐标文件的文件头的偏移量。其具体的文件结构格式描述可参考文献[8]。
2.2修改kml文件
为了能快速展示出实际测量航迹线,HYPACK的版本已经支持直接输出 kml文件格式,但该文件并非通用的制图数据格式。因此,可以考虑将生成的kml文件转换为shp格式。
笔者通过试验发现,这种方法比较简单,但是每条测线的测线名属性无法直接转换过来,所有的航迹线线名在 kml文件中都将转化为其默认的属性名“Track1”,如图2所示两条多波束的测线线名均为Track1。显然,这种kml文件会导致生成shp文件后,无法准确对每一条测线进行标注。因此,需要对HYPACK软件导出的kml文件进行统一编辑处理。笔者通过分析由RAW文件直接生成的kml文件后给出具体编辑思路: 顺序读取整个kml文件,将连续出现的两组
上述两种方法比较直观,容易理解,不需要借助其他软件工具,但需要一定的编码基础。事实上,笔者发现借助现有的 GIS软件平台生成shp文件效率更高。下文将探讨借助主流 GIS平台的航迹线生成方法。
图2 HYPACK导出的kml文件格式Fig.2 kml file exported from HYPACK
2.3基于ArcGIS的矢量图形生成
该方法又可以包含两种方法,方法一借助ArcGIS的工具包中的“create features from text file”功能生成shp线文件[9]。该方法生成的线文件中不包含测线名属性,这也是本方法的缺陷所在。事实上,可以对生成的shp文件中的dbf文件进行修改来包含所需要的测线名属性。
该方法的主要实现思路如下: 读取HYPACK的RAW 文件中的航迹点坐标数据,将其写入到生成线要素的规定格式的文本文件中,如图3所示。
图3 ArcGIS 线要素文本格式Fig.3 Polyline feature text format in ArcGIS
图3中,第一行表示要生成的是线要素,第二行第一个数字表示线要素编号,以0作为开始编号; 第二行第二个数字则是表示线要素中的线段编号,也是以0作为开始编号; 第三行以后是结点数据区,表示连接成线要素的结点编号、坐标、Z值和M值,从0作为开始编号。后面的结构依次类推。同一行的数字之间均已空格作为间隔。文本结尾以END作为结束标志。
有关该文件格式的详细描述可参考ArcGIS帮助文档。
方法二利用 ArcGIS的二次开发工具包 ET GeoWizards中的点自动生成线功能。该方法实现思路如下: 顺序读取 HYPACK文件中的航迹点数据,将其写入到要求格式的点文件数据表格中,表格格式如图4所示。如果为了特别强调连接点的顺序,还可以加入点的连接顺序字段。利用ArcGIS中的添加点数据功能生成shp点文件,最后利用ArcGIS的二次开发工具包 ET GeoWizards中的相应功能将点文件转化为线文件。生成的线文件中将包含每条航迹线的测线名属性信息。
图4 ArcGIS 点文件表格格式Fig.4 Point file table format in ArcGIS
2.4基于MAPGIS的矢量图形生成
该方法主要利用了MAPGIS中的投影功能生成线要素。具体的实现思路如下: 读取HYPACK 软件RAW 文件中的航迹点数据,将其写入到生成线要素规定格式的文本文件中,具体格式如图5所示。
图5 Mapgis 线要素文本格式Fig.5 Polyline feature text format in Magis
然后利用 MAPGIS中的投影功能,生成MAPGIS中线要素格式的文件,从而利用 MAPGIS文件转换功能可以进一步转化为通用的 shp线矢量文件。事实上,为了作图方便,生成MAPGIS线要素格式的文件后可以直接在MAPGIS软件中完成航迹线制图工作,无需进一步转化为通用的shp格式。
2.5基于Global Mapper的矢量图形生成
能够将数据显示为栅格地图、高程地图、矢量地图。具有对地图作编辑、转换、打印、记录GPS及利用数据的 GIS功能,能直接访问 USGS卫星照片、TerraServer数据库和 GM 内部的地形图及以真实的3D方式查看高程地图的功能。GM软件能直接读取相应格式的文本文件来生成点、线、面等矢量图形[10]。
Global Mapper(简称 GM)是一款地图绘制软件,该方法的思路如下: 读取HYPACK文件中航迹线的点数据写入到指定格式的文本文件中,如图6所示。生成文本格式后,可以直接在GM软件打开,选择生成线要素的各种选项,然后导出生成shp航迹线矢量文件保存。
图6 Global Mapper线要素文本格式Fig.6 Polyline feature text format in Global Mapper
事实上,利用HYPACK软件本身的数据输出功能也能生成AutoCAD格式矢量航迹线文件,但该成果图件只是为了制图而用,其包含的空间坐标系并非测量意义上的坐标系,在工程设计中使用较多。
为了将上述方法中各种格式的文本文件的生成进行统一,笔者在.net环境下自行编制了基于HYPACK生成各种格式的文本文件的小工具,利用该工具可以得到各种格式的航迹点文本文件,为进一步生成矢量航迹线提供了前提。该工具并不需要大量的编码,实现起来比较简单、实用。该工具的具体界面如图7所示。
在该工具中,用户只需要选择原始RAW文件所在路径,然后选择具体格式的文本文件按钮,便可将生成的文本文件格式保存到指定目录中。还可以有选择地转换部分RAW文件。
本文主要讨论了基于HYPACK的航迹线矢量文件几种生成方法,并编制了几种方法中需要的各种格式文本文件的生成工具。通过对几种方法比较可以看出,从原始的导航记录文件中提取航迹点的坐标和航迹线线名是该过程中关键的一步。直接编码方法最为直观,简洁,编码完成后,直接生成矢量航迹线 shp格式文件,但需要一定编码基础; 其他借助于现有软件的生成方法均需要先按照各种软件中文本生成矢量图形的格式要求生成相应的文本文件,然后借助软件来完成。在这几种间接法中,借助于 GM软件的生成方法相对简单,且效率更高,无需复杂的程序编码,借助于ArcGIS和MAPGIS的方法则还需要其他步骤。因此,笔者认为基于GM的方法最为合适。
本文探讨的航迹线矢量文件生成方法,与HYPACK单波束后处理模块中自定义导出文本格式方法相比,前者操作更简单,更具通用性和灵活性;后者只能在一定范围之内进行自定义,且导出文本还需经过编辑处理后才能为其他GIS软件所用。
本文探讨的方法还存在一些不足之处,譬如仅读取投影坐标信息导致生成矢量时空间参考信息不能自动匹配(需要手动设置)、生成的矢量文件中仅包含唯一的航迹线线名属性信息等,后续工作将进一步改进,以增强其实用性。
图7 生成航迹线文本文件工具Fig.7 Tool for generating text files of track line
参考文献:
[1]魏众浩,王雪帆.基于 Hypack 2008的无验潮水深测量[J],海洋测绘.2011,31(3): 48-50.Wei Zhonghao,Wang Xuefan.Bathymetric measuring without tidal observation based on Hypack 2008 [J].Hydrographic Surveying and Charting,2011,31(3): 48-50.
[2]冯建军.应用 HYPACK软件进行航道回淤观测应注意的问题[J].水运工程,2012,12: 204-207.Feng Jianjun.Matters of attention in application of software HYPACK to siltation observation[J].Port & Waterway Engineering,2012,12: 204-207.
[3]胡家赋,刘宇明.HYPACK导航系统在海洋资源勘探中的应用[J].海洋测绘,2003,23(6): 21-30.Hu Jiabin,Liu Yuming.Application of HYPACK navigation system in marine survey[J].Hydrographic Surveying and Charting,2003,23(6): 21-30.
[4]赵学民,王卫平,张宗德.HYPACK水文测量软件在水下地形测量中的应用[J].水文,2000,20(3): 38-40.Zhao Xuemin,Wang Weiping,Zhang Zongde.The application of hydrography system H YPACK in underwater topography survey[J].Hydrology,2000,20(3):38-40.
[5]许可求,张叶春,刘海龄,等.海洋探测中 HYPACK原始记录文件的数据提取和图形表达[J].海洋地质与第四纪地质,2007,27(4): 131-135.Xu Keqiu,Zhang Yechun,Liu Hailing,et al.Data extraction and graphical expression fromhypack raw files in marine survey[J].Marine Geology & Quaternary Geology,2007,27(4): 131-135.
[6]邹学海,吴柏宣,杜浩.基于 VB.net 实现原始水深文件数据格式的转换[J].水运工程,2010,12: 50-55.Zou Xuehai,Wu Boxuan,Du Hao.Format conversion of raw depth file based on VB.net[J].Port & Waterway Engineering,2010,12: 50-55.
[7]Coastal Oceanographical Corp.Hydrographic survey software user manual[R].US: Coastal Oceanographical Corp,2009: 1230-1239.
[8]Environmental Systems Research Institute,Inc.ESRI shapefile technical description(An ESRI white paper—July 1998)[EB/OL].[2013-12-17].http: //downloads.esri.com/support/whitepapers/mo_/shapefile.pdf.
[9]Corey Tucker.Using Arc Toolbox[M].US : ESRI Press,2000: 27-53.
[10]李东,毛之琳,刘露.Global Mapper在山区独立坐标系建立中的应用[J].测绘通报,2012,4: 86-88,91.Li Dong,Mao Zhilin,Liu Lu.Application of global mapper in establishing independent coordinate system in mountain area[J].Bulletin of Surveying and Mapping,2012,4: 86-88,91.
(本文编辑: 刘珊珊)
Study of track line generation methods in vector format based on HYPACK
LIU Xian-san1,2,YAN Jun1,2,CHEN Chang-an1,2,LUAN Zheng-dong1,2
(1.Institute of Oceanology,Chinese Academy of Sciences ,Qingdao 266071,China; 2.Key Laboratory of Marine Geology and Environment,Chinese Academy of Sciences ,Qingdao 266071,China)
Received: Feb.14,2014
Key words:HYPACK; navigation data; track line; vector
Abstract:To use raw navigation data from HYPACK software records in geographic mapping tools,in this paper,we discuss and propose several track line generation methods in vector format based on HYPACK.We compare these methods and conclude that the vector-format track line generation method based on the text format is the simplest for creating vector features in Global Mapper with high efficiency.While direct coding is intuitive and easy to understand,it is also the most complicated method with the lowest efficiency.We developed a simple tool for generating text files from several formats in a uniform frame in the .Net coding environment,and verified the good results achieved.
中图分类号:P229.3
文献标识码:A
文章编号:1000-3096(2016)03-0153-06
doi:10.11759/hykx20140214002
收稿日期:2014-02-14; 修回日期: 2014-09-01
基金项目:中国科学院战略性先导专项(XDA11040103-05); 中国科学院海洋地质与环境重点实验室开放基金(MGE2015KG06)
作者简介:刘贤三(1982-),男,湖北荆州人,助理研究员,博士,电话: 0532-82898669,E-mail: liuxiansan@qdio.ac.cn