Leica DNA03水准仪数据格式转换与存储方法研究

2019-07-30 08:59隋正苏辽宁有色地质地理信息研究院有限公司辽宁抚顺113006
中国房地产业 2019年15期
关键词:水准仪数据格式外业

文/隋正苏 辽宁有色地质地理信息研究院有限公司 辽宁抚顺 113006

1、绪论

精密电子水准仪拥有较高观测精度和观测效率,便于记录等优点,降低人工劳动强度,越来越受到测绘生产单位青睐。[1]目前市场上常见数字水准仪型号等级都很齐全,完全能满足不同工作的各种精度要求。[2]

虽然电子水准仪已经实现读数自动化、记录电子化,但LeicaDNA03水准仪原始数据格式不易整理,需要人工编辑;外业观测数据导出格式通常为默认的GSI,可读性差,需要另行编制程序进行转换。

本文通过对Leica DNA03数字水准仪数据文件格式分析,用VC6.0编程平台,对数字水准仪的观测数据文件进行处理,利用C++语言编程读取数据文件并转换,编程调用Excel生成水准测量外业记录表,将数字水准仪文件格式转换成外业规范水准手簿,便于直接导入常用的平差软件进行计算。

本文研究的主要内容包括对Leica GSI-8数据存储格式的字段分析,GSI-8格式向水准记录本格式转换以及Excel表格水准数据的存贮,主要用到的理论方法有VC6.0编程平台在MFC框架下的二次开发,Excel电子表格与VC编程平台的联合。

2、DNA03水准仪编码格式

2.1 Leica DNA03水准仪数据存储格式介绍

Leica DNA水准仪记录的信息较全面,数据下载可使用附带软件来完成。利用软件下载数据默认格式为GSI,不便于编辑处理。Leica测量办公系统提供了自定义下载格式功能,运行“格式管理器”根据所需下载自定义数据格式。在下载格式文件中可选择包括文件头、文件尾、工程名称和线路名称等,测站观测数据中的必选内容包括点名、距离、测量类型、标尺读数,这些是内业平差中必要的基础数据。另外,格式中还可根据需求自定义,包括观测日期、观测方法、观测者、仪器型号等内容。自定义数据类型下载的文件后缀为*.mdt,用文本编辑器打开阅读、打印。但提取出平差所需数据,形成符合平差软件要求的数据文件,还需借助编程方法来实现。

2.2 GSI数据字段格式分析

Leica DNA03电子水准仪采用的是GSI格式存储数据,包括GSI-8和GSI-16格式。GSI数据以“块”为单位进行传送,每个数据块包含若干个数据段,数据段用两个或三个标志字符WI来区分不同数据。GSI-8数据格式中,每个数据段共有16个字符,包括7个信息字符,8个数据字符和一个空白字符;GSI-16数据格式中,每个数据段共有24个字符,其中有16个数据字符,可以存储更多数据信息。[4]本文以GSI-8数据格式为例进行分析。

3、数据格式转换存储的设计实现

3.1 数据格式转换与存储的总体设计

两种方法可将数据转移到计算机中。一是通过通信接口设置好通信参数用专门通信软件传输,二是用笔记本电脑读卡功能直接拷贝测量数据。

目前已有专业软件能将电子水准仪测量数据转换成传统的测量记录手簿形式,但软件专门性、针对性不强。为了使数据处理自动化程度更高,可以设计自己的算法,通过程序来处理数据。考虑到Excel软件是比较优秀的表格处理软件,方案采用VC6.0设计可视化界面,用C++语言结合Excel对象来处理数据。

(1)设计思路

同一种仪器由于观测方法不同,数据也存在差异,本文基于用Leica DNA03水准仪观测的测量模式BFFB和测量模式BBFF的原始数据文件进行转换。

本文设计思路考虑到手簿表格格式整齐有规律,首先将测量产生的有效数据利用程序代码提取出来,保留原始数据格式,写入Excel中通过公式进行格式转换。

(2)数据提取

