白塞尔大地主题解算
答案2
一、名词解释(每个2分,共10分)1、球面角超:球面四边形或三角形内角之和与平面四边形或三角形内角之差称为四边形球面角超或三角形球面角超。
2、总椭球体:总椭球体的中心与地球的质心重合,其短轴与地球的地轴重合,起始子午面与起始天文子午面重合,而且与地球体最佳密合的椭球体。
3、大地主题反算:已知椭球面上两点的大地经纬度求解两点间的大地线长度与正反方位角。
4、子午线收敛角:高斯投影面上任意点子午线的投影线的切线方向与该点坐标的正北方向的夹角。
5、水准标尺基辅差:精密水准标尺同一视线高度处的基本分划与辅助分划之差。
二、填空(每空1分,共30分)1、以___________作为基本参考点,由春分点___________运动确定的时间称为恒星时;以格林尼治子夜起算的___________称为世界时。
2、ITRF 是___________的具体实现,是通过IERS分布于全球的跟综站的_________和_________来维持并提供用户使用的。
3、高斯投影中,_____投影后长度不变,而投影后为直线的有_____,其它均为凹向_____的曲线。
4、重力位是--___________和___________之和,重力位的基本单位是___________。
5、大地线克莱劳方程决定了大地线在椭球面上的_______,某大地线穿越赤道时的大地方位角A= 60°,则能达到的最小平行圈半径为长半轴a的_____倍。
6、正常重力公式是用来计算______ 正常重力, 其中系数是称为___________。
高出椭球面H米高度处正常重力与椭球表面正常重力间的关系为____________。
7、在大地控制网优化设计中把__________、__________和__________作为三个主要质量控制标准。
8、地面水平观测值归算至椭球面上需要经过__________、___________、_____________改正。
大地主题解算
"
S2 2 2 2 2 4 A" A21 A12 S sin Am t m 1 [ cos A ( 2 7 9 t 5 m m m m m) 2 Nm 24N m 2 2 sin 2 Am t m 2 t m 2 m ] 5次项
本节主要内容
• • • • • 大地测量主题解算的一般说明 勒让德级数 高斯平均引数正算公式 高斯平均引数反算公式 高斯平均引数正、反算公式的实现
4.7 大地测量主题解算概述
一、大地测量主题解算的一般说明 大地元素:椭球面上点的大地经度L,大地纬度B,两点间 的大地线长度S,及其正反大地方位角A12,A21。 大地主题解算:已知某些大地元素推求另一些大地元素叫做 大地主题解算;包括正解和反解。
大地线长度和正反方位 角.S sin Am,S cosAm 及A" 计算公式为:
计算出S sin Am,S cosAm及A"后,按下式计算大地线 长度 和正反方位角:
S sin Am t an Am S cos A m S S sin Am S cos Am sin Am cos Am 1 A12 Am A", 2 1 A21 Am A&2 2 3 m cos2 Am 1 t m m 4t m m ] 5次项
L" L2 L1
"
S2 2 2 S sec Bm sin Am 1 [ sin A t m m 2 Nm 24N m 2 2 2 cos2 Am 1 m 9t m m ] 5次项
Am是大地方位角,其值在 0-360之间,设b B2 B1 , l L2 L1 , b看成x, l看成y,平面方位角的象限判 别一样。
白塞尔大地主题算法
1.球面上大地主题正解方法
此时已知量:φ 1,α1及σ;要求量:φ 2,α2及λ. 首先按(i)式计算 ,继而用下式计算φ 2球面上坐标关系式
如图13—4所示,在椭球 面极三角形PP1P2中.用B. L.S及A分别表示大地线上某 点的大地坐标,大地线长及其 大地方位角。在球面极三角形 P'P1'P2'中,与之相应,用φ , λ,σ及α分别表示球面大圆弧 上相应点的坐标,弧长及方位 角。
M-子午圈曲率半径 N-卯酉圈曲率半径
M=N=1
为简化计算,白塞尔提出如下三个投影条件: 1 . 椭球面大地线投影到球面上为大圆弧; 2.大地线和大圆弧上相应点的方位角相等; 3.球面上任意一点的纬度等于椭球面上相应 点的归化纬度.
u-归化纬度,
r-平行圈半径,a-长半轴
(三)白塞尔微分方程的积分
(一)在球面上进行大地主题解算
如图13—3示,在球面上 有两点P1和P2,其中P1点的大 地纬度φ 1,大地经度λ1,P2点 大地纬度φ 2,大地经度λ2;P1 和P2点间的大圆弧长为σ, P1P2的方位角为α1,其反方位 角为α2,球面上大地主题正算 是已知φ 1,α1,σ,要求φ 2, α2及经差λ;反算问题是已知 φ 1,φ 2及经差λ,要求σ,α1及 α2。
(四)白塞尔法大地主题正算步骤
(五)白塞尔法大地主题反算步骤
白塞尔大地主题解算方法
白塞尔法解算大地主题的基本思想是将椭球面 上的大地元素按照白塞尔投影条件投影到辅助球 面上,继而在球面上进行大地主题解算,最后再 待球面上的计算结果换算到椭球面上。由此可见 ,这种方法的关键问题是找出椭球面上的大地元 素与球面上相应元素之间的关系式。同时也要解 决在球面上进行大地主题解算的方法。
白塞尔大地主题解算的基本思想
白塞尔大地主题解算的基本思想
首先,白塞尔大地主题解算的基本思想之一是建立地壳变形的力学模型。
地壳变形是地球表面的一项重要现象,是由于地质作用和地球内部力
学过程的结果。
地壳变形的力学模型是研究地壳变形的重要方法。
常见的
地壳变形的力学模型有弹性模型、弹塑性模型和拟弹性模型等。
这些模型
可以描述地壳的变形过程,通过对地壳的变形过程进行建模,可以更好地
理解地壳变形的机制和动力学过程。
其次,白塞尔大地主题解算的思想之一是研究现今地球表面的动力学
过程。
地球表面的动力学过程包括板块运动、地震活动、火山喷发等。
这
些过程在地球的长期演化中起着重要的作用。
通过对现今地球表面动力学
过程的研究,可以揭示地球内部的结构和动力学机制,进而更好地理解地
壳变形的成因和发展变化的规律。
第三,白塞尔大地主题解算的基本思想之一是研究地壳变形的成因。
地壳变形的成因是地壳运动的基本原因,也是地球科学研究的一个重要问题。
地壳变形的成因包括构造运动、地壳应力状态的改变、地震活动等。
通过研究地壳变形的成因,可以更好地了解地壳变形的机制和规律,进而
为地震预测和地壳运动的控制提供科学依据。
总之,白塞尔大地主题解算的基本思想是通过建立地壳变形的力学模型,研究现今地球表面的动力学过程,探究地壳变形的成因,揭示地壳变
形与地球动力学过程之间的相互关系,以推动地壳运动的理论和应用研究。
这一思想对于研究地壳运动的机制和规律,了解地壳变形的成因和动力学
过程,提高地震预测和地壳运动控制的水平具有重要意义。
《大地测量学基础》试卷(B)含答案
《大地测量学基础》课程试卷(B )一、名词解释(每个2分,共10分)球面角超总椭球体大地主题反算子午线收敛角水准标尺基辅差二、填空(每空1分,共30分)1、以___________作为基本参考点,由春分点___________运动确定的时间称为恒星时;以格林尼治子夜起算的___________称为世界时。
2、ITRF 是___________的具体实现,是通过IERS 分布于全球的跟综站的_________和_________来维持并提供用户使用的。
3、高斯投影中,_____投影后长度不变,而投影后为直线的有_____,其它均为凹向_____的曲线。
4、重力位是--___________和___________之和,重力位的基本单位是___________。
5、大地线克莱劳方程决定了大地线在椭球面上的_______,某大地线穿越赤道时的大地方位角A= 60°,则能达到的最小平行圈半径为长半轴a 的_____倍。
6、正常重力公式()2201sin sin 2e B B γγβ=+-是用来计算______ 正常重力, 其中系数β是称为________。
高出椭球面H 米高度处正常重力与椭球表面正常重力间的关系为__________。
7、在大地控制网优化设计中把_________、__________和__________作为三个主要质量控制标准。
8、地面水平观测值归算至椭球面上需要经过__________、___________、_____________改正。
9、椭球面子午线曲率半径()231a e M W -=,卯酉线曲率半径_______,平均曲率半径________。
它们的长度通常不满相等,其大小关系为________________。
10、某点在高斯投影6°带的坐标表示为A X =3026255m, A Y =20478561m,则该点在3°带第39带的实际坐标为A x =_________,A y =________,其三度带的中央子午线经度为_______。
大地测量学复习资料#(精选.)
1.垂线偏差:地面一点上的重力向量g和相应椭球面上的法线向量n之间的夹角定义为该点的垂线偏差。
2.参考椭球:具有确定参数(长半径a和扁率α),经过局部定位和定向,同某一地区大地水准面最佳拟合的地球椭球,叫参考椭球。
3.大地线:椭球面上两点间的最短程曲线叫做大地线。
4.力高:水准面在纬度45度处的正常高。
5.大地主题解算:已知某些大地元素推求另一些大地元素的计算工作叫大地主题解算。
6.大地主题正算:已知P1点的大地坐标(L1,B1),P1至P2的大地线长S及其大地方位角,计算P2点的大地坐标(L2,B2)和大地线S在P2点的反方位角A21,这类问题叫做大地主题正算。
7.大地基准:是指能够最佳拟合地球形状的地球椭球的参数及椭球定位和定向8.高斯投影:横轴椭圆柱等角投影(假象有一个椭圆柱横套在地球椭球体外,并与某一条子午线相切,椭球柱的中心轴通过椭球体中心,然后用一定投影方法,将中央子午线两侧各一定范围内的地区投影到椭圆柱上,再将此柱面展开成投影面)。
9.大地测量学:是指在一定的时间与空间参考系中,测量和描绘地球形状及其重力场并监测其变化,为人类活动提供关于地球的空间信息的一门科学。
10.理论闭合差:由水准面不平行而引起的水准环线闭合差,称为理论闭合差。
11.地心坐标系:地心坐标系是在大地体内建立的O-XYZ坐标系。
原点O设在大地体的质量中心,用相互垂直的X,Y,Z三个轴来表示,X轴与首子午面与赤道面的交线重合,向东为正。
Z轴与地球旋转轴重合,向北为正。
Y 轴与XOZ平面垂直构成右手系。
12.高斯投影正、反算公式进行换带计算的步骤。
这种方法的实质是把椭球面上的大地坐标作为过度坐标。
首先把某投影带内有关点的平面坐标(x,y)1利用高斯投影反算公式换算成椭球面上的大地坐标(B,l),进而得到L=L0+l,然后再由大地坐标(B,l),利用投影正算公式换算成相邻带的平面坐标(x,y)2在计算时,要根据第2带的中央子午线来计算经差l,亦即此时l=L-L0。
白塞尔大地主题解算(正算和反算)
大地测量实验报告实验名称:白塞尔大地主题解算(正算和反算)实验目的:1.通过编写白塞尔大地主题电算程序进一步掌握白塞尔法解算大地主题的基本思想。
2.熟练掌握将椭球面上的大地元素按照白塞尔投影条件投影到辅助球面上,继而在球面上进行大地主题解算,最后再将球面上的计算结果换算到椭球面上的基本方法和步骤。
3.学会掌握计算机编程的基本能力。
实验环境:Microsoft Visual C++注意事项:1.在编写程序的过程当中要注意代码的前后统一和重复。
2.注意数值类型的转换和度分秒的换算。
实验步骤:正算:1.计算起点的规划纬度2.计算辅助函数值3.计算系数A,B,C及d,e.4计算球面长度5.计算经度差改正数6.计算终点大地坐标及大地方位角。
反算:1.进行计算辅助函数值2.用逐次趋近法同时计算起点大地方位角、球面长度及经差。
3.计算系数A,B,C及大地线长度S.4.计算反方位角及确定符号。
程序源代码:正算:#include<stdio.h>#include<math.h>#define ee 0.006694384999588#define I 3.141592653double F(double,double,double);void main(void){double A1,B1,L1,S,A2,B2,L2; double x1,x2,x3,y1,y2,y3,z1,z2,z3; double W1,sinu1,sinu2,cosu1,sinA0;doublecota1,cos2a1,sin2a1,cosA0A0;double A,B,C,d,e,a0,a1,m;double n,a,Q,R;printf("请输入数据B1= "); scanf("%lf %lf %lf",&x1,&x2,&x3);B1=F(x1,x2,x3);printf("请输入数据L1= "); scanf("%lf %lf %lf",&y1,&y2,&y3);L1=F(y1,y2,y3);printf("请输入A1= ");scanf("%lf %lf %lf",&z1,&z2,&z3);A1=F(z1,z2,z3);printf("请输入S= ");scanf("%lf",&S);printf("B1=%f\n",B1);printf("L1=%f\n",L1);printf("A1=%f\n",A1);printf("S=%f\n",S);/*计算起点的规划纬度*/W1=sqrt(1-ee*sin(B1)*sin(B1));sinu1=sin(B1)*sqrt(1-ee)/W1;cosu1=cos(B1)/W1;printf("W1=%f\n",W1);printf("sinu1=%f\n",sinu1);printf("cosu1=%f\n",cosu1);/*计算辅助函数值*/sinA0=cosu1*sin(A1);cota1=cosu1*cos(A1)/sinu1;sin2a1=2*cota1/(cota1*cota1+1);cos2a1=(cota1*cota1-1)/(cota1*cota1+1);printf("sinA0=%f\n",sinA0);printf("cota1=%f\n",cota1);printf("sin2a1=%f\n",sin2a1);printf("cos2a1=%f\n",cos2a1);/*计算系数ABC及de*/cosA0A0=1-sinA0*sinA0;A=6356755.288+(10710.341-(13.534*cosA0A0))*cosA0A0;B=(5355.171-9.023*cosA0A0)*cosA0A0;C=(2.256*(cosA0A0))*cosA0A0+0.006;d=691.46768-(0.58143-0.00144*cosA0A0)*cosA0A0;e=(0.2907-cosA0A0*0.0010)*cosA0A0;printf("cosA0A0=%f\n",cosA0A0);printf("A=%f\n",A);printf("B=%f\n",B);printf("C=%f\n",C);printf("d=%f\n",d);printf("e=%f\n",e);/*计算球面长度*/a0=(S-(B+C*cos2a1)*sin2a1)/A;m=sin2a1*cos(2*a0)+cos2a1*sin(2*a0);n=(cos2a1)*(cos(2*a0))-(sin2a1)*(sin(2*a0));a=a0+((B+5*C*n))*m/A;printf("a0=%f\n",a0);printf("m=%f\n",m);printf("n=%f\n",n);printf("a=%f\n",a);/*计算经度差改正数*/Q=(d*a+(e*(m-sin2a1))/3600/180*I)*sinA0;printf("Q=%f\n",Q);/*计算终点大地坐标及大地方位角*/sinu2=sinu1*cos(a)+cosu1*cos(A1)*sin(a);B2=180*atan(sinu2/((sqrt(1-ee))*(sq rt(1-sinu2*sinu2))))/I;R=180*atan(sin(A1)*sin(a)/(cosu1*co s(a)-sinu1*sin(a)*cos(A1)))/I;printf("sinu2=%f\n",sinu2);printf("B2=%f\n",B2);printf("R=%f\n",R*180/I);/*确定R的值*/if(sin(A1)>0 && tan(R)>0)R=abs(R);else if(sin(A1)>0 && tan(R)<0)R=I-abs(R);else if(sin(A1)<0 && tan(R)<0)R=-abs(R);elseR=abs(R)-I;/*确定L2A2的值*/L2=(L1*180/I+R-(Q/206265*180/I));A2=atan(cosu1*sin(A1)/(cosu1*cos(a) *cos(A1)-sinu1*sin(a)));if(sin(A1)<0&&tan(A2)>0)A2=(fabs(A2))*180/I;else if(sin(A1)<0&&tan(A2)<0)A2=(I-fabs(A2))*180/I;else if(sin(A1)>0&&tan(A2)>0)A2=(I+fabs(A2))*180/I;elseA2=(2*I-fabs(A2))*180/I;printf("A2=%3f\n B2=%3f\nL2=%3f\n",A2,B2,L2);}double F(double a2,double b2,doublec2){double d2;d2=(double)(a2+1.0*b2/60+1.0*c2/3600);d2=(d2/180)*I;return (d2);}注:A1,B1,L1,S分别为大地线起点的大地方位角、纬度、经度、大地线长;B2,L2,A2为大地线终点纬度、经度及方位角。
2024年大地测量学基础(高起专)-地质大学考试题库及答案
下载温馨提示:该文档是学者精心编制而成,希望能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,我们为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!大地测量学基础(高起专)单选题1. _______要求在全球范围内椭球面与大地水准面有最佳的符合,同时要求椭球中心与地球质心一致或最为接近。
(A) 地心定位(B) 单点定位(C) 局部定位(D) 多点定位标准答案是::A2. _______用于研究天体和人造卫星的定位与运动。
(4分)(A) 参心坐标系(B) 空间直角坐标系C) 天球坐标系(D) 站心坐标系标准答案是::C3. 地球坐标系分为大地坐标系和_______两种形式。
(4分)(A) 天球坐标系(B) 空间直角坐标系(C) 地固坐标系(D) 站心坐标系标准答案是::B4. 地球绕地轴旋转在日、月等天体的影响下,类似于旋转陀螺在重力场中的进行,地球的旋转轴在空间围绕黄极发生缓慢旋转,形成一个倒圆锥体,旋转周期为26000年,这种运动成为_______。
(4分)(A) 极移(B) 章动(C) 岁差(D) 潮汐标准答案是::C5. 以春分点作为基本参考点,由春分点周日视运动确定的时间,称为_______。
(4分)(A) 恒星时(B) 世界时(C) 协调世界时(D) 历书时标准答案是::A多选题6. 下列属于参心坐标系的有:_______。
(4分)(A) 1954年北京坐标系(B) 1980年国家大地坐标系(C) WGS-84世界大地坐标系(D) 新1954年北京坐标系标准答案是::A,B,D7. 下列关于大地测量学的地位和作用叙述正确的有:_______。
(4分)(A) 大地测量学在国民经济各项建设和社会发展中发挥着基础先行性的重要保证作用。
大地测量学基础知识
第一章1. 大地测量学的定义大地测量学是在一定的时间-空间参考系统中,测量和描绘地球及其他行星体的一门学科。
2. 大地测量学的基本体系以三个基本分支为主所构成的基本体系。
'几何大地测量学:物理大地测量学.空间大地测量学3. 大地测量学的基本任务精确确定地面点位及其变化研究地球重力场、地球形状和地球动力现象4. 大地测量学的基本内容1、大地测量基础知识(基准面和基准线,坐标系统和时间系统,地球重力场等);2、大地测量学的基本理论(地球椭球基本的理论,高斯投影的基本理论,大地坐标系统的建立与坐标系统的转换等);3、大地测量基本技术与方法(经典的、现代的)4、大地控制网的建立(包括国家大地控制网、工程控制网。
形式有三角网、导线网、高程网、GPS网等);5、大地测量数据处理(概算与平差计算)。
5. 大地测量学的基本作用1、为地形测图与大型工程测量提供基本控制;2、为城建和矿山工程测量提供起始数据;3、为地球科学的研究提供信息;4、在防灾、减灾和救灾中的作用;5、发展空间技术和国防建设的重要保障。
第二章1.岁差章动极移由于日、月等天体的影响,类似于旋转陀螺,地球的旋转轴在空间围绕黄极发生缓慢旋转,形成一个倒圆锥体,其锥角等于黄赤交角23.5,旋转周期为26000年,这种运动称为岁差。
月球绕地球旋转的轨道称为白道,由于白道对黄道有约5的倾斜,使得月球引力产生的大小和方向不断变化,从而导致地球旋转轴在岁差的基础上叠加18.6年的短周期运动,振幅为9.21,这种现象称为章动。
地球自转轴存在相对于地球体自身内部结构的相对位置变化,从而导致极点在地球表面上的位置随时间而变化,这种现象称为极移。
2.恒星时太阳时原子时以春分点作为基本参考点,由春分点周日视运动确定的时间,称为恒星时。
以真太阳作为基本参考点,由其周日视运动确定的时间,称为真太阳时。
原子时是一种以原子谐振信号周期为标准,并对它进行连续计数的时标。
原子时的基本单位是原子时秒,3.协调世界时为保证时间与季节的协调一致,便于日常使用,建立以原子时秒长为计量单位、在时刻上与平太阳时之差小于0.9 秒的时间系统,称之为世界协调时(UTC)。
白塞尔大地主题解算
白塞尔大地主题解算方向:学号:姓名:一.基本思路:基本思想:将椭球面上的大地元素按照白塞尔投影条件投影到辅助球面上,继而在球面上进行大地主题解算,最后在将球面上的计算结果换算到椭球面上。
其关键问题是找出椭球面上的大地元素与球面上相应元素之间的关系式,同时解决在球面上进行大地主题解算的方法。
正算流程:1.计算起点的归化纬度2.计算辅助函数值,解球面三角形3.按公式计算相关系数A,B,C 以及α,β4.计算球面长度5.计算纬度差改正数6.计算终点大地坐标及大地方位角011122S B C A{sin (cos )}σσσ=-+10101022222sin ()sin sin cos cos σσσσσσ+=+10101022222cos ()cos cos sin sin σσσσσσ+=-001101522B C A[cos ()]sin ()σσσσσσ=++++010122L A sin [(sin ()sin )]λδασβσσσ-==++-2111u u u A sin sin cos cos cos sin σσ=+2222222222222222222222111111111e u B u B W W u e B u u B B arctan e u e u sin sin cos cos tan tan sin sin tan cos -cos ⎧-==⎪⎪⎨⎪=-⎪⎩⎡⎤⎢⎥==--⎢⎥-⎣⎦1111A arctan u u A sin sin []cos cos sin sin cos σλσσ=-21L L λδ=+-112111u A A arctan u A u cos sin cos cos cos sin sin σσ⎡⎤=⎢⎥-⎣⎦反算流程:1.辅助计算2.用逐次趋近法同时计算起点大地方位角、球面长度及经差,第一次趋近时,取δ=0。
计算下式,重复上述计算过程2.3.计算大地线长度S4.计算反方位角二.已知数据序号B1(DD.MMSS)L1 (DD.MMSS)A12(DD.MMSS)S12(m)1 41.01356874 130.10122676 1.4943 8000L λδ=+211212u pA u u u u qsin cos tan cos sin sin cos cos λλ==-2121p p u q b b A arctanqsin cos cos λλ==-=11p A q A sin cos tan cos σσ+=11p A q A sin sin cos σ=+12a a cos cos σλ=+arctan sin cos σσσ⎛⎫=⎪⎝⎭011A u A sin cos sin =111u A tan tan sec σ=21+σσσ=02122L A sin [(sin sin )]λδασβσσ-==+-L λδ=+11222222S A B C B C sin (cos )sin (cos )σσσσσ=++-+1212u A b b cos sin arctan cos λλ⎡⎤=⎢⎥-⎣⎦三.源代码:#include <stdio.h>#include <math.h>#define e 0.081813334016931499 //克拉索夫斯基椭球体第一偏心率void main(){int k,B10,B11,L10,L11,A10,A11,B20,B21,L20,L21,A20,A21;double B12,L12,A12,B22,L22,A22;double B1,L1,A1,S,B2,L2,A2,L,pi;double A,B,C,afa,beta;double a1,a2,b1,b2,p,q,x,y;doubleW1,W2,sinu1,sinu2,cosu1,cosu2,sinA0,cotsigma1,sin2sigma1,cos2sigma1,sigma0,sin2,cos2,sigm a,sins,coss,delta0,delta,lamda;pi=4*atan(1);printf("白塞尔大地主题正算请输入1\n白塞尔大地主题反算请输入2\n");scanf("%d",&k);if(k==1){printf("请输入大地线起点纬度B经度L,大地方位角A及大地线长度S:\n");scanf("%d%d%lf%d%d%lf%d%d%lf%lf",&B10,&B11,&B12,&L10,&L11,&L12,&A10,&A 11,&A12,&S);B1=(B10+(float)B11/60+B12/3600)*pi/180;L1=(L10+(float)L11/60+L12/3600)*pi/180;A1=(A10+(float)A11/60+A12/3600)*pi/180;W1=sqrt(1-e*e*sin(B1)*sin(B1)); //计算起点规划纬度sinu1=sin(B1)*sqrt(1-e*e)/W1; //计算起点规划纬度cosu1=cos(B1)/W1; //计算起点规划纬度sinA0=cosu1*sin(A1); //计算辅助函数值cotsigma1=cosu1*cos(A1)/sinu1; //计算辅助函数值sin2sigma1=2*cotsigma1/(cotsigma1*cotsigma1+1); //计算辅助函数值cos2sigma1=(cotsigma1*cotsigma1-1)/(cotsigma1*cotsigma1+1); //计算辅助函数值A=6356863.020+(10708.949-13.474*(1-sinA0*sinA0))*(1-sinA0*sinA0);B=(5354.469-8.798*(1-sinA0*sinA0))*(1-sinA0*sinA0);C=(2.238*(1-sinA0*sinA0))*(1-sinA0*sinA0)+0.006;afa=691.46768-(0.58143-0.00144*(1-sinA0*sinA0))*(1-sinA0*sinA0);beta=(0.2907-1.0E-3*(1-sinA0*sinA0))*(1-sinA0*sinA0);sigma0=(S-(B+C*cos2sigma1)*sin2sigma1)/A;sin2=sin2sigma1*cos(2*sigma0)+cos2sigma1*sin(2*sigma0);cos2=cos2sigma1*cos(2*sigma0)-sin2sigma1*sin(2*sigma0);sigma=sigma0+(B+5*C*cos2)*sin2/A;delta=(afa*sigma+beta*(sin2-sin2sigma1))*sinA0; //计算经度差改正数delta=delta/3600*pi/180;sinu2=sinu1*cos(sigma)+cosu1*cos(A1)*sin(sigma);B2=atan(sinu2/(sqrt(1-e*e)*sqrt(1-sinu2*sinu2)));lamda=atan(sin(A1)*sin(sigma)/(cosu1*cos(sigma)-sinu1*sin(sigma)*cos(A1))); if(sin(A1)>0){if(tan(lamda)>0)lamda=fabs(lamda);elselamda=pi-fabs(lamda);}else{if(tan(lamda)>0)lamda=fabs(lamda)-pi;elselamda=-1*fabs(lamda);}L2=L1+lamda-delta;A2=atan(cosu1*sin(A1)/(cosu1*cos(sigma)*cos(A1)-sinu1*sin(sigma)));if(sin(A1)>0){if(tan(A2)>0)A2=pi+fabs(A2);elseA2=2*pi-fabs(A2);}else{if(tan(A2)>0)A2=fabs(A2);elseA2=pi-fabs(A2);}B2=B2*180*3600/pi;L2=L2*180*3600/pi;A2=A2*180*3600/pi;B20=(int)B2/3600;B21=(int)B2/60-B20*60;B22=B2-B20*3600-B21*60;L20=(int)L2/3600;L21=(int)L2/60-L20*60;L22=L2-L20*3600-L21*60;A20=(int)A2/3600;A21=(int)A2/60-A20*60;A22=A2-A20*3600-A21*60;printf("正算得到的终点大地经度和大地纬度及A2:\n%d %d %lf\n%d %d %lf\n%d %d %lf\n",B20,B21,B22,L20,L21,L22,A20,A21,A22);}else{printf("请输入大地线起点和终点的坐标BL\n");scanf("%d%d%lf%d%d%lf%d%d%lf%d%d%lf",&B10,&B11,&B12,&L10,&L11,&L12,&B 20,&B21,&B22,&L20,&L21,&L22);B1=(B10+(double)B11/60+B12/3600)*pi/180;L1=(L10+(double)L11/60+L12/3600)*pi/180;B2=(B20+(double)B21/60+B22/3600)*pi/180;L2=(L20+(double)L21/60+L22/3600)*pi/180;W1=sqrt(1-e*e*sin(B1)*sin(B1));W2=sqrt(1-e*e*sin(B2)*sin(B2));sinu1=sin(B1)*sqrt(1-e*e)/W1;sinu2=sin(B2)*sqrt(1-e*e)/W2;cosu1=cos(B1)/W1;cosu2=cos(B2)/W2;L=L2-L1;a1=sinu1*sinu2;a2=cosu1*cosu2;b1=cosu1*sinu2;b2=sinu1*cosu2;delta0=0;lamda=L+delta0;p=cosu2*sin(lamda);q=b1-b2*cos(lamda);A1=atan(p/q);if(p>0){if(q>0)A1=fabs(A1);elseA1=pi-fabs(A1);}else{if(q>0)A1=2*pi-fabs(A1);elseA1=pi+fabs(A1);}sins=p*sin(A1)+q*cos(A1); //计算sigma的正弦值coss=a1+a2*cos(lamda); //计算sigma的余弦值sigma=atan(sins/coss);if(coss>0)sigma=fabs(sigma);elsesigma=pi-fabs(sigma);sinA0=cosu1*sin(A1);x=2*a1-(1-sinA0*sinA0)*cos(sigma);afa=(33523299-(28189-70*(1-sinA0*sinA0))*(1-sinA0*sinA0))*1.0e-10; beta=(28189-94*(1-sinA0*sinA0))*1.0e-10;delta=(afa*sigma-beta*x*sin(sigma))*sinA0;lamda=L+delta;while(fabs(delta-delta0)>4.8e-10){delta0=delta;p=cosu2*sin(lamda);q=b1-b2*cos(lamda);A1=atan(p/q);if(p>0){if(q>0)A1=fabs(A1);elseA1=pi-fabs(A1);}else{if(q>0)A1=2*pi-fabs(A1);elseA1=pi+fabs(A1);}sins=p*sin(A1)+q*cos(A1); //计算sigma的正弦值coss=a1+a2*cos(lamda); //计算sigma的余弦值sigma=atan(sins/coss);if(coss>0)sigma=fabs(sigma);elsesigma=pi-fabs(sigma);sinA0=cosu1*sin(A1);x=2*a1-(1-sinA0*sinA0)*cos(sigma);afa=(33523299-(28189-70*(1-sinA0*sinA0))*(1-sinA0*sinA0))*1.0e-10;beta=(28189-94*(1-sinA0*sinA0))*1.0e-10;delta=(afa*sigma-beta*x*sin(sigma))*sinA0;lamda=L+delta;}A=6356863.020+(10708.949-13.474*(1-sinA0*sinA0))*(1-sinA0*sinA0);B=10708.938-17.956*(1-sinA0*sinA0);C=4.487;y=((1-sinA0*sinA0)*(1-sinA0*sinA0)-2*x*x)*cos(sigma);S=A*sigma+(B*x+C*y)*sin(sigma);A2=atan((cosu1*sin(lamda))/(b1*cos(lamda)-b2));if(sin(A1)>0){if(tan(A2)>0)A2=pi+fabs(A2);elseA2=2*pi-fabs(A2);}else{if(tan(A2)>0)A2=fabs(A2);elseA2=pi-fabs(A2);}A1=A1*3600*180/pi;A2=A2*3600*180/pi;A10=(int)A1/3600;A11=(int)A1/60-A10*60;A12=A1-A10*3600-A11*60;A20=(int)A2/3600;A21=(int)A2/60-A20*60;A22=A2-A20*3600-A21*60;printf("反算得到的方位角A1A2及大地线长S:\n%d %d %lf\n%d %d %lf\n%lf\n",A10,A11,A12,A20,A21,A22,S);}}四.程序执行结果:。
大地测量学第四章-5大地测量主题解算
2R
2
ab sin C
A A0 , 3
B B0 , 3
bc sin A ac sin B ab sin C 2 2 2
C C0 3
化算平面角需要球面角超,而球面角超的计算又需要平面 角,因此直接用球面角计算球面角超就带有误差。 当边长不大于90km时,这种误差小于0.0005″,故可直接 用球面角代替平面角计算球面角超ε
dB d 3 B B2 B1 B ( ) M S ( 3 ) M S 3 5次项 dS 24 dS
三、高斯平均引数正算公式
(1)建立级数展开式: 同理可得:
dL d 3 L L2 L1 L ( ) M S ( 3 ) M S 3 5次项 dS 24 dS
Bm BM ,
Am AM
三、高斯平均引数正算公式
(3)求以Bm、Am为依据的导数: 经整理得:
2 Vm S2 2 2 B S cos Am {1 [sin 2 Am ( 2 3t m 2 m ) 2 Nm 24 N m 2 2 2 2 3 m cos 2 Am ( 1 m 9 m t m )]} 5次
第四章 Ⅴ大地测量主题解算
——大地主题解算思路 ——勒让德级数式 ——高斯平均引数正算公式 ——高斯平均引数反算公式
上一讲应掌握的内容 1、垂线偏差改正 垂线偏差对水平方向的影响 "u ( "sin A1 "cos A1) tan 1 2、标高差改正 e2 由照准点高度而引起的改正 "h H 2 cos2 B2 sin 2 A1
以大地线在大地坐标系中的微分方程为基础 主要特点:解算精度与距离有关,距离越长, 收敛越慢,因此只适用于较短的距离。 典型解法:高斯平均引数法
大地测量学基础习题与思考题及答案含重点及两份武大测绘试题@
《大地测量学基础》习题与思考题一 绪论1.试述您对大地测量学的理解?2.大地测量的定义、作用与基本内容是什么?3.简述大地测量学的发展概况?大地测量学各发展阶段的主要特点有哪些?4.简述全球定位系统(GPS )、激光测卫(SLR )、 甚长基线干涉测量(VIBL )、 惯性测量系统(INS )的基本概念? 二 坐标系统与时间系统1.简述是开普勒三大行星定律? 2.什么是岁差与章动?什么是极移? 3.什么是国际协议原点 CIO?4.时间的计量包含哪两大元素?作为计量时间的方法应该具备什么条件? 5.恒星时、 世界时、 历书时与协调时是如何定义的?其关系如何? 6.什么是大地测量基准?7.什么是天球?天轴、天极、天球赤道、天球赤道面与天球子午面是如何定义的 ? 8.什么是时圈 、黄道与春分点?什么是天球坐标系的基准点与基准面? 9.如何理解大地测量坐标参考框架?10.什么是椭球的定位与定向?椭球的定向一般应该满足那些条件? 11.什么是参考椭球?什么是总地球椭球?12.什么是惯性坐标系?什么协议天球坐标系 、瞬时平天球坐标系、 瞬时真天球坐标系?13.试写出协议天球坐标系与瞬时平天球坐标系之间,瞬时平天球坐标系与瞬时真天球坐标系的转换数学关系式。
14.什么是地固坐标系、地心地固坐标系与参心地固坐标系?15.什么协议地球坐标系与瞬时地球坐标系?如何表达两者之间的关系?16.如何建立协议地球坐标系与协议天球坐标系之间的转换关系,写出其详细的数学关系式。
17.简述一点定与多点定位的基本原理。
18.什么是大地原点?大地起算数据是如何描述的?19.简述1954年北京坐标系、1980年国家大地坐标系、 新北京54坐标系的特点以及它们之间存在相互关系。
20.什么是国际地球自传服务(IERS )、国际地球参考系统(ITRS) 、国际地球参考框架(ITRF)? ITRS 的建立包含了那些大地测量技术,请加以简要说明?21. 站心坐标系如何定义的?试导出站心坐标系与地心坐标系之间的关系?22.试写出不同平面直角坐标换算、不同空间直角坐标换算的关系式?试写出上述两种坐标转换的误差方程式? 23.什么是广义大地坐标微分方程(或广义椭球变换微分方程)?该式有何作用? 三 地球重力场及地球形状的基本理论1.简述地球大气中平流层、对流层与电离层的概念。
白赛尔大地主题解算
11
Fundation of Geodesy
(1)建立级数展开式:
S
S
MP2 2 , MP1 2
B2
BM
(
dB dS
)M
S 2
1 d2B 2 ( dS 2 )
S2 4
1 d3B 6 ( dS 3 )
S3 8
B1 BM
(
dB dS
)M
S 2
1 d2B 2 ( dS 2 )M
S2 4
1 6
(
B
(
dA dS
)
dB dS
A
(
dA dS
)
dA dS
V2 c2
sin
Acos
A(1
2t
2
2
)
(4 194)
▪ 三阶导数
d3B dS 3
V5 c3
cos
A[sin2
A(1
3t 2
2
9 2t 2 )
3 2
cos2
A(1
t2
2
5η2t 2 )]
d 3L 2V 2 dS3 c2 t sec B sin Acos A
计算范例
23
Fundation of Geodesy
24
Fundation of Geodesy
25
Fundation of Geodesy
四、白塞尔大地问题解算
德国天文学家、数学家Bessel (1784~1846)
26
Fundation of Geodesy
上节知识点回顾
2 4
1 3
2 4
A" t01 L" t21B"2 L" t03 L"3
大地测量学知识点
大地测量学知识点第一篇:大地测量学知识点1.大地坐标系:地面点在参考椭圆的位置用大地经度和纬度表示,若地面的点不在椭球面上,它沿法线到椭球面的距离称为大地高2.空间大地直角坐标系:是大地坐标系相应的三维大地直角坐标系3.地心坐标系:定义大地坐标系时,如果选择的旋转椭球为总地球椭球,椭球中心就是地质中心,再定义坐标轴的指向,此时建立的大地坐标系叫做地心坐标系大地方位角:p点的子午面与过p点法线及Q点的平面所成的角度正高系统:地面上一点沿铅垂线到大地水准面的距离正常高系统:一点沿铅垂线到似水准面的距离国家水准网布设的原则:从高级到低级,从整体到局部,分为四个等级布设,逐级控制,逐级加密4.理论闭合差:在闭合的环形水准路线中,由于水准面不平行所产生的闭合差5.大地高系统:地面一点沿法线到椭球面的距离6.平面控制网的测量方法三角测量:在地面上按一定的要求选定一系列的点,他们与周围的邻近点通视,并构成相互联接的三角网状图形,称为三角网,网中各点称为三角点,在各点上可以进行水平角测量,精确观测各三角内角,另外至少精确测量一条三角形边长度D和方位角,作为网的起始边长和起始方位角,推算边长,方位角进而推算各点坐标三边测量:根据三角形的余弦公式,便可求出三角形内角,进而推算出各边的方位角和各点坐标7.国家高程基准的参考面有平均海水面,大地水准面,似大地水准面,参考椭球面1956年黄海高程系统1985年国家高程基准8.角度观测误差分析视准轴误差:视准轴不垂直于水平轴产生水平轴误差:水平轴不垂直于垂直轴产生这2个的消除误差方法为取盘左盘右读数取平均值垂直轴倾斜误差:垂直轴本身偏离铅垂线的位置,即不竖直解决的方法:观测时,气泡不得偏离一格,测回之间重新整理仪器,观测目标的垂直角大于3度,按气泡偏离的格数计算垂直轴倾斜改正9.方向观测法是在一测回内将测站上所有要观测的方向先置盘左位置,逐一照准进行观测,再盘右的位置依次观测,取盘左盘右的平均值作为各方向的观测值。
vb白塞尔大地主题解算
正算:
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)
xk4 = xk2 * xk2
xk6 = xk4 * xk2
alpha = (1 - xk2 / 4 + 7 * xk4 / 64 - 15 * xk6 / 256) / b
beta = xk2 / 4 - xk4 / 8 + 37 * xk6 / 512
gamma = xk4 / 128 - xk6 / 128
cosA0 = Sqr(1 - sinA0 * sinA0)
e4 = e2 * e2
e6 = e4 * e2
xk2 = e2 * cosA0 * cosA0
xk4 = xk2 * xk2
xk6 = xk4 * xk2
alpha1 = (e2 / 2 + e4 / 8 + e6 / 16) - e2 * (1 + e2) * xk2 / 16 + 3 * xk4 * e2 / 128
beta = xk2 / 4 - xk4 / 8 + 37 * xk6 / 512
gamma = xk4 / 128 - xk6 / 128
sgm = alpha * S
Do
sgm0 = sgm
sgm = alpha * S + beta * Sin(sgm0) * Cos(2 * sgm1 + sgm0)
大地主题解算(深度干货-超精)
大地主题解算(正算)代码与白塞尔大地主题解算大地主题解算(正算)代码:根据经纬度和方向角以及距离计算另外一点坐标新建模块->拷贝下面的大地主题(正算)代码,调用方法示例:起点经度:116.235(度)终点纬度:37.435(度)方向角:50(度)长度:500(米)终点经纬度("经度,纬度")=Computation(37.435,116.235,50,500)Const Pi = 3.1415926535898Private a, b, c, alpha, e, e2, W, V As Double'a 长轴半径'b 短轴'c 极曲率半径'alpha 扁率'e 第一偏心率'e2 第二偏心率'W 第一基本纬度函数'V 第二基本纬度函数Private B1, L1, B2, L2 As Double'B1 点1的纬度'L1 点1的经度'B2 点1的纬度'L2 点2的经度Private S As Double '''''大地线长度Private A1, A2 As Double'A1 点1到点2的方位角'A2 点2到点1的方位角Function Computation(STARTLAT, STARTLONG, ANGLE1, DISTANCE As Double) As StringB1 = STARTLATL1 = STARTLONGA1 = ANGLE1S = DISTANCEa = 6378245b = 6356752.3142c = a ^ 2 / balpha = (a - b) / ae = Sqr(a ^ 2 - b ^ 2) / ae2 = Sqr(a ^ 2 - b ^ 2) / bB1 = rad(B1)L1 = rad(L1)A1 = rad(A1)W = Sqr(1 - e ^ 2 * (Sin(B1) ^ 2))V = W * (a / b)Dim W1 As DoubleE1 = e ''''第一偏心率'// 计算起点的归化纬度W1 = W ''Sqr(1 - e1 * e1 * Sin(B1 ) * Sin(B1 )) sinu1 = Sin(B1) * Sqr(1 - E1 * E1) / W1cosu1 = Cos(B1) / W1'// 计算辅助函数值sinA0 = cosu1 * Sin(A1)cotq1 = cosu1 * Cos(A1)sin2q1 = 2 * cotq1 / (cotq1 ^ 2 + 1)cos2q1 = (cotq1 ^ 2 - 1) / (cotq1 ^ 2 + 1)'// 计算系数AA,BB,CC及AAlpha, BBeta的值。
大地主题解算
大地主题解算一、实验目的: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。
大地主题解算方法综述
是高斯平均 引数 公式 [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)。
白塞尔大地主题解算方向:学号:姓名:一.基本思路:基本思想:将椭球面上的大地元素按照白塞尔投影条件投影到辅助球面上,继而在球面上进行大地主题解算,最后在将球面上的计算结果换算到椭球面上。
其关键问题是找出椭球面上的大地元素与球面上相应元素之间的关系式,同时解决在球面上进行大地主题解算的方法。
正算流程:1.计算起点的归化纬度2.计算辅助函数值,解球面三角形3.按公式计算相关系数A,B,C 以及α,β4.计算球面长度5.计算纬度差改正数6.计算终点大地坐标及大地方位角011122S B C A{sin (cos )}σσσ=-+10101022222sin ()sin sin cos cos σσσσσσ+=+10101022222cos ()cos cos sin sin σσσσσσ+=-001101522B C A[cos ()]sin ()σσσσσσ=++++010122L A sin [(sin ()sin )]λδασβσσσ-==++-2111u u u A sin sin cos cos cos sin σσ=+2222222222222222222222111111111e u B u B W W u e B u u B B arctan e u eu sin sin cos cos tan tan sin sin tan cos -cos ⎧-==⎪⎪⎨⎪=-⎪⎩⎡⎤⎢⎥==--⎢⎥-⎣⎦反算流程: 1.辅助计算2.用逐次趋近法同时计算起点大地方位角、球面长度及经差,第一次趋近时,取δ=0。
计算下式,重复上述计算过程2.3.计算大地线长度S1111A arctan u u A sin sin []cos cos sin sin cos σλσσ=-21L L λδ=+-112111u A A arctan u A u cos sin cos cos cos sin sin σσ⎡⎤=⎢⎥-⎣⎦L λδ=+211212u pA u u u u qsin cos tan cos sin sin cos cos λλ==-2121p p u q b b A arctanqsin cos cos λλ==-=11p A q A sin cos tan cos σσ+=11p A q A sin sin cos σ=+12a a cos cos σλ=+arctan sin cos σσσ⎛⎫=⎪⎝⎭011A u A sin cos sin =111u A tan tan sec σ=21+σσσ=02122L A sin [(sin sin )]λδασβσσ-==+-L λδ=+4.计算反方位角二.已知数据三.源代码:#include <stdio.h> #include <math.h>序号B1(DD.MMSS)L1 (DD.MMSS)A12(DD.MMSS)S12(m)1 41.01356874 130.10122676 1.4943 800011222222S A B C B C sin (cos )sin (cos )σσσσσ=++-+1212u A b b cos sin arctan cos λλ⎡⎤=⎢⎥-⎣⎦#define e 0.081813334016931499 //克拉索夫斯基椭球体第一偏心率void main(){int k,B10,B11,L10,L11,A10,A11,B20,B21,L20,L21,A20,A21;double B12,L12,A12,B22,L22,A22;double B1,L1,A1,S,B2,L2,A2,L,pi;double A,B,C,afa,beta;double a1,a2,b1,b2,p,q,x,y;doubleW1,W2,sinu1,sinu2,cosu1,cosu2,sinA0,cotsigma1,sin2sigma1,cos2sigma1,sigma0,sin2,c os2,sigma,sins,coss,delta0,delta,lamda;pi=4*atan(1);printf("白塞尔大地主题正算请输入1\n白塞尔大地主题反算请输入2\n");scanf("%d",&k);if(k==1){printf("请输入大地线起点纬度B经度L,大地方位角A及大地线长度S:\n");scanf("%d%d%lf%d%d%lf%d%d%lf%lf",&B10,&B11,&B12,&L10,&L11,&L12,&A10,& A11,&A12,&S);B1=(B10+(float)B11/60+B12/3600)*pi/180;L1=(L10+(float)L11/60+L12/3600)*pi/180;A1=(A10+(float)A11/60+A12/3600)*pi/180;W1=sqrt(1-e*e*sin(B1)*sin(B1)); //计算起点规划纬度sinu1=sin(B1)*sqrt(1-e*e)/W1; //计算起点规划纬度cosu1=cos(B1)/W1; //计算起点规划纬度sinA0=cosu1*sin(A1); //计算辅助函数值cotsigma1=cosu1*cos(A1)/sinu1; //计算辅助函数值sin2sigma1=2*cotsigma1/(cotsigma1*cotsigma1+1); //计算辅助函数值cos2sigma1=(cotsigma1*cotsigma1-1)/(cotsigma1*cotsigma1+1); //计算辅助函数值A=6356863.020+(10708.949-13.474*(1-sinA0*sinA0))*(1-sinA0*sinA0);B=(5354.469-8.798*(1-sinA0*sinA0))*(1-sinA0*sinA0);C=(2.238*(1-sinA0*sinA0))*(1-sinA0*sinA0)+0.006;afa=691.46768-(0.58143-0.00144*(1-sinA0*sinA0))*(1-sinA0*sinA0);beta=(0.2907-1.0E-3*(1-sinA0*sinA0))*(1-sinA0*sinA0);sigma0=(S-(B+C*cos2sigma1)*sin2sigma1)/A;sin2=sin2sigma1*cos(2*sigma0)+cos2sigma1*sin(2*sigma0);cos2=cos2sigma1*cos(2*sigma0)-sin2sigma1*sin(2*sigma0);sigma=sigma0+(B+5*C*cos2)*sin2/A;delta=(afa*sigma+beta*(sin2-sin2sigma1))*sinA0; //计算经度差改正数delta=delta/3600*pi/180;sinu2=sinu1*cos(sigma)+cosu1*cos(A1)*sin(sigma);B2=atan(sinu2/(sqrt(1-e*e)*sqrt(1-sinu2*sinu2)));lamda=atan(sin(A1)*sin(sigma)/(cosu1*cos(sigma)-sinu1*sin(sigma)*cos(A1))); if(sin(A1)>0){if(tan(lamda)>0)lamda=fabs(lamda);elselamda=pi-fabs(lamda);}else{if(tan(lamda)>0)lamda=fabs(lamda)-pi;elselamda=-1*fabs(lamda);}L2=L1+lamda-delta;A2=atan(cosu1*sin(A1)/(cosu1*cos(sigma)*cos(A1)-sinu1*sin(sigma)));if(sin(A1)>0){if(tan(A2)>0)A2=pi+fabs(A2);elseA2=2*pi-fabs(A2); }else{if(tan(A2)>0)A2=fabs(A2);elseA2=pi-fabs(A2);}B2=B2*180*3600/pi;L2=L2*180*3600/pi;A2=A2*180*3600/pi;B20=(int)B2/3600;B21=(int)B2/60-B20*60;B22=B2-B20*3600-B21*60; L20=(int)L2/3600;L21=(int)L2/60-L20*60;L22=L2-L20*3600-L21*60;A20=(int)A2/3600;A21=(int)A2/60-A20*60;A22=A2-A20*3600-A21*60;printf("正算得到的终点大地经度和大地纬度及A2:\n%d %d %lf\n%d %d %lf\n%d %d %lf\n",B20,B21,B22,L20,L21,L22,A20,A21,A22);}else{printf("请输入大地线起点和终点的坐标BL\n");scanf("%d%d%lf%d%d%lf%d%d%lf%d%d%lf",&B10,&B11,&B12,&L10,&L11,&L12,& B20,&B21,&B22,&L20,&L21,&L22);B1=(B10+(double)B11/60+B12/3600)*pi/180;L1=(L10+(double)L11/60+L12/3600)*pi/180;B2=(B20+(double)B21/60+B22/3600)*pi/180;L2=(L20+(double)L21/60+L22/3600)*pi/180;W1=sqrt(1-e*e*sin(B1)*sin(B1));W2=sqrt(1-e*e*sin(B2)*sin(B2));sinu1=sin(B1)*sqrt(1-e*e)/W1;sinu2=sin(B2)*sqrt(1-e*e)/W2;cosu1=cos(B1)/W1;cosu2=cos(B2)/W2;L=L2-L1;a1=sinu1*sinu2;a2=cosu1*cosu2;b1=cosu1*sinu2;b2=sinu1*cosu2;delta0=0;lamda=L+delta0;p=cosu2*sin(lamda);q=b1-b2*cos(lamda);A1=atan(p/q);if(p>0){if(q>0)A1=fabs(A1);elseA1=pi-fabs(A1); }else{if(q>0)A1=2*pi-fabs(A1);elseA1=pi+fabs(A1);}sins=p*sin(A1)+q*cos(A1); //计算sigma的正弦值coss=a1+a2*cos(lamda); //计算sigma的余弦值sigma=atan(sins/coss);if(coss>0)sigma=fabs(sigma);elsesigma=pi-fabs(sigma);sinA0=cosu1*sin(A1);x=2*a1-(1-sinA0*sinA0)*cos(sigma);afa=(33523299-(28189-70*(1-sinA0*sinA0))*(1-sinA0*sinA0))*1.0e-10; beta=(28189-94*(1-sinA0*sinA0))*1.0e-10;delta=(afa*sigma-beta*x*sin(sigma))*sinA0;lamda=L+delta;while(fabs(delta-delta0)>4.8e-10){delta0=delta;p=cosu2*sin(lamda);q=b1-b2*cos(lamda);A1=atan(p/q);if(p>0){if(q>0)A1=fabs(A1);elseA1=pi-fabs(A1);}else{if(q>0)A1=2*pi-fabs(A1);elseA1=pi+fabs(A1);}sins=p*sin(A1)+q*cos(A1); //计算sigma的正弦值coss=a1+a2*cos(lamda); //计算sigma的余弦值sigma=atan(sins/coss);if(coss>0)sigma=fabs(sigma);elsesigma=pi-fabs(sigma);sinA0=cosu1*sin(A1);x=2*a1-(1-sinA0*sinA0)*cos(sigma);afa=(33523299-(28189-70*(1-sinA0*sinA0))*(1-sinA0*sinA0))*1.0e-10;beta=(28189-94*(1-sinA0*sinA0))*1.0e-10;delta=(afa*sigma-beta*x*sin(sigma))*sinA0;lamda=L+delta;}A=6356863.020+(10708.949-13.474*(1-sinA0*sinA0))*(1-sinA0*sinA0);B=10708.938-17.956*(1-sinA0*sinA0);C=4.487;y=((1-sinA0*sinA0)*(1-sinA0*sinA0)-2*x*x)*cos(sigma);S=A*sigma+(B*x+C*y)*sin(sigma);A2=atan((cosu1*sin(lamda))/(b1*cos(lamda)-b2));if(sin(A1)>0){if(tan(A2)>0)A2=pi+fabs(A2);elseA2=2*pi-fabs(A2);}else{if(tan(A2)>0)A2=fabs(A2);elseA2=pi-fabs(A2);}A1=A1*3600*180/pi;A2=A2*3600*180/pi;A10=(int)A1/3600;A11=(int)A1/60-A10*60;A12=A1-A10*3600-A11*60;A20=(int)A2/3600;A21=(int)A2/60-A20*60;A22=A2-A20*3600-A21*60;printf("反算得到的方位角A1A2及大地线长S:\n%d %d %lf\n%d %d %lf\n%lf\n",A10,A11,A12,A20,A21,A22,S);}}四.程序执行结果:Welcome To Download !!!欢迎您的下载,资料仅供参考!。