?

基于Global Mapper批量生成HYPACK系統測線的方法

2015-10-12 09:02黃寧萬庭輝李鵬
地球 2015年7期
關鍵詞:編程語言字段批量

黃寧 萬庭輝 李鵬

(廣州海洋地質調查局廣東廣州510760)

基于Global Mapper批量生成HYPACK系統測線的方法

黃寧萬庭輝李鵬

(廣州海洋地質調查局廣東廣州510760)

簡要地介紹HYPACK綜合導航軟件的應用情況和存在的問題;給出Global mapper軟件的坐標轉換設置和批量導出HYPACK測線文件的方法;利用Global Mapper生成HYPACK導航系統測線的方法,提高了野外調查生產效率,并可以檢驗測線坐標數據,確保采集數據的正確性。

Global Mapper AWK批量測線坐標轉換

1 引言

HYPACK是美國Coastal Oceanographics Inc.公司開發用于海洋調查和水道測量的商業軟件。軟件的測量模塊具有設置靈活,支持硬件多的特點,接入DGPS、單波束測深儀等儀器后能向用戶提供高質量的航行定位和測深數據,同時提供了強大的內業編輯、繪圖和土方量計算功能,目前該軟件最新版本為HYPACK2014。但HYPACK的極個別功能未能完全符合我國的國家規范以及行業規范,例如測線的批量導入等是HYPACK軟件的缺陷。

本文應用Global Mapper軟件(以下簡稱GM),結合awk編程語言工具,通過編寫簡單的awk程序語言,導出符合GM軟件使用的測線,然后再導入GM,設置對應的坐標系和投影,最后批量導出符合HYPACK綜合導航系統使用測線文件,方便批量導入HYPACK系統使用。

2  GM及awk簡介

GM是一款地圖繪制軟件,支持導入點、線、面等測線文件,其預置許多常用坐標系和轉換參數,支持包括高斯投影、UTM投影等在內的數百種地圖投影,用戶通過設定相關的坐標系和投影方式,可以導出符合調查項目所需的坐標系統,利用其對文本格式數據的處理,配合坐標系統和投影參數設置,亦可方便地實現文本數據坐標參考系統的轉換。

AWK是一種用于處理文本的編程語言工具,運行效率高,而且代碼簡單,對格式化的文本處理非??焖?。AWK在很多方面類似于shell編程語言,盡管AWK具有完全屬于其本身的語法。其名稱得自于它的創始人Alfred Aho、Peter Weinberger和Brian Kernighan姓氏的首個字母,在最初創造AWK時,其目的是用于文本處理,并且這種語言的基礎是,只要在輸入數據中有模式匹配,就執行一系列指令,對于文本處理,執行效率明顯高于其他編程語言工具。

3 批量導出測線的方法與過程

3.1利用AWK處理原始測線文件

調查項目或者施工設計里面,原始測線格式一般為word表格格式,如下表1原始測線表所示,表中只列舉了部分調查測線。

表1 原始測線表

利用awk處理前:

(1)網上下載awk應用包,修改對應的autoexec.bat文件后放置于C盤根目錄下,然后在windows自帶的cmd下,運行autoexec. bat,安裝GMT環境變量,如下圖1所示。GMT環境建立后,即可使用awk編程語言工具。

圖1 啟動GMT環境

(2)拷貝表格,粘貼到無格式linename.txt文本文檔中,如下:

test1220000.0001130000.000220000.000

1140000.000 test2210500.0001130000.000210500.000

1140000.000 test3210000.0001130000.000210000.000

1140000.000 test4200500.0001130000.000200500.000

1140000.000 test5195500.0001130000.000195500.000

1140000.000 test6195000.0001130000.000195000.000

1140000.000…

(3)分析測線格式:字段1測線名字段2起點緯度字段3起點經度字段4終點緯度字段5終點經度,格式比較規律。

利用awk處理時:

(1)切換到linename.txt數據目錄下,輸入awk語句:

