资源描述:
《单像空间后方交会实习报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摄影测量学单像空间后方交会实习报告11一、实习目的1.掌握空间后方交会的定义和实现算法(1)定义:空间后方交会是以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,φ,ω,κ。(2)算法:由于每一对像方和物方共轭点可列出2个方程,因此若有3个已知地面坐标的控制点,则可列出6个方程,解求6个外方位元素的改正数△Xs,△Ys,△Zs,△φ,△ω,△κ。实际应用中为了提高解算精度,常有多余观测方程,通常是在影像的四个角上选取4个或均匀地选择更多的地面控制点,因而要用最小二乘平差方法进
2、行计算。2.了解摄影测量平差的基本过程(1)获取已知数据。从摄影资料中查取影像比例尺1/m,平均摄影距离(航空摄影的航高)、内方位元素x0,y0,f;获取控制点的空间坐标X,Y,Z。(2)量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。(3)确定未知数的初始值。单像空间后方交会必须给出待定参数的初始值,在竖直航空摄影且地面控制点大体对称分布的情况下,Xs0和Ys0为均值,Zs0为航高,φ、ω、κ的初值都设为0。或者κ的初值可在航迹图上找出或根据控制点坐标通过坐标正反变换求出。(4)计算旋转矩阵R。利用角元素近似值计算方向余弦值,组成R阵。(5)逐点计算像点坐标的近似值。
3、利用未知数的近似值按共线条件式计算控制点像点坐标的近似值(x),(y)。(6)逐点计算误差方程式的系数和常数项,组成误差方程式。(7)计算法方程的系数矩阵ATA与常数项ATL,组成法方程式。(8)解求外方位元素。根据法方程,解求外方位元素改正数,并与相应的近似值求和,得到外方位元素新的近似值。(9)检查计算是否收敛。将所求得的外方位元素的改正数与规定的限差比较,通常对φ,ω,κ的改正数△φ,△ω,△κ给予限差,通常为0.000001弧度,当3个改正数均小于0.000001弧度时,迭代结束。否则用新的近似值重复(4)~(8)步骤的计算,直到满足要求为止。3.通过对提供的试验数据进行计算,输出
4、像片的外方位元素并评定精度。深入理解单片空间后方交会的原理,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。4.实习过程:4.1学习单张像片空间后方交会的基本理论,掌握其基本思想。如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。而单像空间后方交会就是用于测定像片的外方位元素的,它的基本思想是:以单幅影像为基础,从影像所覆盖的地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线方程,解求该影像在航空摄影时刻的外方位元素Xs,Y
5、s,Zs,p,w,k.由于空间后方交会所采用的数学模型共线方程是非线性函数,为了便于外方位元素的解求,首先将其线性化。411.2在纸上绘出空间后方交会的计算机程序框图。为了能够在宏观上指导我们编写程序,我们需要在草稿纸上绘出程序框图。11输入原始数据归算像点坐标x,y计算和确定初值Xs0,Ys0,Zs0,φ0,ω0,κ0组成旋转矩阵R计算(x),(y)和lx,ly逐点组成误差方程式并法化所有点完否?计算改正后的外方位元素解法方程,求未知数改正数未知数改正数<限差否?整理并输出计算结果正常结束否迭代次数小于限差否?否是否输出中间结果和出错信息非正常结束11一、源代码usingSystem;u
6、singSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace单像空间的后方交会{publicclasscalculate{privatedoublej,k,l,Xs,Ys,Zs;//六个外方位元素privatedoublef=28.1539;//主距structpoint//像点和地面点坐标{publicdoublex,y,X,Y,Z;}privatepoint[]p=newpoint[4];//存取控制点的坐标privatedouble[]R=newdouble[9];//旋转矩阵privatedou
7、ble[]a=newdouble[8];//近似值坐标privatedouble[]L=newdouble[8];//误差方程常数项privatedouble[,]A=newdouble[8,6];//误差方程系数项privateintcount=0;publicvoidY(double[]q){for(intn=0;n<4;n++){intm=n*5;Console.WriteLine("请输入第{0}控制点的坐标",