《大地测量实习报告.doc》由会员分享,可在线阅读,更多相关《大地测量实习报告.doc(37页珍藏版)》请在三一办公上搜索。
1、课程编号: 课程性质:必修大地测量计算与实习实 习 报 告学院: 测 绘 学 院 专业: 测 绘 工 程 地点: 校 内 班级: 20 组号: 姓名: 2010年6月28日 至 2010年7月16日大地测量实习报告一、对集中实习的认识本次实习的内容主要有2个方面,一方面是进行精密水准的测量,另一方面是进行大地测量中最重要的解算练习,即高斯坐标正反算,白赛尔大地主题正反算以及高斯平均引数正反算。先说说对精密水准测量的认识。在以前我们已经做过了4等水准测量,那次觉得做水准测量就是读数,扶尺和记录,至于误差我们并没有过多的去关注,因为所测的误差基本上都是落在规定的误差范围以内。所以测起来比较轻松。而
2、本次实习我们测的是二等水准测量,不论是误差方面还是光照和温度方面的要求都比前一次要高很多。但是在全组的细致配合下,我们的误差都还没有超限。这得益于我们在实际的测量中严格按照测量规范中所要求的那样去做,就是严格保证前后视距差和累计视距差在1米和3米之内,实际上我们在测量的时候都保持在0、5米以内,虽然比较麻烦,但是我们得到了更好的精度,很值得。在本次实习中我体会最深的就是小组队员之间的合作,在测量过程中我们小组一共是7个人,始终保持1个读数1个记数,2个人扶尺,2个人量距,剩余1个人做综合的后勤和统筹。如果要提高效率那么我们之间得配合的很好才行。比如当读数结束时,记录人员说可以迁站,这时测距人员
3、已经提前量好了距离,扶尺人员马上过去把水准尺放好整平。这一系列的动作如果做慢了任何一个那么耽误的就是所有人的时间,我们就必须停下来等待,而停下来的时间里我们不能够做其他事情,时间也就白白浪费了。这次实习正是武汉的盛夏,天气很热,中午的时候是最难熬的一段时间,气温很高,没有什么力气了,可是得继续测,因为如果要是休息,对于成果的质量以及我们的士气来说都会有负面的影响。所以从这次的实习过程中我也体会到了作为测绘人员的辛苦与坚持不懈的精神。再说说对大地主题解算实习的认识。大地主题解算主要是学会编程。但是在编程之前一定要对书本上关于解算的思路和原理一定要弄清,否则在编程的时候在临时去看会降低速度和效率,
4、在编程的时候会耗费大量的精力和时间,这时就要坚持下去,并要耐心修改其中的错误,对于有些复杂的程序可以把它们分开来编,不是一定要它们放在一起,这样可以降低编程的难度和工作量,进行计算的时候,通过正反算的数据可以检验编写的程序是否有误。总之编程是靠平时积累其来的,并不是一朝一夕就可以掌握的。二、在实习中的工作及在实习中的收获:我在实习中参加了各实习项目的测量,并按时完成了规定的任务,在内业计算时,我和本小组的各成员一起完成各项了实习成果的计算,同时负责保管实习相关的数据表格等。这次实习让我们小组所有成员都得到了充分的锻炼,每个人都进行过各项任务的所有外业工作,并且都独立的完成了一套数据完整的内业检
5、验和计算工作,每个组员的测绘技能都有较大的提高。通过这次实习测量我学会了在实际的野外测量工作中会在课本上所学到的知识不会完全一样,课本上所交给我们的都使在理想环境下的理论知识,真正的野外作业和书本上说的会有很大的不同。关于仪器的检验以及复杂地形的处理都会比课本上的有所提高。没有真正实习,即使你已经完全掌握了那些理论知识,那也只能算是纸上谈兵,真正的科学使要吧理论联系实际,至于创新,那也使在实践的基础上迸发出灵感,然后才有各种各样的新事物。在现代的社会,动手能力已经上升到一个很高的高度;比如在我们测量过程中所遇到的地形起伏太大的问题,在坡度较大地方做水准测量时,经常会出现看不到水准尺的顶端,下端
6、,或者太靠近两端而影响到数据的精度,从而不得不移动水准仪并从新整平,或者要求前视的组员,不断的移动水准尺来找到一个比较好的地点来进行实习,这时候全靠各个组员的全力配合,没有人去责怪谁的速度慢,从而顺利的完成了水准测量的实习任务。实习中,个组员的表现都十分出色,能力强的求快求准,做到精益求精,能力稍差的组员也能按照实习要求完成各项任务,没有人一味的为了实习进度而不顾实习的完成质量,只做个人比较擅长的事情,因为大家都知道这是我们整个小组所有组员的实习!还有一点就是态度决定一切。尤其是在测量工作中,一丁点的分心都会前功尽弃,必须得重来。还有一个方面就是数据不能出错。这就需要测量和记录人员必须配合好。
7、否则当时没有发现错误,后来需要的工作量就会很大,基本上都是重测,因为那些数据是没法伪造的。因此我们不仅要有过硬的技术还得具备非常认真的态度。三、对集中实习的建议我觉得本次实习的时间选择和跨度的安排都比较好,把B组的实习和我们分开不仅使得场地能够充足也保证了工作量的安排不太多。唯一的不满就是天气确实太热了,当然这也是一种锻炼。四、工作量完成情况这次实习我们按照老师和任务书上的要求按质按量的完成了任务,主要成果包括:(1)、水准测量观测手薄;(2)、侧段高差计算;(3)、i角测定成果和水准尺零点差和基辅差常数的测定成果;(4)、水准点点之记;(5)、水准测量每日安排日程及工作量完成情况登记表;(6
8、)、实测斜距化算至高斯平面距离的程序并附有结果;(7)、高斯正反算程序并附有结果;(8)、大地主题正反算(包括白赛尔和高斯平均引数两种方法)程序及其结果;(9)、精密水准的计算表格。编程思想:总体思想就是根据书上的指导,先把编程要用到的数据一一求出来,在编译器或者word中先记录下来,然后在加入到程序中,这样编程的时候可以直接使用。1、 白赛尔大地主题解算:(1)先将椭球面上的元素换算到球面。(2)在球面上进行计算。(3)最后将结果换算到椭球面上。2、高斯平均引数正反算(1)求出两点之间的经纬度的平均数(2)在利用高斯高斯平均引数正算的公式带入计算即可(3)如果是高斯平均引数反算那么要先设定一
9、个初始值进行迭代计算,直到两次结果在一定的范围之内。3、高斯投影正反算(1)根据高斯投影的3个条件:A、中央子午线投影后为直线B、中央子午线投影后长度不变C、正形投影条件(2)利用所设的函数进行计算,带入数据根据书上的公式计算。计算公式:球面坐标与平面坐标间的转换(地图投影高斯投影和兰勃托圆锥投影)高斯投影 和 投影换带高斯正算:(适用于电算程序的公式)精度为0.001mx=X+N t 1 2 m + 1 24 (5-t+9+4) m+ 1 720 (61-58 t+ t) m= X+N t (1 2 +( 1 24(5-t+9+4) + 1 720 (61-58 t+ t) m)m)my=
10、N m+ 1 6(1- t+) m+ 1 120(5-18 t+ t+14-58 t) m= N (1+ 1 6(1- t+) + 1 120(5-18 t+ t+14-58 t) m)m)mN为卯酉圈曲率半径, X是中央子午线弧长,m=cosB* 180 ( 经度差转换为弧度) , =L-L0 (L0是中央子午线的经度) ,=cosB, t=tanB 。X=MdB =a0- a2cos2B+ a4cos4B- a6cos6B+ a8cos8B对于1940克拉索夫斯基椭球X=111 134.861B-16 036.480sin2B+16.828sin4B-0.022sin6Bx=6 36755
11、8.496 9 Bp- a0-0.5+(a4+ a6)NsinBcosBy=1+(a3+ a5)NcosB= (L-L0) pN = 6 399 698.902 -21 562.267-(108.973-0.612cosB)cosBcosBa0 = 32 140.404-135.330 2-(0.709 2-0.004cosB)cosBcosBa4 =(0.25+0.002 52cosB)cosB-0.041 66a6 =(0.166cosB -0.084)cosBa3=(0.333 333 3+0.001 123cosB)cosB-0.166 666 7a5 = 0.008 3-0.166
12、7-(0.196 8-0.004cosB)cosB注:B是指以度为单位的纬度值高斯反算:(适用于电算程序的公式)精度为0.0001B= B -1-(b4-0.12Z)Z Z b2= 1-(b3- b5Z)Z ZL=L0+ 对于克拉索夫斯基椭球由子午线弧长求底点纬度B (1)迭代算法初始值 B=X / 111 134.8611迭代公式 B=(X-F(B)/ 111 134.8611 F(B)= - 16036.4803sin2 B+16.8281sin4 B-0.0220sin6 B(2)直接算法(弧度) =X /6 367 558.496 9B=+(50 221 746+(293 622+(2
13、 350+22cos)cos) cos)sincos10 -10 N 的计算式N = 6 399 698.902 -21 562.267-(108.973-0.612cosB)cosBcosB各项系数Z=y / (Ncos B)b2 = (0.5+0.003369 cos B)sin Bcos Bb3 = 0.333333- (0.166667-0.001123 cos B) cos Bb4 = 0.25+ (0.161 61+0.00562 cos B) cos Bb5 = 0.2- (0.166 7-0.0088cos B) cos B三、大地主题解算前提:地面观测值归算至椭球面(天文方位
14、角和天文天顶距归算为大地方位角和大地天顶距/地面观测距离长度归算为大地线)(1) 高斯平均引数法正算公式Bm =(B+ B) , Am=(A+ A180)B=( B- B)= Vm NmScos Am 1+ S 24NmsinAm(2+3tm+2)+3cosAm(-1+ tm - - 4tm)+5次L=( L- L)= p NmSsecBmsin Am1+ S 24Nm tm sinAm -cosAm(1+ -9 tm)+5次A=( A- A )= p NmStmsinAm1+ S 24NmcosAm(2+7+9 tm+5)+sinAm(2+t+2)+5次由于,B,A未知,故Bm和Am精确值未
15、知,必须迭代计算。B,L及A的初始值为:B0= p MScos A L0= p NSsin Asec B A0=L0sin BBm = B+B0 Am = A +A0(Bm Am带入上述公式迭代即可)此方法适合与200公里以下的大地问题解算,其计算经纬计算精度可达到0.0001, 方位角计算精度可达到0.001反算公式U=S sinAm V=S cosAm S10= Nm pVm ,S12= - NmcosBm 24p Vm (2+3 tm+2) ,S30= - Nm 8pVm (- tm+4tm)求出S sinAm,S cosAm及A后,按下式计算大地线长度S及正、反方位角A ,A注:在编程
16、实现过程中对Am的象限判断。 C=SsinAm ScosAm arctanC,当BLT= /4+ arctanC,当B0,L0 T 当B0,L0Am = + T 当B0,L0,L0此方法适合与200公里以下的大地问题解算,收敛快,精度高,无需迭代。(2)白赛尔法正算步骤及公式1.计算起点的归化纬度2.计算辅助函数值,解球面三角形可得:3. 按公式计算相关系数A,B,C以及,对于克拉索夫斯基椭球A=635 6863.20+(10708.949-13.474 cosA0) cosA0B=(5354.469-8.978cosA0)cosA0C=(2.238cosA0)cosA0+0.006=3352
17、3299-(28189-70cosA0)cosA0 10-10 =14094.5-47cosA0)cosA0 10-10 4.计算球面长度 迭代法: 直接法:5.计算经度差改正数6.计算终点大地坐标及大地方位角反算步骤及公式1.辅助计算2.用逐次趋近法同时计算起点大地方位角、球面长度及经差,第一次趋近时,取。计算下式,重复上述计算过程2. =-L=sin A0+(sin2- sin2)对于克拉索夫斯基椭球=33523299-(28189-70cosA0)cosA0 10-10 =14094.5-47cosA0)cosA0 10-10 这些系数保证计算经度的误差不大于0.0002。3. 按公式计
18、算相关系数A ,B,C后计算大地线长度S 简化前反算公式简化后S的公式,引入符号x=2sinsin- cosA0cos y=( cosA0- 2x)cosS=A+(Bx+Cy)sin对于克拉索夫斯基椭球A=635 6863.020+(10708.949-13.474 cosA0) cosA0B= 2B cosA0 =2(5354.469-8.978cosA0)=10708.938-17.956cosAC= 2C (cosA0)= 4.4874. 计算反方位角 任务一:实测斜距化算至高斯平面距离一、源代码(见附件一)二、运行结果经程序计算4号点和5号点的大地方位角为:A=202.5627972利
19、用高斯坐标正算程序算出4号点的坐标为:X=4166870.1222Y=122592.49186利用高斯坐标正算程序算出5号点的坐标为:X=4164893.6141Y=118102.14518将以上数据输入实测斜距化算至高斯平面距离程序可得:任务二:高斯正反算(1)高斯投影正算一、源代码(见附件二)二、运行结果所用数据为第六组B=35.37528760L=112.31573386由此程序可见其结果为:X=3945791.1707Y=138832.2779(2)高斯投影反算一、源代码(见附件二)二、运行结果所用数据为第六组即:由程序一得到X=3945791.1707Y=138832.2779由此程
20、序可见其结果为:B=35.37528761L=112.31573386任务三:大地主题解算(1)大地主题正算白赛尔方法一、源代码(见附件三)二、运行结果所用数据为第六组即:B1=42.16356874 L1=136.10222676 A12=1.4943 S12=5110000由此程序可见其结果为:B2=87.41548916L2=170.53194830A21=215.58251312(2)大地主题反算白赛尔方法一、源代码(见附件三)二、运行结果所用数据为第六组即:B1=42.16356874 L1=136.10122676 B2=87.41548916L2=170.53194830由此程序
21、可见其结果为:S=5109999.995A12=1.4949A21=215.58251250任务四:大地主题解算(1)大地主题正算高斯平均引数法一、源代码(见附件四)二、运行结果所用数据为第六组即:B1=42.06356874 L1=136.10122676 A12=1.4943 S12=90000由此程序可见其结果为:B2=42.55108628L2=136.12188892A21=181.51085705(2)大地主题反算高斯平均引数法一、源代码(见附件四)二、运行结果所用数据为第六组即:B1=42.06356874 L1=136.10122676B2=42.55108628L2=136.
22、12188892由此程序可见其结果为:S=89999.9990A12=1.4943A21=181.51085732任务五:平面坐标转换参数计算一、源代码(见附件五)二、运行结果经计算x=-2465703.9759y=-433212.1258m=-0.000001-0.01080附件一(实测斜距化算至高斯平面距离源代码)#include #include #include #define a 6378245.0000000000#define b 6356863.0187730473#define e 0.006693421622966#define u 0.006738525414683usi
23、ng namespace std;/double W(double B)return sqrt(1-e*sin(B)*sin(B);/double N(double W)return a/W;/double R(double B,double A)return N/(1+e*cos(B)*cos(B)*cos(A)*cos(A);void main()double B=37+37/60+30.4420/3600;double A=202+56/60+27.972/3600;double W=sqrt(1-e*sin(B)*sin(B);double N= a/W;double R= N/(1+
24、e*cos(B)*cos(B)*cos(A)*cos(A);double D=4905.749;double H2=763.535;double H1=743.811;double m=(H2-H1)*(H2-H1)/(D*D);double n=(1+H1/R)*(1+H2/R);double S=D*sqrt(1-m)/n)+D*D*D/(24*R*R*R);/return S;cout将斜距转化为椭球上的距离为S=Sendl;/cout再将椭球上的距离经距离改化至高斯投影面上的距离endl;double y1=122592.49186;double y2=118102.14518;dou
25、ble ym=(y1+y2)/2;double b1=37+37/60+30.4420/3600;double b2=37+36/60+28.4668/3600;double bm=(b1+b2)/2;double t=N/(1+e*cos(bm)*cos(bm)*cos(A)*cos(A);double d=(1+(ym*ym)/(2*t*t)+(y1-y2)*(y1-y2)/(24*t*t)+(ym*ym*ym*ym)/(24*t*t*t*t)*S;cout再将椭球上的距离经距离改化至高斯投影面上的距离为d=dendl;system(pause);附件二(高斯正反算源代码)#include
26、 #include #include #define p 206264.806247096355using namespace std;/正算函数/double GetL0(double L)int i;L=L*p/3600; i=(int)L/6;double N=L/6;if(Ni) return (6*(i+1)-3)*3600/p;else return (6*i-3)*3600/p; double Getl(double L,double L0)return L-L0;double GetN(double B)double temp=cos(B)*cos(B);return 6399
27、698.902-(21562.267-(108.973-0.612*temp)*temp)*temp;double Geta0(double B)double temp=cos(B)*cos(B);return 32140.404-(135.3302-(0.7092-0.004*temp)*temp)*temp;double Geta4(double B)double temp=cos(B)*cos(B);return (0.25+0.00252*temp)*temp-0.04166;double Geta6(double B)double temp=cos(B)*cos(B);return
28、(0.166*temp-0.084)*temp;double Geta3(double B)double temp=cos(B)*cos(B);return (0.3333333+0.001123*temp)*temp-0.1666667;double Geta5(double B)double temp=cos(B)*cos(B);return 0.0083-(0.1667-(0.1968+0.004*temp)*temp)*temp;double Getx(double B,double a0,double a4,double a6,double l,double N)double l2=
29、l*l;return (6367558.4969*B-(a0-(0.5+(a4+a6*l2)*l2)*l2*N)*sin(B)*cos(B);double Gety(double B,double a3,double a5,double l,double N)return (1+(a3+a5*l*l)*l*l)*l*N*cos(B);/反算函数/double Getbet(double x)return x*p/6367558.496;double GetBf(double bet)double m=cos(bet/p),n=sin(bet/p);return bet+(50221746+(2
30、93622+(2350+22*m*m)*m*m)*m*m)*m*n*p*0.0000000001; double GetNf(double Bf)double temp=cos(Bf/p)*cos(Bf/p);return 6399698.902-(21562.267-(108.973-0.612*temp)*temp)*temp;double GetZ(double y,double Bf,double Nf)double temp=cos(Bf/p);return y/(Nf*temp);double Getb2(double Bf)double m=cos(Bf/p),n=sin(Bf/
31、p);return (0.5+0.003369*m*m)*m*n;double Getb3(double Bf)double temp=cos(Bf/p)*cos(Bf/p);return 0.333333-(0.166667-0.001123*temp)*temp;double Getb4(double Bf)double temp=cos(Bf/p)*cos(Bf/p);return 0.25+(0.16161+0.00562*temp)*temp;double Getb5(double Bf)double temp=cos(Bf/p)*cos(Bf/p);return 0.2-(0.16
32、67-0.0088*temp)*temp;double GetB(double Bf,double b2,double b4,double Z)return Bf-(1-(b4-0.12*Z*Z)*Z*Z)*Z*Z*b2*p;double Getll(double b3,double b5,double Z)return (1-(b3-b5*Z*Z)*Z*Z)*Z*p;double GetL(double L0,double l)return L0+l;int main()int k;coutk;if(k=1) double huansuan6; cout请输入B,L(度分秒以空格隔开): ;
33、 for(int i=0;ihuansuani; double B=(huansuan0*3600+huansuan1*60+huansuan2)/p; double L=(huansuan3*3600+huansuan4*60+huansuan5)/p; double L0=GetL0(L); double l=Getl(L,L0); double N=GetN(B); double a0,a4,a6,a3,a5; a0=Geta0(B);a4=Geta4(B);a6=Geta6(B);a3=Geta3(B);a5=Geta5(B); double x=Getx(B,a0,a4,a6,l,N
34、); double y=Gety(B,a3,a5,l,N); cout投影的坐标为:endl; cout.precision(11); coutx=xmendl; couty=ymendl; else if(k=2) double x,y,fhuansuan3;coutxyfhuansuan0fhuansuan1fhuansuan2;double L0=fhuansuan0*3600+fhuansuan1*60+fhuansuan2;double bet=Getbet(x);double Bf=GetBf(bet);double Nf=GetNf(Bf);double Z=GetZ(y,Bf,
35、Nf);double b2=Getb2(Bf);double b3=Getb3(Bf);double b4=Getb4(Bf);double b5=Getb5(Bf);double B=GetB(Bf,b2,b4,Z);double l=Getll(b3,b5,Z);double L=GetL(L0,l);int i,j;i=(int) B/60;j=(int) L/60;coutB=i/60度i-i/60*60分B-i*60秒endl;coutL=j/60度j-j/60*60分L-j*60秒endl;else cout您输入的有误!endl; system(PAUSE); return 0;
36、附件三(大地主题解算白赛尔方法源代码)#include #include #include #define p 206264.806247096355#define pie 3.1415926535897932using namespace std;double a=6378245.0000000000,b=6356863.0187730473,e=0.006693421622966,u=0.006738525414683;/公共函数/ double HSW(double B)return sqrt(1-e*sin(B/p)*sin(B/p);double sinu(double B,doub
37、le W)return sin(B/p)*sqrt(1-e)/W;double cosu(double B,double W)return cos(B/p)/W;double GetA(double cosA0)return 6356863.020+(10708.949-13.474*cosA0)*cosA0;double Getalp(double cosA0)return (33523299-(28189-70*cosA0)*cosA0)*0.0000000001);/正算函数/ double sinA0(double cosu,double A)return cosu*sin(A/p);
38、double cotsgm(double cosu,double A,double sinu)return cosu*cos(A/p)/sinu;double sin2sgm(double cotsgm)return 2*cotsgm/(cotsgm*cotsgm+1);double cos2sgm(double cotsgm)return (cotsgm*cotsgm-1)/(cotsgm*cotsgm+1);double GetB(double cosA0)return (5354.469-8.978*cosA0)*cosA0;double GetC(double cosA0)return
39、 (2.238*cosA0)*cosA0+0.006;double Getbet(double cosA0)return (0.2907-0.001*cosA0)*cosA0*0.0000000000;double sinsgm2(double sgm,double sin2sgm,double cos2sgm)return sin2sgm*cos(2*sgm)+cos2sgm*sin(2*sgm);double cossgm2(double sgm,double sin2sgm,double cos2sgm)return cos2sgm*cos(2*sgm)-sin2sgm*sin(2*sg
40、m);double GetB2(double sinu2)return atan(sinu2/(sqrt(1-e)*sqrt(1-sinu2*sinu2);double GetR(double A,double sgm,double sinu1,double cosu1)return atan(sin(A/p)*sin(sgm)/(cosu1*cos(sgm)-sinu1*sin(sgm)*cos(A/p);double GetA2(double A,double sgm,double sinu1,double cosu1)return atan(cosu1*sin(A/p)/(cosu1*cos(sgm)*cos(A/p)-sinu1*sin(sgm);/反算函数/double Getp(double cosu2,double R)return cosu2*sin(R);double Getq(double b1,double b2,double R)return b1-b2*cos(R);double