首页 理论教育测量平差程序设计:任意组合网坐标计算

测量平差程序设计:任意组合网坐标计算

【摘要】:任意组合网的基本结构是导线网和三角网,因而坐标计算方法实际上就是综合运用单一网型的计算方法。由于任意组合控制网网型复杂多样,存在许多的不确定因素,因而其近似坐标推算非常复杂,是平面网平差程序设计中公认的难点。任意组合网测量平差程序,要求能适用于各种控制网网型结构,因而程序设计必须周密考虑坐标推算可能遇到的情况,包括一些极端的特殊情况。推算路线也是关系到任意组合网坐标推算能否顺利完成的重要因素。

1.概 述

采用间接平差数学模型设计平差程序,无论处理导线网、三角网还是三边网,在数据录入、组成法方程、解算法方程、精度评定、结果输出等环节,不仅处理方法相同,甚至核心功能模块都可共用,其主要差异就在于近似坐标计算方法不同。

本小节中所谓的任意组合网是指三角网、导线网、三边网、边角同测三角网,测边、测角交会等常规控制图形结构的任意组合网型。任意组合网的基本结构是导线网和三角网(测角或测边),因而坐标计算方法实际上就是综合运用单一网型的计算方法。由于任意组合控制网网型复杂多样,存在许多的不确定因素,因而其近似坐标推算非常复杂,是平面网平差程序设计中公认的难点。

相对于前述单一网型,任意组合网的网型结构更加复杂而难以预测。任意组合网测量平差程序,要求能适用于各种控制网网型结构,因而程序设计必须周密考虑坐标推算可能遇到的情况,包括一些极端的特殊情况。

预测所有可能出现的控制网网型结构,并设计能应对各种复杂情况的处理程序是不太现实的。首先这很难实现,其次会使程序变得非常复杂,不能保证其可靠性。因此,现实的做法是对网型结构作一些必要的限制,排除一些不合理、难以处理的特殊情况,从而降低程序的复杂性,提高可靠性和可读性。

推算路线也是关系到任意组合网坐标推算能否顺利完成的重要因素。坐标推算路线是由控制点录入顺序决定的,大多数情况下近似坐标能够成功推算的控制网,若录入数据时不经意选择了特别不利的推算路线,就可能导致坐标推算失败。对网型结构复杂的组合网,指定坐标推算路线并不容易,也很难清楚、准确地阐述。因此为提高程序的实用性、方便性,示例程序在数据录入时基本上不对测站录入顺序设置限制。这样做固然极大地方便了用户,然而后果是使得推算路线具有随机性,大大增加了坐标推算设计的难度。

2.近似坐标计算方法

1)网型结构约束

计算机程序计算优势是在算法确定、数据完整的条件下,能够高效、精确地完成大量复杂、烦琐的数值计算工作,但是计算程序绝不是万能的,对于推算条件不具备的问题,计算机程序也是不能解决的。因此为保证任意组合网平差计算顺利进行,平差程序必须对控制网网型结构作必要的约束,具体要求如下:

(1)导线网和测角三角网相连,至少要有两个连接点是测角三角形同一条边的两个端点,否则要求至少一条导线边同时是三角形的一条边。

图3.10是导线网、测角三角网及测边后方交会、测角后方交会的混合图形。图上点名前缀字母为dx的是导线点,前缀字母为sj的是测角三角网点,前缀字母为jjh和bjh的分别是测角后方交会点和测边后方交会点。图3.10的结构不符合网型结构约束条件(1)的要求,下面通过坐标推算步骤分析会出现的问题。

图3.10 组合网网型A

①首先按导线网坐标推算方法推算假设坐标,因为若从测角三角网开始,由于三角网缺乏尺度信息,假设坐标会和导线网尺度信息不兼容。在这一步可以推算出全部导线点和测角三角网点sj11、sj3假设坐标。

②转到测角三角网坐标推算方法继续进行。因为存在尺度不兼容问题,测角三角网坐标推算时,不能再假设新起算坐标。由图3.10可见,测角三角网已解算出的两个点sj11和sj3,不能构成三角形的两个顶点,因此坐标推算没有起算点而不能进行。

③进入测边三角网坐标推算方法继续推算工作,解算出测边后方交会点bjh的假设坐标。

至此推算工作结束,即使多次循环,大部分测角三角网点假设坐标也推算不出来,因而假设坐标推算失败。

按照网型约束(1)要求,正确网型结构应该是图3.11(a)或(b)所示网型结构。其中(a)通过导线网假设坐标推算,从不同路径解算出测角三角形两个端点sj11和sj12的假设坐标;(b)是由导线网和测角三角网的一条公共边,推算出测角三角形两个端点sj3和sj12的假设坐标。

由此可见网型结构约束(1),实际上是要求在导线网和测角三角网相连接时,必须通过导线网计算,给测角三角网提供一对可以直接计算的起算点。按照图3.11(a)或(b)所示网型结构,就可以顺利推算出全部测角三角网点坐标,并在此基础上推算出角度后方交会点jjh坐标。

(2)导线网和测边三角网相连,至少要有一个连接点测了连接角。

这一约束条件本质上和网型约束条件(1)相同,即通过导线网坐标推算,给测边三角网提供一对直接起算的起算点坐标。关于网型约束条件(1),本小节已作了详细讨论,网型约束条件(2)的内容、性质、目的均与之类似,在此不再赘述。

图3.11 组合网网型B

