当前位置:
文档之家› DINI03电子水准仪的数据整理与转换
DINI03电子水准仪的数据整理与转换
位置。点击“确定”后,程序运行完毕。 若采用本文的程序,须采用前述编号规则。 六、结束语 用任何程序设计语言,都可以开发出DINI03的数据提取和整理软件。考虑到AutoCAD的广泛应用,AutoLISP语言简单实用,因此介绍
了用此种语言编写的程序,望对同行有所帮助。
DINI03电子水准仪的数据整理与转换
发表时间:2019-07-02T15:55:01.927Z 来源:《基层建设》2019年第10期 作者: 张文瑞
[导读]
唐钢国际工程技术股份有限公司 内容提要:本文介绍怎样用AutoLISP编程,自动提取和整理DINI03的观测成果。 关键词:AutoLISP编程;DINI03数据;提取和整理。 一、前言 随着科技的不断进步,特别是电子计算机技术的飞速发展,使测绘仪器向数字化、智能化方向转变。基于此,我单位的仪器设备在不 断更新,现在所有仪器都已是数字化设备,其中有一台天宝DINI03电子水准仪。这台水准仪不但能够记录测量数据,还能对单一附(闭) 合水准路线进行平差,但也只能对单一附(闭)合水准路线进行平差。若观测的是水准网,就只能将其记录的观测数据文件传输到电脑 上,对数据进行整理后才能用于相应的平差软件进行平差。本文介绍的就是,怎样利用AutoLISP语言编程,提取和整理观测数据,从而使 观测数据能够用于平差软件进行平差。 二、DINI03电子水准仪的数据结构 DINI03电子水准仪,有两种数据记录格式:R-M和RMC。其中R-M只保存测量数据,RMC既保存测量数据,又保存计算数据。测绘人 员大都采用RMC,本文要处理的数据,就是针对这种记录格式的。 仔细观察分析RMC格式记录下来的数据,结合在DINI03水准仪上的查询结果,得知它记录的每一行观测数据,只要是相同属性的数 据,都记录在相同的列上。例如:所有的控制点名称记录的起始列号是相同的,系统预留的控制点名长度也是固定的。其他如后视读数等 的起始列号也相同,系统预留的长度也是固定的。这就为编程处理数据,提供了依据和便利。 三、编程思路及难点解决方案 通过上面对DINI03电子水准仪的数据结构分析,相应的编程思路也就出来了。首先,要明确提取什么观测数据,其次,要确认好欲提 取的数据其起始列号和长度。这样,就可以利用AutoLISP提供的字符串处理函数,提取相应的数据。编程思路有了,真正要达到目的,还 要解决以下几个难点问题。 首先,是怎样分辨出固定控制点和转站点。其次,是怎样累计两个固定控制点间的高差和视距。再次,是怎样剔除作废的观测数据。 只有解决了这几个问题,所提取的数据才是正确的。 对于第一个问题,涉及水准点的编号规则。我单位在水准路线的观测过程中,给水准点的编号规则是:固定水准点的名称是以字母开 头后缀数字,转站点只用数字编号。这就为程序判断固定水准点和转站点,提供了方法:只要判定控制点名称是否以字母开头就可以了。 第一问题解决了,第二个问题就迎刃而解了,只需累计两个固定控制点间的高差和视距就可以了。对于第三问题,通过仔细观察数据文 件,发现只要是作废的数据,其控制点号后面,都跟有字符串“####”。这样,只要在程序中加一判断语句,对控制点名称后有“####”字符 串的,此行的数据不提取就行了。将上述几个难点问题解决了,剩下的问题就是怎样将提取的有效数据,输出到指定文件中了。 本程序输出的数据文件格式,是为满足科傻平差软件而制定的。若在人机对话时输入了已知点高程,则可直接被软件读取,瞬间完成 平差计算。 为了减少代码,也为了简化程序操作,还为了便于文件管理,输出的数据文件采用固定文件名,并保存到D盘根目录。 四、核心程序清单 下面列出核心程序代码,能够确认有效数据:前后视点名及前后视读数。 (if(and(/= jh "#####")(/= rb " ")) (progn (if(= rb "Rb") (setq jsq(1+ jsq)hdm(substr xyh 27 3)ham(ascii hdm) rb(substr xyh 60 7)hjl(substr xyh 83 7) erb(+ erb(atof rb))ehj(+ ehj(atof hjl)) ) ) (if(= rb "Rf") (setq jsq(1+ jsq)qdm(substr xyh 27 3)qam(ascii qdm) rf(substr xyh 60 7)qjl(substr xyh 83 7) erf(+ erf(atof rf))eqj(+ eqj(atof qjl)) ) ) ) ) 五、程序使用说明 AutoLISP是内嵌于AutoCAD大型辅助设计绘图软件中的语言,要运行此语言编写的程序,必须先启动AutoCAD软件,使用AutoCAD相 应的命令加载程序。 本文提供的程序加载后,在命令行键入“dzsz”后回车,就可运行此程序了。启动程序后,屏幕上将出现文件选择框。此文件框只显示以 dat为后缀的DINI03的数据文件,其它类型的文件都被程序过滤掉了。选定数据文件后,接着询问“现在输入已知高程吗(Y/N)?<N>:”, 默认选项是“N”不输入,直接回车接受默认选项。若要输入已知高程,键入“Y”(大小写均可)。随后提示输入控制点名称及高程,接着提 示键入下一控制点名称和高程。若控制点数据输入完毕,再次提示输入控制点名称时回车,就结束已知控制点数据的输入。程序运行结束