课程名称:大地测量学基础(A)课程性质:必修大地测量学基础(A)实习报告学院:测绘工程学院班级:1220501实习地点:核工楼410学生姓名:赵四学生学号:201220050163指导教师:王老师日期:2015年05月10日实验1大地坐标与空间坐标的相互转换实验考核序号考核内容考核等级备注1课堂表现点名、实验2程序评价可读性、移植性等3实验效果精度、可靠性等4总结评价认识深度等总评[实验项目]大地坐标与空间坐标的相互转换[实验目的]用vb程序实现坐标转换[实验仪器设备]计算机及vb程序设计语言。[实验原理]用vb程序来实现测量中的坐标之间的转换,让测量工作更方便。[实验内容]*已知B=30°50′00″,L=60°20′00″,大地高程H=555.00m。求X,Y,Z。[实验数据记录及处理]*打开GUIDE,在界面中设计如下图所示界面:点击打开编写程序栏,在其中找到在下面编写如下程序:点击保存,然后点击“F5”运行该GUIDE,最终得到以下结果:[实验结论]*坐标转换是控制测量、大地测量以及GPS中经常用到的运算,一旦坐标转换没有掌握,就很难进行内业的处理工作,所以其具有很重要的作用,因此要熟练掌握。[实验注意事项]*1、注意GUIDE的各个控件的作用。2、注意代码的正确书写,以及代码与控件的相互对应。3、注意坐标的转换方法。4、不要混淆坐标。实验2高斯投影正、反算实验考核序号考核内容考核等级备注1课堂表现点名、实验2程序评价可读性、移植性等3实验效果精度、可靠性等4总结评价认识深度等总评[实验项目]高斯投影正、反算[实验目的]用vb程序实现高斯投影正、反算[实验仪器设备]计算机及vb程序设计语言。[实验原理]已知该点的大地经度和大地纬度求该点的大地坐标,亦L,B求x,y的过程是高斯投影正算已知该点的大地经度和大地坐标求该点的大地纬度,亦x,y求L,B的过程是高斯投影反算[实验原理]*高斯投影正算是由大地坐标(L,B)求高斯平面坐标(x,y)的过程,公式如下:[实验内容]*坐标反算:loadverse_1.txt%读取文件sd=verse_1[row,col]=size(sd)%片段维数nd=row-3%计算待定点个数%**************反算方位角*******dx=sd(1,3)-sd(1,1)dy=sd(1,4)-sd(1,2)dr=sqrt(dx*dx+dy*dy)as0=acos(dx/dr)ifdy0as0=2*pi-as0endxy=zeros(row-1,2)%建造五行两列全零数组xy(1,1)=sd(1,3)xy(1,2)=sd(1,4)xy(row-1,1)=sd(row,3)xy(row-1,2)=sd(row,4)%********计算各点坐标及坐标方位角fori=2:row-1tp=sd(i,2)+sd(i,3)/60+sd(i,4)/3600tp=tp*pi/180as=as0+pi+tpwhileor(as0,as(2*pi))ifas0as=as+2*piendifas=2*pias=as-2*piendenddd=sd(i,1)xy(i,1)=xy(i-1,1)+dd*cos(as)xy(i,2)=xy(i-1,2)+dd*cos(as)as0=asEnd坐标正算:ax=get(handles.edit1,'string')ax=str2num(ax)ay=get(handles.edit2,'string')ay=str2num(ay)s=get(handles.edit3,'string')s=str2num(s)a=get(handles.edit4,'string')a=str2num(a)bx=ax+s*cos(pi*a/180)by=ay+s*cos(pi*a/180)set(handles.edit5,'string',bx)set(handles.edit6,'string',by)高斯投影正算:bd=get(handles.edit1,'string')bd=str2num(bd)bm=get(handles.edit2,'string')bm=str2num(bm)bs=get(handles.edit3,'string')bs=str2num(bs)ld=get(handles.edit4,'string')ld=str2num(ld)lm=get(handles.edit5,'string')lm=str2num(lm)ls=get(handles.edit6,'string')ls=str2num(ls)lzj=get(handles.edit7,'string')lzj=str2num(lzj)b=bd*3600+bm*60+bsl=ld*3600+lm*60+lscb=(cos(b*pi/180))^2n=6399698.902-(21562.267-(108.973-0.612*cb))*cba0=32140.404-(135.3302-(0.7092-0.004*cb)*cb)*cba4=(0.25+0.00253*cb)*cb-0.04166a6=(0.166*cb-0.084)*cba3=(0.3333333+0.001123*cb)*cb-0.1666667a5=0.0083-(0.1667-(0.1968+0.004*cb)*cb)*cbrou=180*3600/pib2s=(bd*3600+bm*60+bs)/roul2s=((ld-lzj)*3600+lm*60+ls)/roucbs=cos(b*pi/180)sbs=sin(b*pi/180)x=6367558.4969*b2s-(a0-(0.5+(a4+a6*l2s^2)*l2s^2)*l2s^2*n)*cbs*sbsy=(l+(a3+a5*l2s^2)*l2s^2)*l2s*n*cbsset(handles.edit10,'string',x)set(handles.edit11,'string',y)高斯投影反算:x=get(handles.edit1,'string')x=str2num(x)y=get(handles.edit2,'string')y=str2num(y)lzj=get(handles.edit3,'string')lzj=str2num(lzj)rou=180*3600/pi;bet=(x/6367558.4969)*rou;bet2s=bet/3600;cbs=cos(bet2s*pi/180);sbs=cos(bet2s*pi/180);bf=bet+(50221746+(293622+(2350+22*cbs^2)*cbs^2)*cbs^2)*10^(-10)*sbs*cbs*rou;bf2s=bf/3600;cbf=cos(bf2s*pi/180);sbf=sin(bf2s*pi/180);nf=6399698.902-(21562.267-(108.973-0.612*cbf^2)*cbf^2)*cbf^2;z=y/(nf*cbf);b2=(0.5+0.003369*cbf^2)*sbf*cbf;b3=0.333333-(0.1666667-0.001123*cbf^2)*cbf^2;b4=0.25+(0.161612+0.00562*cbf^2)*cbf^2;b5=0.2-(0.16667-0.0088*cbf^2)*cbf^2;b=bf-(1-(b4-0.12*z^2)*z^2)*z*rou;l=(1-(b3-b5*z^2)*z^2)*z*rou;ld=ld+zjd;bd=fix(b)bm=fix((b-bd)*60)bs=(b-bd)*3600-bm*60ld=fix(l)lm=fix((l-ld)*60)ls=(l-ld)*3600-bm*60set(handles.edit4,'string',bd)set(handles.edit11,'string',bm)set(handles.edit10,'string',bs)set(handles.edit11,'string',ld)[实验结论]*高斯正、反算是大地测量中经常用到的运算,一旦坐标转换没有掌握,就很难进行内业的处理工作,所以其具有很重要的作用,因此要熟练掌握这些基本原理。[实验注意事项]*需要弄清楚每条代码的实际意义,按照代码的要求进行窗口的设定。同时应注意代码的正确书写,以及代码与控件的相互对应。[心得体会]这次实习主要是学习matlab软件的坐标转换的功能,matlab软件还有丰富的功能,总的而言matlab是一款十分有用的计算软件。实验中遇到的困难就是指令比较多,格式刚刚开始接触觉得陌生,相信多做练习一定能掌握这个软件的使用要领。利用MATLAB编程解算高斯正反算的问题,其最大的优势在于程序编制者无须再为复杂的矩阵计算而编写大量的代码。且MATLAB语言简单易懂,稍有编程基础的人都可以轻松的学习它、利用它来解决实际当中的一些计算问题。