基于MATLAB的高程数据平差软件开发
2021-03-19力云奎潘廷柱刘翊奕
力云奎 潘廷柱 刘翊奕
随着计算机技术的发展,测绘数据的处理方式也随着发生了巨大的变化,测绘数据的处理已经离不开计算机了。虽然现在已经出现了许多的测绘数据软件,但是,现实中的测绘问题涉及的问题很复杂,不同的项目与工程需要不同的解决方法,因此,掌握测绘程序的开发也是能为以后的工作带来更多的便捷,提升工作效率。本设计基于MATLAB语言对测绘中遇见的高程平差进行了理论的论述,软件的设计以及如何利用MATLAB语言实现可视化的数据处理。并且将开发的程序与商用软件进行了对比,并对MATLAB语言开发测绘程序的前景展望。
测绘; MATLAB; 数据处理; 软件开发
TP274+.2 A
[定稿日期]2021-08-13
[作者简介]力云奎(1987~),男,本科,工程师,长期从事房屋建筑工程施工与技术管理工作;潘廷柱(1992~),男,本科,助理工程师,长期从事房屋建筑工作;刘翊奕(1998~),男,本科,助理工程师,从事房屋建筑工作。
1 目的与意义
对于测绘专业,主要掌握的是“测”和“算”两个重要的环节。“测”即是用仪器采集数据,而“算”就是一个数据处理的过程。“算”可以使用现有的软件,如GPS数据处理软件,南方平差易和CASS软件等,可以帮助我们解决很多问题。但是对于测绘专业而言,掌握利用开发程序来解决各类计算问题的方法是非常必要的。
本文的目的在于如何编制程序来解决测绘领域经常碰到的各种计算问题。在实际的测量问题中,通过对数据的处理得到结果只是停留在利用数据中,只有通过编程,对数据的处理,深入数据中,了解数据处理的流程,从根本上理解数据以及测量的原理,这才是进行测量程序编写的意义所在。平时工作中所遇到的测量问题许多还是对原理上的理解不到位,因此通过对测量程序的编写可以增加测量数据处理速度,也能从根本上减少测量工作中的失误。
2 软件介绍
MATLAB是由美国MathWorks公司出品具有出色的数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能,它具有人机交互视窗环境,这摆脱了C语言的编辑模式,能够快速、直观的对代码及运算结果有一个直观地理解,其原理在于通过对MATLAB以及Simulink两大功能部分的整合,使得许多学术模拟计算方案能够通多图形进行实时结果,为科学研究提供了一个新的解决方案。
其语言也具有容易懂,易上手,对新手友好的特点,适合将精力用在对测量原理的理解上,而不是代码如何实现上,因此,本次编程采用MATLAB进行编写。
3 高程平差设计
3.1 总体设计
高程控制网平差整体设计思路如图1所示。
(1)将观测高程起点,观测高程终点,观测高程,线路长度以及已知点高程输入到数据文件中。
(2)通过已知数据间的关系,在程序中建立条件平差方程,得出系数矩阵和闭合差向量,以此进行平差,求出法方程的解,得出改正数v和改正后高差L,最后计算出位置点高程。
(3)根据改正数计算单位权中误差,求得高差平差值中误差,对于间接平差还可以计算高程点平差值中误差,从而进行精度分析。
(4)导出平差报表,包括高差平均值,高差平差值中误差,高程点平差值,高程点平均值中误差等。
因此,高程控制网的平差过程,主要分为输入观测数,读取数据,平差计算和报表输出四个方面。
3.2 条件平差原理
条件平差的数学模型为
AΔ-W=0(1)
D=δ02Q=δ02P-1(2)
式(1),式(2)所示,条件方程的个数与多余观测数r,观测值总个数n,必要观测数t,存在如下关系:
r = n-t(3)
由于r <n,从式(1)不能够计算出Δ的唯一解,但却可以利用最小二乘原理(V TPV = min),求出Δ的最或然值V,进而求得观测量的最或然值(又称平差值)。
=L+V(4)
将式(1)中的Δ改写成其估值(最或然值)V,条件方程变为
AV-W=0(5)
条件平差就是在满足r个条件方程条件下,求解满足于最小二乘原理的法方程(V TPV = min)中的V值,这就可以转换为在数学问题中的求函数的条件极值。
在上述问题中已经论述了如何计算未知量以及最或然值的原理与公式,第二个测量平差的任务评定测量成果的精度论述如下。
在精度评定之中包括单位权中误差0、其中误差F、平差值函数(F=fL)的协因数QFF及单位权方差02的计算等。
当单位权方差02为已知量时,如果知道某观测量的权值p,则可以计算出该量的方差为σF2=σ02·1PF。在实际工作中,由于观测值的个数n是有限个数。因此,只能求出02的估值02和F2的估值F2。则有
σF2=σ02·1PF(6)
估值形式为
σF2=σ02·1PF(7)
根据协因数的定义,有了单位权方差02和某平差值函数的验后协因数阵QFF,也可按下式计算该平差值向量的协方差阵。
DFF=2QFF(8)
例如,已知观测值的平差值的协因数阵QLL,则的协方差阵为
DLL=02QLL(9)
下面,我們分别讨论单位权中误差0和平差值函数协因数阵QFF的计算方法。
根据第二章中对中误差的定义,单位权中误差的计算公式为
0=±[pΔΔ]r(10)
在通常的情况下,观测值的真误差△是不能够知道的,也就是说不能够利用上式来计算单位权的中误差。但通过条件平差可以利用观测值的改正数V来计算单位权方差以及中误差的值:
02=VTPVr(11)
0=±VTPVr(12)
式中r为多余观测值个数,r=n-t。
在(12)中,须先算出V TPV的值,才能计算单位权中误差。V TPV可用下列几种方法计算。
3.3 高程平差文件格式设计
高程控制网所输入的数据主要分为两类:一类是通过界面输入,包括观测值的总数,已知点数和未知点数;另一类就是通过Excel导入数据,包括观测高差起点,观测高程终点,观测高程,路线长度以及已知点高程。
Excel格式如表1所示。
3.4 高程平差导出报表设计
高程报表如表2所示。
3.5 高程平差界面设计
高程平差界面设计见图2。
3.6 高程平差代码设计
主要核心代码:
qq= diag(q);
naa=a*qq*a';%计算法方程系数naa
kt=naa\\(-w)';%计算法方程的解k
KT=kt;
v=qq*a'*kt;%计算改正数v
vv=v/1000;
l=h1+vv;%计算改正后高差值L
for kk=1:gd%计算待定水准点高程H
i=qd(kk);
j=zd(kk);
if i<=ed & j>ed
h0(j)=h0(i)+l(kk);
4 开发程序与商用程序对比
经过以上的开发,上述的程序已经能够实现基本的预期功能,但在设计过程中受软硬件以及自身的专业知识和开发语言的限制,程序难免存在一些缺点。并没能够发挥出MATLAB的足够强大的能力,所以,与成熟的商用软件之间还是存在很大的差距,但开发出的软件也有其独有的闪亮的地方。
比如,在文件格式输入与输出上。本次开发的符合导线平差与高程平差软件导入数据格式为.xls,而商用软件多数运用.txt。主要原因在于.xls需要在安装Office的电脑上才能进行编辑。而txt则不需要,在一般的Windows系统里就能直接进行编辑。
这让两者各有优缺点,使用xls虽然不能确定每个系统都能使用,但是xls输出的表格却可以直接用于数据的汇报,不用将txt的平差结果进行编辑用于汇报结果。这在一定程度上减少了工作量。另外一般的办公电脑都安装有Office,这就弥补了不能编辑xls文件的不足之處(图3)。
闭合差计算相近,可以用于实际的应用。
5 基于MATLAB测绘程序的开发前景
通过基于MATLAB开发的高程平差软件,可以看到基于MATLAB测绘程序的开发有如下几个优点:
(1)MATLAB拥有强大的函数库,用户可以对现有的软件很容易的进行改编,让其成为自己的软件,更符合自己的使用要求。
(2)MATLAB拥有强大的图形处理能力,用户可以更容易的编写图形处理的测绘问题。
(3)代码简介,高效。MATLAB代码简练,执行速度快,冗余度低,这些都为用户提供了很好的软件使用体验。
因此,在熟练运用MATLAB语言后,将工作中的实际场景中遇见的问题代入MATLAB语言开发中,将减少工作中的繁杂,得到一个可靠并且称心如意的程序。
参考文献
[1] 李建章.测绘数据处理程序[M].北京:国防工业出版社,2012.
[2] 姚连壁.基于MATLAB的控制网平差程序设计[M].上海:同济大学出版社,2006.
[3] 李玉宝.测量平差程序设计[M]. 成都:西南交通大学出版社,2015.
[4] 罗华飞.MATLAB GUI设计学习手记[M].北京:北京航空航天大学出版社,2009.
[5] 王薇.从零开始学MATLAB[M].北京:电子工业出版社,2012.
[6] 罗华飞.MATLAB GUI设计学习手记[M].2版.北京:北京航空航天大学出版社,2011.
[7] 宋力杰.测量平差程序设计[M].北京:国防工业出版社,2013.
[8] 张书毕.测量平差[M].江苏:中国矿业大学出版社,2013.
[9] 杜兰,吴洪举,陈建光. MATLAB与Excel在测量数据处理中的应用[J].北京:北京测绘,3(20):20-23.
3577500589204