资源描述:
《闭合导线平差程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、30·北京测绘·2008年第3期闭合导线平差程序设计何尤刚(江西财经大学资源与环境管理学院,江西南昌330032)[摘要]根据导线近似平差原理,以VisualFoxPro6.0为开发平台,设计导线平差程序。该程序可完成闭合导线的平面控制和高程控制平差,并能将平差结果根据不同需要生成多种格式文件导出,同时还能绘制导线图。[关键词]闭合导线;平差;程序设计;应用[中图分类号]P224[文献表示码]A[文章编号]1007-3000(2008)03-4导线测量是控制测量中常用的方法之一,闭合导△y=D×sinα线是导线布设的一种形式。在导线外业测量完成后,导
2、线绝对误差:f=f22!x+fy需要进行近似平差,以求得每个导线点的坐标值。导导线相对误差:K=F/ΣD线平差计算数据多,程序繁琐,采用手工计算不仅工作量大,且很容易出错。坐标增量改正数:Vxi=-fx×DiΣDVisualFoxPro6.0(以下简称VFP)是目前微型计fyVyi=-×Di算机上应用最广泛的数据库系统开发工具之一,它功ΣD能强大,并且具有可视性和面向对象程序设计的优导线点坐标:xi=xi-1+△′xi-1,i点。采用VFP开发导线平差应用程序,界面友好,用yi=yi-1+△′yi-1,i户使用方便。它既能满足不同目的的需要输出相应的
3、3表单设计处理结果,又能直接绘制导线图。导线平差表单设计参见图1。1闭合导线平差步骤表单中各命令按钮功能:(1)计算角度闭合差,判断误差是否超限,若在允“清空数据”:用来清除表格中原有数据以及辅助许范围则进行调整(包括计算角度改正数、残差分配计算数据和导线图。和改正后角度);(2)计算导线边方位角;(3)计算坐标“导入数据”:将导线测量外业记录表中各导线点增量;(4)计算导线全长闭合差,判断闭合差是否超观测数据直接导入表单的表格中。限,若在允许范围则进行调整(包括计算坐标增量改“增加记录”:用于直接录入外业测量各导线点正值,残差分配和改正后坐标增量)
4、;(5)计算各导线观测数据。它与“导入数据”两者间可视具体条件选点坐标。用其一。进行角度闭合差调整时,将闭合差反符号平均分“删除记录”:用于删除无用(或错误)的导线点记配到各观测角,剩余误差(残差)分配到转折角较大的录。几个观测角中;进行坐标增量闭合差调整时,采用与“平差计算”:完成平面控制和高程控制导线平差对应边长成正比例的原则来计算坐标增量的改正数,的全部计算过程。本模块为“导线平差”程序的核心模残差分配到边长较大的坐标增量中。块,程序运行过程中会提示用户确认观测角是“左角”2闭合导线平差计算公式还是“右角”,并根据计算结果返回闭合差是否超限的信
5、角度闭合差:fβ=Σβ测-Σβ理息,由用户决定是否继续平差。角度闭合差(图根导线)的允许值:fβ允=±″!n“数据转储”:将导线平差结果(或导线外业测量每个角的改正数:Vi=-fβ/n观测数据),根据需要保存到指定格式(*.dbf、*.xls、*.导线边方位角:α左前=α后+180°±β右txt)的文件中。坐标增量:△x=D×cpsα“打印输出”:将导线平差结果按常规内业计算表[收稿日期]2008-01-07[作者简介]何尤刚(1962-),男,江西九江人,副教授,主要从事数据库技术、测绘等研究和教学工作。2008年第3期·北京测绘·31格形式预览或
6、送打印机输出。else“绘制导线图”:根据平差结果,绘制导线平面图。fwj=fwj+180程序允许用户直接在本表单上绘制导线图。若控制点endif多,图形复杂,用户也可以切换到新界面绘图。绘制导replace方位角withthisform.shuotodu(fwj)线图时可同时显示控制点号或控制点的高程。以上选endif择可通过单击“设置”按钮,在弹出的设置对话框中完endfor成相应的选择。ifbhsx=0“放大”、“缩小”、“清除导线图”:分别用于放大导gotop线图、缩小导线图和清除导线图。lj=thisform.dutoshuo(改正后角度)
7、3.1表单扩展方法gobottom由于角度观测单位是度、分、秒,为便于角度的录fwj=thisform.dutoshuo(方位角)-lj+180入和计算输出,为表单添加dotoshuo和shuotodo两个iffwj>360方法。前者的功能是将角度单位度、分、秒转换为以度fwj=fwj-360为单位的小数形式;后者是将以度为单位的小数再转else换成度、分、秒。(限于篇幅,其代码省略)。iffwj<03.2“计算平差”命令按钮的click事件代码(限于篇fwj=fwj+360幅,仅列出平面控制导线平差代码):endif**计算导线各边坐标方位角end
8、ifgo1elsefwj=thisform.dutoshuo(方位角)bhsx=1ifmessagebox“