空间后方交会的解算
一. 空间后方交会的目的
摄影测量主要利用摄影的方法获取地面的信息,主要是是点位信息,属性信息,因此要对此进行空间定位和建模,并首先确定模型的参数,这就是空间后方交会的目的,用以求出模型外方位元素。
二. 空间后方交会的原理
空间后方交会的原理是共线方程。
共线方程是依据相似三角形原理给出的,其形式如下
111333222333()()()
()()()
()()()()()()A S A S A S A S A S A S A
S A S A S A S A S A S a X X b Y Y c Z Z x f a X X a Y Y a Z Z a X X b Y Y c Z Z y f a X X a Y Y a Z Z -+-+-=--+-+--+-+-=--+-+-
上式成为中心投影的构线方程,
我们可以根据几个已知点,来计算方程的参数,一般需要六个方程,或者要三个点,为提高精度,可存在多余观测,然后利用最小二乘求其最小二乘解。
将公式利用泰勒公式线性化,取至一次项,得到其系数矩阵A ;引入改正数(残差)V ,则可将其写成矩阵形式:
V AX L =-
其中
111333222333[,]()()()()()()()()()()()()()()T
x y A S A S A S x A S A S A S A S A S A S y A S A S A S L l l a X X b Y Y c Z Z l x x x f
a X X a Y Y a Z Z a X X
b Y Y
c Z Z l y y y f
a X X a Y Y a Z Z =-+-+-=-=+-+-+--+-+-=-=+-+-+- 则1()T T X A A A L -=
X 为外方位元素的近似改正数,
由于采用泰勒展开取至一次项,为减少误差,要将的出的值作为近似值进行迭代,知道小于规定的误差
三. 空间后方交会解算过程
1. 已知条件
近似垂直摄影
00253.24mm
x y 0f ===
2. 解算程序
流程图
MATLAB 程序
format long;
s1=xlsread('data.xls');%读取数据
a1=s1(1:4,1:2);%影像坐标
b1=s1(1:4,3:5);%地面摄影测量坐标
a2=s1.*10^-3;%影像坐标单位转化
j1=a2(1,:)-a2(2,:);
j2=j1(1,1)^2+j1(1,2)^2;
lengh_a1=sqrt(j2); %相片某一长度
j1=b1(1,:)-b1(1,:);
j2=j1(1,1)^2+j1(1,2)^2;
lengh_b1=sqrt(j2); %地面对应的长度
m=lengh_b1/lengh_a1;%求出比例尺
n0=0;
p0=0;
q0=0;
x0=mean(b1(:,1));
y0=mean(b1(:,2));
f=153.24*10^-3;
z0=m*f;
x001={x0,x0,x0,x0};
X0=cell2mat(x001)';
y001={y0,y0,y0,y0};
Y0=cell2mat(y001)';
z001={z0,z0,z0,z0};
Z0=cell2mat(z001)';
%初始化外方位元素的值
aa1=cos(n0)*cos(q0)-sin(n0)*sin(p0)*sin(q0);
aa2=-sin(q0)*cos(n0)-sin(n0)*sin(p0)*cos(q0);
aa3=-sin(n0)*cos(p0);
bb1=sin(q0)*cos(p0);
bb2=cos(q0)*cos(p0);
bb3=-sin(p0);
cc1=sin(n0)*cos(q0)+sin(p0)*cos(n0)*sin(q0);
cc2=-sin(n0)*sin(q0)+sin(p0)*cos(q0)*cos(n0);
cc3=cos(n0)*cos(p0);
%计算改正数
XX1=aa1.*(b1(:,1)-X0)+bb1.*(b1(:,2)-Y0)+cc1.*(b1(:,3)-Z0); XX2=aa2.*(b1(:,1)-X0)+bb2.*(b1(:,2)-Y0)+cc2.*(b1(:,3)-Z0); XX3=aa3.*(b1(:,1)-X0)+bb3.*(b1(:,2)-Y0)+cc3.*(b1(:,3)-Z0); lx=a1(:,1)+f.*(XX1./XX3);
ly=a1(:,2)+f.*(XX2./XX3);
l={lx',ly'};
L=cell2mat(l)';
%方程系数
A=[-3.969*10^-5 0 2.231*10^-5 -0.2 -0.04 -0.06899;
0 -3.969*10^-5 1.787*10^-5 -0.04 -0.18 0.08615;
-2.88*10^-5 0 1*10^-5 -0.17 0.03 0.08211;
0 -2.88*10^-5 -1.54*10^-5 0.03 -0.2 0.0534;
-4.14*10^-5 0 4*10^-6 -0.15 -7.4*10^-3 -0.07663;
0 -4.14*10^-5 2.07*10^-5 -7.4*10^-3 -0.19 0.01478;
-2.89*10^-5 0 -1.98*10^-6 -0.15 -4.4*10^-3 0.06443;
0 -2.89*10^-5 -1.22*10^-5 -4.4*10^-3 -0.18 0.01046
];
%L=[-1.28 3.78 -3.02 -1.45 -4.25 4.98 -4.72 -0.385]'.*10^-2; %第一次迭代
X=inv(A'*A)*A'*L;
3.结果
X=
1492.41127406195
-554.401567176194
1425.68660973544
-0.0383847815608609 0.00911624039769785 -0.105416434087641
S=
1492.41127406195
-554.401567176194 1425.68660973544 38436.9616152184 27963.1641162404
-0.105416434087641。