摄影测量实习报告_摄影测量学实习报告

实习报告 时间:2020-02-28 17:50:44 收藏本文下载本文
【www.daodoc.com - 实习报告】

摄影测量实习报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“摄影测量学实习报告”。

桂林理工大学土木与建筑工程学院测绘08-1班

摄影测量实习报告

实习项目:移动曲面拟合法求指定点的高程程序专

业:测绘工程班

级:测绘姓

名:周吕指导老师:设计时间:

08-1班

3080208112

2011年6月

桂林理工大学土木与建筑工程学院测绘08-1班

一、课程实验目的数据计算是测量工作中的一项重要任务,而应用计算机进行数据处理是测量人员的一项基本能力。通过此次程序设计锻炼我们应用计算机的能力以及应用程序语言编制测量程序解决实际问题的能力;通过该课程设计的操作与实践,使我们在了解使用程序设计方法、掌握面向对象程序设计的相关理论知识和设计技巧的基础上,能够将理论教学中涉及到的知识点贯穿起来,应用程序语言实现测量数据的程序处理,从而提高面向对象程序设计的综合设计能力,应用程序语言来解决测量中的数据等问题的实践能力。

二、课程实验的设计内容

移动曲面拟合法求指定点的高程:运用DEM内插依据参考点上的平面坐标和高程求出其他待定点上的高程。

三、程序设计思路

1、已知数据的输入

需要输入的数据包括已知数据的点号、已知高程和平面坐标、待求点的点号和平面坐标。本程序采用文件方式进行输入,约定文件输入格式如下: 第一行:待求点的点号,待求点的X坐标,待求点的Y坐标

第二行以后:已知点的点号,已知点的X坐标,已知点的Y坐标,已知点的Z坐标 例如:

1,110,110 1,102,110,15 2,109,113,18 3,105,115,19 4,103,103,17 5,108,105,21 6,105,108,15 7,115,104,20 8,118,108,15 9,116,113,17 10,113,118,22

桂林理工大学土木与建筑工程学院测绘08-1班

2、移动曲面拟合法计算过程

1.2.1 已知数据平移计算。对DEM一个格网点,从数据点中检索出对应该DEM格网点的几个分块格网中的数据点,并将坐标原点移至该DEM格网点P(Xp,Yp): Xi’=Xi-XP Yi’=Yi-YP

1.2.2列立误差方程。根据各已知数据的点信息给误差方程的系数矩阵、权矩阵和常数项的各个元素赋值。

1.2.3 法化求解。求出系数矩阵、权矩阵和常数项,依据程序里定义的矩阵转置、矩阵相乘、矩阵求逆函数运用平差原理进行平差解算 1.3 计算结果的输出

计算的结果都实时在文本框中显示,最后还可以把文本框的内容保存在TXT文档或DAT文档中。

四、程序简介

1、程序运行环境

由于本程序是用VB.NET程序语言编制而成,所以在安装本程序时先安装framework 3.5再安装本程序方可运行。

2、程序界面

程序界面由5个主要功能键和2个显示数据的容器构成。

功能键: 计算、窗体、帮助、清除、退出,下图是程序计算时的一个界面。

桂林理工大学土木与建筑工程学院测绘08-1班

3、待处理数据导入格式

第一行:待求点的点号,待求点的X坐标,待求点的Y坐标

第二行以后:已知点的点号,已知点的X坐标,已知点的Y坐标,已知点的Z坐标(前面已有示例)。下图是打开已知数据时的一个程序界面:

桂林理工大学土木与建筑工程学院测绘08-1班

4、待定点高程计算

单击计算按钮选中要处理的数据文件即可开始处理数据,处理完后显示并保存到另一文件中。上述示例数据计算结果的显示格式如下:

桂林理工大学土木与建筑工程学院测绘08-1班

4、程序功能简介

4.1 依据一定数量的已知X,Y,Z坐标,求解一个已知平面坐标点的高程。4.2改变界面的颜色。

单击窗体选中窗体皮肤按键选择你所喜欢的界面颜色。

五、部分代码分析

1、结构体的定义(structure函数):

Module 数组

Structure yuanshidata '定义一个结构体存储已知数据信息

Dim X_num As Double Dim Y_num As Double Dim Z As Double Dim NO_num As Double Dim Xmove_num As Double Dim Ymove_num As Double End Structure Structure xishujuzheng '定义一个结构体存储系数矩阵M相关信息

Dim Pi As Double Dim Xi2 As Double Dim Yi2 As Double Dim Yi As Double Dim Xi As Double

桂林理工大学土木与建筑工程学院测绘08-1班

Dim XiYi As Double Dim L As Double End Structure End Module 定义了结构体存储已知数据点的信息,此结构体可以存储多个数组,这样定义调用起来比较方便且不容易混乱。例如我们想要所有高程信息我们只需编写如下代码即可引用:

Dim yshidata()As yuanshidata yshidata(i).Z 所有的已知点数据信息均存入yshidata(),而高程信息则存入yshidata(i).gaocha2、公共函数的定义(public function): 为了完成平差计算本程序定义了矩阵的常用运算,例如:矩阵相乘drmul(ByVal a(,)As Double,ByVal b(,)As Double)、矩阵求逆Matinv(ByVal a(,)As Double)、矩阵转置drat(ByVal a(,)As Double)等(详细代码见附表一)。

六、程序评析

1、界面设计

程序的界面设置了一个窗体皮肤颜色更改的按键可以依据个人喜好随时更改窗体颜色;两个大大的显示窗口可以分别显示待处理数据与处理后的数据,这便于检查原始数据是否输错及增强可视化。由于时间问题本程序的帮助命令做得比较简单,除了本人的联系方式没有其他可以及时帮助的命令。2、移动曲面拟合法求指定点的高程

