当前位置:文档之家› 作业4--空间后方交会

作业4--空间后方交会

作业4--空间后方交会
作业4--空间后方交会

作业报告

空间后方交会

专业:测绘工程

班级:2008级(1)班姓名:陈闻亚

指导教师:陈强

2010 年 4 月16 日

1 作业任务------------------------------------------------------------------------------------ 3

2 作业思想

--------------------------------------------------------------------------------------- 3 3 作业条件及数据

-------------------------------------------------------------------- 3

4 作业过程--------------------------------------------------------------------------- 3

5 源程序----------------------------------------------------------------------------- 4

6 计算结果---------------------------------------------------------------------------

17

7心得体会与建议----------------------------------------------------------------------------- 17

1 作业任务

计算近似垂直摄影情况下后方交会解。即利用摄影测量空间后方交会的方法,获取相片的6个外方位元素。限差为0.1。

2作业思想

利用摄影测量空间后方交会的方法求解。该方法的基本思想是利用至少三个一直地面控制点的坐标A(X A,Y A,Z A)、B(X B,Y B,Z B)C(X C,Y C,Z C),与其影像上对应的三个像点的影像坐标a(x a,y a)、b(x b,y b)、c(x c,y c),根据共线方程,反求该相片的外方位元素X S、Y S、Z S、φ、ω、κ。

3作业条件及数据

已知摄影机主距f=153.24mm,四对点的像点坐标与相应的地面坐标列入下表:

4作业过程

4.1 获取已知数据

相片比例尺1/m=1:10000,内方位元素f=153.24mm,x0,y0;获取控制点的地面测量坐标X t、Y t、Z t。

4.2 量测控制点的像点坐标:

本次作业中为已知。见表1。

4.3 确定未知数的初始值:

在近似垂直摄影情况下,胶原素的初始值为0,即φ0 = ω0 = κ0=0;线元素中,Z S0=H=mf=1532.4m,X S0、Y S0的取值可用四个控制点坐标的平均值,即:

X S0= 1

4

4

i

i1

X

=

∑=38437.00

Y S0= 1

4

4

i

i1

Y

=

∑=89106.62

4.4 计算旋转矩阵R:

利用胶原素的近似值计算方向余弦值,组成R阵。

4.5 逐点计算像点坐标的近似值:

利用未知数的近似值按共线方程式计算控制点像点坐标的近似值(x)(y)。

4.6 组成误差方程:

逐点计算误差方程式的系数和常数项。

4.7 组成法方程式:

计算法方程的系数矩阵A T A与常数项A T L。

4.8 求解外方位元素:

根据法方程,由式X=(A t A)-1 A T L解求外方位元素改正数,并与相应的近似值求和,得到外方位元素新的近似值。

4.9 求解外方位元素:

将求得的外方位元素的改正数与规定的限差(0.1)比较,小于限差则计算终止,否则用新的近似值重复第4.4至4.8步骤的计算,知道满足要求为止。

5 源程序

#include

#include

#include

const double PRECISION=1e-5;

typedef double DOUBLE[5];

int InputData(int &Num, DOUBLE *&Data,double &m,double &f);

int Resection(const int &Num,const DOUBLE *&Data,const double &m,const double &f);

int InverseMatrix(double *matrix,const int &row);

int main(int argc, char* argv[])

{

DOUBLE *Data=NULL;

int Num;

double f(0),m(0);

if(InputData(Num,Data,m,f))

{

if (Data!=NULL)

{

delete []Data;

}

return 1;

}

if(Resection(Num,Data,m,f))

{

if (Data!=NULL)

{

delete []Data;

}

return 1;

}

if (Data!=NULL)

{

delete []Data;

}

printf("解算完毕...\n");

do{

printf("计算结果保存于\"结果.txt\"文件中\n"

"请选择操作(输入P打开结果数据,R打开原始数据,其它退出程序):");

fflush(stdin); //刷新输入流

char order=getchar();

if ('P'==order || 'p'==order)

{

system("结果.txt");

}

else if ('R'==order || 'r'==order)

{

system("data.txt");

}

else

break;

system("cls");

}while(1);

system("PAUSE");

return 0;

}

/********************************************** *函数名:InputData

*函数介绍:从文件(data.txt)中读取数据,

*文件格式如下:

*点数m(未知写作0)

* 内方位元素(f x0 y0)

*编号x y X Y Z

*实例:

4 0

153.24 0 0

1 -86.15 -68.99 36589.41 25273.3

2 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

*参数:(in/out)Num(点数),

*(in/out)Data(存放数据),m,f,x0,y0

*返回值:int ,0成功,1文件打开失败,2控制点个

*数不足,3文件格式错误

**********************************************/

