摄影测量学空间后交-前交实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学
本科生课程设计(实践)任务书、设计报告(摄影测量与遥感概论)
题目:空间后方交会-前交
院系:地球科学与信息物理学院
班级:测绘1201班
********
学号:**********
*名:***
二零一四年十一月
一、实验目的
通过对数字影像空间后交前交的程序设计实验,要求我们进一步理解和掌握影像外方位元素的有关理论、原理和方法。利用计算机程序设计语言编写摄影测量空间交会软件进行快速确定影响的外方位元素及其精度,然后通过求得的外方位元素求解位置点的地面摄影测量坐标,达到通过摄影测量量测地面地理坐标的目的。
二、实验要求
1.用C、VB、C++或MA TLAB语言编写空间后方交会-空间前方交会程序
2.提交实习报告:程序框图、程序源代码、计算结果、体会
3.计算结果:像点坐标、地面坐标、单位权中误差、外方位元素及其精度
4.完成时间:11月11日前完成
三、实验数据
四、实验思路
➢利用后方交会得出两张相片各自的外方位元素
1)获取已知数据影响比例尺m,,内方位元素x0 、y0 、f ,控制点的地面摄影测量坐标Xtp, Ytp, Ztp
2)量测控制点左片和右片的像点坐标 x,y
3)确定未知数初值 Xs0, Ys0, Zs0, ω,φ,κ(线元素可用控制点均值代替,角元素可用0初始化),即:
∑=
Xtp X 41s0,∑=Ytp Y 4
1
s0,f Z *m s =
ω=0,φ=0,κ=0 4)计算旋转矩阵R
5)利用共线方程逐点计算像点坐标的近似值 6)组成误差方程式并法化 7)解求外方位元素改正数
8)检查迭代是否收敛(改正值是否小于某一特定常数) ➢ 利用解出的外方位元素进行前方交会
1)获取已知数据x0 , y0 , f, XS1, YS1, ZS1,φ1,ω1,κ1 , XS2, YS2, ZS2,φ2,ω2,κ2
2)量测像点坐标 x1,y1 ,x2,y2
3)由外方位线元素计算基线分量BX, BY, BZ
4)由外方位角元素计算像空间辅助坐标 X1, Y1, Z1 , X2, Y2, Z2 5)计算点投影系数 N1 , N2 6)计算地面坐标 XA, YA, ZA
五、实验过程
➢ 程序流程图
此过程完成空间后方交会求解像片的外方位元素,其中改正数小于限差(0.00003,相当于0.1的角度值)为止。在这个过程中采用迭代的方法,是外方位元素逐渐收敛于理论值,每次迭代所得的改正数都应加到上一次的初始值之中。
➢程序中的类与其主要成员、主要函数设计
ControlPointData类:控制点、未知点的点名、地面摄影测量坐标、左右像片坐标Photo类:左右片的内方位元素、外方位元素及其精度
Fileheader类:相片对象、控制点个数、未知点个数、控制点数组、未知点数组Adjustment类:头文件对象、控制点数组、未知点数组、控制点个数、未知点个数、bool LoadData(const CString& strFileName,CString& strData);//读取已知函数
CString* SplitString(CString str,char split, int& iSubStrs);//分割函数void adjustment1(CString &OutData);//后方交会函数
void adjustment2(CString &OutData);//前方交会函数
void SaveData(CString &OutData);//保存结果
➢读取数据文件格式(.txt)
elements of interior orientation,0,0,150.000
GivenControlPoint,4
GCP1,16.012,79.963,-73.93,78.706,5083.205,5852.099,527. 925
GCP2,88.56,81.134,-5.252,78.184,5780.02,5906.365,571.54 9
GCP3,13.362,-79.37,-79.122,-78.879,5210.879,4258.446,46 1.81
GCP4,82.24,-80.027,-9.887,-80.089,5909.264,4314.283,455 .484
UnKnownPoint,5
1,51.758,80.555,-39.953,78.463
2,14.618,-0.231,-76.006,0.036
3,49.88,-0.782,-42.201,-1.022
4,86.14,-1.346,-7.706,-2.112
5,48.035,-79.962,-44.438,-79.736
End Data
➢程序代码
ControlPointData.h
class ControlPointData : public CDialog
{
public:
CString strID;//控制点名
double x1,y1,x2,y2;//左片、右片像点坐标
double Xtp,Ytp,Ztp;//地面摄影测量坐标
double Xs,Ys,Zs;//物方空间坐标
doubleσ;//单位权中误差
bool state;
};
class Photos
{
public:
int x0,y0,f,m;//内方位元素
doubleφ,ω,κ,φ,ω,κ,Xs1,Xs2,Ys1,Ys2,Zs1,Zs2;//外方位元素
doubleσ;//单位权中误差
doubleσXs1,σXs2,σYs1,σYs2,σZs1,σZs2;
doubleσφ,σω,σκ,σφ,σω,σκ;//协因数
Photos(void)
{
x0=0;y0=0;f=0;
}
};
class fileheader
{
public:
Photos photo;//内方位元素
int StationCount;//控制点个数
int OriAngleCount;//测站个数
int UnKnownPointCount;//待定点个数
ControlPointData *StationCoor;//控制点坐标信息
ControlPointData *StationCoorJ;//控制点坐标信息
ControlPointData *UnKnownPoint;//待定点坐标信息
};
Adjustment.h
#pragma once