电子水准仪测量成果文件格式具有固定性,我们可通过编程开发用一定算法提取有效数据,本文以水准线路为例对其数据提取及处理的基本思路进行说明。

要实现数据读取,首先选择要转换的文件格式,再进行相应模式数据的逐行读取,定义成员函数和用到的各个变量,利用类对象将数据段中的字符串写入到所定义的变量中,再将字符串格式数据转换成整型的数据,为后续处理做准备。

(3) VC与Excel联合

创建程序,在程序入口和出口处增加代码支持COM库。从Office安装目录中找到对VC操作Excel文件的动态库,引入所需对象模型,添加具体代码来响应操作Excel命令。

3.2 数据格式转换与存储的具体实现

(1)技术要点分析

仔细阅读Leica GSI 格式说明文件,正确理解Leica DNA03水准仪的各项数据代码,在具体设计时要注意以下几点:

①文件头获取时间,观测者,仪器型号等信息;②测段起始和结束标志;③测段异常处理,包括以下几个情况:整站重测的处理和一次观测重测的处理,可以利用“if/else”选择结构,通过关键字符对所读取的数据流进行筛选;采用“while”循环,根据需要设置好循环结束和选择条件,合并测站数据信息和测段数据信息。

(2)读取数据

本文中的程序需要对txt文件中的数据进行逐行读取,所以用CStdioFile中的ReadString函数,读取到CString中,再按所需进行拆分或截取,获得有实际意义的测量数据段,[6]由于观测方法不同,导致原始数据文件内容存在差异,要正确的读取到所需要的测量数据,就需要编写不同的代码,观测模式的不同选择用对话框中的单选钮来实现,并且要将其与单击按钮联系起来。

(3) 建立与Excel对象的联系

利用Visual C++ 6.0,建立一个MFC基于对话框的工程项目,在主对话框中加入按钮:

ID: IDC_BUTTON_XLC 标题:存储数据;双击该按钮,增加成员函数

(4) Excel单元格的写入

表头的写入,例如:m_ExlSheet.SetName("原始数据导入");同理,其他单元格的内容也依次进行设置,如:xlSheet.Cells(XX*3+9,2) = YY(i+1,3)通过设置循环和选择将数组YY中的数据输入到电子表格所对应的单元格中[4]。将上述取出的数据,按表格中相应的位置循环写入后,整个文件中相应的数据将会全部写入表格中,从而实现数据的转换。

(5) 程序设计成果

根据原始数据格式编写具体代码,添加到相应按钮的编辑代码处,过程中利用VC++6.0软件的调试功能进行错误修改,最终使程序能够顺利的运行。

图3-1为通过本程序实现的水准观测手簿:

图3-1 Excel水准手簿形式记录表格

与原始数据相比较,可以看到,原始GSI-8格式数据已成功转化成常用的观测手簿形式,更方便进一步的整理和计算。

结论:

电子水准仪的出现实现了水准测量中的读数自动化、记录电子化,降低了外业强度,减少了读数误差,具有光学水准仪无可比拟的优势。但其结果电子文档的呈现形式给数据可读性带来困难。本文分析Leica DNA03电子水准仪记录格式的特点,用C++语言编写了相关的数据预处理程序,对GSI格式的测量数据进行提取并用Excel实现格式的转换,输出为电子观测手簿的文件,从而实现水准测量从外业观测到内业计算一体化,有很好的实践意义。

猜你喜欢
水准仪数据格式外业
基于移动 GIS 的公路工程外业调查系统研究
基于无人机和全景技术的“空-地”联合公路设计外业调查方法
中职测量水准仪的历史及应用探析
数字水准仪与光学水准仪对比分析
基于市政管线外业采集命名规则和辅助软件开发
水准仪“i”角检测的统一形式
天津市第一次全国地理国情普查外业调绘核查
MIT—BIH心率失常数据库的识读
基于RFID的户外广告监管系统的设计与实现
一种融合多业务的信息化系统框架研究