后方交会求外方位元素
- 格式:docx
- 大小:145.48 KB
- 文档页数:13
单像空间后方交会实习报告一、实习目的单像空间后方交会是摄影测量中确定像片外方位元素的重要方法。
通过本次实习,旨在深入理解单像空间后方交会的基本原理和计算过程,熟练掌握相关软件的操作,提高对摄影测量数据处理的实践能力,并培养解决实际问题的思维和方法。
二、实习原理单像空间后方交会的目的是利用像片上的像点坐标以及相应的地面控制点坐标,通过数学模型求解像片的外方位元素(三个线元素 Xs、Ys、Zs 和三个角元素φ、ω、κ)。
其基本原理基于共线条件方程,即摄影中心、像点和相应的地面点位于同一条直线上。
共线条件方程可以表示为:\\begin{align}x x_0&= f\frac{a_1(X X_s) + b_1(Y Y_s) + c_1(Z Z_s)}{a_3(X X_s) + b_3(Y Y_s) + c_3(Z Z_s)}\\y y_0&= f\frac{a_2(X X_s) + b_2(Y Y_s) + c_2(Z Z_s)}{a_3(X X_s) + b_3(Y Y_s) + c_3(Z Z_s)}\end{align}\其中,\((x,y)\)为像点坐标,\((x_0,y_0)\)为主点坐标,\(f\)为摄影机焦距,\((X,Y,Z)\)为地面点的物方空间坐标,\((X_s,Y_s,Z_s)\)为摄影中心的物方空间坐标,\((a_1,b_1,c_1),(a_2,b_2,c_2),(a_3,b_3,c_3)\)为由角元素φ、ω、κ 构成的旋转矩阵的元素。
三、实习数据本次实习使用了一组航空像片,像片比例尺为 1:5000,焦距为152mm,像主点坐标为\((x_0,y_0)=(5000mm,5000mm)\)。
同时,提供了 6 个均匀分布在像片范围内的地面控制点的物方空间坐标和像点坐标。
四、实习步骤1、数据准备整理地面控制点的物方空间坐标和像点坐标,确保数据的准确性。
输入像片的基本参数,如像主点坐标、焦距等。
空间后方交会实验报告
1 实习目的:
用Visual C++编写一个完整的单片空间后方交会程序,通过对提供的试验数据进行计算,输出像片的外方位元素并评定精度。
深入理解单片空间后方交会的原理,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。
通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。
2实习环境:
2.1硬件环境:window操作系统
2.2软件环境:vc++6.0
略
3实习内容:
利用一定数量的地面控制点,根据共线条件方程求解像片外方位元素:
略
4 数据准备:
4.1 已知航摄仪内方位元素f=153.24mm,Xo=Yo=0。
5实习过程:
5.1学习单张像片空间后方交会的基本理论,掌握其基本思想。
略
5.2在纸上绘出空间后方交会的计算机程序框图。
为了能够在宏观上指导我们编写程序,我们需要在草稿纸上绘出程序框图。
框图如下:
↓
↓
↓
︱
︱
︱
迭
迭
次
数
小↓完
于
限↓
差
否否↓
否︱↓是
︱
输出中间结果和出错信息↓
︱
非正常结束
6. 按照程序框图编写程序。
程序代码如下:必须有注释
7 程序结果显示
(略)
8 实习心得与总结:
略。
摄影测量实习报告-----单张影像空间后方交会程序实习时间2013.5.20-2013.5.24学生班级10测绘(1)班学生姓名房新明学生学号1072143138所在院系矿业工程学院指导老师张会战邵亚琴一.实习目的1.深入理解单张影像空间后方交会的原理,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。
2.利用Visual C++编写一个完整的单张影像空间后方交会程序,通过对提供的试验数据进行计算,输出像片的外方位元素并进行评定精度。
3.通过编写程序实现单张影像空间后方交会计算,掌握非线性方程线性化的过程、相应数据读入与存储的方法以及迭代计算的特点,巩固各类基础课程及计算机课程的学习内容,培养上机调试程序的动手能力,通过对实验结果的分析,增强综合运用所学知识解决专业实际问题的能力。
4、掌握空间后方交会的定义和实现算法(1) 定义:空间后方交会是以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,φ,ω,κ。
(2) 算法:由于每一对像方和物方共轭点可列出2个方程,因此若有3个已知地面坐标的控制点,则可列出6个方程,解求6个外方位元素的改正数△Xs,△Ys,△Zs,△φ,△ω,△κ。
实际应用中为了提高解算精度,常有多余观测方程,通常是在影像的四个角上选取4个或均匀地选择更多的地面控制点,因而要用最小二乘平差方法进行计算。
5、了解空间后方交会的基本过程(1) 获取已知数据。
从摄影资料中查取影像比例尺1/m,平均摄影距离(航空摄影的航高)、内方位元素x0,y0,f;获取控制点的空间坐标Xt,Yt,Zt。
(2) 量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。
(3) 确定未知数的初始值。
单像空间后方交会必须给出待定参数的初始值,在竖直航空摄影且地面控制点大体对称分布的情况下,Xs0和Ys0为均值,Zs0为航高,φ、ω、κ的初值都设为0。
空间后方交会原理.txtゅ你不用一上线看见莪在线,就急着隐身,放心。
莪不会去缠你。
说好的不离不弃现在反而自己却做不到╮单幅航空影像空间后方交会程序设计来源: 摘要:航空影像单像空间后方交会是利用影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像点坐标,根据共线方程,在最小二乘法的原则下,计算航空影像的外方位元素。
本文采用 编译平台和C#语言编写了单像空间后方交会的参数计算程序。
利用相关文献中的实验数据与结果,证明本程序运行良好,参数解算精确,可以满足工程项目要求。
关键词:摄影测量与遥感;外方位元素;共线方程;最小二乘原则;空间后方交会;0 引言确定影像或摄影光束在摄影瞬间的空间位置和姿态的参数,称为影像的外方位元素。
一幅影像的外方位元素包括6 个参数,其中3 个参数线参数,用于描述摄影中心S 相对于物方空间坐标系的位置(X,Y,Z);另外3 个是角元素,用于描述影像面在摄影瞬间的空中姿态。
角元素有三种不同的表达形式:(1)以Y 轴为主轴的φ-ω-κ系统(主轴是在旋转过程中,空间方向不变的一个固定轴):以Y 为主轴旋转φ角,然后绕X 轴旋转ω角,最后围绕Z 轴旋转κ角。
(2)以X 轴为主轴的φ?-ω?-κ?系统:以X 为主轴旋转ω?角,然后绕轴旋转φ?角,最后围绕Z 轴旋转κ?角。
(3)以Z 轴为主轴的A-α-κ系统:以Z 为主轴旋转A 角,然后绕Y 轴旋转α角,最后围绕Z 轴旋转κ角。
本文的角元素系统选择使用第一种表达方式,即φ-ω-κ[1]。
如果知道了每幅影像的6 个外方位元素,就能确定被摄物体与航摄影像的关系。
因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。
目前,从技术方面来说,解决这个问题主要有两种手段:一种是利用雷达、全球定位系统(GPS),惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;另一种是利用影像覆盖范围内一定数量的控制点的空间坐标与摄像坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。
相片的空间后方交会解算-回复相片的空间后方交会解算是大地测量学中的一种测量方法,用来确定摄影测量中的相片位置和相对方位。
这种解算方法非常重要,可以用于制图、地形分析、地貌研究等各种大地测量的应用中。
下面将逐步回答关于相片的空间后方交会解算的问题,希望能够对你有所帮助。
首先,什么是相片的空间后方交会解算呢?相片的空间后方交会解算是指通过观测相片上的像点所对应的地面点的坐标,以及摄影测量的外方位元素(包括摄影基线的长度和方向,摄影机的姿态等),通过一系列的计算方法,确定相片所拍摄的地面点的坐标。
通过这种方法,可以将相片的像点坐标转化为地面点的坐标,从而达到控制相片位置的目的。
接下来,相片的空间后方交会解算有哪些步骤?相片的空间后方交会解算包括以下几个基本步骤:1. 外方位元素的确定:首先需要确定摄影测量中的外方位元素,包括摄影基线的长度和方向,摄影机的姿态等。
这些元素是解算相片空间位置的基础,可以通过测量方法或者其他数据源来确定。
2. 像点的测量:接下来需要对相片上的像点进行测量,确定其位置。
通常使用特定的测量设备,如数字化扫描仪或者像片投影仪,将像点的坐标测量出来。
3. 标定元素的确定:在解算之前,还需要确定相机的内方位元素,包括主距、畸变系数等。
这些元素可以通过相机的标定或者其他方法来确定。
4. 空间后方交会解算:有了上述的基本数据,就可以进行空间后方交会的计算了。
首先,根据已知的外方位元素和内方位元素,将像点的像平面坐标转化为物方空间坐标。
然后,利用解析几何的方法,以及已知的地面控制点坐标,通过空间交会的原理,求解出未知点的坐标。
最后,通过检核和精度评定来评估解算结果的可靠性。
以上就是相片的空间后方交会解算的基本步骤。
相片的空间后方交会解算在大地测量学中有着广泛的应用。
它可以用于测绘制图,制作数字地面模型,地形分析等各类应用。
它还可以应用于地貌研究,通过对不同时间段拍摄的相片进行空间后方交会解算,可以观察地形变化和地表运动等现象。
地球科学与环境工程学院实验报告书一实习任务在LPS中采集4个控制点及两个检查点的像平面坐标及其对应物方坐标;编写空间后方前方交会的程序,利用该程序计算出相片的外方位元素,并且利用内外方位元素解算出两个检查点的物方坐标,并与LPS工作站上的对应坐标相比较。
二实验原理前方交会数学模型及公式后方交会数学模型,公式计算时使用迭代计算附源代码三实验思路及步骤利用后方交会得出两张像片各自的外方位元素1)获取已知数据:从摄影资料中插曲像片比例尺、平均航高、内方位元素以及控制点的地面摄影测量坐标及对应的像点坐标。
2)确定未知数的初始值:在竖直摄影的情况下,胶原素的初始值为0,线元素其中Zs=m*f+∑Z 41,Xs=∑X 41,Ys=∑Z 41。
3) 计算旋转矩阵R 。
4) 逐点计算像点坐标的近似值:利用共线方程。
5) 组成误差方程并法化。
6) 解求外方位元素。
7) 检查计算是否收敛。
利用解求出的外方位元素进行前方交会1) 用各自像片的角元素计算出左右像片的旋转矩阵R1和R2。
2) 根据左右像片的外方位元素计算摄影基线分量Bx,By ,Bz 。
3) 逐点计算像点的空间辅助坐标。
4) 计算投影系数。
5) 计算未知点的地面摄影测量坐标。
6) 重复以上步骤完成所有点的地面坐标的计算。
四 程序框图后方交会程序框图五计算成果由四个地面控制点求出相片外方位元素的解航向倾角:-0.00398694旁向倾角:0.00211388相片旋角:-0.067578两检查点物方坐标分别为:2001 160.561 2127.272 2002 2031.232 2185.930Point ID rX rY rZ2001 -0.8600 -2.8281 1683.90242002 1.4830 -0.0987 2.31812001 670969.5900 114812.4019 1883.9024 22002 671410.2130 123166.4213 1986.0801 2误差:2001 +0.000231 -0.000729 +0.0010822002 -0.000196 -0.000238 +0.000374六心得体会通过本次实习,对于LPS有了更深的了解,操作上也更加熟练,同时在翻译操作手册的工程中,对本专业设计到的某些词汇有了初步的掌握在编写后方交会的程序过程中,对空间后方-前方交会的算法认识的更加深刻,对迭代计算的步骤也更加熟悉。
1 / 13 西南交通大学 摄影测量学课程设计报告
单像空间后方交会 求解外方位元素 2 / 13
目录:
作业任务…………………………………………………………3 计算原理…………………………………………………………3 算法流程…………………………………………………………6 源程序……………………………………………………………7 计算结果…………………………………………………………12 结果分析…………………………………………………………13 心得体会…………………………………………………………13 3 / 13
作业任务: 已知条件 摄影机主距f=153.24mm,x0=0,y0=0, 像片比例尺为1:40000,有四对点的像点坐标与相应的地面坐标如下表。
以单像空间后方交会方法,求解该像片的外方位元素。 计算原理: 如图所示,物点A和摄影中心S在地面摄影测量坐标系中的坐标依次是(X,Y,Z)、(XS,YS,ZS);像点a在像空间坐标系中的坐标是(x,y,-f)。那么由共线条件方程知,
点号 像点坐标 地面坐标 x(mm) y(mm) X(m) Y(m) Z(m) 1 -86.15 -68.99 36589.41 25273.32 2195.17 2 -53.40 82.21 37631.08 31324.51 728.69 3 -14.78 -76.63 39100.97 24934.98 2386.50 4 10.46 64.43 40426.54 30319.81 757.31
)()()()()()()()()()()()(33322203331110ssssssssssssZZcYYbXXaZZcYYbXXafyyZZcYYbXXaZZcYYbXXafxx
4 / 13
其中ai,bi,ci是只含三个独立参数ψ,ω,κ的九个方向余弦。
在方程中共有六个未知参数XS,YS,ZS,ψ,ω,κ,所以有三个不在一条直线上的已知地面点坐标就可以求出像片的这六个外方位元素。由于共线条件方程是非线性方程,为了便于迭代计算,需要把方程用泰勒级数展开,取一次项得到线型表达式,有
用新的符号表示各偏导数后为 ssssss
ssssss
dZZydYYydXXydydydyyydZZxdYYxdXXxdxdxdxxx)(
)( 5 / 13
dadadadZadYadXayydadadadZadYadXaxxssssss262524232221161514131211)()(
其中(x)、(y)是函数近似值,
d
,
sssdZdYdXdd,,,,是外方位元素近似
值的改正数,它们的系数为函数的偏导数。为了便于推导,令 X=)()()(111sssZZcYYbXXa
Y=)()()(222sssZZcYYbXXa Z=)()()(333sssZZcYYbXXa
那么有
sssTsssZZYYXXZZYYXXcbacbacbaZYXR
333222
111
对于系数,其严密算法(以sXx,x为例)如下:
)()()(21322132ZXbZYbZXfZYfbfbXbYbZXYbZbZfZZXXZfx
coscossin)(cos)()(sin)(coscos)(sincos)()(sin)(coscos00000000fyyxxfxxyyfxxf
yyxxyyf
对于竖直摄影而言,像片的角方位元素都是小值,因而各系数的近似值为
)(1)(1)()(031313122xxafaZaZXffaZXaZaZfXXZZXXZfXxsss
6 / 13
xafyfafxyayafxyafxfaHyaHfaaHxaaHfa2622252416152214232221131211),1(,,),1(,,0,0,
为了提高精度和可靠性,通常需要测量四个或更多的地面控制点和对应的像点坐标,采用最小二乘平差方法解算。此时像点坐标(x,y)作为观测值,加入相应的偶然误差改正数xv,yv,可列出每个点的误差方程式
ysssyxsssxldadadadZadYadXavldadadadZadYadXav262524232221
161514131211
用矩阵表示为
26252423222116151413121100,,aaaaaaaaaaaayyxxZYXvvsssyxA
lxV
那么由lAxV )()(T1TlAAAx
算法流程: 7 / 13
➢ 获取已知数据 m, x0 , y0 , f , Xtp, Ytp, Ztp
➢ 量测控制点像点坐标 x,y
➢ 确定未知数初值 Xs0, Ys0, Zs0, 0, 0, 0
➢ 组成误差方程式并法化
➢ 解求外方位元素改正数 ➢ 检查迭代是否收敛 具体的流程程序框图如下:
是 否 否 是
否 是
源程序:
输入原始数据 像点坐标计算,系统误差改正 确定外方位元素初始值
组成旋转矩阵R 逐点组成误差方程式并法化 所以像点完否 解法方程,求外方位元素改正数 计算改正后的外方位元素 外方位元素改正数是否小于限差 输出计算成果,计算结束
迭代次数小于
n
结束并显示错误信息 8 / 13
程序代码:
#include #include using namespace std; const int N=4; const int n=6; /*---------------矩阵相乘---------------------*/ void mult(double *m1,double *m2,double *result,int i_1,int j_12,int j_2) {
int i,j,k; for(i=0;ifor(j=0;j{ result[i*j_2+j]=0.0; for(k=0;kresult[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]; for(i=0;ifor(j=0;jq[i][j]=c[i][j]; for(i=0;ifor(j=n;j<12;j++) {if(i+6==j) q[i][j]=1; else q[i][j]=0;} for(h=k=0;kfor(i=k+1;i{if(q[i][h]==0) continue; p=q[k][h]/q[i][h]; for(j=0;j<12;j++) { q[i][j]*=p; 9 / 13
q[i][j]-=q[k][j]; } } for(h=k=n-1;k>0;k--,h--) // 消去对角线以上的数据 for(i=k-1;i>=0;i--) {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{ p=1.0/q[i][i]; for(j=0;j<12;j++) q[i][j]*=p;} for(i=0;ifor(j=0;jc[i][j]=q[i][j+6]; }
/*---------------矩阵转置---------------------*/ void transpose(double *m1,double *m2,int m,int n) //矩阵转置 { int i,j; for(i=0;ifor(j=0;jm2[j*m+i]=m1[i*n+j]; return; }
void main() { double Xs,Ys,Zs,q,w,k; double a[3],b[3],c[3]; double x0,y0,f; double x[N],y[N]; double X[N],Y[N],Z[N]; double x1[N],y1[N]; double m; double L[2*N]; double XX[6];