当前位置:文档之家› 徕卡Sprinter数字水准仪观测数据处理程序设计与应用

徕卡Sprinter数字水准仪观测数据处理程序设计与应用

徕卡Sprinter数字水准仪观测数据处理程序设计与应用刘陶胜;胡咏梅;曾宪珪【摘要】With high stability and reliability, digital level of Leica Sprinter,which is easy to use, is widely used in inferior leveling and construction layout, yet its accompanying software doesn't provide how to extract the standardized data and compute automatically their result from the observations. In the article the observation data formation of Leica Sprinter digital level is analyzed, and the principle and method to extract observation data are discussed. Visual Basic 6.0 is taken as a tool to dispose observation data program, which applies to productive practice.%徕卡Sprinter数字水准仪具有高稳定性和可靠性、简单易用,广泛地用于较低等级的水准测量和建筑施工放样等工作中,但是其随机软件并没有提供观测成果的标准化提取和自动计算功能.通过分析Sprinter数字水准仪观测文件的数据格式,讨论了观测数据提取的原理和方法,选择VISUAL BASIC 6.0作为开发工具,编制了观测数据处理程序,并应用于生产实践.【期刊名称】《江西理工大学学报》【年(卷),期】2011(032)005【总页数】4页(P24-27)【关键词】Sprinter数字水准仪;水准测量;程序设计;数据格式【作者】刘陶胜;胡咏梅;曾宪珪【作者单位】西理工大学,建筑与测绘工程学院,江西赣州341000;西理工大学,工程研究院,江西赣州341000;西理工大学,建筑与测绘工程学院,江西赣州341000【正文语种】中文【中图分类】P209徕卡Sprinter数字水准仪是一款测量无差错的高可靠性数字水准仪,主要用于较低等级的水准测量和建筑施工放样等工作场合[1-3],它是基于相关法解码原理读取条码标尺读数,测定距离和高差[4-5],具有简单易用、读数自动化、快速高效等优点,可自动将观测数据转换为电子数据文件保存在内置内存中[6].但是其观测数据文件的电子文档与常规的人工记录格式还有很大的差别,其随机软件并没有提供观测成果的标准化提取和自动计算功能,要从中提取数据进行后继的计算,还需要很多的人工编辑过程.文中通过分析徕卡Sprinter数字水准仪观测数据文件的特点,编程实现了观测数据的读取,并把它转换成标准的记录格式,以便进行下一步的数据处理.Spring数字水准仪数据输出格式有GSI8和GSI16两种,均为IISCI文件,可由记事本等文档处理软件直接打开,文件以数据行为单位,每行为一条数据记录,以结束符(CR或CR/LF)结束,其中GSI8是指数据按8位字符输出,GSI16按16位字符输出,文件包含控制点信息和全部测量信息,正确理解各数据块含义非常重要,是编程实现的基础.根据观测形式的不同,每行有3~6个数据块,每个数据块由字索引和观测数据组成.以GSI8格式类型为例,数据格式说明见表1.每条记录最多包含6个数据块,每个数据块字符串是定长的,每个数据块的前6位为字索引,用来区分数据类型,如“11”说明此块数据为点号;“32”为视距读数;“33”为标尺读数;“37”为相对高差;“38”为高程数据,均以毫米为单位,各数据块之间用空格分开.数据记录类型的说明如下:①控制点数据包含4块数据,依次为点号、视距长、高差、高程;②后、前视数据包含全部6块数据;③中平测量的前视数据只包含3块数据,依次为点号、视距长、高差.每条记录长度跟记录的内容有关,相同类型的信息记录长度一样,不同类型记录长度不一样.水准测量的外业工作是要得到水准点之间的高差、水准路线长度以及毎测站前后视距差和视距差累计.根据水准路线等级的不同,观测程序有双面尺的“后-前-前-后”或“后-后-前-前”,单面尺的“后-前”观测方式等,区分各种观测方式主要通过字索引说明.在文中所涉及的数据来源为单面尺读数,即按照“后-前”观测方式进行处理.实际工作中,由于某些原因,比如有多个作业组同时工作,施测时不一定沿水准路线顺序观测而是分测段观测,或是有时需要从间歇点接测.正常观测情况下,一个测站中后前读数是成对出现,有时由于某种原因,某个前视读数无效(如视距差超限)或需要作中间视观测,则在数据文件中同一测站上有多个前视数据,若数据处理不正确,将得到错误的结果.因此,程序设计中需要考虑这些可能出现的情况,既要分离出正确的数据信息,还要检测出异常的信息,告诉用户是否需要或如何进行编辑处理.综合考虑以上因素,程序应具有以下功能:①异常检查:包括已知点高程值没有输入或重复输入,有多个前视观测值等情况;②读取控制点信息;③读取每测站前后视距,以米为单位,取值至0.1m,计算视距差,且基于以上理由,不计算视距累计差;④读取后、前标尺读数,以米为单位,取值至0.001m,计算高差.最后将全部成果写入Excel文件.选择界面友好、代码简单的VISUAL BASIC 6.0作为开发工具进行程序设计[7],代码的主要功能有:读取观测数据文件、从中提取必要的数据信息,写入新的数据文件;检测出异常信息并反馈给用户.程序调试无误后编译成“.exe”可执行文件,可脱离程序语言环境运行.程序设计流程图见图1.程序首先打开数据文件,以行为单位读入数据,由于数据类型只有控制点数据、前后视测量数据、中平测量数据三种,故根据记录长度判定读入数据类型.检查数据是否存在异常,若有异常,则进行标示并提示用户哪一测段可能发生异常,但无需中断程序.直至处理完全部数据,并标示所有异常情况.用户可根据需要修改数据文件再重新读取数据.根据上述工作流程,通过对数字水准仪观测文件记录格式的分析,提取文件中的有用信息,导出完整的水准记录形式至Excel文件,为后续的数据处理提供基础数据.设计界面包括4个命令按钮,2个文本框和1个文本标签.如图2所示.命令按钮完成相应的功能是程序的主体,文本框显示原始数据和数据提取情况,文本标签提示处理的情况.程序首先读入数据文件,利用Do Until EOF(1)和Line Input语句保证能遍历文件全部数据;利用数据文件数据块位置固定的特性,用Mid()函数提取字符串,比较子索引符号区分数据类型;对视距、高程、标尺读数等数值型数据用Val()、Fix()函数字符到数值的转换和固定小数位的输出.用New Excel.Application命令新建Excel文件,通过循环语句和赋值语句把从原始数据文件中提取的数据写入Excel文件.“读入数据”主程序循环体代码如下.Do Until EOF(1)Line Input#1,nlineText1=Text1+nline+vbCrLf'显示原始数据If Len(RTrim(nline))<50 Then'为中平测量,只包含前视读数dianhao=Mid(nline,12,4)distc=Fix(Val(Mid(nline,24,8))+0.5)/1000#'数据四舍五入,以米为单位记录视距heightc=Fix(Val(Mid(nline,40,8))+0.5)/1000#'数据四舍五入,以米为单位记录标尺读数Text2=Text2+"视距"+Str(distc)+Space(8)+"观测值"+Str(heightc)+vbCrLf exsheet.Cells(j,1)=dianhao'写入点号、视距、标尺读数,记录测量方式exsheet.Cells(j,2)=distc'模式1表示为中平测量,模式2表示前后视测量,以下同exsheet.Cells(j,3)=heightcexsheet.Cells(j,5)="模式1"i=i+1ElseIf(Len(RTrim(nline))>50)And(Len(RTrim(nline))<70)ThenIf(i Mod 2=1)ThenLabel1.Caption=Label1.Caption+vbCrLf+"以"+ij+"为起算点的水准路线测段有多远余观测或缺少数据,请检查."ko=ko+1i=0Elsei=0End Ifdianhao=Mid(nline,12,4)'提取点号ij=dianhao'记录起算点inib=Fix(Val(Mid(nline,57,8))+0.5)/1000#Text2=Text2+"已知点点号:"+dianhao+"已知点高程:"+Str(inib)+vbCrLf exsheet.Cells(j,1)=dianhaoexsheet.Cells(j,4)=inibexsheet.Cells(j,5)="已知水准点"ElseIf Len(RTrim(nline))>70 Then'数据读数为正常读数dianhao=Mid(nline,12,4)distc=Fix(Val(Mid(nline,24,8))+0.5)/1000#heightc=Fix(Val(Mid(nline,40,8))+ 0.5)/1000#Text2=Text2+"视距"+Str(distc)+Space(8)+"观测值"+Str(heightc)+vbCrLf exsheet.Cells(j,1)=dianhaoexsheet.Cells(j,2)=distcexsheet.Cells(j,3)=heightcexsheet.Cells(j,5)="模式2"i=i+1End Ifj=j+1Loop“数据标准化”模块根据“读入数据”模块以外业测量记录格式写入Excel文件的数据,按照标准记录格式重新写入Excel文件;“重新读数”则是根据“读入数据”模块检测的异常情况修改原始观测数据后重新读入数据,在进行数据的提取;“退出”执行释放内存空间,退出程序.某附合水准路线包含6个已知水准点,按“后-前”观测方式进行观测,其中4个测段中有的测站存在无效观测值,且外业观测时未从仪器上删除,数据下载后也未编辑处理.运行程序后,点击“读入数据”按钮,在原始数据文本框和提取数据文本框分别显示原始数据和提取的数据,同时把数据文件的异常检测情况显示在文本标签中,如图3所示.再将提取已知控制点数据、视距和高差数据写入Excel文件第一个表单,命名为“外业数据格式”,如图4(a);用户可根据提示情况选择修改原始数据文件,然后单击“重新读入数据”,也可以不修改原始数据文件而直接编辑结果数据文件;执行“数据标准化”,把全部数据按照标准外业记录格式写入Excel文件第二个表单,命名为“水准记录格式”如图4(b).通过对徕卡Sprinter数字水准仪数据文件结构的分析,利用VISUAL BASIC 6.0作为开发工具进行程序设计,实现观测数据的自动提取,很好地解决了数字水准仪测量过程中繁琐的数据编辑问题,可快速地提供水准测量观测数据成果,该应用程序在生成实践中得到了很好地应用,有效地发挥了现代测量仪器的高效作用.该应用程序的设计思想可应用于其它型号的数字水准仪.【相关文献】[1]杨俊志.徕卡SPRINTER系列数字水准仪测量原理的研究[C].2007年全国测绘仪器综合学术年会论文集.武汉:武汉大学出版社,2007.[2]缪德都,李本贤,王家文,等.Leica电子水准仪在地面沉降监测中的应用[J].勘察科学技术,2008(4):56-58.[3]孔滨.Leica电子水准仪在地面沉降监测中的应用体会[J].工程技术,2009(9):136.[4]叶晓明,刘经南.数字式数字水准仪的载码相位法原理[J].武汉大学学报:信息科学版,2007,32(2):180-183.[5]杜伯利,蔡林.电子水准仪原理[J].黑龙江水利科技,2005,33(3):45-47.[6]陈礼坤.DiINi03电子水准仪数据预处理程序设计[J].铁道勘察,2009(5):12-13.[7]刘陶胜,曾强.由Leica全站仪观测值文件进行坐标计算程序开发[J].江西理工大学学报,2009,30(2):14-16.。

相关主题