APP下载

解析空三航带法区域网平差程序设计

2020-08-13张岩朱大明申辽

软件 2020年6期
关键词:摄影测量程序设计

张岩 朱大明 申辽

摘  要: 为了提高摄影测量中解算加密点坐标的精度,本文编写了一套解析空中三角测量航带法区域网平差非线性改正数计算的程序。利用摄影测量学中解析空中三角测量所采用的航带法区域网平差非线性改正系数计算和非线性改正数计算的数学模型编制相应的程序,分别计算出加密点各自的非线性改正数系数和非线性改正数,从而计算各加密点的地面坐标数据。针对研究内容,考虑到编程需要对平差模型进行细化和改化,此程序对的总体框架进行了设计,在此算法的基础上编制了程序,对所编程序进行了调试与优化,最后用所编程序进行了实例计算。通过对计算结果的分析,所编程序可以完成空中三角测量航带法区域网平差的计算要求。

关键词: 解析空三;摄影测量;非线性改正;程序设计

中图分类号: TP311.1    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.06.024

本文著录格式:张岩,朱大明,申辽,等. 解析空三航带法区域网平差程序设计[J]. 软件,2020,41(06):112116

【Abstract】: In order to improve the accuracy of the solution of the encryption point coordinates in photogrammetry, a set of procedures for analyzing the nonlinear correction number of network level difference in aerial triangulation of the air triangular measurement area of the air triangular method is written. Using the mathematical model of the nonlinear correction coefficient calculation and nonlinear correction number calculation of the air belt method in aerial triangulation in photogrammetry, the corresponding program is compiled, and the nonlinear correction coefficient and nonlinear correction number of the encryption points are calculated respectively, so as to calculate the ground coordinate data of each encryption point. In view of the research content, considering the need for programming to refine and modify the flat difference model, the program designed the overall framework, on the basis of this algorithm, the program was prepared, the programming was debugged and optimized, and finally the programming was used to calculate the example. Through the analysis of the calculation results, the programme can complete the calculation requirements of the air triangulation air belt method area network balance.

【Key words】: Analytical aerial triangulation; Photogrammetry; Nonlinear correction; The program design

0  引言

随着新一代GPS系统在各个方面的高速发展,摄影测量技术已经被运用于国土资源监测、气象监测和天体科学等多个领域之中[1]。摄影测量技术也被逐渐运用到测绘科学中,丰富测绘学科测量技术手段的同时,摄影测量促进测量学的发展[2]。从摄影测量应用到生产的各个环节,人们对摄影测量的精度要求从未停止过,工程项目对摄影测量的测量精度也提出更高的要求[3]。

本文通过摄影测量的解析空中三角测量方法,在整个目标范围内,将航测线路的模型点作为摄影测量辅助位置观测值,在一个区域范围内,利用多条航带构建一个模型网,再进行整体平差计算出区域网内各航带位置的改正系数,从而解算出航带中各个加密点的三维地表位置数据[4]。以这种数学模型和平差方法為基础,研究相应的算法,编写出相应的程序进行测试,通过实例计算并对最终结果进行精度评定。

1  Visual Studio简介

1.1  什么是Visual Studio

C# 编程语言作为美国Microsoft Corporation为Visual Studio (以下简称VS)开发环境下推出的一种简洁、类型安全的面向对象的计算机编程语言,软件程序开发的相关工作人员可以通过它编写在.NET Framework上运行的各种安全、可靠的应用程序[5]。

1.2  C#所具有的特点

C#具有以下突出特点:

(1)C#的语法结构简单明了。其最大的特点就是不允许对计算机系统的内存进行控制,去掉了复杂的指针操作。

(2)彻底的面向对象设计。C#编程语言拥有面向对象的计算机语言的全部特征:封装、继承和多态。

(3)与Web紧密结合。C#编程语言支持绝大多数的Web标准,例如HTML、XML、SOAP等语言。

(4)强大的安全机制。能够自动处理在程序设计中常见的问题,较为高级的垃圾回收机制让普通编码基本忽略内存释放问题。

(5)兼容性好。由于C#编程语言应用着.NET的编程语言规范设计(CLS),因此可以与其他的编程语言进行开发的组件相互兼容。

(6)灵活的版本處理技术。由于C#作为一门开发语言本身就带有了针对版本管理系统,因此程序员能够更加容易地开发程序和更好的维护程序的后期使用情况。

(7)完善的错误、异常处理机制。C#提供系统多线程控制,可能是所有语言中多线程和异步变成最方便的。

(8)易有经验的程序员学习。C#能够适应C或者C++语言设计的函数,所以不会丢失C或者C++本身带有的作用。由于C#和它们之间的继承的关系,C#对于C或者C++就功能方面很类似,精通相关语言的程序工作人员能够很方便的转向C#[6]。

2  解析摄影测量区域网空中三角测量

航带法空三测量是解析空三测量加密的三种方法之一,该方法的主要研究对象是单条航空摄影航带所构建的模型[7]。

首先,将单个独立模型经由模型连接的方法连成一整个航带模型,每一条航带模型都是有很多个单个模型组合成,而每个独立模型由许多个立体像对构成,最后获得构成航带自由网的模型,将整个航带模型作为单个模型进行航带自由网进行绝对定向[8]。

