作业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(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
黑磷化
点号
像点坐标
地面坐标
xmm
y(mm)
X(m)
Y(m)
Z(m)
1
-86.15
-68.99
36589.41
25273.32
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
4作业过程
  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= =38437.00
YS0= =89106.62
4.4 计算旋转矩阵R:
  利用胶原素的近似值计算方向余弦值,组成R阵。
4.5 逐点计算像点坐标的近似值:
  利用未知数的近似值按共线方程式计算控制点像点坐标的近似值x)(y
4.6 组成误差方程:
  逐点计算误差方程式的系数和常数项。
4.7 组成法方程式:
  计算法方程的系数矩阵ATA与常数项ATL
4.8 求解外方位元素:
  根据法方程,由式X=AtA-1 ATL解求外方位元素改正数,并与相应的近似值求和,得到外方位元素新的近似值。
4.9 求解外方位元素:
  将求得的外方位元素的改正数与规定的限差0.1比较,小于限差则计算终止,否则用新的近似值重复第4.4至4.8步骤的计算,知道满足要求为止。
5 源程序
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
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("");
  }
  else
    break;
  system("cls");
}while(1);
system("PAUSE");
return 0;
}
/**********************************************
*函数名:InputData   
*函数介绍:从文件()中读取数据,
*文件格式如下:
*点数 m(未知写作0)
* 内方位元素(f x0 y0)
*编号 x y X Y Z
*实例:
4 0
153.24 0 0
1 -86.15 -68.99 36589.41 25273.32 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("","r")))
{
  return 1;
}
fscanf(fp_input,"%d%lf",&Num,&m);

本文发布于:2024-09-24 11:25:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/164449.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计算   坐标   控制点   方位
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议