摄影测量学后前交会实验报告
摄影测量学单像空间后方交会编程实习报告(精品资料).doc

【最新整理,下载后即可编辑】摄影测量学单像空间后方交会编程实习报告班级:130x姓名:xx学号:2013302590xxx指导老师:李欣一、实习目的通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
深入理解单像空间后方交会的思想,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。
通过尝试编程实现加强编程处理问题的能力和对实习内容的理解,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。
了解摄影测量平差的基本过程,掌握空间后方交会的定义和实现算法。
二、实习内容根据学习的单像空间后方交会的知识,用程序设计语言(C++或C语言)编写一个完整的单像空间后方交会程序,通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
三、实习数据已知航摄仪的内方位元素:fk =153.24mm,x=y=0,摄影比例尺为1:15000;4个地面控制点的地面坐标及其对应像点的像片坐标:四、实习原理如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。
因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。
可采取的方法有:利用雷达、全球定位系统(GPS)、惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。
单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,ϕ,ω,κ。
五、 实习流程1. 获取已知数据。
从摄影资料中查取影像比例尺1/m ,平均摄影距离(航空摄影的航高、内方位元素x 0,y 0,f ;获取控制点的空间坐标X t ,Y t ,Z t 。
2. 量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。
《摄影测量学》实习总结报告

《摄影测量学》实习总结报告第一篇:《摄影测量学》实习总结报告01工测31班《摄影测量学》实习总结报告《摄影测量学》是测绘工程专业重要的专业课程。
按照培养目标和教学大纲的要求,本课程进行了一周的课程实习。
旨在通过本次课程实习来加深对摄影测量学的基础理论、测量原理及方法的理解和掌握程度,切实提高同学们的实践技能。
并达到将所学的各章节知识融会贯通,基本能够综合运用已学知识来解决一些实际问题的目的。
要求每位同学在实习老师的指导下能独立完成各项实习内容,尤其应熟练操作各种摄影测量仪器,掌握解析摄影测量的全过程,了解数字摄影测量的主要内容及发展趋势。
为进一步完善《摄影测量学》课程的实习组织管理、提高实习效果、促进实践教学改革,现将本次实习的经验及存在的问题总结如下:一.思想上高度重视是本次实习圆满完成的前提保障:本次实习系领导予以足够的重视和精心的安排。
假期中,系领导就针对本次实习进行了讨论和周密部署。
在第一天的实习动员会上,韩老师就本次实习的意义、要求实习注意事项等方面作了明确的阐述,同时,也就本次实习内容和实习步骤作了说明。
在其后的实习过程中,学生实习目的明确、主动积极、不怕吃苦、勇于承担重任,这些现象说明本次实习动员会起到了很好的效果,是顺利完成实习的基础。
随着摄影测量与遥感技术蓬勃发展,同学们对摄影测量学产生了浓厚的学习兴趣,激发他们的学习热情,纷纷表示要好好珍惜这次难得实习机会,尽量学到更多得有用东西,充分感受测绘科技发展带来的革命性的变革,为今后走上工作岗位奠定坚实基础。
二.指导教师耐心细致的指导为实习顺利进行提供了技术支撑:为使学生明确本次实习的总体任务及每一实习项目具体的作业程序、作业方法,指导教师在各项实习内容开展之前进行集中讲解,做到任务明确、过程清晰;实习过程中,分组指导和定期集中讨论相结合,启发学生解决作业中出现的实际问题。
本次实习不仅使学生理论知识得到巩固、操作能力得到加强,同时也使学生运用知识的能力得到提高。
摄影测量实验报告书

摄影测量实验报告一、实验目的1、通过阅读实习指导书,了解4d的基本概念,了解VirtuoZo NT系统的运行环境及软件模块的操作特点,了解实习工作流程,从而能对4d产品生产实习有个整体概念。
2、掌握创建/打开测区及测区参数文件的设置,掌握参数文件的数据录入完成原始数字影像格式的转换。
3、通过对模型定向的作业,了解数字影像立体模型的建立方法及全过程,并能较熟练地应用定向模块进行作业,满足定向的基本精度要求,掌握核线影像重采样,生成核线影像对。
4、掌握正射影像分辨率的正确设置,制作单模型的数字正射影像,掌握等高线参数设置,生成等高线,通过正射影像或叠加等高线影像的显示,检查是否有粗差,掌握DEM拼接及自动正射影像镶嵌。
5、掌握立体切准的基本专业技能,掌握地物数据采集与编辑的基本操作,掌握文字注记的方法6、学会使用图廓整饰模块,掌握图廓整饰中各项参数的意义及其设置方式,生成图廓参数文件,制作完整的DOM图幅产品,生成图廓参数文件,制作完整的DRG图幅产品。
7、通过对实习成果的分析,了解数字产品的基本质量要求,总结实习中出现的问题以及实习成果的不足之处,并能分析其原因。
8、理解数据格式输出的意义,了解VirtuoZo NT系统的数据格式输出的具体操作。
二、实验步骤及方法1、建立测区与模型的参数设置数据准备完善后,进入VIrtuoZo主界面,首先要新建一个测区,通过文件-打开测区,我们可以新建一个名为hammer的测区,系统默认后缀名为blk,默认保存在系统盘下的Virlog文件夹里。
这个blk文件其实只是个索引文件,它最终指向的是测区设置里面的测区主目录文件夹。
建立好blk文件之后,系统会自动弹出“设置测区”的对话框,我们按照原始数据提供的信息,相应填写该对话框,填写好之后保存退出。
进入“设置-相机文件”,找到刚才在设置测区对话框中新建的相机检校文件,双击进入参数设置界面,相机参数可以直接通过输入按钮,输入原始数据里面已有的cmr文件。
摄影测量实习报告

摄影测量实习报告摄影测量实习报告范文在当下这个社会中,报告对我们来说并不陌生,写报告的时候要注意内容的完整。
你还在对写报告感到一筹莫展吗?以下是店铺整理的摄影测量实习报告范文,欢迎大家借鉴与参考,希望对大家有所帮助。
摄影测量实习报告范文1一、实习目的1、了解4d的基本概念,了解VirtuoZo NT系统的运行环境及软件模块的操作特点,了解实习工作流程,从而能对4d产品生产实习有个整体概念。
2、掌握创建/打开测区及测区参数文件的设置,掌握参数文件的数据录入完成原始数字影像格式的转换。
3、通过对模型定向的作业,了解数字影像立体模型的建立方法及全过程,并能较熟练地应用定向模块进行作业,满足定向的基本精度要求,掌握核线影像重采样,生成核线影像对。
4、掌握正射影像分辨率的正确设置,制作单模型的数字正射影像,掌握等高线参数设置,生成等高线,通过正射影像或叠加等高线影像的显示,检查是否有粗差,掌握DEM拼接及自动正射影像镶嵌。
5、掌握立体切准的基本专业技能,掌握地物数据采集与编辑的基本操作,掌握文字注记的方法。
6、学会使用图廓整饰模块,掌握图廓整饰中各项参数的意义及其设置方式,生成图廓参数文件,制作完整的DOM图幅产品,生成图廓参数文件,制作完整的DRG图幅产品。
7、通过对实习成果的分析,了解数字产品的基本质量要求,总结实习中出现的问题以及实习成果的不足之处,并能分析其原因。
8、理解数据格式输出的意义,了解VirtuoZo NT系统的数据格式输出的具体操作。
二、实习内容1、数据准备2、模型定向及生产核线影像3、影响匹配及匹配后的编辑4、生产DEM机正射影像的制作5、DEM的拼接和影像的镶嵌6、图廓整饰7、产品数据格式输出8、数字摄影测图9、成果分析三、实习步骤一.建立测区与模型的参数设置1.数据准备完善后,进入VIrtuoZo主界面,首先要新建一个测区,通过文件-打开测区,我们可以新建一个名为hammer的测区,系统默认后缀名为blk,默认保存在系统盘下的Virlog文件夹里。
摄影测量学单像空间后方交会编程实习报告材料

摄影测量学单像空间后方交会编程实习报告班级: 130x姓名: xx学号: 2013302590xxx指导老师:李欣一、实习目的通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
深入理解单像空间后方交会的思想,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。
通过尝试编程实现加强编程处理问题的能力和对实习内容的理解,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。
了解摄影测量平差的基本过程,掌握空间后方交会的定义和实现算法。
二、实习内容根据学习的单像空间后方交会的知识,用程序设计语言(C++或C语言)编写一个完整的单像空间后方交会程序,通过对提供的数据进行计算,输出像片的外方位元素并评定精度。
三、实习数据已知航摄仪的内方位元素:fk =153.24mm,x=y=0,摄影比例尺为1:15000;4个地面控制点的地面坐标及其对应像点的像片坐标:四、实习原理如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。
因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。
可采取的方法有:利用雷达、全球定位系统(GPS)、惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。
单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,ϕ,ω,κ。
五、实习流程1.获取已知数据。
从摄影资料中查取影像比例尺1/m,平均摄影距离(航空摄影的航高、内方位元素x0,y,;获取控制点的空间坐标Xt,Yt,Zt。
2.量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。
摄影测量学空间后方交会实验报告测绘101徐斌

摄影测量学实验报告实验一、单像空间后方交会学院:建测学院班级:测绘101姓名:徐斌学号: 26一.实验目的1.深入了解单像空间后方交会的计算过程;2.加强空间后方交会基本公式和误差方程式,法线方程式的记忆;3.通过上机调试程序加强动手能力的培养。
二.实验原理以单幅影像为基础,从该影像所覆盖地面范围内若干控制点和相应点的像坐标量测值出发,根据共线条件方程,求解该影像在航空摄影时刻的相片外方位元素。
三.实验内容1.程序图框图2.实验数据(1)已知航摄仪内方位元素f=153.24mm,Xo=Yo=0。
限差0.1秒(2)已知4对点的影像坐标和地面坐标:3.实验程序Form1.cs 程序using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;namespace 后方交会1{public partial class Form1 : Form{public Form1(){InitializeComponent();}public doublef,m,Xs, Ys, Zs,a1, a2, a3, b1, b2, b3, c1, c2, c3,q, w, k;public static int N,s;public double[] x = new double[4];public double[] y = new double[4];public double[] X = new double[4];public double[] Y = new double[4];public double[] Z = new double[4];public double[,] L = new double[N*2, 1];string output="外方位元素\t\n";Matrix XX;string[] a =File.ReadAllLines("d:\\控制点.txt");public void 计算N(){int cnt;using (StreamReader sr = new StreamReader(@"d:\控制点.txt")){cnt = 0;while (sr.ReadLine() != null){cnt++;}// 这个cnt就是行数}N = cnt/5;}public void 计算初始值(){double temp=0;for (int i = 0; i <N; i++){temp+=X[i];}Xs =temp/ N;double tmp = 0;for (int i = 0; i < N; i++){tmp += Y[i];}Ys =tmp/ N;Zs = m*f;}public void 求改正数(){a1 = Math.Cos(q) * Math.Cos(k) - Math.Sin(q) * Math.Sin(w) * Math.Sin(k); a2 = -Math.Cos(q) * Math.Sin(k) - Math.Sin(q) * Math.Sin(w) * Math.Cos(k); a3 = -Math.Sin(q) * Math.Cos(w);b1 = Math.Cos(w) * Math.Sin(k);b2 = Math.Cos(w) * Math.Cos(k);b3 = -Math.Sin(w);c1 = Math.Sin(q) * Math.Cos(k) + Math.Cos(q) * Math.Sin(w) * Math.Sin(k);c2 = -Math.Sin(q) * Math.Sin(k) + Math.Cos(q) * Math.Sin(w) * Math.Cos(k);c3 = Math.Cos(q) * Math.Cos(w);int p = 0;int j = p;for (p = 0; p < a.Length; p += 5){x[j] = double.Parse(a[p])/1000;y[j] = double.Parse(a[p + 1])/1000;X[j] = double.Parse(a[p + 2]);Y[j] = double.Parse(a[p + 3]);Z[j] = double.Parse(a[p+ 4]);j++;}Matrix A = new Matrix(N*2, 6);int i = 0;int b = i;for (i = 0; i < N; i++){A.m_data[b, 0] = (a1 * f + a3 * x[i]) / (a3 * (X[i] - Xs) + b3 * (Y[i] - Ys) + c3 * (Z[i] - Zs));A.m_data[b, 1] = (b1 * f + b3 * x[i]) / (a3 * (X[i] - Xs) + b3 * (Y[i] - Ys) + c3 * (Z[i] - Zs));A.m_data[b, 2] = (c1 * f + c3 * x[i]) / (a3 * (X[i] - Xs) + b3 * (Y[i] - Ys) + c3 * (Z[i] - Zs));A.m_data[b, 3] = y[i] * Math.Sin(w) - (x[i] / f * (x[i] * Math.Cos(k) - y[i] * Math.Sin(k)) + f * Math.Cos(k)) * Math.Cos(w);A.m_data[b, 4] = -f * Math.Sin(k) - x[i] / f * (x[i] * Math.Sin(k) + y[i] * Math.Cos(k));A.m_data[b, 5] = y[i];A.m_data[b + 1, 0] = (a2 * f + a3 * y[i]) / (a3 * (X[i] - Xs) + b3 * (Y[i] - Ys) + c3 * (Z[i] - Zs));A.m_data[b + 1, 1] = (b2 * f + b3 * y[i]) / (a3 * (X[i] - Xs) + b3 * (Y[i] - Ys) + c3 * (Z[i] - Zs));A.m_data[b + 1, 2] = (c2 * f + c3 * y[i]) / (a3 * (X[i] - Xs) + b3 * (Y[i] - Ys) + c3 * (Z[i] - Zs));A.m_data[b + 1, 3] = -x[i] * Math.Sin(w) - (y[i] / f * (x[i] * Math.Cos(k) - y[i] * Math.Sin(k)) - f * Math.Sin(k)) * Math.Cos(w);A.m_data[b + 1, 4] = -f * Math.Cos(k) - y[i] / f * (x[i] * Math.Sin(k) + y[i] * Math.Cos(k));A.m_data[b + 1, 5] = -x[i];b += 2;}Matrix T = new Matrix(6, N*2);T = A.Transpose();Matrix AT = T * A;Matrix AA = AT.Inverse();Matrix P = AA * T;Matrix L = new Matrix(N*2, 1);int v = 0;int m = v;for (v = 0; v < N; v++){L.m_data[m, 0] = x[v] + f * (a1 * (X[v] - Xs) + b1 * (Y[v] - Ys) + c1 * (Z[v] - Zs)) / (a3 * (X[v] - Xs) + b3 * (Y[v] - Ys) + c3 * (Z[v] - Zs));L.m_data[m + 1, 0] = y[v] + f * (a2 * (X[v] - Xs) + b2 * (Y[v] - Ys) + c2 * (Z[v] - Zs)) / (a3 * (X[v] - Xs) + b3 * (Y[v] - Ys) + c3 * (Z[v] - Zs));m += 2;}XX = P * L;//计算外方位元素Xs += XX[0, 0];Ys += XX[1, 0];Zs += XX[2, 0];q += XX[3, 0];w += XX[4, 0];k += XX[5, 0];}public void 迭代(){求改正数();for (int i = 0; i < 6; i++){for (int j = 0; j < 1; j++){output += XX[i, j] + "\t\n";}}if (Math.Abs(XX[3, 0]) >= 0.000029 && Math.Abs(XX[4, 0]) >= 0.000029 && Math.Abs(XX[5, 0]) >= 0.000029){for (int d = 1; d < s; d++){求改正数();for (int i = 0; i < 6; i++){for (int j = 0; j < 1; j++){output += XX[i, j]+ "\t\n";}}if (Math.Abs(XX[3, 0]) <= 0.000029 && Math.Abs(XX[4, 0]) <= 0.000029 && Math.Abs(XX[5, 0]) <= 0.000029){输出();break;}}if (Math.Abs(XX[3, 0]) >= 0.000029 || Math.Abs(XX[4, 0]) >= 0.000029 || Math.Abs(XX[5, 0]) >= 0.000029){MessageBox.Show("已达到指定迭代次数,迭代结束!!!");MessageBox.Show(output, "后方交会", MessageBoxButtons.OK, rmation);}}else{输出();}}public void 输出(){_Xs.Text = Xs.ToString();_Ys.Text = Ys.ToString();_Zs.Text = Zs.ToString();_q.Text = q.ToString();_w.Text = w.ToString();_k.Text = k.ToString();}private void button1_Click(object sender, EventArgs e){try{f = double.Parse(textBox1.Text);}catch{MessageBox.Show("请先输入主距");}s = int.Parse(textBox2.Text);m = int.Parse(textBox3.Text);计算N();int i=0;int j = i;for ( i = 0; i < a.Length; i += 5){x[j] = double.Parse(a[i]);y[j] = double.Parse(a[i + 1]);X[j] = double.Parse(a[i + 2]);Y[j] = double.Parse(a[i + 3]);Z[j] = double.Parse(a[i + 4]);j++;}计算初始值();}private void button2_Click(object sender, EventArgs e){迭代();}private void button3_Click(object sender, EventArgs e){MessageBox.Show("请将点坐标文件保存到d盘根目录并保存为\"控制点 .txt\"\n要求每行一个值,五行表示一个点\n测绘101徐斌");}}}添加Matrix.cs类程序using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 后方交会1{public class Matrix{//构造方阵public Matrix(int row){m_data = new double[row, row];}public Matrix(int row, int col){m_data = new double[row, col];}//复制构造函数public Matrix(Matrix m){int row = m.Row;int col = m.Col;m_data = new double[row, col];for (int i = 0; i < row; i++)for (int j = 0; j < col; j++)m_data[i, j] = m.m_data[i, j];}//设为单位阵public void SetUnit(){for (int i = 0; i < m_data.GetLength(0); i++)for (int j = 0; j < m_data.GetLength(1); j++) m_data[i, j] = ((i == j) ? 1 : 0);}//设置元素值public void SetValue(double d){for (int i = 0; i < m_data.GetLength(0); i++)for (int j = 0; j < m_data.GetLength(1); j++) m_data[i, j] = d;}//返中行数public int Row{get{return m_data.GetLength(0);}}//返回列数public int Col{get{return m_data.GetLength(1);}}//重载索引 ,存取数据成员public double this[int row, int col]{get{return m_data[row, col];}set{m_data[row, col] = value;}}//初等变换对调两行:ri<-->rjpublic Matrix Exchange(int i, int j){double temp;for (int k = 0; k < Col; k++){temp = m_data[i, k];m_data[i, k] = m_data[j, k];m_data[j, k] = temp;}return this;}//初等变换第index 行乘以mulMatrix Multiple(int index, double mul){for (int j = 0; j < Col; j++){m_data[index, j] *= mul;}return this;}//初等变换第src行乘以mul加到第index行Matrix MultipleAdd(int index, int src, double mul) {for (int j = 0; j < Col; j++){m_data[index, j] += m_data[src, j] * mul; }return this;}//transpose 转置public Matrix Transpose(){Matrix ret = new Matrix(Col, Row);for (int i = 0; i < Row; i++)for (int j = 0; j < Col; j++){ret[j, i] = m_data[i, j];}return ret;}//矩阵乘public static Matrix operator *(Matrix lhs, Matrix rhs){if (lhs.Col != rhs.Row) //异常{System.Exception e = new Exception("相乘的两个矩阵的行列数不匹配"); throw e;}Matrix ret = new Matrix(lhs.Row, rhs.Col);double temp;for (int i = 0; i < lhs.Row; i++){for (int j = 0; j < rhs.Col; j++){temp = 0;for (int k = 0; k < lhs.Col; k++){temp += lhs[i, k] * rhs[k, j];}ret[i, j] = temp;}}return ret;}//功能:返回列主元素的行号//参数:row为开始查找的行号//说明:在行号[row,Col)范围内查找第row列中绝对值最大的元素,返回所在行号int Pivot(int row){int index = row;for (int i = row + 1; i < Row; i++){if (m_data[i, row] > m_data[index, row])index = i;}return index;}//逆阵:使用矩阵的初等变换,列主元素消去法public Matrix Inverse(){if (Row != Col) //异常,非方阵{System.Exception e = new Exception("求逆的矩阵不是方阵");throw e;}Matrix tmp = new Matrix(this);Matrix ret = new Matrix(Row); //单位阵ret.SetUnit();int maxIndex;double dMul;for (int i = 0; i < Row; i++){maxIndex = tmp.Pivot(i);if (tmp.m_data[maxIndex, i] == 0){System.Exception e = new Exception("求逆的矩阵的行列式的值等于0,"); throw e;}if (maxIndex != i) //下三角阵中此列的最大值不在当前行,交换{tmp.Exchange(i, maxIndex);ret.Exchange(i, maxIndex);}ret.Multiple(i, 1 / tmp[i, i]);tmp.Multiple(i, 1 / tmp[i, i]);for (int j = i + 1; j < Row; j++){dMul = -tmp[j, i] / tmp[i, i];tmp.MultipleAdd(j, i, dMul);ret.MultipleAdd(j, i, dMul);}}for (int i = Row - 1; i > 0; i--){for (int j = i - 1; j >= 0; j--){dMul = -tmp[j, i] / tmp[i, i];tmp.MultipleAdd(j, i, dMul);ret.MultipleAdd(j, i, dMul);}}return ret;}//是方阵吗?public bool IsSquare(){return Row == Col;}//是对称阵吗?public bool IsSymmetric(){if (Row != Col)return false;for (int i = 0; i < Row; i++)for (int j = i + 1; j < Col; j++)if (m_data[i, j] != m_data[j, i]) return false;return true;}//公有数据成员public double[,] m_data;}}4.实验结果四.实验总结此次实验让我深入了解单像空间后方交会的计算过程,加强了对空间后方交会基本公式和误差方程式,法线方程式的记忆。
摄影测量实验报告(前方交汇后方交汇)

摄影测量学实验报告学院:地信院班级:测绘0904班老师:***姓名:***学号:**********2011年11 月11 日空间后方交会——空间前方交会程序编程实验一.实验目的1、要求掌握运用摄影测量中空间后方交会-空间前方交会求解地面点的空间位置的方法和原理。
2、学会运用空间后方交会的原理,根据所给控制点的地面摄影测量坐标系坐标以及相应的像平面坐标系中的坐标,利用计算机编程语言实现空间后方交会的计算,完成所给像对中两张像片各自的六个外方位元素的求解和精度评定。
3、根据空间后方交会所得的两张像片的内外方位元素,利用同名像点在左右像片上的坐标,利用计算机编程语言前方交会编程,求解其对应的地面点在摄影测量坐标系中的坐标,从而达到通过摄影测量量测地面地理数据的目的。
二.实验仪器1、计算机2、MATLAB计算机编程软件三、实验数据实验数据实验数据包含四个地面控制点(GCP)的地面摄影测量坐标及在左右像片中的像平面坐标。
此四对坐标运用最小二乘法求解左右像片的外方位元素,即完成了空间后方的过程。
另外还给出了 5 对地面点在左右像片中的像平面坐标和左右像片的内方位元素。
实验数据如下:四、程序设计流程图1、后方交会此过程完成空间后方交会求解像片的外方位元素,其中改正数小于限差(长度改正数小于0.01m,角度改正数小于0.0003,相当于1’的角度值)为止。
在这个过程中采用迭代计算的方法,是外方位元素逐渐收敛于理论值,每次迭代所得的改正数都应加到上一次的初始值之中。
2、前方交会七、实验原理公式1、后方交会中运用的共线方程数学模型ZYfZ Z c Y Y b X X a Z Z c Y Y b X X a fy y Z XfZ Z c Y Y b X X a Z Z c Y Y b X X a f x x s s s s s s s s s s s s -=-+-+--+-+--=--=-+-+--+-+--=-)()()()()()()()()()()()(333222033311103、前方交会与后方交会中均用到旋转矩阵进行的坐标转换⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-s s s s s s Z Z Y Y X X Z Z Y Y X X c b a c b a c b a Z Y X 1333222111R4、精度评定中均采用最小二乘准则进行平差计算y y Z Z y Y Y y X X y y y y v x x Z Z x Y Y x X X x x x x v s ss s s s y s s s s s s x -+∆∂∂+∆∂∂+∆∂∂+∆∂∂+∆∂∂+∆∂∂=-+∆∂∂+∆∂∂+∆∂∂+∆∂∂+∆∂∂+∆∂∂=00κκωωϕϕκκωωϕϕyy a a a Z a Y a X a v x x a a a Z a Y a X a v s s s y s s s x -+∆+∆+∆+∆+∆+∆=-+∆+∆+∆+∆+∆+∆=02625242322210161514131211κωϕκωϕ⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡--=⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡∆∆∆∆∆∆=⎥⎦⎤⎢⎣⎡=26252423222116151413121100,,a a a a a a a a a a a a y y x x Z Y X v v s s s y x A l x V κωϕl Ax V -= )()(T1Tl A A A x -= 62T 0-=n VV σ 1T )(-=A A Q xx ii xx i m Q 0σ= 5.前方交会的转换2'12'12'1222222111111212121121212,,,Z N B Z NZ Z Z Y N B Y NY Y Y X N B X NX X X f y x R Z Y X f y x R Z Y X Z Z B Y Y B X X B Z S S Y S S X S S S S Z S S Y S S X ++=+=++=+=++=+=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=-=-=标):地面坐标(摄影测量坐像空间辅助坐标:基线分量:12211121221221Z X Z X X B Z B N Z X Z X X B Z B N Z X Z X --=--=八.实验源程序1.空间后方交会(以左片为例)%已知地面摄影测量坐标Xg=[5083.205,5780.02,5210.879,5909.264];Yg=[5852.099,5906.365,4258.466,4314.283];Zg=[527.925,571.549,461.81,455.484];%对应地面坐标的左片像点坐标x=[0.016012,0.08856,0.013362,0.08224];y=[0.079963,0.081134,-0.07937,-0.080027];%设置初始值c=0;w=0;k=0;f=0.15;Dg=sqrt((Xg(1)-Xg(2))^2+(Yg(1)-Yg(2))^2);Ds=sqrt((x(1)-x(2))^2+(y(1)-y(2))^2);p=Dg/Ds;Xs0=1/4*(Xg(1)+Xg(2)+Xg(3)+Xg(4));Ys0=1/4*(Yg(1)+Yg(2)+Yg(3)+Yg(4));Zs0=p*f+(Zg(1)+Zg(2)+Zg(3)+Zg(4))/4;W=0 %统计迭代计算次数%完成迭代计算,检验改正是是否符合要求while 1%计算旋转矩阵系数a1=cos(c)*cos(k)-sin(c)*sin(w)*sin(k);a2=-cos(c)*sin(k)-sin(c)*sin(w)*cos(k);a3=-sin(c)*cos(w);b1=cos(w)*sin(k);b2=cos(w)*cos(k);b3=-sin(w);c1=sin(c)*cos(k)+cos(c)*sin(w)*sin(k);c2=-sin(c)*cos(k)+cos(c)*sin(w)*cos(k);c3=cos(c)*cos(w);R=[a1,a2,a3;b1,b2,b3;c1,c2,c3]for n=1:1:4X(n)=a1*(Xg(n)-Xs0)+b1*(Yg(n)-Ys0)+c1*(Zg(n)-Zs0); Y(n)=a2*(Xg(n)-Xs0)+b2*(Yg(n)-Ys0)+c2*(Zg(n)-Zs0); Z(n)=a3*(Xg(n)-Xs0)+b3*(Yg(n)-Ys0)+c3*(Zg(n)-Zs0); xj(n)=-f*X(n)/Z(n); %计算近似点坐标yj(n)=-f*Y(n)/Z(n);a11(n)=1/Z(n)*(a1*f+a3*x(n)); %矩阵系数a12(n)=1/Z(n)*(b1*f+b3*x(n));a13(n)=1/Z(n)*(c1*f+c3*x(n));a21(n)=1/Z(n)*(a2*f+a3*y(n));a22(n)=1/Z(n)*(b2*f+b3*y(n));a23(n)=1/Z(n)*(c2*f+c3*y(n));a14(n)=y(n)*sin(w)-(x(n)/f*(x(n)*cos(k)-y(n)*sin(k))+f*cos(k))*cos(w) ;a15(n)=-f*sin(k)-x(n)/f*(x(n)*sin(k)+y(n)*cos(k));a16(n)=y(n);a24(n)=-x(n)*sin(w)-(y(n)/f*(x(n)*cos(k)-y(n)*sin(k))-f*sin(k))*cos(w );a25(n)=-f*cos(k)-y(n)/f*(x(n)*sin(k)+y(n)*cos(k));a26(n)=-x(n);endA=[a11(1),a12(1),a13(1),a14(1),a15(1),a16(1);a21(1),a22(1),a23(1),a24(1),a25(1),a26(1);a11(2),a12(2),a13(2),a14(2),a15(2),a16(2);a21(2),a22(2),a23(2),a24(2),a25(2),a26(2);a11(3),a12(3),a13(3),a14(3),a15(3),a16(3);a21(3),a22(3),a23(3),a24(3),a25(3),a26(3);a11(4),a12(4),a13(4),a14(4),a15(4),a16(4);a21(4),a22(4),a23(4),a24(4),a25(4),a26(4)];L=[x(1)-xj(1);y(1)-yj(1);x(2)-xj(2);y(2)-yj(2);x(3)-xj(3);y(3)-yj(3); x(4)-xj(4);y(4)-yj(4)];Xp=inv((A')*A)*(A')*LV=A*Xp-LXs0=Xs0+Xp(1,1)Ys0=Ys0+Xp(2,1)Zs0=Zs0+Xp(3,1)c=c+Xp(4,1); w=w+Xp(5,1); k=k+Xp(6,1);W=W+1%判断收敛条件if((abs(Xp(1,1))<0.01&&abs(Xp(2,1))<0.01&&abs(Xp(3,1))<0.01&&abs(Xp(4 ,1))<0.0003&&abs(Xp(5,1))<0.0003&&abs(Xp(6,1))<0.0003))breakendend%精度评定Qxx=inv((A')*A) %外方元素协因素阵mo=sqrt(((V)'*V)/(2*8-6)) %单位权中误差mi=mo*sqrt(Qxx) %外方元素改正数中误差2.前方交会%后方交会中计算出的改正后外方元素Xs1=4999.7;Ys1=5000.1;Zs1=2000.0;Xs2=5896.3;Ys2=5087.9;Zs2=2029.9;%量测像点左右片坐标xa=[0.051758,0.014618,0.04988,0.08614,0.048035];ya=[0.080555,-0.000231,-0.000782,-0.001346,-0.079962];xb=[-0.039953,-0.076006,-0.042201,-0.007706,-0.044438];yb=[0.078463,0.000036,-0.001022,-0.002112,-0.079736];%由外方位线元素计算基线分量 Bx, By, BzBx=Xs2-Xs1;By=Ys2-Ys1;Bz=Zs2-Zs1;%由外方位角元素计算像空间辅助坐标X1, Y1, Z1 , X2, Y2, Z2R1=[0.9955,-0.0951,-0.0002;0.0951,0.9950,-0.0291;0.0030,0.0287,0.9996 ];R2=[0.9938,-0.1108,-0.0134;0.1101,0.9929,-0.0461;0.0184,0.0325,0.9988 ];Fa=R1*[xa(1),xa(2),xa(3),xa(4),xa(5);ya(1),ya(2),ya(3),ya(4),ya(5);-0 .015,-0.015,-0.015,-0.015,-0.015]Fb=R2*[xb(1),xb(2),xb(3),xb(4),xb(5);yb(1),yb(2),yb(3),yb(4),yb(5);-0 .015,-0.015,-0.015,-0.015,-0.015]Xa=[Fa(1,1),Fa(1,2),Fa(1,3),Fa(1,4),Fa(1,5)];Ya=[Fa(2,1),Fa(2,2),Fa(2,3),Fa(2,4),Fa(2,5)];Za=[Fa(3,1),Fa(3,2),Fa(3,3),Fa(3,4),Fa(3,5)];Xb=[Fb(1,1),Fb(1,2),Fb(1,3),Fb(1,4),Fb(1,5)];Yb=[Fb(2,1),Fb(2,2),Fb(2,3),Fb(2,4),Fb(2,5)];Zb=[Fb(3,1),Fb(3,2),Fb(3,3),Fb(3,4),Fb(3,5)];%计算点投影系数 N1 , N2for n=1:1:5Na(n)=(Bx*Zb(1,(n))-Bz*Xb(1,(n)))/(Xa(1,(n))*Zb(1,(n))-Xb(1,(n))*Za(1 ,(n)));Nb(n)=(Bx*Zb(1,(n))-Bz*Xb(1,(n)))/(Xa(1,(n))*Zb(1,(n))-Xb(1,(n))*Za(1 ,(n)));%计算地面坐标 XA, YA, ZAXg(n)=Na(n)*Xa(n)+Xs1;Zg(n)=Na(n)*Za(n)+Zs1;Yg(n)=1/2*((Ys1+Na(n)*Ya(n))+(Ys2+Nb(n)*Yb(n)));EndX=[Xg(1),Xg(2),Xg(3),Xg(4),Xg(5)]Y=[Yg(1),Yg(2),Yg(3),Yg(4),Yg(5)]Z=[Zg(1),Zg(2),Zg(3),Zg(4),Zg(5)]九、计算结果,精度评定1.左片计算结果(1)旋转矩阵R = 0.9955 -0.0951 -0.00020.0951 0.9950 -0.02910.0030 0.0287 0.9996(2)左片外方元素改正数Xp =1.0e-003 *0.0277,-0.4099,0.0058,0.0000,0.0000,0.0000(3)左片像点坐标改正数V =1.0e-005 *-0.2514,0.3595,-0.0704,-0.2227,0.5448,0.3856,-0.2179,-0.5205 (4)左片外方元素改正结果Xs0 = 4.9997e+003Ys0 = 5.0001e+003Zs0 = 2.0000e+003(5)左片迭代次数W = 5(6)左片外方元素协因素阵Qxx =1.0e+009 *1.3812 0.0062 0.4778 -0.0009 -0.0000 0.00010.0062 2.3416 0.1160 -0.0000 -0.0011 -0.00030.4778 0.1160 0.2659 -0.0003 -0.0001 0.0000-0.0009 -0.0000 -0.0003 0.0000 0.0000 -0.0000-0.0000 -0.0011 -0.0001 0.0000 0.0000 0.00000.0001 -0.0003 0.0000 -0.0000 0.0000 0.0000(7)左片单位权中误差mo =3.1794e-006(8)左片外方元素改正数中误差2.右片计算结果(1)旋转矩阵R = 0.9938 -0.1108 -0.01340.1101 0.9929 -0.04610.0184 0.0325 0.9988(2)右片外方元素改正数Xp =-0.0002,0.0072,-0.0003,0.0000,0.0000,0.0000(3)右片像点坐标改正数V =1.0e-004 *-0.0639,-0.0103,0.0157,-0.0482,-0.0735,0.1193,0.1226,-0.0607(4)右片外方元素改正结果Xs0 = 5.8963e+003Ys0 = 5.0879e+003Zs0 = 2.0299e+003(5)右片迭代次数W = 6(6)右片外方元素协因素阵Qxx =1.0e+009 *1.5207 0.1224 -0.4192 -0.0009 -0.0001 0.00010.1224 2.6049 -0.0578 -0.0001 -0.0013 0.0003-0.4192 -0.0578 0.2084 0.0003 0.0000 -0.0000-0.0009 -0.0001 0.0003 0.0000 0.0000 -0.0000-0.0001 -0.0013 0.0000 0.0000 0.0000 -0.00000.0001 0.0003 -0.0000 -0.0000 -0.0000 0.0000(7)右片单位权中误差mo = 6.7173e-006(8)右片改正数中误差3.前方交会反算的地面摄影测量坐标X =1.0e+003 *5.3846 5.1324 5.4571 5.8154 5.5274Y =1.0e+003 *5.7446 5.0165 5.0414 5.0679 4.2922Z =1.0e+003 *1.8901 1.8638 1.8633 1.8597 1.8368十、实验心得体会经过几个星期的努力,这个当初看似不可能完成的任务终于完成了,我感到很欣慰很有成就感。
摄影测量学实习报告5篇

摄影测量学实习报告摄影测量学实习报告精选5篇(一)实习报告:摄影测量学一、实习目的本次实习的主要目的是通过实际操作,了解摄影测量学的基本原理和方法,掌握航空摄影测量的流程和技术。
二、实习内容1. 学习基本理论知识通过课堂学习,了解摄影测量学的基本原理,学习航空摄影测量的相关知识,包括像空间、像对空间、光束法平差等。
2. 实地观摩航空摄影测量现场参观航空摄影测量实地测量现场,了解航空摄影测量的航摄设备和测量仪器的使用方法,观摩航摄过程,了解数据采集的流程。
3. 学习数据处理软件学习使用摄影测量数据处理软件,包括航空摄影测量数据处理软件和地理信息系统软件,学习数据处理的流程和方法。
4. 实际操作摄影测量针对实际问题,使用航空摄影测量设备进行实地测量,采集数据,并使用数据处理软件进行数据处理和分析,得出测量结果。
三、主要收获通过本次实习,我对摄影测量学有了更深入的了解和认识,掌握了航空摄影测量的基本原理和方法。
我学会了使用航空摄影测量设备进行实地测量,并熟练运用数据处理软件进行数据处理和分析。
在实践中,我进一步了解了数据采集的流程和数据处理的要点,提高了解决实际问题的能力。
四、存在问题在实习过程中,我发现自己在实际操作中出现了一些问题,比如摄影测量设备的操作不熟练,数据处理软件的使用不熟悉等。
这些问题需要进一步加强学习和实践,提高操作的熟练程度。
五、总结通过本次实习,我深入了解了摄影测量学的基本原理和方法,学会了使用航空摄影测量设备进行实地测量,并运用数据处理软件进行数据处理和分析。
这次实习加深了我对摄影测量学的理解,提高了解决实际问题的能力,并为今后的工作打下了坚实的基础。
摄影测量学实习报告精选5篇(二)在摄影测量实习期间,我有机会参与了多个摄影测量项目,并从中学到了许多实践知识和技巧。
以下是我在实习期间的一些心得体会:1. 熟悉测量仪器:在实习开始前,我花了一些时间熟悉常用的测量仪器,例如全站仪、导线仪等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
/*----------------旋转矩阵R-----------------------*/
a[0]=cos(q)*cos(k)-sin(q)*sin(w)*sin(k);
double X[N],Y[N],Z[N];
double x1[N],y1[N];
double m;
double L[2*N];
double XX[6];
double A[2*N][6];
double X0[N],Y0[N],Z0[N],At[6][2*N],result1[6][6],result2[6][1];
{if(q[i][h]==0)
continue;
p=q[k][h]/q[i][h];
for(j=0;j<12;j++)
{q[i][j]*=p;
q[i][j]-=q[k][j];}}
for(i=0;i<n;i++)//将对角线上数据化为1
{ p=1.0/q[i][i];
for(j=0;j<12;j++)
c[1]=-sin(q)*sin(k)+cos(q)*sin(w)*cos(k);
c[2]=cos(q)*cos(w);
/*-----------------像点坐标计算值------------------*/
for(i=0;i<N;i++)
{
X0[i]=a[0]*(X[i]-Xs)+b[0]*(Y[i]-Ys)+c[0]*(Z[i]-Zs);
for(i=0;i<N;i++)
{
A[2*i][0]=((a[0]*f+a[2]*(x[i]-x0)))/Z0[i];
A[2*i][1]=((b[0]*f+b[2]*(x[i]-x0)))/Z0[i];
A[2*i][2]=((c[0]*f+c[2]*(x[i]-x0)))/Z0[i];
A[2*i][3]=(y[i]-y0)*sin(w)-((x[i]-x0)*((x[i]-x0)*cos(k)-y[i]*sin(k))/f+f*cos(k))
*cos(w);
A[2*i][4]=-f*sin(k)-(x[i]-x0)*((x[i]-x0)*sin(k)+(y[i]-y0)*cos(k))/f;
A[2*i][5]=y[i]-y0;
L[2*i]=x[i]-x1[i];
A[1+2*i][0]=((a[1]*f+a[2]*(y[i]-y0)))/Z0[i];
int i,n=0;
double sum=0,m0;
/*---------------输入点地面坐标---------------------*/
X[0]=5083.205;X[1]=5780.02;X[2]=5210.879;X[3]=5909.264;
Y[0]=5852.099;Y[1]=5906.365;Y[2]=4258.446;Y[3]=4314.283;
*cos(w);
A[1+2*i][4]=-f*cos(k)-(y[i]-y0)*((x[i]-x0)*sin(k)+(y[i]-y0)*cos(k))/f;
A[1+2*i][5]=-x[i]+x0;
L[1+2*i]=y[i]-y1[i];
}
/*-------------------解法方程--------------------*/
用矩阵表示为:
具体的流程图框:
是
否否
是
否
是
四、实验源程序:
#include<iostream>
#include<cmath>
using namespace std;
const int N=4;
const int n=6;
/*---------------矩阵相乘---------------------*/
Xs+=XX[0];
Ys+=XX[1];
Zs+=XX[2];
q+=XX[3];
w+=XX[4];
k+=XX[5];
n++;
}
/*----------------旋转矩阵R-----------------------*/
cout<<"迭代次数为:"<<n<<endl;
printf("\n像片外方位元素的解\n");
for(i=0;i<n;i++)//构造高斯矩阵
for(j=0;j<n;j++)
q[i][j]=c[i][j];
for(i=0;i<n;i++)
for(j=n;j<12;j++)
{if(i+6==j)
q[i][j]=1;
else
q[i][j]=0;}
for(h=k=0;k<n-1;k++,h++)//消去对角线以下的数据
二、实验原理:
如图所示,物点A和摄影中心S在地面摄影测量坐标系中的坐标依次是(X,Y,Z)、(XS,YS,ZS);像点a在像空间坐标系中的坐标是(x,y,-f)。
那么由共线条件方程可知:
其中 是只含三个独立参数ψ,ω,κ的九个方向余弦。
在方程中共有6个未知参数 所以有三个不在一条直线上的已知地面点坐标就可以求出像片的这六个外方位元素。由于共线条件方程是非线性方程,为了便于迭代计算,需要把方程用泰勒级数展开,取一次项得到线型表达式,如下:
cout<<"航向顷角q:"<<q<<endl;
cout<<"旁向倾角w:"<<w<<endl;
cout<<"像片旋角k:"<<k<<endl;
cout<<"Xs "<<Xs<<endl;
cout<<"Ys "<<Ys<<endl;
cout<<"Zs "<<Zs<<endl;
cout<<endl;
cout<<"所有坐标已经内置,所以不显示了"<<endl; }
cout<<endl;
/*-----------------设定外方位元素初始值--------------*/
x0=0;y0=0;f=152;m=10000;
Xs=0;Ys=0;Zs=f*m/10000;
q=0;w=0;k=0;
XX[3]=1;
/*------------------迭代计算--------------------------*/
result[i*j_2+j]+=m1[i*j_12+k]*m2[j+k*j_2];
}
return;
}
/*---------------矩阵求逆---------------------*/
void inverse(double c[n][n])
{ int i,j,h,k;
double p;
double q[n][12];
用新的符号表示各偏导数后为
其中(x)、(y)是函数近似值, , 是外方位元素近似值的改正数,它们的系数为函数的偏导数。为了便于推导,令:
=
=
=
那么有
对于系数,其严密算法(以 , 为例)如下:
对于竖直摄影而言,像片的角方位元素都是小值,因而各系数的近似值为:
为了提高精度和可靠性,通常需要测量四个或更多的地面控制点和对应的像点坐标,采用最小二乘平差方法解算。此时像点坐标(x,y)作为观测值,加入相应的偶然误差改正数 , ,可列出每个点的误差方程式:
void mult(double *m1,double *m2,double *result,int i_1,int j_12,int j_2)
{
int i,j,k;
for(i=0;i<i_1;i++)
for(j=0;j<j_2;j++)
{
result[i*j_2+j]=0.0;
for(k=0;k<j_12;k++)
江西理工大学应用科学学院
摄
影
测
量Байду номын сангаас
实
验
报
告
班级:测绘101班
姓名:邬志刚
学号:08090110125
一、实验目的:
掌握空间后方交会和前方交会的原理,根据所给控制点的地面物方坐标以及相应的像点在像平面坐标系中的坐标和同名像点在左右像片上的坐标,利用计算机编程语言实现空间后方交会、前方交会的过程,完成所给立体像对中两张像片各自的6个外方位元素的解求和所给立体像对上5对同名点对应的地面物方点的坐标计算。
Y0[i]=a[1]*(X[i]-Xs)+b[1]*(Y[i]-Ys)+c[1]*(Z[i]-Zs);
Z0[i]=a[2]*(X[i]-Xs)+b[2]*(Y[i]-Ys)+c[2]*(Z[i]-Zs);