本程序只可以进行一个已知平面坐标点的高程,它输出结果是各个待求系数量A,B,C,D,E,F的解且系数F就是待定点的内插高程值。通过与老师给的用C语言编制的程序对比,本程序求出的值与用C语言编制的程序计算出的值基本一致,用同样示例数据求的F值:

本程序求出的F值: 17.5752065269328 C语言编制的程序计算出的F值: 17.5752073、小结

这个程序的计算还比较单一,同时界面的设计比较简单;数据的导入文件的格式与保存文件格式种类不是很多目前本程序只适用于TXT与DAT格式。需要把这个程序发展为一个有更多算法的实用型测量程序,以便满足更多不同测量方向的使用者的需求,同时对于界面的设计也需加强,除了追求实用我们还应该满足用户的审美。

七、附表1 代码:

一、存储数据的结构体:

Module 数组

Structure yuanshidata '定义一个结构体存储已知数据信息

Dim X_num As Double Dim Y_num As Double

桂林理工大学土木与建筑工程学院测绘08-1班

Dim Z As Double Dim NO_num As Double Dim Xmove_num As Double Dim Ymove_num As Double End Structure Structure xishujuzheng '定义一个结构体存储系数矩阵M相关信息

Dim Pi As Double Dim Xi2 As Double Dim Yi2 As Double Dim Yi As Double Dim Xi As Double Dim XiYi As Double Dim L As Double End Structure End Module

二、矩阵运算代码:

Module Module1矩阵运算

Public Function Matinv(ByVal a(,)As Double)As Object

'**********************************************************************************

' 功能: 实矩阵求逆的全选主元高斯-约当法

' 参数: nDouble型二维数组,体积为n x n。存放原矩阵A;返回时存放其逆矩阵A-1。

'********************************************************************************** ' 全选主元,消元

Dim i, j, k, N, nIs(), nJs()As Integer Dim D As Double, p As Double N = UBound(a, 1)ReDim nIs(N), nJs(N)For k = 1 To N D = 0.0!For i = k To N For j = k To N p = Math.Abs(a(i, j))If(p > D)Then D = p nIs(k)= i nJs(k)= j End If Next Next ' 求解失败

If(D + 1.0!= 1.0!)Then

桂林理工大学土木与建筑工程学院测绘08-1班

MsgBox(“矩阵不能求逆”)'Exit Function End If If(nIs(k)k)Then For j = 1 To N p = a(k, j)a(k, j)= a(nIs(k), j)a(nIs(k), j)= p Next End If If(nJs(k)k)Then For i = 1 To N p = a(i, k)a(i, k)= a(i, nJs(k))a(i, nJs(k))= p Next End If a(k, k)= 1.0!/ a(k, k)For j = 1 To N If(j k)Then a(k, j)= a(k, j)* a(k, k)Next For i = 1 To N If(i k)Then For j = 1 To N If(j k)Then a(i, j)= a(i, j)b(i, j)Next Next End If Return c End Function End Module

三、移动曲面拟合法求解X程序运行代码:

Imports System.IO '读文件应写的格式 Imports System.Math Public Cla Form1 '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7摄影测量程序定义的变量

Dim filenum, datanum As Integer Dim rootLJ As String Dim ukx As Double '定义DEM格网点P(Xp,Yp)Dim uky As Double Dim ukz As Double Dim uk_num As String Dim yshidata()As yuanshidata Dim line1 As String Dim line2 As String

桂林理工大学土木与建筑工程学院测绘08-1班

Dim txt2 As String = “” Dim M1()As xishujuzheng Dim M#(,), X#(,), P#(,), Z#(,)' 定义M矩阵

Dim XA(,)As String Private Sub 控制网平差ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 控制网平差ToolStripMenuItem.Click Dim Fold_d As New System.Windows.Forms.OpenFileDialog '打开文件

Fold_d.Filter = “(*.txt)|*.txt|(*.dat)|*.dat|(*.xls)|*.xls” '定义文件类型

Fold_d.ShowDialog()Dim filearr()As String Dim tt As String = “” Dim strread As String = “” Dim datanum As Integer If Fold_d.FileName “” Then RBox1.Text = “” '清空文档之前内容 datanum = 0 Dim str As New StreamReader(Fold_d.FileName, System.Text.Encoding.Default)'读文件固定格式

While str.EndOfStream = False strread = str.ReadLine '按行读文件

If strread “” Then datanum += 1 '计算文件有多少行

ReDim Preserve filearr(datanum)'将所读取的文件定义为一个数组

filearr(datanum)= strread '将所读文件赋值于数组

End If End While filenum = datanum1

桂林理工大学土木与建筑工程学院测绘08-1班

dat = filearr(i + 1).Split(“,”)yshidata(i).NO_num = dat(0)yshidata(i).X_num = dat(1)yshidata(i).Y_num = dat(2)yshidata(i).Z = dat(3)line2 = line2 & filearr(i + 1)& vbCrLf Next '对DEM一个格网点,从数据点中检索出对应该DEM格网点的几个分块格网中的数据点,并将坐标原点移至该DEM格网点P(Xp,Yp):

For i = 1 To datanumukx yshidata(i).Ymove_num = yshidata(i).Y_num1 M1(i).Xi2 = yshidata(i).Xmove_num * yshidata(i).Xmove_num M1(i).Yi2 = yshidata(i).Ymove_num * yshidata(i).Ymove_num Next For i = 1 To datanum1).Split(“.”)Me.窗体皮肤ToolStripMenuItem.DropDownItems.Add(splitname(0))Next SkinEngine1.SkinFile = “E:BV.net学习是编的程序水准网平差水准网平差binDebugskinsVista2_color4.k” End Sub End Cla

下载摄影测量实习报告word格式文档
下载摄影测量实习报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文