空间后交-前交程序设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

空间后交-前交程序设计

(实验报告)

姓名:

班级:

学号:

时间:

空间后交-前交程序设计

一、实验目的

用 C 、VB或MATLAB语言编写空间后方交会-空间前方交会程序

⑴提交实习报告:程序框图、程序源代码、计算结果、体会

⑵计算结果:像点坐标、地面坐标、单位权中误差、外方位元素及其精度

二、实验数据

f=150.000mm,x0=0,y0=0

三、实验思路

1.利用空间后方交会求左右像片的外方位元素

(1).获取m(于像片中选取两点,于地面摄影测量坐标系中选取同点,分别计算距离,距离比值即为m),x,y,f,X,Y,Z

(2).确定未知数初始值Xs,Ys,Zs,q,w,k

(3).计算旋转矩阵R

(4).逐点计算像点坐标的近似值(x),(y)

(5).组成误差方程式

(6).组成法方程式

(7).解求外方位元素

(8).检查是否收敛,即将求得的外方位元素的改正数与规定限差比较,小于限差即终止;否则用新的近似值重复步骤(3)-(7)

2.利用求出的外方位元素进行空间前交,求出待定点地面坐标(1).用各自像片的角元素计算出左、右像片的方向余弦值,组成旋转矩阵R1,R2

(2).根据左、右像片的外方位元素,计算摄影基线分量Bx,By,Bz

(3).计算像点的像空间辅助坐标(X1,Y1,Z1)和(X2,Y2,Z2)

(4).计算点投影系数N1和N2

(5).计算未知点的地面摄影测量坐标

四、实验过程

⑴程序框图

函数AandL

%求间接平差时需要的系数

%%%已知

%a=像点坐标x,b=像点坐标y,f内方位元素主距

%φ=q,ψ=w,κ=k

%像空间坐标系X,Y,Z

%地面摄影测量坐标系Xs,Ys,Zs

function [A1,L1,A2,L2]=AandL(a,b,f,q,w,k,X,Y,Z,Xs,Ys,Zs) %%%%%%%%%%%选择矩阵元素

a1=cos(q)*cos(k)-sin(q)*sin(w)*sin(k);

a2=-cos(q)*sin(k)-sin(q)*sin(w)*cos(k);

a3=-sin(q)*cos(w);

b1=cos(w)*sin(k);

b2=cos(w)*cos(k);

b3=-sin(w);

c1=sin(q)*cos(k)+cos(q)*sin(w)*sin(k);

c2=-sin(q)*sin(k)+cos(q)*sin(w)*cos(k);

c3=cos(q)*cos(w);

%%%%%%%共线方程的分子分母

X_=a1*(X-Xs)+b1*(Y-Ys)+c1*(Z-Zs);

Y_=a2*(X-Xs)+b2*(Y-Ys)+c2*(Z-Zs);

Z_=a3*(X-Xs)+b3*(Y-Ys)+c3*(Z-Zs);

%%%%%%%近似值

x=-f*X_/Z_;

y=-f*Y_/Z_;

%%%%%%%A组成L组成

a11=1/Z_*(a1*f+a3*x);

a12=1/Z_*(b1*f+b3*x);

a13=1/Z_*(c1*f+c3*x);

a21=1/Z_*(a2*f+a3*y);

a22=1/Z_*(b2*f+b3*y);

a23=1/Z_*(c2*f+c3*y);

a14=y*sin(w)-(x/f*(x*cos(k)-y*sin(k))+f*cos(k))*cos(w);

a15=-f*sin(k)-x/f*(x*sin(k)+y*cos(k)); a16=y;

a24=-x*sin(w)-(y/f*(x*cos(k)-y*sin(k))-f*sin(k))*cos(w);

a25=-f*cos(k)-y/f*(x*sin(k)+y*cos(k));

a26=-x;

lx=a-x;

ly=b-y;

%%%%%%%%%组成一个矩阵,并返回

A1=[a11,a12,a13,a14,a15,a16];

A2=[a21,a22,a23,a24,a25,a26];

L1=lx;

L2=ly;

函数deg2dms

%%%%%%%%角度转度分秒

function y=deg2dms(x)

a=floor(x);

b=floor((x-a)*60);

c=(x-a-b/60)*3600;

y=a+(b/100)+(c/10000);

函数dms2deg

%%%%%度分秒转度

function y=dms2deg(x)

a=floor(x);

b=floor((x-a)*100);

c=(x-a-b/100)*10000;

y=a+b/60+c/3600;

函数ok

%%%%%%%%%%%

%%%目的是为了保证各取的值的有效值

%%xy为n*1,a为1*n

function result=ok(xy,a)

format short g

i=size(xy,1);

for n=1:i

o=xy(n)-floor(xy(n,1));

o=round(o*(10^a(n)))/(10^a(n));

xy(n,1)=floor(xy(n,1))+o;

end

format long g

result=xy;

函数rad2dmsxy

%%%%求度分秒表现形式的三个外方位元素,三个角度

function xydms=rad2dmsxy(xy)

[a,b,c,d,e,f]=testvar(xy);

d=deg2dms(rad2deg(d));

e=deg2dms(rad2deg(e));

f=deg2dms(rad2deg(f));

xydms=[a,b,c,d,e,f]';

函数spacehoujiao

%%%%%%%空间后交

%%% f

%%输入p(2*n,1)

%%像点坐标x,y,X,Y,Z,均为(n,1)

function [xy,m,R]=spacehoujiao(p,x,y,f,X,Y,Z)

format long;

%%%%%权的矢量化,这是等精度时的,如果非,将函数参数改为P P=diag(p);

相关文档
最新文档