资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
测绘程序课程设计报告一、 课程设计概述:1、 课程设计目的使学生能够在学习完VC.net程序设计基础、测量学、测量平差等课程的基础上,进一步巩固这些知识,并培养学生的综合应用能力。2、 课程设计时间7月18日7月31日,共两周时间。3、 课程设计内容设计一个边角网平差的程序。二、 系统设计:1、 需求分析控制网平差程序对野外控制网观测数据进行平差数据处理,其目的就是根据最小二乘原理,消除网中的各种几何矛盾,求出全网各待定元素,即未知点的平面坐标或三维坐标。 2、 实现功能2.1优化设计:根据控制网的观测精度与网形,全面评定网的精度 2.2数据输入:使用外部数据倒入,通过读取.txt格式观测文件实现数据输入 2.3概算:主要是进行近似坐标的推算。 2.4平差计算:对观测数据进行精密平差计算,得到平差后的点位坐标,方向观测值,边长观测值等,精度评定。 2.5成果输出:控制网图形输出,绘制误差椭圆,以及平差结果导出到txt文件中。3、系统总体框架 导线网平差系统成果输出平差计算近似坐标推算数据输入 4、数据输入模块4.1文件格式定义:Surveyor,panlinRecorder,panlinDate,2011-7-19文件头,说明观测信息Meteorogy,30,100,0.7AngleAccuracy,2DistanceAccuracy,2,2StationCount,5StationName,1,2,3,4,5END Header已知数据,其中:Coor是指已知点,Dist指已知边,Angle指已知角,三者后边的数值是指,已知数据个数。GivendataCoor,21,31250.25,11500.412,33256.57,10900.84END GivendataAngle为方向观测标志,18为方向观测值个数,所以从下行开始的18行均为方向观测值ObsdataAngle,181,2,01,3,57.2032101,4,113.1406352,5,02,3,32.1222922,4,57.5015302,1,98.2612733,1,03,2,56.2537793,5,172.5339443,4,282.2953834,1,04,2,26.0954124,3,46.3617984,5,77.5946715,4,0Dist为边长观测标志,8为边长观测值个数,所以从下行开始的8行均为边长观测值5,3,39.0017795,2,70.195151Dist,81,3,2300.0601,4,3090.3532,5,3643.2342,3,2115.9192,4,4363.6113,5,2169.0733,4,2620.9094,5,3922.860观测数据结束标志END Obsdata 需要注意的是,StationCount、StationName并不是指测站数和测站名,而是指控制点数和控制点名(主要是指节点网,这种情况中并不是所有的点都进行摆站了,如附合导线,有一个已知点就没有摆站观测)。 对StationName的说明:3,4,51,2, StationName,未知点摆站的已知点未摆站的已知点4.2数据输出流图数据输入4.1描述的txt格式观测文件外业采集数据文件导入数据编辑4.3具体实施先是定义一个类CcontrolPoint,这个类可以没有.cpp文件,只是用来定义控制点ControlPointData、方向角观测值CBearingObs、距离观测值CdistObs,以及头文件的格式,这个类编译好之后,就可以为数据输入服务了。数据输入的具体实施是,在CcontrolnetAdjustmentDlg.h中定义以下几个公有变量: header;/头文件实现头文件输入 ControlPointData *KnownPoint;/已知点int KnownPointCount;/已知点个数CDistObs *KnownDist;/已知边int KnownDistCount;/已知边个数CBearingObs *KnownBearing;/已知方向角int KnownBearingCount;/已知方向角个数实现已知数据的输入CDistObs *ObsDist;/观测边int ObsDistCount;/ 观测边个数CBearingObs *ObsBearing;/ 观测方向角int ObsBearingCount;/ 观测方向角个数实现观测数据的输入这样在txt文件导入之后,通过MFC文件读取方法逐行读入数据,然后通过调用分割函数SplitString,通过END Header、 Givendata这些标志,逐行进行分割,将值赋给上述变量中,这样就把数据导入到程序中了。5、 近似坐标推算模块:5.1近似坐标推算原理: 5.1.1按方向观测值计算三角网中待定点的近似坐标 (前方交会) (1) b a AB Kk5.1.2按边长观测值计算三边网中待定点的近似坐标 (边长交会),先按公式(2)计算三角形的内角,再用公式(1)计算待定点的坐标 (2) ABKkabS0S1S25.1.3按方向和边长观测值计算导线网中待定点的近似坐标bkaAtabtd 比较上述三种方法可以发现,第一和第二种方法,在近似坐标推算时必须搜索三角形,才能计算,换句话来说就是适用于三角网,在通用性上显然不合理。而且,本次试验采用的是边角网的观测数据,对于第一种只按角推算和第二种只按边推算,显然也是不合适的。而第三种极坐标推算的方法,对所有网形均适用,从通用性和数据合理利用这两面考虑,所以我采用第三种极坐标推算的方法。 在具体计算中采用逐点解算法,选择已知点或已计算出坐标的点作为起算点,根据具体的图形,来逐个推算出各点的坐标。这种方法比较容易实现,而对于整体解算的方法,对所有未知点进行整体解算,实现起来太困难。 5.2计算流图坐标输入系统int i=0 to header.StationCounti=i+1Header.StaionCoor中第i个坐标是否已知是 否在方向观测值中查找测站点为j点的照准点k中是否存在坐标已知点(k=0 to ObsBearingCount)在方向观测值中查找照准点为i点的测站点j中是否存在坐标已知点(j=0 to ObsBearingCount)否 是在边长观测值中查找测站点为j照准点为i点,或者测站点为i点照准点为j的边长值否近似坐标推算计算完毕所有未知点的近似坐标是否已经推算出来计算i点近似坐标,并且把求出的值记录到Header.StaionCoor中 是再次从i=0循环否是5.3具体实施 在文件读入数据时,文件头中有StationName这一项,在读入控制点名后,就会动态创建类型为类ControlPointData 对象的数组header.StationCoor,然后把已知点数据传入到header.StationCoor中。header.StationCoor创建的目的就是进行存储所有的控制点坐标,方便以后的数据调用和数据更新。经过上述中5.3的循环计算,这样所有的未知点近似坐标均已经计算出来,存入到这个数据中。需要注意的是,在近似坐标推算中,循环计算一次之后,必须判断是否所有未知点的近似坐标已经推算出来,没有的话再进行循环计算。(这样做主要是为了防止在节点控制网中,当未知点很多时,可能推算到一个点之后,它所连得所有控制点均为坐标未知点,这样在一次循环中就会跳过这个控制点,这个点的近似坐标就没有计算出来。而在下一次循环中,它所连得控制点中就会有坐标已知点,这样这个点的近似坐标就计算出来了)。6、 平差计算模块平差有两种方式,一种是条件平差,一种是间接平差。条件方程式较少,占用内存小,但条件方程与网形有关,很难编制通用的程序。间接平差一个观测值就是一个误差方程,占用内存相对较大,但易于编程解算,容易编制通用的程序 。从程序编制和程序的通用性考虑,所以选择间接平差的方法。6.1平差计算原理: 6.1.1间接平差基本原理设:观测值为L,其权为P,相应的改正数为V,必要观测值个数为t,选定未知数X,则有误差方程根据最小二乘原理:,求极值,得:法方程:法方程的解:单位权中误差: 6.1.2间接平差流程6.1.2.1列出误差方程及条件式 6.1.2.2定权 6.1.2.3组成法方程 6.1.2.4解算法方程,求得dX=dx1 dy1 dx2 dy2 6.1.2.5平差后的坐标值计算X=X+dX。 6.1.2.6精度评定,计算误差椭圆参数等6.1.3误差方程的列立 以未知点坐标为平差对象,一个观测值对应一个误差方程式,误差方程式包括两类:方向观测误差方程式和边长观测误差方程式 (1)方向观测误差方程式 一般形式:其中:一般取测站起始方向(零方向)的近似坐标方位角作为定向角近似值 当测站点i为已知点时:当照准点j为已知点时:当侧站点和照准点都为已知点时: (2)边长观测误差方程式 为近似坐标计算而得, 为实测边长当测站点i为已知点时:当照准点j为已知点时:6.1.4 定权(1)方向观测值的权 在等精度方向观测的控制网中,一般把方向观测值的权定为1(2)边长观测值的权而Ms=A+B*S/1000;其中S单位为Km,这样的话Ms单位为mm6.1.5平差后的坐标值计算 求得平差后的坐标值X=X+dX。因为只有dx很小时误差方程式、条件方程式才是严密的,因此当dX的值较大时应把X=X_+dX作为新的近似值重复6.1.2.16.1.2.4步,直到dx中绝对值最大的一个小于给定的0.1mm(注意:这里只是指坐标改正值,不包括定向改正值,所以在求dx中绝对值最大值时,应除去定向改正值,否则会无限迭代计算,因为定向改正值很大,而且迭代计算时不会进行改正)。6.1.6精度评定中误差计算:,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号