李 冰,余代俊

(成都理工大学 地球科学学院,四川 成都610059)

徕卡数字水准仪质量好、精度高、操作方便,适应多种恶劣环境并且可以在保证测量精度的同时进行夜间作业[1],因而广泛用于地铁、高速铁路、基坑、大坝等监测以及各种精密水准测量中。

对水准原始数据的编辑目前以两种方法为主,一种是基于C#语言对已有平台进行二次开发,比如对徕卡的数据处理软件LGO进行的二次开发[2]、基于PDA平台的水准一体化测量系统的开发[3];另外一种是基于VB语言以EXCEL为平台的后处理程序设计。

可是当前多数徕卡数字水准仪数据处理程序大多以GSI格式原始数据为对象,以测量结果平差为导向进行设计[4],忽略了测量数据的增减变更、替换,致使最终所需原始观测数据紊乱。本文提出了原始观测数据的整理重构技术与方法,解决了在工程实践中对原始观测数据进行增减、替换继而重新计算、输出的难题。

1 格式选取

徕卡数字水准仪测量的数据会自动以二进制格式存储在仪器内存中,并且将数据转换成多种格式,可以在数据输出菜单下操作完成,格式分两类,标准格式与自定义格式,标准格式分为XML与GSI,其中GSI分为GSI-8(数据位为8位)和GSI-16(数据位为16位);自定义格式主要为TXT文本格式:英文显示、只显示测站高差、中文显示。GSI与XML格式是以固定格式存储的测量文件,处理时需采用徕卡公司研发的软件Leica Geo Office(LGO)或Level Pak-Pr o进行处理[5],由于 LGO 支持Leica所有仪器类型,以统一的方式管理TPS、GPS和水准数据,界面稍显复杂,对使用者而言操作略显繁琐。使GSI与XML类文件时,需用专业软件或程序语言进行访问,并且熟悉其测量格式,对于多数工程人员而言操作过于复杂。

中文显示的数据由标题部分(名称、测段名、时间、起始点、开始高程)、数据部分(点号、中丝读数、视距)和统计部分(本站视距、本站高差、累计视距、累计高差、目标高程、精度检查)三部分构成,并且数据部分文字与读数的字符间隔固定。其样式如图1所示。

图1 原始格式

水准测量及数据整理中,对原始数据要求:

1)不得擅自修改原始观测数据。

2)原始观测数据随水准路线前进方向按照测段有序排列。

3)能够快速读取每个测段的高差与距离数据。

4)原始数据中间出现不合格数据时,可以用新观测的数据进行替代,并且保持测段整体数据的规整。

2 程序设计

对原始数据格式分析后,采用易于操作的EXCEL平台,通过调用宏,用VBA程序语言在后台进行编辑处理,实现精确重构,最后输出原始格式的数据[6-7]。

2.1 数据导入

本程序导入数据时采用EXCEL导入文本功能,使用分隔符时采用空格与自定义西文冒号,导入新建表格中。此外也可使用VBA程序语言中Add方法或者open语句实现将文本数据合理导入EXCEL文件。

2.2 限差检查

在程序中预置各等级水准测量限差。对于四等水准测量前后视距差应小于3 m,前后视距累计视距差应小于10 m[8],部分代码:

For i=1 To 180

If Abs(Sheet1.Cells(11+10*(j-1),5).Val ue-Sheet1.Cells(12+10* (j-1),5).Val ue)>3 Then

Msg Box"超限!",vb OKCancel,"提醒"

End If

Next i

分析固定规律排列的原始数据,用For循环与if条件语句嵌套实现限差检查[9]。

2.3 数据复制

复制功能主要是防止初始导入数据被改动,对部分数据赋予复制后的数值。

Sheets("Sheet1").Select

Range("A1:G1800").Select

Selection.Copy’对选中的单元格复制

Sheets("Sheet3").Select

Cells.Select

ActiveSheet.Paste’对选中的单元格粘贴

2.4 计算表头编制及各项数据统计

程序实现对测站高差、测站视距、累计高差、累计视距的计算,计算通过调用单元格的VALUE属性(cells().val ue),用赋值语句和计算公式实现,然后通过For循环计算出各个测站的数据与累计数据。实现界面如图2所示。界面右侧即为实现各项数据的统计计算。

图2 编辑界面

2.5 读数重检、数据替代、精度保留、点号排列

对原始数据进行精确重构并且以原格式输出,要保证原始数据的准确无误,因此在输出前对数据进行检核。

