DINI03电子水准仪的数据整理与转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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”(大小写均可)。
随后提示输入控制点名称及高程,接着提示键入下一控制点名称和高程。
若控制点数据输入
完毕,再次提示输入控制点名称时回车,就结束已知控制点数据的输入。
程序运行结束前,
提示生成的数据文件名称及存储位置。
点击“确定”后,程序运行完毕。
若采用本文的程序,须采用前述编号规则。
六、结束语
用任何程序设计语言,都可以开发出DINI03的数据提取和整理软件。
考虑到AutoCAD的广
泛应用,AutoLISP语言简单实用,因此介绍了用此种语言编写的程序,望对同行有所帮助。