论文部分内容阅读
[摘要]简要地介绍HYPACK综合导航软件的应用情况和存在的问题;给出Global mapper软件的坐标转换设置和批量导出HYPACK测线文件的方法;利用Global Mapper生成HYPACK导航系统测线的方法,提高了野外调查生产效率,并可以检验测线坐标数据,确保采集数据的正确性。
[关键词]Global Mapper AWK 批量 测线 坐标转换
[中图分类号] P217 [文献码] B [文章编号] 1000-405X(2015)-7-166-1
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原始测线表所示,表中只列举了部分调查测线。
利用awk处理前:
(1)网上下载awk应用包,修改对应的autoexec.bat文件后放置于C盘根目录下,然后在windows自带的cmd下,运行autoexec.bat,安装GMT环境变量,如下图1所示。GMT环境建立后,即可使用awk编程语言工具。
(2)拷贝表格,粘贴到无格式linename.txt文本文档中,如下:
test1 220000.000 1130000.000 220000.000 1140000.000
test2 210500.000 1130000.000 210500.000 1140000.000
test3 210000.000 1130000.000 210000.000 1140000.000
test4 200500.000 1130000.000 200500.000 1140000.000
test5 195500.000 1130000.000 195500.000 1140000.000
test6 195000.000 1130000.000 195000.000 1140000.000
…
(3)分析测线格式:字段1测线名 字段2起点纬度 字段3起点经度 字段4终点纬度 字段5终点经度,格式比较规律。
利用awk处理时:
(1)切换到linename.txt数据目录下,输入awk语句:
awk '{print $1,"\n" substr($2,1,2) ":" substr($2,3,2) ":" substr($2,5,6),substr($3,1,3) ":" substr($3,4,2) ":" substr($3,6,6),"\n" 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,"\n",为字段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 Area Features;测线文件中,纬度在前,所以Coordinate Column Order/Format选项里选择Y/Northin/Latitude Coordinate First,如图2所示。
(2)导出测线前,需将所有其他底图的图层去掉,只保留测线图层,然后设置和施工项目设计一致的投影参数,在这里,假定为UTM投影。操作Tools→configure→Projection选项卡中,Projection:选择UTM,Zone:选择49,Datum:默认选择WGS84,具体如图3所示。
(3)GM导出HYPACK测线:File→Export→Export Vector Format,选择Hypack Linefile,然后确定。
(4)测试GM生成的HYPACK测线文件,如图4所示,测试通过,测线可以批量导入;通过和人工输入的做对比,结果一致。
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.
[关键词]Global Mapper AWK 批量 测线 坐标转换
[中图分类号] P217 [文献码] B [文章编号] 1000-405X(2015)-7-166-1
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原始测线表所示,表中只列举了部分调查测线。
利用awk处理前:
(1)网上下载awk应用包,修改对应的autoexec.bat文件后放置于C盘根目录下,然后在windows自带的cmd下,运行autoexec.bat,安装GMT环境变量,如下图1所示。GMT环境建立后,即可使用awk编程语言工具。
(2)拷贝表格,粘贴到无格式linename.txt文本文档中,如下:
test1 220000.000 1130000.000 220000.000 1140000.000
test2 210500.000 1130000.000 210500.000 1140000.000
test3 210000.000 1130000.000 210000.000 1140000.000
test4 200500.000 1130000.000 200500.000 1140000.000
test5 195500.000 1130000.000 195500.000 1140000.000
test6 195000.000 1130000.000 195000.000 1140000.000
…
(3)分析测线格式:字段1测线名 字段2起点纬度 字段3起点经度 字段4终点纬度 字段5终点经度,格式比较规律。
利用awk处理时:
(1)切换到linename.txt数据目录下,输入awk语句:
awk '{print $1,"\n" substr($2,1,2) ":" substr($2,3,2) ":" substr($2,5,6),substr($3,1,3) ":" substr($3,4,2) ":" substr($3,6,6),"\n" 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,"\n",为字段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 Area Features;测线文件中,纬度在前,所以Coordinate Column Order/Format选项里选择Y/Northin/Latitude Coordinate First,如图2所示。
(2)导出测线前,需将所有其他底图的图层去掉,只保留测线图层,然后设置和施工项目设计一致的投影参数,在这里,假定为UTM投影。操作Tools→configure→Projection选项卡中,Projection:选择UTM,Zone:选择49,Datum:默认选择WGS84,具体如图3所示。
(3)GM导出HYPACK测线:File→Export→Export Vector Format,选择Hypack Linefile,然后确定。
(4)测试GM生成的HYPACK测线文件,如图4所示,测试通过,测线可以批量导入;通过和人工输入的做对比,结果一致。
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.