若原始数据中有一部分数据用剔除或重测后的新数据替代,累计视距和累计高差将不再正确,替换处相邻测站的点号也不再连续。因此替换不正确的数值,用赋值以及For循环语句实现此功能,而点号要重新排列,代码部分如下:

Sub变换点号()

Di m i As Integer

For i=1 To 180

Sheet3.Cells(11,3).Value=0

Sheet3.Cells(11+10*i,3).Val ue=Sheet3.

Cells(11+10* (i-1),3).Value+1

Next i

For i=1 To 180

Sheet3.Cells(12,3).Val ue=1

Sheet3.Cells(12+10*i,3).Value=Sheet3.

Cells(12+10* (i-1),3).Val ue+1

Next i

End Sub

2.6 精确重构并输出

各项功能实现后可对原始数据进行原格式输出:创建文本、写入数据。创建文本代码:

Set fso=Create Object("Scripting.FileSystemObject")

filename="c:重构后原始数据.txt"

Set sfile=fso.Create Text File(filename)

写入数据通过函数writeline()循环调用逐行将未输出的原始数据写入文本[10]。需要注意的是,将原始数据引入时使用西文冒号以便分离文字与数值,因此重构还应将冒号写入输出数据,此外文字之间、数字之间、文字与数字间的空格长短须与原格式保持一致。

3 实例分析

以雅安市某测区四等水准测量为例。作为雅安市山区土地确权项目控制测量的一部分,在I成雅41基(09)和I成雅45基(09)二个I等水准点的控制下,联测了13个D级GPS点,由2条附合路线和2条闭合路线及1条支线组成四等水准网,共20个测段,计114.81 k m,平均测段长5.74 k m,最短测段长1.39 k m,最长测段长10.50 k m,如图3所示。

图3 水准线路

因项目工期紧迫,采取了先水准后联测GPS点的施测方案,于是观测数据主要分为一期水准观测记录,二期联测GPS点水准记录,而提交水准部分成果资料则要求按照GPS点分测段整齐提交,要求将两期的水准外业观测资料按测段整齐排列,方便检查验收,并且各测段高差与测段长度能够方便取出。水准路线较长,数据量较大,如果采用传统办法只能使用表格分段处理,处理后在原始数据中进行编辑,耗时耗力易出差错。在此采用水准数据重构程序进行快速分类、处理。

4 成果分析

重构前如图4所示第一张图片中的数据,相邻测段不同周期的观测数据统计结果(累计视距、累计高差等)在上个测段的第12站与下个测段的第1站出现不连续。第二张重构输出后的数据与重构前的相比,排列有序一致,各项统计数值正确,所需测段高程(或高差)可在测站末尾准确读取。

图4 成果图

采用此程序设计方案,在保证原始数据完整性的前提下快速实现了数据的替换、变更、处理以及精确重构,在内业处理中节省了大量时间,发挥了重要的作用。

5 结束语

本文采用的平台实现了徕卡数字水准仪原始观测数据可以增减变更、替换,通过程序计算、检核,最终精确重构输出。整个过程也提供了一整套完整的原始数据编辑处理方案,与其他类似程序相比,其使用更加灵活简便,只须调用对部分程序模块,为水准测量观测数据整理提供了一种简单快捷的工具。

[1] 陈小歌,余代俊,毛川.弱光线对数字水准仪测量的影响分析[J].测绘工程,2014,23(2):64-65.

[2] 徐昌荣,邬雪江.采用C#语言实现LGO的二次开发方法探讨[J].工程勘察,2013(11):60-62.

[3] 杨睿,尹晖.Smart Sur vey水准测量一体化系统设计与开发[J].测绘工程,2009,19(6):49-52.

[4] 李德龙,张文金.徕卡DNA03水准仪数据处理方案与实现[J].城市勘测,2009(6):93-94.

[5] 孔祥元,郭际明.控制测量学[M].武汉:武汉大学出版社,2006:215-220.

[6] 汪平,孙雪洁,许家琨,等.基于Visual Basic实现徕卡DNA03电子水准仪数据处理[J].海洋测绘,2013(6):56-58.

[7] 贾丙普,彭喜林.徕卡DNA03数字水准仪数据处理研究[J].测绘工程,2015,24(2):75-77.

[8] 中国国家标准化管理委员会.GB/T 12891-2006国家三四等水准测量规范[S].北京:中国标准出版社,2006.

[9] 佟彪.VB语言与测量程序设计[M].北京:中国电力出版社,2007:116-119.

[10]马前雪.文件操作之 VB篇[J].中文信息,2002(12):24-28. ?