基于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操作题自动批量批改