int InputData(int &Num, DOUBLE *&Data,double &m,double &f) {

double x0,y0;

FILE *fp_input;

if (!(fp_input=fopen("data.txt","r")))

{

return 1;

}

fscanf(fp_input,"%d%lf",&Num,&m);

if (Num<4)

{

return 2;

}

fscanf(fp_input,"%lf%lf%lf",&f,&x0,&y0); f/=1000;

if (m<0 || f<0)

{

return 3;

}

Data=new DOUBLE[Num];

double *temp= new double[Num-1]; double scale=0;

int i;

for (i=0;i

{

//读取数据,忽略编号

if(fscanf(fp_input,"%*d%lf%lf%lf%lf%lf",

&Data[i][0],&Data[i][1],&Data[i][2],

&Data[i][3],&Data[i][4])!=5)

{

return 3;

}

//单位换算成m

Data[i][0]/=1000.0;

Data[i][1]/=1000.0;

}

//如果m未知则归算其值

if (0==m)

{

for (i=0;i

{

temp[i]=(Data[i][2]-Data[i+1][2])/(Data[i][0]-Data[i+1][0])+ (Data[i][3]-Data[i+1][3])/(Data[i][1]-Data[i+1][1]);

scale+=temp[i]/2.0;

}

m=scale/(Num-1);

}

fclose(fp_input);

delete []temp;

return 0;

}

/**********************************************

*函数名:MatrixMul

*函数介绍:求两个矩阵的积,

*参数:Jz1(第一个矩阵),row(第一个矩阵行数),

*Jz2(第二个矩阵),row(第二个矩阵列数),com(第一个

*矩阵列数),(out)JgJz(存放结果矩阵)

*返回值:void

**********************************************/

void MatrixMul(double *Jz1,const int &row,double *Jz2, const int &line,const int &com,double *JgJz) {

for (int i=0;i

{

for (int j=0;j

{

double temp=0;

for (int k=0;k

{

temp+=*(Jz1+i*com+k)*(*(Jz2+k*line+j));

}

*(JgJz+i*line+j)=temp;

}

}

}

/**********************************************

*函数名:OutPut

*函数介绍:向结果.txt文件输出数据

*参数:Q协因数阵,m精度,m0单位权中误差,6个外

*方位元素,旋转矩阵

*返回值:int,0成功,1失败

**********************************************/

int OutPut(const double *&Q,const double *&m,const double &m0, const double &Xs,const double &Ys,const double &Zs,

const double &Phi,const double &Omega,

const double &Kappa,const double *R)

{

FILE *fp_out;

if (!(fp_out=fopen("结果.txt","w")))

{

return 1;

}

FILE *fp_input;

if (!(fp_input=fopen("data.txt","r")))

{

return 1;

}

fprintf(fp_out,"**************************************"

"**************************************"

"**************************************"

"*********************************\n");

fprintf(fp_out,"\n空间后方交会程序(C\\C++)\n测绘一班\n"

"学号:20080729\n姓名:陈闻亚\n\n");

fprintf(fp_out,"**************************************"

"**************************************"

"**************************************"

"*********************************\n");

fprintf(fp_out,"已知数据:\n\n已知点数:");

int num;double temp,x,y;

fscanf(fp_input,"%d%lf",&num,&temp);

fprintf(fp_out,"%d\n",num);

fprintf(fp_out,"摄影比例尺(0表示其值位置):");

fprintf(fp_out,"%10.0lf\n",temp);

fprintf(fp_out,"内方位元素(f x0 y0):");

fscanf(fp_input,"%lf%lf%lf",&temp,&x,&y);

fprintf(fp_out,"%10lf\t%10lf\t%10lf\n",temp,x,y);

for (int i=0;i

{

double temp[5];

fscanf(fp_input,"%*d%lf%lf%lf%lf%lf",

&temp[0],&temp[1],&temp[2],&temp[3],&temp[4]);

fprintf(fp_out,"%3d\t%10lf\t%10lf\t%10lf\t%10lf\t%10lf\n", i+1,temp[0],temp[1],temp[2],temp[3],temp[4]);

}

fclose(fp_input);

fprintf(fp_out,"**************************************"

"**************************************"

"**************************************"

"*********************************\n");

fprintf(fp_out,"计算结果如下:\n\n外方位元素:\n"); fprintf(fp_out,"\tXs=%10lf\n",Xs);

fprintf(fp_out,"\tYs=%10lf\n",Ys);

fprintf(fp_out,"\tZs=%10lf\n",Zs);

fprintf(fp_out,"\tPhi=%10lf\n",Phi);

fprintf(fp_out,"\tOmega=%10lf\n",Omega);

fprintf(fp_out,"\tKappa=%10lf\n\n",Kappa);

fprintf(fp_out,"旋转矩阵:\n");

for (i=0;i<3;i++)

{

fprintf(fp_out,"\t");

for (int j=0;j<3;j++)

{

fprintf(fp_out,"%10lf\t",*(R+i*3+j));

}

fprintf(fp_out,"\n");

}

fprintf(fp_out,"\n单位权中误差:%10lf\n\n",m0); fprintf(fp_out,"协因数阵:\n");

for (i=0;i<6;i++)

{

fprintf(fp_out,"\t");

for (int j=0;j<6;j++)

{

fprintf(fp_out,"%20lf\t",*(Q+i*6+j));

}

fprintf(fp_out,"\n");

}

fprintf(fp_out,"\n外方位元素精度:");

for (i=0;i<6;i++)

{

fprintf(fp_out,"%10lf\t",m[i]);

}

fprintf(fp_out,"\n");

fprintf(fp_out,"**************************************"

"**************************************"

"**************************************"

"*********************************\n");

fclose(fp_out);

return 0;

}

/**********************************************

*函数名:Resection

*函数介绍:计算

*参数:Num(点数),Data(数据),m,,f(焦距),x0,y0

*返回值:int,0成功,其它失败

**********************************************/

int Resection(const int &Num,const DOUBLE *&Data,const double &m, const double &f)

{

double Xs=0,Ys=0,Zs=0;

int i,j;

//设置初始值

for (i=0;i

{

Xs+=Data[i][2];

Ys+=Data[i][3];

}

Xs/=Num;

Ys/=Num;

Zs=m*f;

double Phi(0),Omega(0),Kappa(0);

double R[3][3]={0.0};

double *L=new double[2*Num];

typedef double Double6[6]; Double6 *A=new Double6[2*Num]; double *AT=new double[2*Num*6]; double *ATA=new double[6*6]; double *ATL=new double[6]; double *Xg=new double[6];

//迭代计算

do

{

//旋转矩阵

R[0][0]=cos(Phi)*cos(Kappa)-sin(Phi)*sin(Omega)*sin(Kappa);

R[0][1]=-cos(Phi)*sin(Kappa)-sin(Phi)*sin(Omega)*cos(Kappa);

R[0][2]=-sin(Phi)*cos(Omega);

R[1][0]=cos(Omega)*sin(Kappa);

R[1][1]=cos(Omega)*cos(Kappa);

R[1][2]=-sin(Omega);

R[2][0]=sin(Phi)*cos(Kappa)+cos(Phi)*sin(Omega)*sin(Kappa);

R[2][1]=-sin(Phi)*sin(Kappa)+cos(Phi)*sin(Omega)*cos(Kappa);

R[2][2]=cos(Phi)*cos(Omega);

for (i=0;i

{

double X=R[0][0]*(Data[i][2]-Xs)+R[1][0]*(Data[i][3]-Ys)+

R[2][0]*(Data[i][4]-Zs);

double Y=R[0][1]*(Data[i][2]-Xs)+R[1][1]*(Data[i][3]-Ys)+

R[2][1]*(Data[i][4]-Zs);

double Z=R[0][2]*(Data[i][2]-Xs)+R[1][2]*(Data[i][3]-Ys)+

R[2][2]*(Data[i][4]-Zs);

空间后方交会编程实习报告

空间后方交会编程实习报告 一实习目的 用程序设计语言(Visual C++或者C语言)编写一个完整的单片空间后方交会程序,通过对提供的试验数据进行计算,输出像片的外方位元素并评定精度。本实验的目的在于让学生深入理解单片空间后方交会的原理,体会在有多余观测情况下,用最小二乘平差方法编程实现解求影像外方位元素的过程。通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强学生综合运用所学知识解决实际问题的能力。 二实习内容 利用一定数量的地面控制点,根据共线条件方程求解像片外方位元素。 三实习数据 已知航摄仪的内方位元素:f k =153.24mm,x =y =0.0mm,摄影比例尺为1:50000; 4个地面控制点的地面坐标及其对应像点的像片坐标: 四实习原理 如果我们知道每幅影像的6个外方位元素,就能确定被摄物体与航摄影像的关系。因此,如何获取影像的外方位元素,一直是摄影测量工作者所探讨的问题。可采取的方法有:利用雷达、全球定位系统(GPS)、惯性导航系统(INS)以及星相摄影机来获取影像的外方位元素;也可以利用影像覆盖范围内一定数量的控制点的空间坐标与摄影坐标,根据共线条件方程,反求该影像的外方位元素,这种方法称为单幅影像的空间后方交会。 单像空间后方交会的基本思想是:以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,t,w,k。 五实习流程 (1)获取已知数据。从摄影资料中查取影像比例尺1/m,平均摄影距离(航空摄影的航高、内方位元素x0,y0,f;获取控制点的空间坐标Xt,Yt,Zt。 (2)量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。 (3)确定未知数的初始值。单像空间后方交会必须给出待定参数的初始值,在竖直航空摄影且地面控制点大体对称分布的情况下,可按如下方法确定初始值:

空间后方交会的解算

空间后方交会的解算 一. 空间后方交会的目的 摄影测量主要利用摄影的方法获取地面的信息,主要是是点位信息,属性信息,因此要对此进行空间定位和建模,并首先确定模型的参数,这就是空间后方交会的目的,用以求出模型外方位元素。 二. 空间后方交会的原理 空间后方交会的原理是共线方程。 共线方程是依据相似三角形原理给出的,其形式如下 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. 已知条件 近似垂直摄影

近景单张像片空间后方交会

实验一近景单张像片空间后方交会 一、实验目的 通过单张像片空间后方交会算法编程,掌握空间后方交会的基本原理和基本步骤,为近景摄影测量解析处理方法打下理论基础。 二、实验内容 利用C++编程平台,通过给定的单片像点的像点坐标、内方位元素和控制点物方空间坐标,计算出像片的外方位元素。 三、实验步骤: 1、编程流程图:

2、编程代码: #include "iostream" #include"stdio.h" #include "stdlib.h" #include #define N 10 using namespace std; void mult(double *m1,double *m2,double *result,int i_1,int j_12,int j_2)//矩阵相乘 { int i,j,k; for(i=0;i

int *is,*js; int i,j,k,l,u,v; double temp,max_v; is=(int *)malloc(n*sizeof(int)); js=(int *)malloc(n*sizeof(int)); if(is==NULL||js==NULL){ printf("out of memory!\n"); return(0); } for(k=0;kmax_v){ max_v=temp; is[k]=i; js[k]=j; } } if(max_v==0.0){ free(is); free(js); printf("invers is not availble!\n"); return(0); } if(is[k]!=k) for(j=0;j

摄影测量后方交会

单张相片后方交会

目录 ●作业任务 (3) ●解算原理 (3) ●具体过程 (4) ●算法描述及程序流程 (4) ●计算结果 (7) ●结果分析 (8) ●心得体会及建议 (8) ●参考文献 (9)

一,作业任务 已知摄影机主距f=153.24mm,四对点的像点坐标与相应地面坐标列入下表: 表1-1 计算近似垂直摄影情况下后方交会解。 二,解算原理 【关键词1】中心投影构像方程 在摄影测量学中,最重要的方程就是中心投影构像方程(图2-1)。这个方程 将地面点在地面摄影测量坐标系中的坐标(物方坐标)和地面点对应像点的像平 面坐标联系起来。在解析摄影测量与数字摄影测量中是极其有用的。在以后将要 学习到的双像摄影测量光束法、解析测图仪原理及数字影像纠正等都要用到该 式。 图2-1 在上述公式中:x和y分别为以像主点为原点的像点坐标,相应地面点坐标 为X,Y,Z,相片主距f以及外方位元素Xs,Ys,Zs,ψ,ω,κ。 而在此次作业中,就是已知四个地面控制点的坐标以及其对应的像点坐标, 通过间接平差原理来求解此张航片的外方位元素。 【关键词2】间接平差 在一个平差问题中,当所选的独立参数X的个数等于必要观测值t时,可将 每个观测值表达成这t个参数的函数,组成观测方程,然后依据最小二乘原理求 解,这种以观测方程为函数模型的平差方法,就是间接平差方法 间接平差的函数模型为: 随机模型为: 平差准则为:VtPV=min 【关键词3】单像空间后方交会 利用至少三个已知地面控制点的坐标A(Xa,Ya,Za)、B(Xb,Yb,Zb)、Z(Xc,

Yc,Zc),与其影像上对应的三个像点的影像坐标a(xa,ya)、b(xb,yb)、c(xc,yc),根据共线方程,反求该像点的外方位元素Xs,Ys,Zs,ψ,ω,κ。这种解算方法是以单张像片为基础,亦称单像空间后方交会。 在此次作业中,就是已知四个控制点在地面摄影测量坐标系中的坐标和对应的像点坐标。由此可以列出8个误差方程,存在两个多余观测数,则n=2。故可利用间接平差里,依据最小二乘法则,进行求解。由于共线条件方程是非线性函数模型,为了便于计算,需把非线性函数表达式用泰勒公式展开成现行形式,即“线性化”。而又因为仅取泰勒级数展开式的一次项,未知数的近似值改正是粗略的,所以必须计算采用逐渐趋近法,解求过程需要反复趋近,直至改正值小于限差为止。 三,具体过程 1,获取已知点数据:从摄影资料中查取像片比例尺1/m,平均航高,内方元素x0,y0,f;从外业测量成果中,获取控制点的地面测量坐标Xt,Yt,Zt,并转换成摄影测量坐标X,Y,Z。 2,量测控制点的像点坐标:将控制点标刺在像片上,利用立体坐标量测仪量测控制点的像框坐标,并经像点坐标改正,得到像点坐标x,y。 3,确定未知数的初始值:在竖直摄影测量情况下,角元素的初始值为0,及ψ=ω=κ=0; 线元素中,Zso =m*f+(Z[0]+Z[1]+Z[2]+Z[3])/4,Xso,Yso的取值可用四个角点上制点坐标的平均值,即:Xso=(X[0]+X[1]+X[2]+X[3])/4;Yso=(Y[0]+Y[1]+Y[2]+Y[3])/4;4,计算旋转矩阵R:利用角元素的近似值计算方向余弦,组成R阵。公式如下:R[0][0]=cos(ψ)*cos(k)-sin(ψ)*sin(w)*sin(k); R[0][1]=-cos(ψ)*sin(k)-sin(ψ)*sin(w)*cos(k); R[0][2]=-sin(ψ)*cos(w); R[1][0]=cos(w)*sin(k); R[1][1]=cos(w)*cos(k); R[1][2]=-sin(w); R[2][0]=sin(ψ)*cos(k)+cos(ψ)*sin(w)*sin(k); R[2][1]=-sin(ψ)*sin(k)+cos(ψ)*sin(w)*cos(k); R[2][2]=cos(ψ)*cos(w); 5,逐点计算像点坐标的近似值:利用未知数的近似值按共线方程计算控制点像点坐标的近似值(x)、(y); 6,组成误差方程式:参照教材(5-8)式、(5-9b)式、(5-4)式逐点计算误差方程的系数阵和常数项。 7,组成法方程:计算法方程的系数矩阵与常数项。 8,解求外方位元素:根据法方程,按间接平差原理解求外方位元素改正值,并与相应的近似值求和,得到外方位元素的新的近似值。 9,检查计算是否收敛:将求得的外方位元素的改正值与规定的限差比较,小于限差则计算终止,否则用新的近似值重复第4至第8步骤计算,直至满足要求为止。 四,算法描述及程序流程。 算法描述(图4-1):

全站仪后方交会法步骤和高程测量步骤

全站仪后方交会法步骤和 高程测量步骤 Revised final draft November 26, 2020

1、角度测量(angleobservation) (1)功能:可进行水平角、竖直角的测量。 (2)方法:与经纬仪相同,若要测出水平角∠AOB,则: 1)当精度要求不高时: 瞄准A点——置零(0SET)——瞄准B点,记下水平度盘HR的大小。 2)当精度要求高时:——可用测回法(methodofobservationset)。 操作步骤同用经纬仪操作一样,只是配置度盘时,按“置盘”(HSET)。 2、距离测量(distancemeasurement) PSM、PPM的设置——测距、测坐标、放样前。 1)棱镜常数(PSM)的设置。 一般:PRISM=0(原配棱镜),-30mm(国产棱镜) 2)大气改正数(PPM)(乘常数)的设置。 输入测量时的气温(TEMP)、气压(PRESS),或经计算后,输入PPM的值。 (1)功能:可测量平距HD、高差VD和斜距SD(全站仪镜点至棱镜镜点间高差及斜距) (2)方法:照准棱镜点,按“测量”(MEAS)。 3、坐标测量(coordinatemeasurement) (1)功能:可测量目标点的三维坐标(X,Y,H)。 (2)测量原理任意架仪器,先设置仪器高为0,棱镜高是多少就是多少,棱镜拿去直接放在已知点上测高差,测得的高差为棱镜头到仪器视线的高差,当然,有正有负了,然后拿出计算器用已

知点加上棱镜高,再加上或减去(因为有正有负)测得的高差就是仪器的视线高啊,因为仪器高为0,所以这个数字就是你的测站点高程,进测站点把它改成这个数字就行了,改完测站点了一般情况下都要打一下已知点复核一下。。。 若输入:方位角,测站坐标(,);测得:水平角和平距。则有: 方位角: 坐标: 若输入:测站S高程,测得:仪器高i,棱镜高v,平距,竖直角,则有: 高程: (3)方法: 输入测站S(X,Y,H),仪器高i,棱镜高v——瞄准后视点B,将水平度盘读数设置为——瞄准目标棱镜点T,按“测量”,即可显示点T的三维坐标。 4、点位放样(Layout) (1)功能:根据设计的待放样点P的坐标,在实地标出P点的平面位置及填挖高度。 (2)放样原理 1)在大致位置立棱镜,测出当前位置的坐标。 2)将当前坐标与待放样点的坐标相比较,得距离差值dD和角度差dHR或纵向差值ΔX和横向差值ΔY。 3)根据显示的dD、dHR或ΔX、ΔY,逐渐找到放样点的位置。

单像空间后方交会和双像解析空间后方-前方交会的算法程序实现

单像空间后方交会和双像解析空间后方-前 方交会的算法程序实现 遥感科学与技术 摘要:如果已知每张像片的6个外方位元素,就能确定被摄物体与航摄像片的关系。因此,利用单像空间后方交会的方法,可以迅速的算出每张像片的6个外方位元素。而前方交会的计算,可以算出像片上点对应于地面点的三维坐标。基于这两点,利用计算机强大的运算能力,可以代替人脑快速的完成复杂的计算过程。 关键词:后方交会,前方交会,外方位元素,C++编程 0.引言: 单张像片空间后方交会是摄影测量基本问题之一,是由若干控制点及其相应像点坐标求解摄站参数(X S,Y S,ZS,ψ、ω、κ)。单像空间后方交会主要有三种方法:基于共线条件方程的平差解法、角锥法、基于直接线性变换的解法。而本文将介绍第一种方法,基于共线条件方程反求象片的外方位元素。 而空间前方交会先以单张像片为单位进行空间后方交会,分别求出两张像片的外方位元素,再根据待定点的一对像点坐标,用空间前方交会的方法求解待定点的地面坐标。可以说,这种求解地面点的坐标的方法是以单张像片空间后方交会为基础的,因此,单张像片空间后方交会成为解决这两个问题以及算法程序实现的关键。

1.单像空间后方交会的算法程序实现: (1)空间后方交会的基本原理:对于遥感影像,如何获取像片的外方位元素,一直是摄影测量工作者探讨的问题,其方法有:利用雷达(Radar)、全球定位系统(GPS)、惯性导航系统(I N S)以及星像摄影机来获取像片的外方位元素;也可以利用一定数量的地面控制点,根据共线方程,反求像片的外方位元素,这种方法称为单像空间后方交会(如图1所示)。 图中,地面坐标X i、Yi、Zi和对应的像点坐标x i、yi是已知的,外方位元素XS、Y S、ZS(摄站点坐标),ψ、ω、κ(像片姿态角)是待求的。 (2)空间后方交会数学模型:空间后方交会的数学模型是共线方程, 即中心投影的构像方程: 式中X、Y、Z是地面某点在地面摄影测量坐标系中的坐标,x,y是该地面点在像片上的构像点的像片坐标,对 于空间后方交会而言它们是已知的,还有主距f是已知的。而9个方向余弦a 1,a 2,a3;b1,b 2,b 3;c 1,c2,c 3是未知的,具体表达式可以取

摄影测量学后方交会matlab实习报告

摄影测量原理 单张影像后方交会实习

目录 一实习目的 (3) 二实习原理 (3) 1. 间接平差 (3) 2. 共线方程 (3) 3. 单向空间后方交会 (4) 三计算流程 (4) 1. 求解步骤 (4) 2.计算机框图 (4) 四程序实现 (5) 五结果分析 (6) 1.外方位元素 (6) 2.误差 (6) 3.旋转矩阵R (7) 六实习体会 (7) 1. 平台的选择 (7) 2.问题的解决 (7) 3.心得体会 (8) 七代码展示 (8)

一实习目的 为了增强同学们对后方交会公式的理解,培养同学们对迭代循环编程的熟悉感,本次摄影测量课间实习内容定为用C语言或其他程序编写单片空间后方交会程序,最终输出像点坐标、地面坐标、单位权中误差、外方位元素及其精度。 已知四对点的影像坐标和地面坐标如下。内方位元素fk=153.24mm,x0=y0=0。 本次实习,我使用了matlab2014进行后方交会程序实现。结果与参考答案一致,精度良好。 二实习原理 题干中有四个控制点在地面摄影测量坐标系中的坐标和对应的像点坐标,由此可列出8个误差方程,存在2个多余观测(n=2)。故可利用间接平差的最小二乘法则求解。 由于共线方程是非线性函数模型,为了方便计算,需要将其“线性化”。但如果仅取泰勒级数展开式的一次项,未知数的近似值改正是不精确的。因此必须采用迭代趋近法计算,直到外方位元素的改正值小于限差。 1.间接平差 间接平差为平差计算最常用的方法。在确定多个未知量的最或然值时,选择它们之间不存在任何条件关系的独立量作为未知量组成用未知量表达测量的函数关系、列出误差方程式,按最小二乘法原理求得未知量的最或然值的平差方法。 在一个间接平差问题中,当所选的独立参数X个数与必要观测值t个数相等时,可将每个观测值表达成这t个参数的函数,组成观测方程。 函数模型为:L = BX + d。 2.共线方程 共线方程是中心投影构像的数学基础,也是各种摄影测量处理方法的重要理论基础。 式中: x,y 为像点的像平面坐标; x0,y0,f 为影像的内方位元素; XS,YS,ZS 为摄站点的物方空间坐标; XA,YA,ZA 为物方点的物方空间坐标; ai,bi,ci (i = 1,2,3)为影像的3 个外方位角元素组成的9 个方向余弦。

全站仪后方交会操作过程

全站仪放样,作为施工过程中一项重要环节,对技术员已上升为必须擅长的仪器操作内容。全站仪建站一般有两种方法,即极坐标法建站和后方交会法建站。现以尼康全站仪为例,讲述全站仪后方交会法建站、放样全过程。(其他品牌全站仪可参考进行) 一、建站 1.将仪器架于两已知点均可通视,且可完全看到放样目标点位置的高处。尽量保证视线夹角在60度左右,仪器架设高度适中,三脚架腿踩实,不可出现放样过程中架腿松动现象。(注意:整个放样过程中仪器附近不应有人来回走动,且放样人员应尽量站在一点不动,减少因人员走动导致仪器震动偏移。) 2.固定仪器,上下松动架腿大致调整圆水准器气泡基本居中,按下电源键开机,上下左右转动一下,按下“0”键,进入精平模式。 将水准管放于平行于两螺旋连线方向,关注屏幕上数值,“”过大,便同时向内或向外转动平行方向两螺旋至数值符合要求(一般数值处于5"以内即可);“”过大,便左转或右转垂直方向螺旋至数值符合要求。旋转60度,检查,若仍有些许偏差,再按上述调整。再旋转60度继续检查至完成。 3.按下“确定”键记录,按“建站”键进入建站模式,选择“后方交会法”按“确定”。①若全站仪内已有建站点坐标,可在“PT”栏输入点名(“MODE”键可切换数字与字母),按“确定”键自动跳出坐标,再输入棱镜高(本项目为1.35m和1.2m两种);②若全站仪内无建站点坐标,于“PT”处按“确定”键进入坐标输入界面,XYZ

输完后,按“确定”回到界面,再输入仪器高。 CD数值暂时不输,按“确定”跳过进而记录,进入瞄准后视点1界面,视线内横竖丝卡住棱镜头“横竖尖头”(一般要求:竖向从镜杆底部瞄起,再翻转上去;横向以卡住两边尖为准),瞄准后,点击“测量1”(一般仪器内部设置“测量1”为棱镜模式且双频,“测量2”为免棱镜模式且单频,具体设置可内部调节变动)测量,待响两声后,在不转动仪器前按“确定”键记录,重复“PT”输入点坐标和棱镜高进行后视点2的瞄准,按“测量1”测量(若发现测量时后视瞄准有移动,再瞄准再按“测量1”测量)。 4.确定无误后,按“确定”键记录,自动开始计算建站误差,一般要求建站误差在5mm以内。(考虑仪器自身状态和其他情况,计算出结果有几种不正常情况:①建站误差过大,处理办法为按一次“ESC 键”返回测量后视点2,再次瞄准,测量,再计算,若还是很大,重新建站;②出现“输入第三个点”,处理办法为检查输入点坐标是否输入有误,确定无误,再次测量,若不行,重新建站) 建站误差符合要求后,按“确定”键记录,重新输入点名,其他可按“确定”或“”键跳过,最后“确定”键完成建站。 二、放样 点击“放样”键,按“确定”或“”键跳过界面,至下一个坐标输入界面,输入坐标,瞄准,“测量1”测量,按指示告知架镜人员左右前后移动至定点位置,通知定点。 一次“ESC”键返回,再按“确定”或“”键跳过界面,进入下

后方交会在施工测量中的应用与分析(图文)

后方交会在施工测量中的应用与分析(图文) 中得到了广泛的应用,该工程为一等工程,工程规模为大一型、设计洪水位标冷为100年一遇,抗震烈度为6度。该工程是一座以航运、发电和改善哈尔滨市水环境为主,同时具有交通、水产养殖和旅游等综合功能的低水头航电枢纽工程。 问题的提出:在大顶子山航电枢纽工程的施工控制网加密过程中,受到地理条件的限制,首级控制网点之间相互不通视或通视条件不好,为此笔者采用了后方交会的办法解决了施测过程中遇到的困难,在实际生产过程中取得了很好的效果。 一、观测方法与基本原理 结合现场实际情况,在首级控制网的基础上,布设了加密控制网。根据松花江大顶子山航电枢纽厂房、泄洪闸、船闸土建工程所处的施工部位,本着便于整体控制,易于保存的原则,以首级控制网为基础,在施工区周围布设了JK01、JK02、JK03、JK04四个加密点。这些加密点,分布均匀,通视条件好,地基稳定且不易被破坏,对整个施工区域可以进行全方位的观测。加密控制网布设原则以首级控制点为基础,并按二等的施测方安案做了一条闭合导线。 由于首级控制点江南SN01、SN02、SN03、02-1之间互不通视,江北SN04、SN05互不通视。受地形、通视条件的限制,采取边角后方交会的方法,加密了JK01点、JK02点,再由SN02-Jk01起算,复核JK02,在布网过程中,为了保证精度,在不同的测站使用不同仪器和由不同人

员观测,采取了增加多余观测、增加测回数、强制归心等措施,后视SN01 、SN02、02-1,使用徕卡TCR1800全站仪,观测9个测回,经过计算JK01点的误差为2.3mm,达到二等的精度要求。JK01与JK02、JK03 、JK04、SN02构成一条闭合导线。 精度指标严格执法《水利水电工程施工测量规范》(DL/T5173-2003)中二等控制网的技术要求。Mb1.0、Mp(5~7)mm(注:Mb:测量角中误差;Mp:平面控制网点的点位中误差)。 使用仪器及观测方法。使用仪器为瑞士徕佧TCR1800系列全站仪,新建控制点采用具有强制归心装置的混凝土观测墩,水平角观测采用测回法,施测9个测回,同测回盘左、盘右所得角值较差小于4,半测回归零差小于6,同方向各测回互差小6;2C值互差小于9,距离观测采用电磁波测距(往返测),并进行了温度和气压修正。 二、精度计算与分析 1、平面部分精度计算,边角后方交会法测量测站点的精度估算公式为: {[1+(sin2)/(K2-sin2)]m2s+[1+(cos2)/(K2-sin2)] 2(s2m2/2)} =2.3mm(5~7)mm 其中:Mp JK01为测站点JK01的点位中误差,单位为mm =270611.4722 K=363.9389273/363.9341726=1.000013065 ms=0.0012855m S=652.166462 M=0.0392 =206265

后方交会

后方交会-解释是工程测量中一种比较常用的一种测量方法.主要是通过两个或多已知点测量一个未知点. 测角定位-正文利用测角仪器观测角度,以确定被测点位置的一种方法。一般观测两个角,则有两条位置线,两线交点即为被测点位置。在海洋测量中,测角定位通常使用的方法有:后方交会法,一般使用三标两角法,有时使用四标三角法,即在被测点上使用测角仪器观测3个或4个已知目标之间的夹角来确定点位;前方交会法,在两个或两个以上已知点上用测角仪器同时观测各已知点到某一被测点的夹角来确定点位;侧方交会法,综合使用后方交会法和前方交会法来实现定位的方法。另外,还有一距离一方位法,也是通过测角测定方位和距离实现定位的。因为测角仪器大部分是目视光学仪器,所以作用距离近,只适于近岸测量使用。 控制测量-正文在一定的区域内为地形测图或工程测量建立控制网(区域控制网)所进行的测量工作。分为平面控制测量和高程控制测量。平面控制网与高程控制网一般分别单独布设,也可以布设成三维控制网。 控制网具有控制全局,限制测量误差累积的作用,是各项测量工作的依据。对于地形测图,等级控制是扩展图根控制的基础,以保证所测地形图能互相拼接成为一个整体。对于工程测量,常需布设专用控制网,作为施工放样和变形观测的依据。 平面控制网常用三角测量、导线测量、三边测量和边角测量等方法建立。 三角测量是建立平面控制网的基本方法之一。但三角网(锁)要求每点与较多的邻点相互通视,在隐蔽地区常需建造较高的觇标。 导线测量布设简单,每点仅需与前后两点通视,选点方便,特别是在隐蔽地区和建筑物多而通视困难的城市,应用起来方便灵活。随着电磁波测距仪的发展,导线测量的应用日益广泛。 三边测量要求丈量网中所有的边长。应用电磁波测距仪测定边长后即可进行解算。此法检核条件少,推算方位角的精度较低。 边角测量法既观测控制网的角度,又测量边长。测角有利于控制方向误差,测边有利于控制长度误差。边角共测可充分发挥两者的优点,提高点位精度。在工程测量中,不一定观测网中所有的角度和边长,可以在测角网的基础上加测部分边长,或在测边网的基础上加测部分角度,以达到所需要的精度。 小三角测量是在小测区建立平面控制网的一种方法,它多用于小测区的首级平面控制或三、四等三角网以下的加密,作为扩展直接用于地形测图的图根控制网(点)的基础。此外,交会定点法也是加密平面控制点的一种方法。在2个以上已知点上对待定点观测水平角,而求出待定点平面位置的,称为前方交会法;在待定点对3个以上已知点观测水平角,而求出待定

全站仪后方交会法步骤和高程测量步骤

1、角度测量(angle observation) (1)功能:可进行水平角、竖直角的测量。 (2)方法:与经纬仪相同,若要测出水平角∠AOB ,则: 1)当精度要求不高时: 瞄准A 点——置零(0 SET )——瞄准B 点,记下水平度盘HR 的大小。 2)当精度要求高时:——可用测回法(method of observation set )。 操作步骤同用经纬仪操作一样,只是配置度盘时,按“置盘”(H SET )。 2、距离测量(distance measurement ) PSM 、PPM 的设置——测距、测坐标、放样前。 1)棱镜常数(PSM )的设置。 一般:PRISM=0 (原配棱镜),-30mm (国产棱镜) 2)大气改正数(PPM )(乘常数)的设置。 输入测量时的气温(TEMP )、气压(PRESS ),或经计算后,输入PPM 的值。(1)功能:可测量平距HD 、高差VD 和斜距SD (全站仪镜点至棱镜镜点间高差及斜距) (2)方法:照准棱镜点,按“测量”(MEAS )。 3、坐标测量(coordinate measurement ) (1)功能:可测量目标点的三维坐标(X ,Y ,H )。 (2)测量原理任意架仪器,先设置仪器高为0,棱镜高是多少就是多少,棱镜拿去直接放在已知点上测高差,测得的高差为棱镜头到仪器视线的高差,当然,有正有负了,然后拿出计算器用已知点加上棱镜高,再加上或减去(因为有正有负)测得的高差就是仪器的视线高啊,因为仪器高为0,所以这个数字就是你的测站点高程,进测站点把它改成这个数字就行了,改完测站点了一般情况下都要打一下已知点复核一下。。。 若输入:方位角,测站坐标(,);测得:水平角和平距。则有: 方位角: 坐标: 若输入:测站S 高程,测得:仪器高i ,棱镜高v ,平距,竖直角,则有: 高程: (3)方法: 输入测站S (X ,Y ,H ),仪器高i ,棱镜高v ——瞄准后视点B ,将水平度盘读数设置为——瞄准目标棱镜点T ,按“测量”,即可显示点T 的三维坐标。 4、点位放样(Layout) (1)功能:根据设计的待放样点P 的坐标,在实地标出P 点的平面位置及填挖高度。(2)放样原理 1)在大致位置立棱镜,测出当前位置的坐标。 2)将当前坐标与待放样点的坐标相比较,得距离差值dD 和角度差dHR 或纵向差值Δ X 和横向差值Δ Y 。 3)根据显示的dD 、dHR 或ΔX 、ΔY ,逐渐找到放样点的位置。 5、程序测量(programs ) (1)数据采集(data collecting) (2)坐标放样(layout) (3)对边测量(MLM)、悬高测量(REM)、面积测量(AREA)、后方交会(RESECTION) 等。