awk'{print$1," "substr($2,1,2)":"substr($2,3,2)":"substr ($2,5,6),substr($3,1,3)":"substr($3,4,2)":"substr($3,6,6)," "substr ($4,1,2)":"substr($4,3,2)":"substr($4,5,6),substr($5,1,3)":"substr ($5,4,2)":"substr($5,6,6)}'linename.txt>convertlinename.txt

其中,print為打??;$1," ",為字段1后加入換行符;substr ($2,1,2),為提取字段2中從第一個字符算起的兩個字符;linename. txt為測線原始文件名,convertlinename.txt為轉換后輸出的文件名;利用awk處理文本文件,可以忽略其空格和Tab的區別。

(2)輸出結果convertlinename.txt內容如下:test1

22:00:00.000 113:00:00.000

22:00:00.000 114:00:00.000

test2

21:05:00.000 113:00:00.000

21:05:00.000 114:00:00.000

test3

21:00:00.000 113:00:00.000

21:00:00.000 114:00:00.000

這樣的結果,符合GM軟件測線輸入格式。

3.2利用GM導入awk生成的測線文件,再導出HYPACK系統適用的測線文件

(1)打開GM軟件,然后File→open Data File(s),因將要導入的是測線文件,所以Import Type選項里選擇Point、Line、and AreaFeatures;測線文件中,緯度在前,所以Coordinate Column Order/Format選項里選擇Y/Northin/Latitude Coordinate First,如圖2所示。

圖2 設置導入測線

(2)導出測線前,需將所有其他底圖的圖層去掉,只保留測線圖層,然后設置和施工項目設計一致的投影參數,在這里,假定為UTM投影。操作Tools→configure→Projection選項卡中,Projection:選擇UTM,Zone:選擇49,Datum:默認選擇WGS84,具體如圖3所示。

圖3 設置投影參數

(3)GM導出HYPACK測線:File→Export→Export Vector Format,選擇Hypack Linefile,然后確定。

(4)測試GM生成的HYPACK測線文件,如圖4所示,測試通過,測線可以批量導入;通過和人工輸入的做對比,結果一致。

圖4 HYPACK導入GM生成的測線文件結果

4 結論

(1)利用awk編程語言工具,可以快速處理規律文本數據,可以根據不同特點的字段格式,自由更改輸入和輸出的文本格式;

(2)利用awk編程語言和Global Mapper批量生成HYPACK系統測線的方法,可以適應不同的原始坐標格式;在HYPACK系統多測線調查作業的情況,利用此方法可以節省調查人員輸入測線的時間,省略重新編譯程序的步驟,減少錯誤率。

[1]李紅兵,喻威,李紀東,楊有才,徐巖,寧林春.Global Mapper參與測繪數據的管理和分析[C].成都:中國海洋協會:2009.

[2]施建平,魏彩虹,段金梅.利用Global Mapper實現文本格式坐標的參考系統轉換[J].測繪技術裝備,2013,15(2):76~78.

[3]胡家賦,劉宇明.HYPACK導航系統在海洋資源勘探中的應用[J].海洋測繪,2003,23(6):21~23.

[4]劉方蘭,肖波.Global Mapper系統在海洋調查中的應用[J].海洋技術,2011,30(1:):24~26.

[5]李文杰.Global Mapper在物探測量中的應用[J].北京測繪,2012,5:48~50.

[6]石慶冬.淺談AWK與C語言的相似之處[J].科技資訊,2008,33:25~26.

P217[文獻碼]B

1000-405X(2015)-7-166-1

黃寧(1986~),男,本科,研究方向為海洋測繪、導航定位。

猜你喜歡
編程語言字段批量
圖書館中文圖書編目外包數據質量控制分析
基于JavaScript編程語言之 閉包技術在焦點輪播上的應用
批量提交在配置分發中的應用
Java編程語言的特點與應用
淺談不同編程語言對計算機軟件開發的影響
面向對象Web開發編程語言的的評估方法
在數控車床上批量鉆鉸孔類工件的實踐
CNMARC304字段和314字段責任附注方式解析
無正題名文獻著錄方法評述
基于AUTOIT3和VBA的POWERPOINT操作題自動批量批改
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合