劉賢三,閻 軍,陳長安,欒振東
?
基于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