空间后方交会程序

一. 实验目的: 掌握摄影测量空间后方交会的原理,利用计算机编程语言实现空间后方交会外方位元素的解算。 二. 仪器用具及已知数据文件: 计算机windows xp 系统,编程软件(VISUAL C++6.0),地面控制点在摄影测量坐标系中的坐标及其像点坐标文件shuju.txt 。 三. 实验内容: 单张影像的空间后方交会:利用已知地面控制点数据及相应像点坐标根据共线方程反求影像的外方位元素。 数学模型:共线条件方程式: )(3)(3)(3)(1)(1)(1Zs Z c Ys Y b Xs X a Zs Z c Ys Y b Xs X a f x -+-+--+-+--= )(3)(3)(3)(2)(2)(2Zs Z c Ys Y b Xs X a Zs Z c Ys Y b Xs X a f y -+-+--+-+--= 求解过程: (1)获取已知数据。从航摄资料中查取平均航高与摄影机主距;获取控制点的地面测量坐标并转换为地面摄影测量坐标。 (2)量测控制点的像点坐标并做系统改正。 (3)确定未知数的初始值。在竖直摄影且地面控制点大致分布均匀的情况下,按如下方法确定初始值,即: n X X S ∑=0,n Y Y S ∑=0,n Z mf Z S ∑=0 φ =ω=κ=0 式中;m 为摄影比例尺分母;n 为控制点个数。 (4)用三个角元素的初始值,计算个方向余弦,组成旋转矩阵R 。 (5)逐点计算像点坐标的近似值。利用未知数的近似值和控制点的地面 坐标代入共线方程式,逐点计算像点坐标的近似值(x )、(y )。 (6)逐点计算误差方程式的系数和常数项,组成误差方程式。 (7)计算法方程的系数矩阵A A T 和常数项l A T ,组成法方程式。 (8)解法方程,求得外方位元素的改正数dXs ,S dY ,s dZ ,d φ,d ω,d κ。 (9)用前次迭代取得的近似值,加本次迭代的改正数,计算外方位元素 的新值。

后方交会测量步骤

18.后方交会测量 后方交会通过对多个已知点的测量定出测站点的坐 标。 输入值或观测值 输出值 Ni.Ei.Zi:已知点的坐标值No.Eo.Zo:测站点的坐标值 Hi :水平角观测值 Vi :垂直角观测值 Di :距离观测值 已知点(P1) 已知点(P2) 测站点(P0) 已知点(P4) 已知点(P3) BTS-800 通过观测2-10 已知点便可计算出测站点的坐标。 当观测的已知点超过 2 个,计算N、E 坐标时将采用最小二乘法进行平差,并给出平差结果的不确定度。而Z 坐标则通过计算平均值求取。因此,观测的已知点越多,计算所得的坐标精度也就越高。 后方交会测量也可在菜单模式下选取“后方交会”来进行。 使用“后方交会”,已知点输入应按顺时针顺序输入,否则计算结果可能不准确。

49

18.1 测量两已知点求取测站坐标 操作过程操作键 1.在测量模式第三页下按【后交】进入 显示 后方交会测量功能,显示已知点坐标 输入屏幕。 在菜单模式下选取“3.后方交会”也 可以进入后方交会测量 2.输入已知点1 的坐标,每输入一行数据 按【】,输入完成后,照准已知点 1 棱镜,按【测量】进行测量。 3.测量完成后,显示测量结果,并要求输 入已知点棱镜高。【后交】 【测量】 【输入测量已知点1】 N﹤m﹥: E﹤m﹥: Z﹤m﹥: 【后方交会】 S: 557.259m ZA: 97°31′05″ HAR: 351°15′06″ 连续测量模式需按【停止】停止测量。 4.按【确定】,进入已知点2 坐标输入及测 量。 重复2-3 完成已知点2 的输入及测量。 【确定】 50

单像空间后方交会实验报告(c++版)

单像空间后方交会 姓名: 学号: 时间:

目录 一、作业任务 ............................................................................................................... - 3 - 二、计算原理 ............................................................................................................... - 3 - 三、算法流程 ............................................................................................................... - 7 - 四、源程序 ................................................................................................................... - 8 - 五、计算结果 ............................................................................................................... - 8 - 六、结果分析 ............................................................................................................... - 8 - 七、心得与体会 ........................................................................................................... - 8 - 八、附页 ....................................................................................................................... - 8 - 1.c++程序 ........................................................................................................... - 8 - 2.C++程序截图.................................................................................................. - 15 - 3.matlb程序..................................................................................................... - 16 -

全站仪后方交会测量

一、观测方法与基本原理 ?? 结合现场实际情况,在首级控制网的基础上,布设了加密控制网。根据松花江大顶子山航电枢纽厂房、泄洪闸、船闸土建工程所处的施工部位,本着便于整体控制,易于保存的原则,以首级控制网为基础,在施工区周围布设了JK01、JK02、JK03、JK04四个加密点。这些加密点,分布均匀,通视条件好,地基稳定且不易被破坏,对整个施工区域可以进行全方位的观测。加密控制网布设原则以首级控制点为基础,并按二等的施测方安案做了一条闭合导线。 ?? 由于首级控制点江南SN01、SN02、SN03、02-1之间互不通视,江北SN04、SN05互不通视。受地形、通视条件的限制,采取边角后方交会的方法,加密了JK01点、JK02点,再由SN02-Jk01起算,复核JK02,在布网过程中,为了保证精度,在不同的测站使用不同仪器和由不同人员观测,采取了增加多余观测、增加测回数、强制归心等措施,后视SN01 、SN02、02-1,使用徕卡TCR1800全站仪,观测9个测回,经过计算JK01点的误差为2.3mm,达到二等的精度要求。JK01与JK02、JK03 、JK04、SN02构成一条闭合导线。 ?? 精度指标严格执法《水利水电工程施工测量规范》(DL/T5173-2003)中二等控制网的技术要求。Mb<1.0”、Mp<(5~7)mm(注:Mb:测量角中误差;Mp:平面控制网点的点位中误差)。

?? 使用仪器及观测方法。使用仪器为瑞士徕佧TCR1800系列全站仪,新建控制点采用具有强制归心装置的混凝土观测墩,水平角观测采用测回法,施测9个测回,同测回盘左、盘右所得角值较差小于4”,半测回归零差小于6”,同方向各测回互差小6”;2C值互差小于9”,距离观测采用电磁波测距(往返测),并进行了温度和气压修正。二、精度计算与分析 1、平面部分精度计算,边角后方交会法测量测站点的精度估算公式为: ?? {[1+(sin2β)/(K2-sin2β)]m2s+[1+(cos2β)/(K2-sin2β)] 2(s2m2β/ρ2)} ?? =±2.3mm<±(5~7)mm ?? 其中:Mp JK01为测站点JK01的点位中误差,单位为mm ?? β=27”06”11.4722” ?? K=363.9389273/363.9341726=1.000013065

空间后方交会程序

空间后方交会程序

————————————————————————————————作者:————————————————————————————————日期: ?

一. 实验目的: 掌握摄影测量空间后方交会的原理,利用计算机编程语言实现空间 后方交会外方位元素的解算。 二. 仪器用具及已知数据文件: 计算机wind ows xp 系统,编程软件(VI SUA L C ++6.0),地面控 制点在摄影测量坐标系中的坐标及其像点坐标文件shu ju.txt 。 三. 实验内容: 单张影像的空间后方交会:利用已知地面控制点数据及相应像点坐标根据 共线方程反求影像的外方位元素。 数学模型:共线条件方程式: ) (3)(3)(3) (1)(1)(1Zs Z c Ys Y b Xs X a Zs Z c Ys Y b Xs X a f x -+-+--+-+--= ) (3)(3)(3)(2)(2)(2Zs Z c Ys Y b Xs X a Zs Z c Ys Y b Xs X a f y -+-+--+-+--= 求解过程: (1)获取已知数据。从航摄资料中查取平均航高与摄影机主距;获取 控制点的地面测量坐标并转换为地面摄影测量坐标。 (2)量测控制点的像点坐标并做系统改正。 (3)确定未知数的初始值。在竖直摄影且地面控制点大致分布均匀 的情况下,按如下方法确定初始值,即: n X X S ∑=0,n Y Y S ∑=0,n Z mf Z S ∑=0 φ =ω=κ=0 式中;m为摄影比例尺分母;n为控制点个数。 (4)用三个角元素的初始值,计算个方向余弦,组成旋转矩阵R 。 (5)逐点计算像点坐标的近似值。利用未知数的近似值和控制点的地面坐标代入共 线方程式,逐点计算像点坐标的近似值(x )、(y )。 (6)逐点计算误差方程式的系数和常数项,组成误差方程式。 (7)计算法方程的系数矩阵A A T 和常数项l A T ,组成法方程式。 (8)解法方程,求得外方位元素的改正数dXs ,S dY ,s dZ ,d φ,dω,d κ。 (9)用前次迭代取得的近似值,加本次迭代的改正数,计算外方位元素的新值。

单片空间后方交会C#源代码

主方法: private void Cal_Click(object sender, EventArgs e) { string[] lines = RichText.Text.Split('\n'); long m = lines.Length; m = m - 1;//真实数据行数 double[] Coor_x = new double[m];//已知点x坐标 double[] Coor_y = new double[m];//已知点x坐标 double[] Coor_X = new double[m];//已知点X坐标 double[] Coor_Y = new double[m];//已知点Y坐标 double[] Coor_Z = new double[m];//已知点Z坐标 ///赋值 for (int i = 0; i < m; i++) { string[] FJstring = Regex.Split(lines[i+1], ","); Coor_x[i] = 0.001*(Convert.ToDouble(FJstring[0])); Coor_y[i] = 0.001 *( Convert.ToDouble(FJstring[1])); Coor_X[i] = Convert.ToDouble(FJstring[2]); Coor_Y[i] = Convert.ToDouble(FJstring[3]); Coor_Z[i] = Convert.ToDouble(FJstring[4]); } if (textBox_m.Text == "") { MessageBox.Show("请输入参数!"); } if (textBox_m.Text != "") { double M = double.Parse(textBox_m.Text);//比例尺 double f = 0.001 * (double.Parse(textBox_f.Text));//焦距 double x0 = 0.001 * double.Parse(textBox_x0.Text);//内方位元素x0 double y0 = 0.001 * double.Parse(textBox_y0.Text);//内方位元素y0 double X0 = 0, Y0 = 0, Z0 = 0;//外方位坐标元素初始值 double min = (double.Parse(textBox_k.Text));//焦距 double angle1 = 0, angle2 = 0, angle3 = 0;//外方位角元素初始值 for (int i = 0; i < m; i++) {//累加 X0 = Coor_X[i] + X0; Y0 = Coor_Y[i] + Y0;

相关主题
文本预览
相关文档 最新文档