第三章 水准网平差程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
W h1 h2 hn
环闭合差的限差为
W限 2 S1 S 2 S n
其中,μ 为每千米观测高差中误 差。
实际计算时,一般只计算最小独立环的闭合差。 最小闭合环应该满足如下条件: (1)多边形环应该是相互独立(线性无关)的, 即任何一个多变边不能由其它多边形线性组合 而得到。满足独立条件可以避免重复计算,也 可以避免遗漏。 设水准网中有n个观测高差、t个高程点,那么 独立闭合环的个数为r=n-t+1 保证闭合环独立的方法是,每个新环找到的闭 合环都有前面找到的闭合环中不曾使用的观测 值。
以下为一具有两个已知点、三个待定点和七个测段的 水准网的示例数据,打开TXT文件文件后,内容如下。 2,3,7 4 , 5.016 5 , 6.016 1 , 4 , 1 , 1.359 , 1.1 2 , 4 , 2 , 2.009 , 1.7 3 , 5 , 1 , 0.363 , 2.3 4 , 5 , 2 , 1.012 , 2.7 5 , 1 , 2 , 0.657 , 2.4 6 , 1 , 3 , 0.238 , 1.4 7 , 3 , 5 ,-0.595 , 2.6 1 ,P1 2 ,P2 3 ,P3 4 ,A 5 ,B
式中,正负号取决于高差起始点到终点的方向与 推算路线是否一致。
闭合差的限差为:
W限 2 S1 S 2 S n
其中,μ 为每千米观测高差中误 差。 假如网中共有m个已知点,将m个已知点两两组 合,计算m(m+1)/2条附合路线的闭合差,每条路 线按最短路线进行计算。
c)环闭合差计算算法 在水准网中,由观测高差相连接可以形成闭 合多边形,理论上构成闭合多边形的各观测高 差之和应该为0,由于观测误差的存在,高差之 和一般不等于0,闭合多边形的观测之和称为环 闭合差。 一般情况下,设构成闭合环的观测高差 h1,h2……hn,环闭合差为 式中,正负号取决于高差起点到终点的方向与 推算路线的方向一致。
b)路线闭合差计算算法 从一个已知点出发,用观测高差依次推算其 它各点的高程,最后闭合到另外一个已知点上, 闭合点上推算高程和已知高程值之差称之为附合 水准路线闭合差,简称路线闭合差。设k1、k2为 两个已知点,已知高程值分别为H1、H2,两点之 间的推算路线由高差h1,h2……hn,各测段路线长 度分别为S1,S2 ……Sn,路线闭合差为 W H1 h1 h2 hn H 2
(2)在多边形环独立的情况下,闭合环的边长 最短。 关于最小环问题可以用最短路径的方法解决。 若仅通过一个观测值即可将两个点p1到p2连接 起来,构成一条路线,可把这种路线称为p1到 p2的直接路线。如果直接路线能同别的观测值构 成闭合环,那么从p1到p2应有两条或两条以上 的路线。 如果选定一条直接路线,再从非直接路线中 找到p1到p2的最短路线,把这条最短路线与直 接路线连接起来一定是包含直接路线的最小环。 为保证找到的闭合环是独立的,只能将未参加过 前面环闭合差计算的观测作为直接路线。
水准网平差程序设计中数据的组织是一个关键 问题。文件格式的设计就是规定数据文件中包含 的内容、各类数据的先后顺序以及各种数据的书 写格式。从程序设计者的角度来说,数据文件格 式设计相当于告诉用户应当怎样准备数据文件, 当然,程序中也必须按照约定的格式从文件中读 取数据。数据文件由四个部分组成,其格式如下。
二、水准 网平差程序 设计数据组 织及处理流 程
界面设计 原始数据输入、中间结 果和最终结果数据格式 的组织及输出
数据读入
近似高程的计 算
组建误差方程,即 B、l的生成
代入相应的公式 进行计算 x 、v 计算待求量 的平差植
精度评定
成果输出
2.1 水准网平差中数据的组织(数据文 件格式的设计)
显然邻接点不是唯一的,但是我们规定每个点 只有一个邻接点;当网中每个点的邻Βιβλιοθήκη Baidu都唯一确 定时,顺着邻接点又可找到邻点的邻接点,这样 一层一层地找下去,最终找到目标点,每个点到 目标点的路线是唯一确定的。
根据邻接点的概念可知,任何一点沿邻接点 到目标点的路线长度是其邻接点到目标点的路线 长度再加上该点与其邻接点之间的路线长度。当 一个点有多个点可以作为邻接点时,只选择路线 最短的一点作为邻接点,这样就可保证沿邻接点 到目标点的路线是最短路线。
(4)当水准网的规模较大时,在循环访问每一 个观测值后某些点到目标点的路线还不是最短路 线,甚至有些点还没有找到邻接点,需要转到 (3)继续为寻找路线最短的邻接点,直到所有 的观测边不再满足条件1和条件2,这时表明每个 点都已经找到了到目标点最短的邻接点,搜素工 作结束。
最短路线搜索函数 FindShortPath(p as integer, exclude as integer, neighbor() as integer,diff() as double, S() as double)
水准网平差输入界面一
水准网平差输入界面二
水准网平差输入界面三
四、高差闭合差的计算与检查
为了检查水准高差的质量,水准网平差前一般 进行附合水准路线闭合差计算与多边形闭合差计算, 并进行闭合差的检核。 1.附合水准路线高差闭合差的计算 a)最短路线搜索算法 “邻接点”:若一个点借助 另一个点与目标点发生了 联系,称另一个点是这个点 的“邻接点”。 如果一个点与目标点有直接联系,我们也把目标点 称为这个点的邻接点。
2.2 数据存储方案设计
这里的数据存储是指数据在内存中的存储。
测量平差程序中用到的数据较多,一般先将磁盘
中的数据读到内存中,按照不同的类别有序地放
在变量或数组中,然后再进行平差计算,最后将 计算结果写到磁盘文件中。
三、水准网平差界面设计
要整洁、简练、实用、方便有关数据的输入 或输出,必要的话要考虑和用户的交互,尽量不 要画蛇添足。
4.解算法方程,求取未知参数;
5.精度评定。
平差程序设计不仅仅是“写程序”,测 量程序设计还包括程序功能设计、平差模 型选择、算法选择、数据接口设计等内容。
一般应按数据处理和计算功能的划分,将 网平差程序分为若干独立函数(或过程), 每个函数(或过程)完成特定的计算或操 作,当需进行某种平差时,再调用这些函 数即可。
2、遍历所有测段(即从第一个测段到最 后一个测段);
a)判断测段中起点为已知点,判断终 点为未知点,若同时成立,则利用公式计 算该测段中未知点的高程,并存储到H() 中;
b)再次遍历测段,找到满足这些条件 的测段 (其起点未知点,终点是已知点), 若同时满足,则进行起点近似高程的计算, 把计算出的近似高程存到H()数组中; 3、判断计算出近似高程的个数是否小于未 知点高程点的个数,若是再次进行循环, 若否,计算完毕(即水准网中未知高程点 的近似高程已全部计算出来),水准网中 所有未知点的高程存放到H()数组中了。
0 从而平差值结果为: L L v, X X x
本课程中以未知点高程值作为未知参数,以高 差作为观测值,以观测路线长度的倒数作为观测 值的权,采用间接平差模型进行平差计算。 其平差的一般步骤如下:
1.根据平差问题选定未知参数;
2.根据观测值与未知参数之间的函数关系建立误 差方程式,若误差方程是非线性方程,还要引入 参数近似值,将误差方程线性化; 3.由误差方程组成法方程;
测段号 起点 终点 测段高差(m) 测段长(km) 测站数
1 2 3 4 5 6 7
A E D B A A A
B C C C D C F
5.835 1.006 7.384 3.782 2.270 9.64 0.003
1.5 0.8 2.1 3.2 1.7 1.3 4.1
水准网近似高程计算算法 1、定义存储水准网高程的数组H(),将已 知点(原有高程和计算出的近似高程都可 视为已知点)存到H()数组中;
设p1选择p2作为邻接点,P2到目标点的路线长 度为S2, p1到p2的路线长度为S12,则p1到目标点 的路线长度S1为 S1=S2+S12 若还有一点P3也是P1的邻接点,则经由P3到 目标点的路线长度为 S’1=S3+S13 为了寻求最短路线,显然当S1<S’1时,应选p2 作为p1的邻接点,反之应选择p3作为p1的邻接点。 因此寻求最短路线的过程转化为给每个点寻找邻 接点的过程,当每个点都有了邻接点,且这个点 连接的路线又是最短路线时,搜素工作即告结束。
综上所述,设目标点点号为k1,搜索各点到k1的 最短路线的计算过程如下: (1)定义两个数组。一个数组Neighbor用来存储 每个点的邻接点点号;另一数组S用来存储每个点 到目标点的路线长度。 (2)将S(k1)赋值为0,数组的其它元素赋值为 1.0e30(每点到目标点的初始路线长度为无穷 大),Neighbor(k1)赋值k1,Neighbor数组的其 它元素赋值为-1(表示没有邻接点)。 (3)循环访问每一个观测值,取出每个观测值的 起点点号(假定为p1)和终点点号(假定为p2 )
B x l ,式中 l 为误差方程常数项 由此可得误差方程 V n ,t t ,1 n ,1
采用的平差准则为最小二乘法:
V T PV min
不难看出总共有n+t个参数,而所列的误差方 程只有n个,故只采用误差方程是不能解求n+t 个参数的,还需寻找其他的条件。按着最小二 乘法法则,对t个参数求偏导,得出式子 BT PV 0 由误差方程和求偏导后得到的式子,可唯一 确定n+t个待求量。并有这两个 式子可以推 T 出法方程,如为: B PBx BT Pl 0 从而可求得 x ( BT PB)1 BT Pl ,将该式代入到误差 即可求得改正数 v 。
1)基本信息部分:该部分仅占一行,其内容为
已知点数N1,未知点数N2,高差观测值个数NS。
2)已知点高程信息:该部分占N1行,每行格式为
已知点编号,该点的高程(单位:米)。 注意:在给控制点编号时,先给待定点编号,然后 给已知点编号。编号从1开始顺序编号。 3)高差观测值信息:该部分占NS行,每行格式为 测段编号,测段起点编号,测段终点编号,测段观 测高差(单位:米),测段长度(单位:千米)。 4)点名信息:该部分占N(N=N1+N2)行,每行 格式为 水准点编号,该点名称 其中点名长度不超过8个字符,即4个汉字。但最好 用字符串命名。
五、待定点近似高程计算
待定点高程计算是为了得到未知点的高程近 似值,在求取未知点近似高程的时候,要注意测 段的方向及相关正负号。既可以进行人工计算后 输入到程序中,也可以直接将原始数据直接读入 到程序中,根据相关算法让程序自动计算。计算 原理如下式:
H近似 H已知 h测段
水网观测数据(测段)的组织:
根据p1、p2得到p1到目标点的路线长度S1和p2到 目标点的长度S2,再结合p1、p2的路线长度S12, 判断p1是否可以作为p2的邻接点,以及p2 是否可 以作为p1的邻接点。 那么p1可作为p2的邻接点的条件为:
S2>S1+S12
S1>S2+S12
…(条件1)
…(条件2)
p2可作为p1的邻接点的条件为: 若条件1成立时,Neighbor(p2)=p1,S(p2)=S1+S12; 若条件2成立时,Neighbor(p1)=p2,S(p2)=S1+S12。
第三章
水准网平差程序设计
本章难点: 1、近似高程计算 2、最短路线的计算
3、误差方程及法方程的构建
4、直接计算出法方程的系数矩阵BTPB和常 数矩阵BTPL
一、水准网间接平差算法概述
该课程中所采用的平差模型为间接平差,即所 选的独立参数的个数等于必要观测数,这样可以 将每个观测值表示成这t个参数的函数,组成观测 方程。 L B X d 间接平差的函数模型: n ,1 n ,t t ,1 n ,1 0 平差时一般对所选参数取近似值 X X x 代入上式 并令 l L ( BX 0 d ) L L0