您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 单像空间后方交会程序《Java版》
本科实验报告课程名称:单像空间后方交会编程实现姓名:李恒松学院:地学学院专业:测绘工程一班学号:20133294指导老师:陈强2015年5月20日-1-目录一、作业任务...............................................................................................................-2-二、计算原理...............................................................................................................-2-三、算法流程...............................................................................................................-6-四、源程序...................................................................................................................-7-五、计算结果...............................................................................................................-7-六、结果分析...............................................................................................................-7-七、心得与体会...........................................................................................................-7-八、附页.......................................................................................................................-7-Java程序................................................................................................................................................................-7--2-一、作业任务已知条件:摄影机主距f=153.24mm,x0=0,y0=0,像片比例尺为1:40000,有四对点的像点坐标与相应的地面坐标如下表。以单像空间后方交会方法,求解该像片的外方位元素。二、计算原理1.获取已知数据。从航摄资料中查取平均航高与摄影机主距;获取控制点的地面测量坐标并转换为地面摄测坐标。2.测量控制点的像点坐标并作系统误差改正。3.确定未知数的初始值。在竖直摄影且地面控制点大体对称分布的情况下,按如下方法确定初始值,即0001,,SSSXYXYZmfZnnn0000式中:m为摄影比例尺分母;n为控制点个数4.用三个角元素的初始值按下式计算各方向余弦值,组成旋转矩阵R123123123aaaRbbbccc其中:点号像点坐标地面坐标x(mm)y(mm)X(m)Y(m)Z(m)1-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-3-123123123coscossinsinsincossinsinsincossincoscossincoscossinsincoscossinsinsinsincossincoscoscosaaabbbccc5.逐点计算像点坐标的近似值。利用未知数的近似值和控制点的地面坐标,带入以下共线方程式,111333222333()()()()()()()()()()()()ASASASASASASASASASASASASaXXbYYcZZxfaXXbYYcZZaXXbYYcZZyfaXXbYYcZZ逐点计算像点坐标的近似值()x、()y,将题目所给数据代入上式可得像点坐标的近似数据。6.逐点计算误差方程式的系数和常数项,组成误差方程式。8685848382817675747372716665646362615655545352514645444342413635343332312625242322211615141312116*8Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa其中-4-xafyfafxyaHyaHfaayafxyafxfaHxaaHfa2622252423222116152214131211)1(0)1(0其他项类似可得。由常数项计算公式:111333222333()()()()()()()()()()()()(1,2,3,4)iSiSiSixiiSiSiSiyiiSiSiSiiSiSiSaXXbYYcZZxflaXXbYYcZZLlaXXbYYcZZyfaXXbYYcZZi将题目所给数据代入上式,可得常数项。7.计算法方程的是系数矩阵TAA和常数项TAL,组成法方程式。LAXV8.解法方程,求得外方位元素的改正数,,,,,SSSdXdYdZddd。LAAAXTT1)(9.用前次迭代取得的近似值,加本次迭代的改正数,计算外方位元素的新值。111111,,,,KKKKKKKKKSSSSSSSSSKKKKKKKKKSSSSSSSSSXXdXYYdYZZdZddd式中:K代表迭代次数。-5-10.将求得的外方位元素改正数与规定的限差比较,若小于限差,则迭代结束。否则用新的近似值重复4~9满足要求为止。11.由误差方程的计算式:01112131415160212223242526xsssysssvaXaYaZaaaxxvaXaYaZaaayy以及单位权中误差的计算式0TVPVr(式中:r表示多余观测数)以及平差中6个参数的协因数阵最终得到参数iX的中误差为0iiixxxQ1()TxxQAA-6-一、算法流程否是否是输入原始数据像点坐标计算,系统误差改正确定外方位元素初始值组成旋转矩阵R逐点组成误差方程式并法化所有像点完否计算改正后的外方位元素计算中误差,输出成果,结束解法方程,求外方位元素改正数外方位元素改正数是否小于限差是结束并提示错误信息迭代次数小于n-7-二、源程序源程序代码请见附页三、计算结果在经过三次迭代之后得到的最终成果如表1所示表1,最终计算结果Xs(米)Ys(米)Zs(米)ψ(弧度)ω(弧度)κ(弧度)39795.4522575952727476.4623852405647572.685987778016-0.0039869235599752880.00211388806645731-0.06757797053971112四、结果分析由计算结果可知在拍摄照片瞬间,摄影中心在地面摄影测量坐标系中的坐标为(39795.452258,27476.462385,7572.685988)(单位:米),航向倾角ψ为-0.003987弧度,旁向倾角ω为0.002114弧度,像片旋角κ为0.067578弧度。表2,精度评定结果参数中误差Xs1.15327223063957Ys1.301244230747318Zs0.5083803266176986ψ1.8602199035719645E-4ω1.6814981476239593E-4κ7.501994950982504E-5五、心得与体会通过这次大作业,我的心得体会以下几点:第一:编程确实是一件非诚艰难的事情,即使整个单像空间后方交会实验的原理非常简单,清晰明了,但是要用编程把它表示出来还是一件非常艰难的事情。我遇到的最大的难点是在矩阵求逆的步骤上,为了解决这个问题。我用了两天的时间,还请教了数学学院的同学,程序里求逆矩阵的方法是来自那位同学的。这次编程也让我对于线性代数中的求逆矩阵的问题理解的更加深刻。第二:在发现问题,解决问题的过程中,我也认识到了自己基础知识的不足,对于Java语言的不熟悉让我在很多常见的bug面前无能为力。以后要加强编程语言的学习。第三:很多东西看似简单,其实细节处才体现出能力。把小的细节处理好,才能有大的作品。六、附页1.Java程序以下第一部分为主程序importjava.util.*;importjava.math.*;-8-publicclassli{publicstaticvoidmain(String[]args){henghengFind=newheng();doublex[][]={{-0.08615,-0.06899},{-0.05340,0.08221},{-0.01478,-0.07663},{0.01046,0.06443}};doubleX[][]={{36589.41,25273.32,2195.17},{37631.08,31324.51,728.69},{39100.97,24934.98,2386.50},{40426.54,30319.81,757.31}};inti,j,num=0;doubleX0[]=newdouble[6];doublef=0.15324;doublea=1/40000.0;doubleR[][]=newdouble[3][3];doubleevaluate_x[]=newdouble[8];doubleA[][]=newdouble[8][6];doubleA_T[][]=newdouble[6][8];doubleL[]=newdouble[8];doublepi=3.1415926535897932;doubleAT_A[][]=newdouble[6][6];doubleinverseAT_A[][]=newdouble[6][6];//inverseAT_A=hengFind.inverse(AT_A,6);doubleresult_v[]=newdouble[8];//用来存放用于计算单位权中误差的v值doublestandard[]=newdouble[6];doubleresultF=0;//用来存放v的转置矩阵doubleresult1[][]=newdouble[6][8];doubleresult2[]=newdouble[6];doublesumXYZ[]=newdouble[3];System.out.println(已知像点坐标为:);for(i=0;i4;i++){for(j=0;j2;j++){if(j==0){
本文标题:单像空间后方交会程序《Java版》
链接地址:https://www.777doc.com/doc-2592953 .html