由于每个单个模型中的许多立体像对中都存在着误差,积累下来的误差会随着立体像对的组合不断的传递到下一个层次中,由立体像对积累到单个独立模型,再由单个独立模型整合到自由网,在这过程中产生的误差甚至会使整个航带自由网的结果发生巨大的扭曲变形[9]。

所以在航带模型经过绝对定向之后,针对模型的线性改正将会是重中之重,这是解算出加密点的地面摄影测量坐标必不可少的步骤[10]。

3  航带法空中三角测量区域网平差程序设计

3.1  技术路线

3.2  程序的界面设计

界面是表现软件好坏最直观的的形式,界面的好与不好直接表达了使用者对软件的感受。高质量的界面可以给使用者带来轻松快乐的想法,反之对于低水平的设计,会让使用者在直觉上产生反感,再有效的功能都会在使用者的担心和放弃中流逝[11]。

对于本次航带法区域网平差程序的设计,我将做一个能够按步骤显示计算进度流程的设计,运用多个C#的DatagridView控件,一步一步的表示出计算的步骤,在计算的过程中也加入了许多MessageBox消息弹出窗口的提示[12]。

设计的思想是将两条航带的数据经过相对定向计算,模型拼接已经绝对定向的解算后,寻找两条航带的连接点,并用Excel表格进行数据的保存,然后选择特定的控制点和经过绝对定向解算之后的模型点,作为一条航带的数据,分别对两条航带和连接点进行数据的导入。对于存储航带数据的Excel表格将设置为sheet1存储控制点的坐标数据,sheet2将存储与控制点对应的模型点的坐标数据,而对于存储连接点数据的Excel表格将设置为sheet1存储第一条下连接点坐标数据,sheet2存储第二条航带上连接点坐标,然后根据第三章所建立的数学模型设计的相关代码来计算这个航带网所需的非线性改正数,然后每一步都将根据所需的要求使用DatagridView来显示解算的结果,最终求出这两条航带的改正系数[13],如图2所示。

3.3  数据的导入和保存

以对程序中第一条航带的数据导入、导出数据作为例子表示:

(1)运用IO流的方式打开处理好的Excel表格文件,并将表格数据导入new_openfile中:

OpenFileDialog new_openfile = new OpenFileDialog();

new_openfile.Filter = "(EXCEL)*.xls|*.xls";

(2)判断表格的数据是否为空

new_openfile.ShowDialog() == DialogResult.OK

(3)若导入的数据不为空,则将对Excel表格的文件的位置进行获取并连接到Excel文件的数据库中,建立ss作为读取表格中sheet的数据,sc作为读取文件位置的数据:

string ss = null;

string cs = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + new_openfile.FileName + ";Excel 8.0;HDR=Yes;IMEX=1";

OleDbConnection CNN = new OleDbConnection(cs);

CNN.Open();

(4)历遍Excel文件的Sheet,并显示每个 Sheet名:

DataTable ttable = CNN.GetSchema("Tables");

foreach (DataRow row in ttable.Rows)

if (row["Table_Type"].ToString() == "TABLE")

ss = "select * from [sheet1$]";

[3] 陈虹等编译. 摄影测量的回顾与展望—阿克曼谈今日摄影测量[J]. 测绘通报, 1998, 3.

[4] 王之卓. 当代学科的发展[J]. 测绘学报, 1998, 4.

[5] 罗建军, 冯博琴, 刘路放. 非计算机专业程序设计语言的教学改革[J]. 高等工程教育研究, 2002(4): 82-84.

[6] 孙霞, 张玉生. 非计算机专业程序设计实验教学改革[J]. 常熟理工学院学报(教育科学), 2012(12): 115-118.

[7] 鄒小香, 李伟, 李熠. 解析空中三角测量及其发展[J]. 江西测绘, 2012(1): 56-57+60.

[8] 张剑清. 摄影测量学[M]. 武汉:武汉大学出版社, 2003.

[9] 刘硕. 基于POS系统的航空摄影测量实验研究[D]. (硕士学 位论文)昆明理工大学, 2010.

[10] 王佩军, 徐亚明编著. 摄影测量学[M]. 武汉:武汉大学出版社, 2016.

[11] Wang L Y, Liu Z J, Song W D, Li H T. Airborne LiDAR stri Padjustment based on LSM [C]//The 3rd International Congress on Image and Signal Processing. 2010.

[12] 庞云阶, 王钲旋. 计算机图形学基础[M]. 长春: 吉林大学出版社, 1585.

[13] 聂敬云, 李春青, 李威威, 等. 关于遗传算法优化的最小二乘支持向量机在MBR 仿真预测中的研究[J]. 软件, 2015, 36(5): 40-44.

[14] 胡梦英, 贺祖国. 基于重开始共轭思想的改进多项式插值法[J]. 软件, 2015, 36(11): 48-51.

[15] BISNATH S B. Efficient automated cycle-slip correction of dualfrequency kinem atic GPS data[A]. Proceedings of ION GPS 2000. the l3th International Technical Meeting of The Institute of Navigation[C], Salt Lake City, Utah, 2000, 145-154.

[16] 于佳慧, 张世涛, 张岩. 基于MATLAB的抗差多项式拟合方法在GNSS周跳探测中的应用研究[J]. 软件, 2019, 40(8): 175-180.

猜你喜欢

摄影测量程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
OBE理念下基于Greenfoot的Java程序设计课程教学改革
PLC梯形图程序设计技巧及应用
三级甲等公立医院绩效考核程序设计