资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
应 用 技 术502009 年 6 月 10 日 第 6 期导线平差程序设计与应用 江西财经大学 何尤刚摘 要:导线测量是控制测量中常用的方法之一。导线平差计算数据多,程序繁琐,采用手工或借助计算器编程计算,不仅工作量大,且很容易出错。本文根据导线近似平差原理,以 Vi-sual FoxPro 6.0 为开发平台,设计导线平差程序。该程序可完成闭合导线、附合导线的平面控制和高程控制平差,并能将平差结果根据不同需要生成多种格式文件导出,同时还能绘制导线图。关键词:导线平差;程序设计;应用一、引言导线测量是控制测量中常用的方法之一, 在导线外业测量完成后,需要进行导线平差,以求得每个导线点的坐标值。目前,测量平差软件颇多,每种软件都有各自的优点,但也存在一定的缺陷,如软件处理结果只有数据,没有图;或图表分开显示,效果不直观;或只有平差的最终结果,不能显示平差的中间计算过程,不利于用户理解平差原理;也有些先进的测量仪器(如全站仪)中嵌入了导线平差程序模块,除不能显示平差中间计算过程外,也不能绘图,尤其是当控制点多,导线外业测量采取分组作业完成时,则无法直接使用仪器自带的程序进行平差。Visual FoxPro 6.0(以下简称 VFP)是目前微型计算机上应用最广泛的数据库系统开发工具之一,它功能强大,具有可视性和面向对象程序设计的优点。本文尝试采用 VFP 开发导线平差应用程序,其界面友好,用户使用方便,既能根据不同目的的需要输出相应的处理结果,又能直接绘制导线图。二、导线平差内容导线平差包括平面控制导线平差和高程控制导线平差。根据导线近似平差原理,平面控制导线平差的主要内容包括:(一)计算角度闭合差,判断误差是否超限,若在允许范围则进行调整(包括计算角度改正数、残差分配和改正后角度);(二)计算导线边方位角;(三)计算坐标增量;(四)计算导线全长闭合差,判断闭合差是否超限,若在允许范围则进行调整(包括计算坐标增量改正值,残差分配和改正后坐标增量);(五)计算各导线点坐标。进行角度闭合差调整时,将闭合差反符号平均分配到各观测角,剩余误差(残差)分配到转折角较大的几个观测角中;进行坐标增量闭合差调整时,采用与对应边长成正比例的原则计算坐标增量的改正数,残差分配到边长较大的坐标增量中。导线平差计算公式参见参考文献3中有关章节。高程控制导线平差的主要内容包括:计算两点间高差;计算高差闭合差,判断误差是否超限,若在允许范围则进行调整(包括计算高差改正数、残差分配和改正后高差);计算各导线点高程。三、表单设计导线平差表单设计如图 1 所示。表单中各命令按钮功能包括以下几个方面。JUN10,2009 NO650应 用 技 术512009 年 6 月 10 日 第 6 期图 1导线平差表单运行效果图(一)“清空数据”。用来清除表格中原有数据以及辅助计算数据和导线图。(二)“导入数据”。将导线测量外业记录表中各导线点观测数据直接导入表单的表格中。(三)“增加记录”。用于直接录入外业测量各导线点观测数据,它与“导入数据”两者间可视具体条件选用其一。(四)“删除记录”。用于删除无用(或错误)的导线点记录。(五)“平差计算”。完成平面控制和高程控制导线平差的全部计算过程。本模块为“导线平差”程序的核心模块,程序运行过程中会提示用户确认观测角是“左角”还是“右角”,并根据计算结果返回闭合差是否超限的信息,由用户决定是否继续平差。(六)“数据转储”。将导线平差结果(或导线外业测量观测数据)根据需要保存到指定格式(*.dbf、*.xls、*.txt)的文件中。(七)“打印输出”。将导线平差结果(包括角度闭合差计算、调整,方位角计算,坐标增量计算,导线全长闭合差计算、调整等中间过程)按常规内业计算表格形式预览或送打印机输出。(八)“设置”。对导线图进行设置,包括是否切换界面绘图,是否显示坐标北向,是否以红、蓝两色相间显示导线边,是否显示点号或高程等。(九)“绘制导线图”。根据平差结果和用户对图形的设置,绘制导线平面图。程序允许用户直接在本表单上绘制导线图(见图 1),若控制点多,图形复杂,程序也允许用户切换到新界面绘图。绘制导线图时可同时显示坐标北向、控制点号或控制点的高程。(十)“放大”、“缩小”、“清除导线图”。分别用于放大导线图、缩小导线图和清除导线图。四、表单方法由于角度观测单位是度、分、秒,为便于角度的录入和计算输出,为表单添加 dotoshuo 和 shuotodo 两个方法。前者的功能是将角度单位度、分、秒转换为以度为单位的小数形式;后者是将以度为单位的小数再转换成度、分、秒。(一)dotoshuo 方法的代码 parameter xflag=0if left(x,1)=-x=substr(x,2,len(x)flag=1endiflx1=at(.,x,1)lx2=at(.,x,2)do casecase lx10 and lx20y=val (left (x,lx1-1)+val (substr (x,lx1+1, lx2-lx1-1)/60+val(right(x,len(x)-lx2)/3600case lx10 and lx2=0y=val (left (x,lx1-1)+val (right (x,len (x)-lx1)/60case lx1=0y=val(x)endcaseif flag=1y=-yendifreturn y(二)shuotodo 方法的代码parameter xd=int(x)f=int(x-d)*60)m=round(x-d)*60-f)*60,2)if len(ltrim(str(f)=151JUN10,2009 NO6应 用 技 术522009 年 6 月 10 日 第 6 期f=0+ltrim(str(f)结果,则按“数据转储”按钮,指定文件名,选择文件else格式和目录即可存盘。(六)对录入错误的记录,按f=ltrim(str(f)“删除记录”按钮可将其删除。endif六、结束语if len(ltrim(str(m)=1(一)应用本程序进行导线平差,其数据录入、m=0+ltrim(str(m)平差计算、成果保存、输出以及绘制导线图均可在else同一界面完成,操作方便,界面友好,效果直观。其m=ltrim(str(m)处理成果可根据不同需求生成相应格式文件,由其endif生成的 txt 文件通过文本编辑器转换成 dat 文件后,y=alltrim(str(d)+.+f+.+m便可在绘图软件 CASS 中展点、绘图。return y(二)本程序既可将平面和高程平差同时进行,(限于篇幅,表单中其他控件的事件代码略)也可单独对平面坐标进行平差。在四等以下地形图五、应用举例测绘的首级控制及图根控制测量中均可使用。表 1 为单一附合导线外业观测数据,其中 A、(三)本程序能显示导线平差的中间计算过程和B、C、D 为已知点,导线图参见图 1 中的导线略图。最终处理结果(按表单中的“打印输出”按钮即可显示报表),有助于用户理解导线近表 1 导线观测数据似平差原理,可作为测量教学的重要辅助工具,有较大的实用价点号仪器高目标高竖直角水平角方位角边长XY高程坐标坐标值。A5825224117.7467228.675110.256(四)本程序既可用于附合导线平差(包括定向点坐标已知和B(1)1.5051.62053242187044894.2464165.8277306.899120.558未知两种情况),也可用于闭合导21.4551.58822136176502476.262线平差。限于篇幅,本文仅以单一31.4891.592-23018200402472.895附合导线平差为例介绍了其应用,对于闭合导线只需按规定格41.5101.615-55036176183079.378式、顺序录入观测记录即可。51.4851.4651245121905318
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号