您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 作业4--空间后方交会
摄影测量作业报告之空间后方交会陈闻亚20080729-1-作业报告空间后方交会专业:测绘工程班级:2008级(1)班姓名:陈闻亚指导教师:陈强2010年4月16日摄影测量作业报告之空间后方交会陈闻亚20080729-2-1作业任务------------------------------------------------------------------------------------32作业思想---------------------------------------------------------------------------------------33作业条件及数据--------------------------------------------------------------------34作业过程---------------------------------------------------------------------------35源程序-----------------------------------------------------------------------------46计算结果---------------------------------------------------------------------------177心得体会与建议-----------------------------------------------------------------------------17摄影测量作业报告之空间后方交会陈闻亚20080729-3-1作业任务计算近似垂直摄影情况下后方交会解。即利用摄影测量空间后方交会的方法,获取相片的6个外方位元素。限差为0.1。2作业思想利用摄影测量空间后方交会的方法求解。该方法的基本思想是利用至少三个一直地面控制点的坐标A(XA,YA,ZA)、B(XB,YB,ZB)C(XC,YC,ZC),与其影像上对应的三个像点的影像坐标a(xa,ya)、b(xb,yb)、c(xc,yc),根据共线方程,反求该相片的外方位元素XS、YS、ZS、φ、ω、κ。3作业条件及数据已知摄影机主距f=153.24mm,四对点的像点坐标与相应的地面坐标列入下表:表1点号像点坐标地面坐标x(mm)y(mm)X(m)Y(m)Z(m)1-86.15-68.9936589.4125273.322195.172-53.40-82.2137631.0831324.51.728.69314.7876.6339100.9724934.982386.50410.4664.4340426.5430319.81757.314作业过程4.1获取已知数据相片比例尺1/m=1:10000,内方位元素f=153.24mm,x0,y0;获取控制点的地面测量坐标Xt、Yt、Zt。4.2量测控制点的像点坐标:本次作业中为已知。见表1。4.3确定未知数的初始值:在近似垂直摄影情况下,胶原素的初始值为0,即φ0=ω0=κ0=0;线元素中,ZS0=H=mf=1532.4m,XS0、YS0的取值可用四个控制点坐标的平均值,即:XS0=144ii1X=38437.00YS0=144ii1Y=89106.624.4计算旋转矩阵R:利用胶原素的近似值计算方向余弦值,组成R阵。4.5逐点计算像点坐标的近似值:利用未知数的近似值按共线方程式计算控制点像点坐标的近似值(x)(y)。4.6组成误差方程:摄影测量作业报告之空间后方交会陈闻亚20080729-4-逐点计算误差方程式的系数和常数项。4.7组成法方程式:计算法方程的系数矩阵ATA与常数项ATL。4.8求解外方位元素:根据法方程,由式X=(AtA)-1ATL解求外方位元素改正数,并与相应的近似值求和,得到外方位元素新的近似值。4.9求解外方位元素:将求得的外方位元素的改正数与规定的限差(0.1)比较,小于限差则计算终止,否则用新的近似值重复第4.4至4.8步骤的计算,知道满足要求为止。5源程序#includestdio.h#includestdlib.h#includemath.hconstdoublePRECISION=1e-5;typedefdoubleDOUBLE[5];intInputData(int&Num,DOUBLE*&Data,double&m,double&f);intResection(constint&Num,constDOUBLE*&Data,constdouble&m,constdouble&f);intInverseMatrix(double*matrix,constint&row);intmain(intargc,char*argv[]){DOUBLE*Data=NULL;intNum;doublef(0),m(0);if(InputData(Num,Data,m,f)){if(Data!=NULL){delete[]Data;}return1;}if(Resection(Num,Data,m,f)){if(Data!=NULL){delete[]Data;}return1;}摄影测量作业报告之空间后方交会陈闻亚20080729-5-if(Data!=NULL){delete[]Data;}printf(解算完毕...\n);do{printf(计算结果保存于\结果.txt\文件中\n请选择操作(输入P打开结果数据,R打开原始数据,其它退出程序):);fflush(stdin);//刷新输入流charorder=getchar();if('P'==order||'p'==order){system(结果.txt);}elseif('R'==order||'r'==order){system(data.txt);}elsebreak;system(cls);}while(1);system(PAUSE);return0;}/***********************************************函数名:InputData*函数介绍:从文件(data.txt)中读取数据,*文件格式如下:*点数m(未知写作0)*内方位元素(fx0y0)*编号xyXYZ*实例:40153.24001-86.15-68.9936589.4125273.322195.172-53.4082.2137631.0831324.51728.693-14.78-76.6339100.9724934.982386.50410.4664.4340426.5430319.81757.31*参数:(in/out)Num(点数),摄影测量作业报告之空间后方交会陈闻亚20080729-6-*(in/out)Data(存放数据),m,f,x0,y0*返回值:int,0成功,1文件打开失败,2控制点个*数不足,3文件格式错误**********************************************/intInputData(int&Num,DOUBLE*&Data,double&m,double&f){doublex0,y0;FILE*fp_input;if(!(fp_input=fopen(data.txt,r))){return1;}fscanf(fp_input,%d%lf,&Num,&m);if(Num4){return2;}fscanf(fp_input,%lf%lf%lf,&f,&x0,&y0);f/=1000;if(m0||f0){return3;}Data=newDOUBLE[Num];double*temp=newdouble[Num-1];doublescale=0;inti;for(i=0;iNum;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){return3;}//单位换算成mData[i][0]/=1000.0;Data[i][1]/=1000.0;}摄影测量作业报告之空间后方交会陈闻亚20080729-7-//如果m未知则归算其值if(0==m){for(i=0;iNum-1;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;return0;}/***********************************************函数名:MatrixMul*函数介绍:求两个矩阵的积,*参数:Jz1(第一个矩阵),row(第一个矩阵行数),*Jz2(第二个矩阵),row(第二个矩阵列数),com(第一个*矩阵列数),(out)JgJz(存放结果矩阵)*返回值:void**********************************************/voidMatrixMul(double*Jz1,constint&row,double*Jz2,constint&line,constint&com,double*JgJz){for(inti=0;irow;i++){for(intj=0;jline;j++){doubletemp=0;for(intk=0;kcom;k++){temp+=*(Jz1+i*com+k)*(*(Jz2+k*line+j));}*(JgJz+i*line+j)=temp;}}}/**********************************************摄影测量作业报告之空间后方交会陈闻亚20080729-8-*函数名:OutPut*函数介绍:向结果.txt文件输出数据*参数:Q协因数阵,m精度,m0单位权中误差,6个外*方位元素,旋转矩阵*返回值:int,0成功,1失败**********************************************/intOutPut(constdouble*&Q,constdouble*&m,constdouble&m0,constdouble&Xs,constdouble&Ys,constdouble&Zs,constdouble&Phi,constdouble&Omega,constdouble&Kappa,constdouble*R){FILE*fp_out;if(!(fp_out=fopen(结果.txt,w))){return1;}FILE*fp_input;if(!(fp_input=fopen(data.txt,r))){return1;}fprintf(fp_out,***************************************************************************************************************************************************\n);fprintf(fp_out,\n空间后方交会程序(C\\C++)\n测绘一班\n学号:20080729\n姓名:陈闻亚\n\n);fprintf(fp_out,***********************************************************************************************
本文标题:作业4--空间后方交会
链接地址:https://www.777doc.com/doc-2685921 .html