论文部分内容阅读
【摘要】随着科技的日新月异,测量仪器新技术突飞猛进,电子水准仪不仅能提供高精度数据,更以减轻作业劳动强度、效率高而得到越来越广泛应用。虽然电子水准仪有诸多优点,但输出的原始数据存在缺陷,如可读性差,不方便整理,无法满足一般平差软件格式要求,因此需要对其数据格式的转换进行研究。本文以Leica DNA03水准仪为例,对其优越性和测量原理进行阐述,对本文所使用的软件平台进行介绍,对Leica GSI格式的观测数据进行解译和分析,观测数据的编程提取是基于VC6.0的MFC开发框架,用C++语言将提取出来的有效数据写入Excel表格,用Excel自动计算功能将数据格式轉换成规范的水准手簿形式,并进行存储。
【关键词】DNA03水准仪;数据格式;MFC框架;C++语言
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软件的调试功能进行错误修改,最终使程序能够顺利的运行。
与原始数据相比较,可以看到,原始GSI-8格式数据已成功转化成常用的观测手簿形式,更方便进一步的整理和计算。
结论:
电子水准仪的出现实现了水准测量中的读数自动化、记录电子化,降低了外业强度,减少了读数误差,具有光学水准仪无可比拟的优势。但其结果电子文档的呈现形式给数据可读性带来困难。本文分析Leica DNA03电子水准仪记录格式的特点,用C++语言编写了相关的数据预处理程序,对GSI格式的测量数据进行提取并用Excel实现格式的转换,输出为电子观测手簿的文件,从而实现水准测量从外业观测到内业计算一体化,有很好的实践意义。
参考文献:
[1]刘万松,张广利,张景文,等.用VB6_0实现电子水准仪数据格式的转换[J].中国非金属矿工业导刊,2011,(90):43-47.
[2]刘洪涛,张鹏飞.Leica数字水准仪数据后处理经验浅谈[J].工程勘察,2009,(2):423-426.
[3]李德龙,张文金.徕卡DNA03水准仪数据处理方案与实现[J].城市勘测,2009,(6):93-94.
[4]韦国和,李应超,高建尽,等.基于徕卡DNA03水准仪数据预处理程序设计[J].中国新技术新产品,2010,(19):37.
[5]杨震.电子水准仪的数据格式转换研究[J].科技信息,2011,(27):107.
【关键词】DNA03水准仪;数据格式;MFC框架;C++语言
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软件的调试功能进行错误修改,最终使程序能够顺利的运行。
与原始数据相比较,可以看到,原始GSI-8格式数据已成功转化成常用的观测手簿形式,更方便进一步的整理和计算。
结论:
电子水准仪的出现实现了水准测量中的读数自动化、记录电子化,降低了外业强度,减少了读数误差,具有光学水准仪无可比拟的优势。但其结果电子文档的呈现形式给数据可读性带来困难。本文分析Leica DNA03电子水准仪记录格式的特点,用C++语言编写了相关的数据预处理程序,对GSI格式的测量数据进行提取并用Excel实现格式的转换,输出为电子观测手簿的文件,从而实现水准测量从外业观测到内业计算一体化,有很好的实践意义。
参考文献:
[1]刘万松,张广利,张景文,等.用VB6_0实现电子水准仪数据格式的转换[J].中国非金属矿工业导刊,2011,(90):43-47.
[2]刘洪涛,张鹏飞.Leica数字水准仪数据后处理经验浅谈[J].工程勘察,2009,(2):423-426.
[3]李德龙,张文金.徕卡DNA03水准仪数据处理方案与实现[J].城市勘测,2009,(6):93-94.
[4]韦国和,李应超,高建尽,等.基于徕卡DNA03水准仪数据预处理程序设计[J].中国新技术新产品,2010,(19):37.
[5]杨震.电子水准仪的数据格式转换研究[J].科技信息,2011,(27):107.