2)数据编排约束

数据格式确定后,在数据编排上仍存在一些不确定的因素。在3.6.4小节中已经讨论过单一测边网边长观测值编排问题,任意组合网近似坐标推算远比单一网型复杂,为保证坐标推算顺利完成,还需要进一步细化数据编排规则,具体要求如下:

(1)测边交会图形,观测边不遵循录入在较小点号端点上的规定,一律录入在交会点上。

图3.12 和导线点连接的测边交会点数据编排A

图3.12中点号为10、13、17、16、22、12的点是导线点,25号点是边长交会点,和与此相关的点10、16、12间没有方向观测值。若边长按三边网录入在较小点号一端的规定,观测边应分别录入在10、16、12号点上。在导线点坐标先行解算出的情况下,通过搜索可以组成顶点为(10,25,16)和(12,25,16)的两个测边三角形(虚线是坐标反算边),但正如三边网近似坐标计算小节所述,不能确定三角形顶点排列顺序,因而坐标推算存在不确定因素,不能保证计算正确。

根据补充规定(1),观测边要全部录入在25号点上,并且三条边的排列顺序如图3.13所示。

图3.13 和导线点连接的测边交会点数据编排B(www.chuimin.cn)

图3.14中点号为1~11点是测角三角网点,12号点是边长交会点,相邻点5、6、7对其没有方向观测值。按照测边网观测边录入规则,观测边应分别录入在5、6、7号测站上。显然在三角网点坐标已先行算出的情况下,通过搜索可以组成顶点为(12,7,5)和(6,12,7)的两个三角形,但同样不能确定三角形顶点排列顺序,因而不能保证计算正确。

图3.14 和测角三角网点连接的测边交会点数据编排A

根据补充规定(1),将数据结构编排改为图3.15所示的方法,就可正确地组成测边三角形。

图3.15 和测角三角网点连接的测边交会点数据编排B

(2)假如组合网中包含导线点,至少第一个录入的测站要选择导线点。

对起算点赋假设坐标值是坐标推算的基础。组合网示例平差程序设计的坐标推算路线,是首先从导线网(边角同测网)开始,程序识别导线点的标志是测站上同时有方向和边长观测值。如果组合网中的测角三角网,其中有个点上有一条观测边长,而点号又排在导线网控制点之前,程序就会将这点和其观测边长照准点作为起算点赋假设坐标值,例如图3.16中的点sj4和sj5。以这两个点为起算点,可以完成三角网部分坐标的推算,但是在测角三角网点没有对导线点测连接角的情况下,导线网坐标推算不能进行。若要避免这种情况出现,又不想为解决此问题而使得程序过于复杂,最简单的处理方法是设置限制(2)。

图3.16 组合网假设坐标设置在测角三角网的情况

3)计算顺序确定

测角三角网缺乏尺度信息,近似坐标推算是任意设置两个控制点的假设坐标,然后通过一对公共点获取平面坐标转换信息,经旋转、平移、缩放处理,将假设坐标转换为近似坐标。导线网(边角同测三角网)、测边三角网观测值包含尺度信息,因此组合网假设坐标设置必须顾及到尺度上的一致性。整个控制网只应设置一对假设坐标,出于尺度问题的考虑,组合网假设坐标推算,只能先从导线网或者边角同测网、测边网结构部分开始。

如果将角度交会图形归入测角三角网,边长交会图形归入测边三角网,边角同测三角网归入导线网,那么组合网图形结构可以划分为导线、测角三角网、测边三角网等基本图形结构的任意组合。除了导线网、测角三角网、测边三角网等三种单一网型外,其余四种网型按组成基本图形结构划分,分别为:

(1)导线网+测角三角网;

(2)导线网+测边三角网;

(3)测角三角网+测边三角网;

(4)导线网+测角三角网+测边三角网。

通用平差程序设计的要求是能适应各种可能的网型,按照单一的推算路线显然不能处理各种可能出现的情况。因此,平面平差示例程序处理方法,是依次进行导线网(包括边角同测三角网)、三边网、三角网坐标推算。在计算没有完成的情况下,再次调用测角、测边三角网坐标计算程序完成推算。

对于导线网和测角三角网、测边三角网均有连接的网型,按照下面的推算路线(1)或(2),均能顺利完成坐标推算工作。

(1)导线网→测角三角网→测边三角网。

(2)导线网→测边三角网→测角三角网。

对于导线网通过测角三角网和测边三角网连接,或者导线网通过测边三角网和测角三角网连接的情况,则推算路线不对,坐标推算即使多次循环也不能完成。另外若有角度后方交会,已知点是测边三角网点;或者测边交会,已知点是测角三角网点的情况,前者按推算路线(1),后者按推算路线(2),都有可能解算坐标失败,为此坐标推算就需要按路线(3)进行。

(3)导线网→测边三角网→测角三角网→测边三角网→测角三角网。

推算路线中每一推算步骤完成后均要进行检验,在查询到有控制点坐标未算出时,再依次进入下一推算步骤。若直至最后一环仍有控制点未能算出,则原因可能是数据缺失或者算法缺陷。对于后一种情况,很可能是遇到了设计时未曾想到的特殊网型结构。这时要通过分析控制网的特殊性来查找、改正程序的算法错误。

3.程序代码

任意组合网假设坐标计算程序代码较长,为了使程序结构清晰易读,设计了通用过程coordinat(p),程序代码如下: