白塞尔大地主题解算课程设计
大地主题解算

大地主题解算一、实验目的:1. 提高运用计算机语言编程开发的能力;2. 加深对大地主题解算计算公式及辅助参数的理解并掌握计算步骤;3. 通过编程语言实现大地主题解算。
二、工具:Windows XP Mode 环境下的Microsoft Visual C++ 6.0三、注意事项:1. 计算所需变量多,容易混淆;2. 正反算函数的编写;3. 函数调用;4. 弧度与角度之间的转化。
四、实验要求:1. 提交报告,实验总结,编写代码;2. 独立编程,调试运行;3. 上交成果:编写思想,编写过程,问题分析,源代码,计算结果;五、编程过程实现:1. 对白塞尔法大地主题解算有一定的了解,并参考教材P148-P150;2. 由于参数较多,而在C语言环境下很多符号无法定义,需要符合要求的定义符号替代书本上那些无法直接在C语言环境下定义的符号来达到实现实验的目的;3. 程序中采用弧度与度分秒之间转换的函数定义与调用,减轻一定的实验麻烦;4. 在C语言环境下,数学函数fabs代替abs起绝对值作用,atan代替arctan 起反函数作用;5. 程序中尤其注意弧度与角度之间转换,在C语言环境下电脑默认为弧度。
六、源程序代码:#include<stdio.h>#include<math.h>double hudu(double,double,double); /*度分秒转换为弧度*/double du(double); /*弧度转换为度*/double fen(double); /*弧度转换为分*/double miao(double); /*弧度转换为秒*/#define PI 3.1415926void main (void){int k;printf("请选择执行正算或者反算,若执行正算,请输入1;若执行反算,请输入2。
\n");scanf("%d",&k);/*正算*/if(k==1) { double bz,lz,az,S,bz2,lz2,az2,B1,L1,A1,B2,L2,A2,bx,by,lx,ly,ax,ay; int bx2,by2,lx2,ly2,ax2,ay2;doublee2,W1,sinu1,cosu1,sinA0,coto1,sin2o1,cos2o1,sin2o,cos2o,A,B,C,r,t,o0,o,g,sinu2,q; /*以度分秒顺序输入数据*/ printf("请输入大地线起点纬度度分秒\n"); scanf("%lf%lf%lf",&bx,&by,&bz); printf("请输入大地线起点经度度分秒\n"); scanf("%lf%lf%lf",&lx,&ly,&lz); printf("请输入大地方位角度分秒\n"); scanf("%lf%lf%lf",&ax,&ay,&az); printf("请输入大地线长度\n"); scanf("%lf",&S); /*调用函数*/ B1=hudu(bx,by,bz); L1=hudu(lx,ly,lz); A1=hudu(ax,ay,az); /*白塞尔大地主题解算*/ e2=0.006693421622966; W1=sqrt(1-e2*sin(B1)*sin(B1)); sinu1=sin(B1)*(sqrt(1-e2))/W1; cosu1=cos(B1)/W1; sinA0=cosu1*sin(A1);coto1=cosu1*cos(A1)/sinu1; sin2o1=2*coto1/(coto1*coto1+1); cos2o1=(coto1*coto1-1)/(coto1*coto1+1);A=6356863.020+(10718.949-13.474*(1-sinA0*sinA0))*(1-sinA0*sinA0);B=(5354.469-8.978*(1-sinA0*sinA0))*(1-sinA0*sinA0);C=(2.238*(1-sinA0*sinA0))*(1-sinA0*sinA0)+0.006;r=691.46768-(0.58143-0.00144*(1-sinA0*sinA0))*(1-sinA0*sinA0);t=(0.2907-0.0010*(1-sinA0*sinA0))*(1-sinA0*sinA0);o0=(S-(B+C*cos2o1)*sin2o1)/A;sin2o=sin2o1*cos(2*o0)+cos2o1*sin(2*o0);cos2o=cos2o1*cos(2*o0)-sin2o1*sin(2*o0);o=o0+(B+5*C*cos2o)*sin2o/A; g=(r*o+t*(sin2o-sin2o1))*sinA0; /*求B2*/ sinu2=sinu1*cos(o)+cosu1*cos(A1)*sin(o);B2=atan(sinu2/(sqrt(1-e2)*sqrt(1-sinu2*sinu2)));/*求L2*/q=atan(sin(A1)*sin(o)/(cosu1*cos(o)-sinu1*sin(o)*cos(A1))); /*判断q*/ if(sin(A1)>0 && tan(q)>0) q=fabs(q);else if(sin(A1)>0 && tan(q)<0) q=PI-fabs(q); else if(sin(A1)<0 && tan(q)<0) q=-fabs(q); else q=fabs(q)-PI; L2=L1+q-g/3600/180*PI; /*求A2*/A2=atan(cosu1*sin(A1)/(cosu1*cos(o)*cos(A1)-sinu1*sin(o))); /*判断A2*/ if(sin(A1)<0 && tan(A2)>0) A2=fabs(A2); else if(sin(A1)<0&& tan(A2)<0) A2=PI-fabs(A2); else if(sin(A1)>0 && tan(A2)>0) A2=PI+fabs(A2); else A2=2*PI-fabs(A2); /*调用函数*/bx2=(int)(du(B2));by2=(int)(fen(B2)); bz2=miao(B2);lx2=(int)(du(L2));ly2=(int)(fen(L2)); lz2=miao(L2); ax2=(int)(du(A2)); ay2=(int)(fen(A2)); az2=miao(A2); printf("大地线终点纬度度分秒分别为:\n%d\n%d\n%lf\n",bx2,by2,bz2); printf("大地线终点经度度分秒分别为:\n%d\n%d\n%lf\n",lx2,ly2,lz2);} /*反算*/ else if(k==2) { printf("终点大地方位角度分秒分别为:\n%d\n%d\n%lf\n",ax2,ay2,az2);doublebz,lz,bz2,lz2,az,az2,B1,L1,B2,L2,S,A1,A2,bx,by,lx,ly,bx2,by2,lx2,ly2;int ax,ay,ax2,ay2; doublee2,W1,W2,sinu1,sinu2,cosu1,cosu2,L,a1,a2,b1,b2,g,g2,g0,r,p,q,sino,coso,o,sinA0,x, t1,t2,A,B,C,y;/*以度分秒顺序输入数据*/ printf("请输入大地线起点纬度度分秒\n"); scanf("%lf%lf%lf",&bx,&by,&bz);printf("请输入大地线起点经度度分秒\n"); scanf("%lf%lf%lf",&lx,&ly,&lz); printf("请输入大地线终点纬度度分秒\n"); scanf("%lf%lf%lf",&bx2,&by2,&bz2); printf("请输入大地线终点经度度分秒\n"); scanf("%lf%lf%lf",&lx2,&ly2,&lz2); /*调用函数*/B1=hudu(bx,by,bz); L1=hudu(lx,ly,lz); B2=hudu(bx2,by2,bz2); L2=hudu(lx2,ly2,lz2); /*白塞尔大地主题解算*/ e2=0.006693421622966; W1=sqrt(1-e2*sin(B1)*sin(B1)); W2=sqrt(1-e2*sin(B2)*sin(B2)); sinu1=sin(B1)*sqrt(1-e2)/W1; sinu2=sin(B2)*sqrt(1-e2)/W2; cosu1=cos(B1)/W1; cosu2=cos(B2)/W2; L=L2-L1; a1=sinu1*sinu2; a2=cosu1*cosu2;b1=cosu1*sinu2; b2=sinu1*cosu2; /*逐次趋近法求解A1*/g0=-662.904266/3600*PI/180;g=0; r=L; while(1){p=cosu2*sin(r); q=b1-b2*cos(r); A1=atan(p/q);/*判断A1*/if(p>0 && q>0)A1=fabs(A1);else if(p>0 && q<0) A1=PI-fabs(A1); else if(p<0 && q<0) A1=PI+fabs(A1); elseA1=2*PI-fabs(A1);sino=p*sin(A1)+q*cos(A1); coso=a1+a2*cos(r);o=atan(sino/coso); /*判断o*/ if(coso>0) o=fabs(o); else o=PI-fabs(o);sinA0=cosu1*sin(A1);x=2*a1-(1-sinA0*sinA0)*coso;t1=(33523299-(28189-70*(1-sinA0*sinA0))*(1-sinA0*sinA0))*0.0000000001;t2=(28189-94*(1-sinA0*sinA0))*0.0000000001; g2=(t1*o-t2*x*sino)*sinA0; /*检验循环次数*/ printf("\ng2=%lf\ng0=%lf\n",g2,g0); if(g2<=g0) break; elser=L+g2;A=6356863.020+(10708.949-13.474*(1-sinA0*sinA0))*(1-sinA0*sinA0); } /*求解S*/B=10708.938-17.956*(1-sinA0*sinA0); C=4.487;y=((1-sinA0*sinA0)*(1-sinA0*sinA0)-2*x*x)*coso;S=A*o+(B*x+C*y)*sino; /*求解A2*/ A2=atan(cosu1*sin(r)/(b1*cos(r)-b2)); /*判断A2*/ if(p<0 && q<0)A2=fabs(A2);else if(p<0 && q>0) A2=PI-fabs(A2); else if(p>0 && q>0) A2=PI+fabs(A2); elseA2=2*PI-fabs(A2);/*调用函数*/ax=(int)(du(A1));ay=(int)(fen(A1)); az=miao(A1); ax2=(int)(du(A2)); ay2=(int)(fen(A2)); az2=miao(A2);printf("起点大地方位角度分秒分别为:\n%d\n%d\n%lf\n",ax,ay,az);}/*度分秒转换为弧度*/double hudu(double a0,double b0,double c0){double A0; A0=(a0+b0/60+c0/3600)*PI/180; } /*数据错误*/ else printf("数据错误,请重新输入\n"); printf("终点大地方位角度分秒分别为:\n%d\n%d\n%lf\n",ax2,ay2,az2); printf("大地线长度为:%lf\n",S); return A0;}/*弧度转换为度*/double du(double B0){} double x0; x0=(int)(B0*180/PI); return x0;/*弧度转换为分*/double fen(double C0) {double _y,y0;_y=(int)(C0*180/PI);}/*弧度转换为秒*/double miao(double D0) {double _z1,_z2,z0;} _z1=(int)(D0*180/PI); _z2=(int)((D0*180/PI-_z1)*60); z0=(fabs)((double)(((D0*180/PI-_z1)*60-_z2)*60)); return z0; y0=(fabs)((int)((C0*180/PI-_y)*60)); return y0;大地主题解算正算:大地主题解算反算:以上检验数据来自书本P151,P152。
一种无线电目标定位算法研究

Abs t r a c t :The r e a l —t im e a c c ur at e po s i io t ni ng o f
ng t rg a e t i s e s s e n ia t l t o g ua r a n t e e t he s t a b lt i y a nd r e l i a b i l i t y o f t h e s ys t e m The
,
a p pl i c a io t n r a n ge a nd c o m pl e t e l y s u i t s f o r he t ge o d e ic t c oo r i na d t e c a l c la u ion t o f mi d le d —l o ng is d an t c e a i r c r a f t By t h e d a t a s i mu la io t n
u n d e r he t W GS 8 4 c o o r in d a t e s i s r e a l i z e d a c c o r in d g t o he t a i r c r a f t ’ S lt a i t u d e ng a l e i t e at r i o n . Co mp a r e d wi h t he t t r a it d i o n a l me ho t d s wh i c h
,
l a g o i r t h m i s p o o r . Ho we v e r , b y u t i l i z i n g he t a i r c r a f t ’ s l a i t ud t e a n l g e i t e at r i o n , he t i d s a t n c e h s a n o p r o f o u n d e f e c t o n he t p r e c i s i o n , a n d he t
大地测量学基础复习资料

1. 什么是大地测量学,现代大地测量学由哪几部分组成?谈谈其基本任务和作用?答:大地测量学----是测绘学科的分支,是测绘学科的各学科的基础科学,是研究地球的形状、大小及地球重力场的理论、技术和方法的学科。
大地测量学的主要任务:测量和描述地球并监测其变化,为人类活动提供关于地球的空间信息。
具体表现在(1)、建立与维护国家及全球的地面三维大地控制网。
(2)、测量并描述地球动力现象。
(3)、测定地球重力及随时空的变化。
大地测量学由以下三个分支构成:几何大地测量学,物理大地测量学及空间大地测量学。
几何大地测量学的基本任务是确定地球的形状和大小及确定地面点的几何位置。
作用:可以用来精密的测量角度,距离,水准测量,地球椭球数学性质,椭球面上测量计算,椭球数学投影变换以及地球椭球几何参数的数学模型物理大地测量学的基本任务是用物理方法确定地球形状及其外部重力场。
主要内容包括位理论,地球重力场,重力测量及其归算,推求地球形状及外部重力场的理论与方法等。
空间大地测量学主要研究以人造地球卫星及其他空间探测器为代表的空间大地测量的理论、技术与方法。
2. 什么是重力、引力、离心力、引力位、离心力位、重力位、地球重力场、正常重力、正常重力位、扰动位等概念,简述其相应关系。
答: 地球引力及由于质点饶地球自转轴旋转而产生的离心力的合力称为地球重力。
引力F 是由于地球形状及其内部质量分布决定的 , 其方向指向地心、大小2r m M G F ••= 离心力P 指向质点所在平行圈半径的外方向,其计算公式为ρω2m P = 引力位:将rM G V ⋅=式表示的位能称物质M 的引力位或位函数,引力位就是将单位质点从无穷远处移动到该点引力所做的功。
离心力位:()2222y x Q +=ω式称为离心力位函数 重力位:引力位V 和离心力位Q 之和,或把重力位写成+⋅=⎰rdm G W ()2222y x +ω 地球重力场:地球重力场是地球的种物理属性。
高斯平均引数大地主题解算程序设计

高斯平均引数大地主题解算程序设计田桂娥;谢露;马广涛【摘要】介绍了大地主题解算基本方法,以Visual Studio 2010作为开发平台,采用C#语言编写,设计实现了一套基于高斯平均引数的大地主题解算实用程序,指出该程序功能强大,实现了单点和批量大地主题解算,能方便的将计算结果保存在文本,且精度满足大地测量及相应工程的需求.【期刊名称】《山西建筑》【年(卷),期】2016(042)027【总页数】2页(P192-193)【关键词】大地主题解算;高斯平均引数法;Visual Studio 2010;批量解算【作者】田桂娥;谢露;马广涛【作者单位】华北理工大学,河北唐山063000;中铁十一局集团第一工程有限公司,湖北襄阳441104;河北省制图院,河北石家庄050000【正文语种】中文【中图分类】TU198在天文大地测量中,为了获得点的大地坐标,需要在椭球面上进行控制点间的坐标解算。
椭球面上两点间的大地坐标(大地经度、大地纬度)、大地线、大地方位角称为大地元素,已知一些大地元素,推求另一些大地元素,通常称为大地主题解算。
大地主题解算包含大地主题正算和大地主题反算两种,已知椭球面上一点P1的大地坐标(L1,B1),P1到P2点的大地线长度S及其大地方位角A12,计算P2点的大地坐标(L2,B2)和大地线长度S在P2点的反方位角A21,称为大地主题正解;反之,已知P1和P2点的大地坐标(L1,B1)和(L2,B2),计算P1至P2的大地线长度S及其正反方位角A12和A21,称为大地主题反解。
由于椭球计算的复杂性,带来大地主题解算的复杂性,有的需要进行迭代计算逐步趋近,给人工计算带来极大困难。
随着计算机技术的飞速发展,计算机在大地主题解算上的应用也得到了快速的发展,迭代计算已经不再是难题,而且,可以根据精度的需要而自行确定迭代次数,极大的提高了计算效率。
同时,随着大地主题解算在空间技术领域的广泛运用,大地主题解算已经成为一项重要的研究工作。
大地测量

作业一:1、 请说明大地测量学与控制测量学的定义,阐述它们之间的关系。
答:大地测量学是在一定时间-空间参考系统中,测量和描绘地球及其他行星体的一门学科。
控制测量学是研究精确测定和描绘地面控制点空间位置及其变化的学科。
控制测量是在大地测量学基本理论基础上以工程建设测量为主要服务对象而发展和形成的。
可以说大地测量学是控制测量学的理论指导,控制测量是大地测量在工程实践中的具体应用。
2、 结合自己的感受,说明学习本课程的目的。
略3、 有两个已知点A 、B ,在A 上架全站仪观测P 点坐标,如图1。
两已知点坐标分别为: A :(100,200),B :(200,300)但在现场操作全站仪时,误将测站A 的坐标输为另一个控制点C 的坐标(200,250),用坐标定向时又误将控制点D 的坐标(200,400)当作B 点输入了仪器,此时测得P 点的 坐标为(300,300),试求P 点的真实坐标应该是多少?(提示:先建以A 为原点的辅助坐标系旋转,再平移)解:(以数学坐标系解,以便和教材公式对应,也可以测量坐标系解,见后图)一、以A 点为原点建立辅助坐标系: 1、 由于先误以C 、D 点数据观测的P 点坐标,设C (A )点为原点,因为αCD =90O ,故CD(AB)方向为90度方向即Y ’’轴,顺时针90度方向为X ’’轴。
P 点在此坐标系中坐标为[x ’’,y ’’]T =[100,50]T2、 实际上αAB =45O ,故以A 点为原点,以真实的方向建立坐标系:AB 逆时针45O 为Y ’轴,顺时针为45O X ’。
此坐标系可由X ’’CY ’’逆时针转θ=45O 得到。
故P 点在此坐标系中坐标为:⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡-=⎥⎦⎤⎢⎣⎡''''cos sin sin cos ''y x y x θθθθ二、坐标系平移:前述[x ’,y ’]T 为以A 点为原点建立的坐标系,实际情况为A 点坐标为(100,200),即将X ’AY ’平移Δx=100, Δy=200可得P 点在XOY 坐标系中实际坐标:⎥⎦⎤⎢⎣⎡∆∆+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡-=⎥⎦⎤⎢⎣⎡y x y x y x ''''cos sin sin cos θθθθ 三、代入数据⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡-=⎥⎦⎤⎢⎣⎡645.164066.2062001005010045cos 45sin 45sin 45cos O O O Oy x从测量坐标系中求解示意图,注意:测量坐标系的欧勒角正方向为顺时针。
大地课程设计

大地课程设计一、教学目标本课程旨在让学生了解和掌握地球的基本知识,包括地球的结构、地质变迁、自然资源和环境保护等方面。
通过本课程的学习,学生将能够:1.描述地球的结构和主要地质成分。
2.解释地壳运动和地质变迁的原因。
3.列举地球上的主要自然资源及其利用和保护。
4.分析人类活动对地球环境的影响。
在技能方面,学生将能够:1.使用地质工具和仪器进行实地观测。
2.分析地球科学相关数据和图表。
3.撰写地质观测报告。
在情感态度价值观方面,学生将能够:1.认识到地球科学对人类社会的重要性。
2.培养对地球环境的敬畏之心,提高环保意识。
3.树立科学探究的精神,培养团队合作和批判性思维能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.地球的结构:地壳、地幔、地核等。
2.地质变迁:板块构造、地壳运动、火山地震等。
3.自然资源:水资源、矿产资源、生物资源等。
4.环境保护:生态环境、气候变化、可持续发展等。
教学大纲将按照以下顺序进行:1.第1-2周:地球的结构和地质变迁。
2.第3-4周:自然资源的利用和保护。
3.第5-6周:环境保护和可持续发展。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:讲解地球科学的基本概念和原理。
2.讨论法:分组讨论地质现象和环境保护问题。
3.案例分析法:分析具体的地质案例,提高学生解决问题的能力。
4.实验法:实地考察和实验操作,培养学生的实践能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《地球科学》教材及相关辅助材料。
2.参考书:地球科学领域内的经典著作和最新研究论文。
3.多媒体资料:地球科学相关的视频、图片和图表。
4.实验设备:地质工具、仪器和实验材料。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面、客观、公正地评价学生的学习成果。
具体评估方式如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的30%。
白塞尔大地主题正反算

地球椭球 CGCS2000 6378137 6356752.314 6399593.626 1/298.257222101 0.00669438 0.006739497 第一偏心率e2= 第一偏心率e‘2= sinu1= cotσ1= A0= B= β= cos2(σ1+σ0)= sinu2= 大地方位角A21= 第一偏心率e2= u1= u2= cos(2σ‘1+Δσ‘)= ω2 = ω5 = s2= s5= 大地方位角A21= u1= u2= cos(2σ‘1+Δσ‘)= ω2 = ω5 = s2= s5=
2
克拉索夫斯基椭球 BJ54 6378245 6356863.019 6399698.902 1/298.3 0.006693422 0.006738525 BJ54 35°00′00.000000″ 35°00′00.000000″ 0.820055451 1.9591E-09 0.002206928 0.241484809 0.002515577 0.002514192 34°59′59.544529″ BJ54 35°00′00.000000″ 35°00′00.000000″ 0.002508527 4.64788E-09 -4.15588E-09 0.003065877 9.19076E-10 16000.00241 34°59′59.544529″ 35°10′30.957713″ 0.002508527 4.64788E-09 -4.15588E-09 0.003065877 9.19076E-10
IUGG--1979椭球 WGS84 6378137 6356752.314 6399593.626 1/298.257223563 0.00669438 0.006739497 6356863.019 89°59′59.999859″ 16000 0.820055451 -1 6360368.854 0.003351407 -0.005031132 6.90795E-06 35°10′30.957713″ 6378245 34°59′59.544529″ 35°10′30.957713″ 0.820055451 0.003358976 9.24261E-07 0.999451116 -0.000548959 90°00′00.000141″ 35°00′00.000000″ 35°00′00.000000″ 0.820055451 0.003358976 9.24261E-07 0.999451116 -0.000548959
大地主题解算方法综述

是高斯平均 引数 公式 [2O4] 。高斯 ( G auss)提 出把 勒让德 级数 式改化成以 P1、P2 ( P1, P 2 为 大地椭 球面上 的两点 ) 两点 的平均纬度和平 均方 位角为 根据。这 样勒 让德 级数式 中所
第 4期
周振宇等 大地主题解算方法综述
时, 公式还可以得到简化。 3) 用龙格 ) 库塔 ( R ungeOK utta) 法 [ 5] 解 大地 线微 分方
程。它的实质是 用若 干点的 函数 值的线 性组 合, 代替 泰勒
级数展开中 的导数 计算, 又 可保 持必要 的精 度。对于 短距
离大地主题 解算, 可 以只 取一 步; 如果距 离较 长, 可 以分
( L1, B1 ) 和 P 2 ( L2, B2 ) 点间的大地线弧长 S 积分得:
Q B2 - B1 =
p2 cosAdS p1 M
Q L2 - L1 =
p2 p1
N
s inA cosB
dS
( 2)
Q A 2 - A 1 ? 180b=
p2 tanB sinA dS
p1
N
在初等函数 中这 些积分 不能 计算, 所 以其 精确值 不能
椭球的过渡。
白塞尔 ( Besse l) 首先提出并解决了投影条件, 使这一解
法得以实现。
这类公式的特点是计算 公式展 开 e2 或 的幂级 数, 解算
精度与距离 长短无 关。因此 它既 适用于 短距 离解 算, 也适 用于长距离 解算 [ 5] 。其主 要缺 点在 于: 由 S 求 R、由 L 求 K, 或相反的运算, 需要进行迭代。同时还要预先 计算辅助
种, 其中大部 分适用 于短 距离, 一 部分适 用于 中距 离, 只 有几种适用 于长距 离。这几 十种 方法虽 然形 形色色 , 各有 不同, 但 就 其推 导 的 理 论 基 础来 说, 大 致 可 归纳 为 以 下 五类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
白塞尔大地主题解算课程设计大地测量学课程设计设计题目:白塞尔大地主题解算学院: 矿业学院专业: 测绘工程班级: 测绘122学号: 1208010255学生姓名: 郑英智指导教师: 张俊2014年12月26日目录1. 白塞尔法大地主题正算步骤 12. 白塞尔法大地主题反算步骤 33. 同一平行圈弧长、子午线弧长与大地线比较大小 44. 程序代码 55. 演算示例 96. 参考文献 127. 心得体会 13教师评语 14白塞尔大地主题解算摘要:白塞尔法解算大地主题的基本思想是将椭球面上的大地元素按照白塞尔投影条件(,椭球面大地线投影到球面上为大圆弧;,大地线和大圆弧上相应点的方位角相等;,球面上任意一点的纬度等于椭球面上相应点的归化纬度。
)投影到辅助球面上,继而在球面上进行大地主题解算,最后再将球面上的计算结果换算到椭球面上。
1.白塞尔法大地主题正算步骤2已知、、、、()、S,计算、、()。
BLABLAaAAe1112221221(1)将椭球面元素投影到球面上2utanu,1,etanB求:,由B1111A,计算辅助量和 ,01sinA,cosusinAtan,,tanusecA , 011111, ,计算球面长度,将S化为,,,S,,sin,cos(2,,,),,sin2,cos(4,,2,) 11式中系数分别为:''''246k7k15k,,,,(1,,,,?) ,bAb464256''246,Bkk37k'',,,,(,,,?) A48512''46,Ckk'',,,,(,,?) A12812822'2k,ecosA 024635kkk ,1,,,,?A464256246kk15kB,,,,?41651246kk3C,,?128512,,,,S上式右端含有,因此需要迭代计算。
第一次迭代取近似值,第二次计算取 0,,,S,,sin,cos(2,,,),,sin2,cos(4,,2,) 01010- 1 -,以后计算用代换,代入上式迭代计算,直到所要求的精度为止。
一般取0 ''|,-,|,0.001。
0(2)解算球面三角形,计算A2,,cosusinA11 tanA,2,,cosucos,cosAsinusin,,111,,,计算 u2sinu,sinucos,,cosucosAcos,或 tanu,,cosAtan(,,,)2111221 ,计算 ,,,,sinAsin1 ,tan,,,cosucos,sinusin,cosA,111,,(3)将球面元素换算到椭球面上,由u求B 22sinu22'tanB, 或tanB,1,etanu 222221,e1,sinu2,将球面经差化为椭球面经差l,求L ,2''',,,,-sinA,,,,sin,cos(2,,,),,sin2,cos(4,,2,) l011 式中2462eeee234'2'2',(,,),(1,e)k,ek, 2816161282224ee'2'',(1,e)k,k, 163224e'',,k 2562'22k,ecosA0''',0.0002式中的最大值为,故在计算时通常可以略去不计。
,象限的判定- 2-符号 sinA+ + - - 1tan,符号 + - + -|,|,-|,||,|,,- |,| ,l L,L,21符号 sinA- - + + 1符号 tanA+ - + - 2|A|,,|A|,,|A|2,,|A|A2222 2其中、为锐角。
|A||,|22.白塞尔法大地主题反算步骤2已知、、、、,计算()、()、S。
BLBLAAAAae1122121221、(1)将椭球面元素投影到球面上,由B求u22tanu,1,etanBtanu,1,etanB ,,l= L,L112221, a,sinusinua,cosucosu112212, b,cosusinub,sinucosu112212,采用逐次趋近法,由l计算 ,在反算中,已知椭球面上经差l,球面经差上的对应经差未知,为了由l求,由下,,,A式可知还需计算、、,,计算又还需量,故需要进行迭代计算。
,,01,,第一次趋近,取l;, p,cosusin,q,b,bcos,212,,,cosusinp2tanA,tanA或 ,11,,qcosusinusinucosusin,,1212,,- 3-判断的象限 A1p符号 + + - -q符号 + - + -A,|A|,,|A|,,|A|2,,|A|11111sin,,cosusin,sinA,(cosusinu,sinucosucos,)cosA2112121cos,,sinusinu,cosucosucos,1212,sin,,,,arctan, ,,cos,,判断象限 ,cos,+ -,, |,|,-|,|sinA,cosusinA011,,tantanusecA,111, sinu,1tan,,tanA11,sinA0,'',,,, l+sinA,,',,sin,cos(2,,,),,sin2,cos(4,,2,) 011仿照上述计算步骤迭代计算,直到为止。
|,-,|,,i,1i(2)将球面元素换算到椭球面上1 ,,S,,-,sin,cos(2,,,),,sin2,cos(4,,2,)11,,,,cosusin1 tanA ,2,,cosusinucos,sinucosu,1212,,或,,cosusinA11tanA ,2,,cosucos,cosAsinusin,,111,,A象限的判断与前面一致 2- 4 -3.同一平行圈弧长、子午线弧长与大地线比较大小子午线弧长计算公式: M,a,acos2B,acos4B,acos6B,acos8B024683535m,2a,,,,,,mmmm?00468,2816128,157mm,24a,,,,mm268,223216,37m,4a,,m,m式中: ,46881632,mm,68a,,6,3216,m,8a,8,128,''Nl''bcosB, 平行圈弧长公式:() S,NcosB,bl11'''',,不同纬度对应的一些弧长的数值子午线弧长平行圈弧长 B 1′ 1″ 1′ 1″0? 110 576m 1 842.94m 30.716m 111 321m 1 855.36m 30.923m15? 110 656 1 844.26 30.738 107 552 1 792.54 29.87630? 110 863 1 847.71 30.795 96 488 1 608.13 26.80245? 111 143 1 852.39 30.873 78 848 1 314.14 21.90260? 111 423 1 857.04 30.951 55 801 930.02 15.575? 111 625 1 860.42 31.007 28 902 481.71 8.02890? 111 696 1 861.6 31.027 0 0 0利用白塞尔大地主题反算求解大地线长S纬度为30?,经差为1?的平行圈弧长S=96 488m,两点间大地线长为96 487.595m- 5-经度为30?,纬度差为1?的子午线弧长X=110 863m,两点间大地线长为110 862.869m通过比较可知,同一平行圈或同一子午线两点间大地线长度与对应的平行圈弧长或子午线弧长相等。
4.程序代码仅体现计算过程,不包含定义、输入输出部分正算:eps = e2 / (1 - e2)b = a / Sqr(1 + eps)u1 = Atn(Sqr(1 - e2) * Tan(B1))sinA0 = Cos(u1) * Sin(A1)cosA0 = Sqr(1 - sinA0 * sinA0)sgm1 = Atn(Tan(u1) / Cos(A1))xk2 = eps * cosA0 * cosA0xk4 = xk2 * xk2xk6 = xk4 * xk2alpha = (1 - xk2 / 4 + 7 * xk4 / 64 - 15 * xk6 / 256) / bbeta = xk2 / 4 - xk4 / 8 + 37 * xk6 / 512gamma = xk4 / 128 - xk6 / 128sgm = alpha * SDosgm0 = sgmsgm = alpha * S + beta * Sin(sgm0) * Cos(2 * sgm1 + sgm0) sgm = sgm + gamma * Sin(2 * sgm0) * Cos(4 * sgm1 + 2 * sgm0) Dsgm = Abs(sgm - sgm0) * pLoop While Dsgm > 0.0001'计算反方位角A2- 6-sinA2 = Cos(u1) * Sin(A1)cosA2 = Cos(u1) * Cos(sgm) * Cos(A1) - Sin(u1) * Sin(sgm) tanA2 = sinA2 / cosA2A2 = Abs(Atn(sinA2 / cosA2))sinA1 = Sin(A1)If sinA1 < 0 And tanA2 > 0 Then A2 = A2If sinA1 < 0 And tanA2 < 0 Then A2 = pi - A2If sinA1 > 0 And tanA2 > 0 Then A2 = pi + A2If sinA1 > 0 And tanA2 < 0 Then A2 = 2 * pi - A2'计算大地纬度B2sinu2 = Sin(u1) * Cos(sgm) + Cos(u1) * Cos(A1) * Sin(sgm)B2 = Atn(sinu2 / Sqr(1 - e2) / Sqr(1 - sinu2 * sinu2))'计算大地经度L2sinl = Sin(A1) * Sin(sgm)cosl = Cos(u1) * Cos(sgm) - Sin(u1) * Sin(sgm) * Cos(A1)tanlambda = sinl / cosllambda = Abs(Atn(sinl / cosl))If tanlambda > 0 And sinA1 > 0 Then lambda = lambdaIf tanlambda < 0 And sinA1 > 0 Then lambda = pi - lambdaIf tanlambda < 0 And sinA1 < 0 Then lambda = -lambdaIf tanlambda > 0 And sinA1 < 0 Then lambda = lambda - pie4 = e2 * e2e6 = e4 * e2xk2 = e2 * cosA0 * cosA0xk4 = xk2 * xk2xk6 = xk4 * xk2alpha1 = (e2 / 2 + e4 / 8 + e6 / 16) - e2 * (1 + e2) * xk2 / 16 + 3 * xk4 * e2 / 128beta1 = e2 * (1 + e2) * xk2 / 16 - e2 * xk4 / 32gamma1 = e2 * xk4 / 256xx = alpha1 * sgm + beta1 * Sin(sgm) * Cos(2 * sgm1 + sgm)xx = xx + gamma1 * Sin(2 * sgm) * Cos(4 * sgm1 + 2 * sgm)l = lambda - sinA0 * xxL2 = L1 + l反算:eps = e2 / (1 - e2)b = a / Sqr(1 + eps)u1 = Atn(Sqr(1 - e2) * Tan(B1))u2 = Atn(Sqr(1 - e2) * Tan(B2))DL = L2 - L1aa1 = Sin(u1) * Sin(u2)- 7-aa2 = Cos(u1) * Cos(u2)bb1 = Cos(u1) * Sin(u2)bb2 = Sin(u1) * Cos(u2)'获取数据逐次趋近法计算经差lambda,大地方位角A1,球面长度lambda = DLDolambda0 = lambdap1 = Cos(u2) * Sin(lambda0)q = bb1 - bb2 * Cos(lambda0)A1 = Atn(p1 / q)If p1 > 0 And q > 0 Then A1 = Abs(A1)If p1 > 0 And q < 0 Then A1 = pi - Abs(A1)If p1 < 0 And q < 0 Then A1 = pi + Abs(A1)If p < 0 And q > 0 Then A1 = 2 * pi - Abs(A1)sinsgm = p1 * Sin(A1) + q * Cos(A1)cossgm = aa1 + aa2 * Cos(lambda0)sgm = Atn(sinsgm / cossgm)If cossgm > 0 Then sgm = Abs(sgm)If cossgm < 0 Then sgm = pi - Abs(sgm)sinA0 = Cos(u1) * Sin(A1)sgm1 = Atn(Tan(u1) / Cos(A1))cosA0 = Sqr(1 - sinA0 * sinA0)e4 = e2 * e2e6 = e4 * e2xk2 = e2 * cosA0 * cosA0xk4 = xk2 * xk2xk6 = xk4 * xk2alpha1 = (e2 / 2 + e4 / 8 + e6 / 16) - e2 * (1 + e2) * xk2 / 16 + 3 * xk4 * e2 / 128beta1 = e2 * (1 + e2) * xk2 / 16 - e2 * xk4 / 32gamma1 = e2 * xk4 / 256dll = alpha1 * sgm + beta1 * Sin(sgm) * Cos(2 * sgm1 + sgm)dll = dll + gamma1 * Sin(2 * sgm) * Cos(4 * sgm1 + 2 * sgm)lambda = dll * sinA0 + DLDlambda = Abs(lambda - lambda0) * pLoop While Dlambda > 0.0001cosA0 = Sqr(1 - sinA0 * sinA0)xk2 = eps * cosA0 * cosA0xk4 = xk2 * xk2xk6 = xk4 * xk2alpha = (1 - xk2 / 4 + 7 * xk4 / 64 - 15 * xk6 / 256) / b- 8-beta = xk2 / 4 - xk4 / 8 + 37 * xk6 / 512 gamma = xk4 / 128 - xk6 / 128Y = gamma * Sin(2 * sgm) * Cos(4 * sgm1 + 2 * sgm) S = (sgm - beta * Sin(sgm) * Cos(2 * sgm1 + sgm) - Y) / alphasinA2 = Cos(u1) * Sin(A1)cosA2 = Cos(u1) * Cos(sgm) * Cos(A1) - Sin(u1) * Sin(sgm) tanA2 = sinA2 / cosA2A2 = Abs(Atn(sinA2 / cosA2))sinA1 = Sin(A1)If sinA1 < 0 And tanA2 > 0 Then A2 = A2If sinA1 < 0 And tanA2 < 0 Then A2 = pi - A2If sinA1 > 0 And tanA2 > 0 Then A2 = pi + A2If sinA1 > 0 And tanA2 < 0 Then A2 = 2 * pi - A25.演算示例(教材151页)用克式椭球进行计算- 9-用1975国际椭球进行计算正算计算结果30?30′00.00″ -0.505 246 786114?20′00.00″ -0.610 640 770225?00′00.00″ -0.707 105 78110000000.00 0.356 537 888 S0.530858149 0.003 350 562-0.609789472 1.766 987 874E-06 0.792563224 4.622 109 698E-10 -0.692911606 -1.103 777 2801.571 441 354 5.270 424 445E-03 1.055 977 930 -37?43′44.1351″1.393 840 997 51?16′32.4976″ 1.572 478 988 50?21′22.4896″ -0.609 789 747- 10-反算计算结果0.530 858 149 -0.656 869 486-0.309 151 284 0.682 919 788-0.526 600 070 0.400 921 954趋近次数计算值 1 3 4 2-1.100 563 429 -1.103 768 055 -1.103 777 253 -1.103 777 280-0.705 956 271 -0.707 102 492 -0.707 105 771 -0.707 105 781 p-0.708 255 369 -0.707 109 082 -0.707 105 789 -0.707 105 780 q224?54′24.6737″ 224?59′59.0390″ 224?59′59.9973″225?00′00.0002″0.999 999 996 0.999 998 594 0.999 998 584 0.999 998 5842.755 182 939E-04 -1.677 035 942E-04 -1.682 644 780E-04 -1.682 660 878E-041.570 520 809 1.572 473 364 1.572 478 973 1.572 478 989sinA0.608 797 601 0.609 786 905 0.609 789 739 0.609 789 747 0-0.692 114 035 -0.692 909 315 -0.692 911 599 -0.692 911 6063.350 558 481E-03 3.350 561 868E-03 3.350 561 878E-03 3.350 561878E-031.770 381 674E-6 1.766 997 603E-6 1.766 987 901E-6 1.766 987 874E-64.639 919 221E-10 4.622 160 703E-10 4.622 109 841E-10 4.622 109695E-10 ,15.263 861 564 5.270 405 594 5.270 424 392 5.270 424 446 xx-1.103 768 055 -1.103 777 253 -1.103 777 280 -1.103 777 2801.571 441 354 -0.6097897471.055 977 929 -0.5052467861.393 840 996 50?21′22.4897″-4.367 643 449E-10 S 10000000.003 Y6.参考文献- 11-[1]郭际明,丁士俊,苏新洲,刘宗泉.大地测量学基础实践教程.武汉:武汉大学出版社,2009[2]裴连磊. 用C语言实现大地主题解算[J]. 价值工程,2013,20:235-236. [3]丁士俊,杨艳梅,史俊波,程新明. 大地主题解算几种不同算法在计算中应注意的问题[J]. 黑龙江工程学院学报(自然科学版),2013,03:1-5.[4]周振宇,郭广礼,贾新果. 大地主题解算方法综述[J]. 测绘科学,2007,04:190-191+174+200. [5]王建强,胡明庆. 贝赛尔大地主题解算分析[J]. 测绘科学,2012,01:30-31. [6]徐晓晗,谢云开,李亚军. 大地主题解算实用算法[J]. 科学技术与工程,2012,09:2062-2068. [7]许厚泽. 关于正反大地主题解算方法的综合研究[J]. 测量制图学报,1958,04:274-288. [8]史国友,周晓明,贾传荧. 贝塞尔大地主题正解的改进算法[J]. 大连海事大学学报,2008,01:15-19.7.心得体会- 12-本次课程设计在一开始我就有感觉到并不容易,因为平时上课翻开书就是满篇公式,完全不知所云,尽管知道只是一门基础课,但我还是深深感受到这门课的深奥与晦涩,学起来确实有些困难。