大地测量学基础实习报告.docx
《大地测量学基础实习报告.docx》由会员分享,可在线阅读,更多相关《大地测量学基础实习报告.docx(10页珍藏版)》请在冰豆网上搜索。
大地测量学基础实习报告
课程名称:
大地测量学基础(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)
ifdy<0
as0=2*pi-as0
end
xy=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-1
tp=sd(i,2)+sd(i,3)/60+sd(i,4)/3600
tp=tp*pi/180
as=as0+pi+tp
whileor(as<0,as>(2*pi))
ifas<0
as=as+2*pi
end
ifas>=2*pi
as=as-2*pi
end
end
dd=sd(i,1)
xy(i,1)=xy(i-1,1)+dd*cos(as)
xy(i,2)=xy(i-1,2)+dd*cos(as)
as0=as
End
坐标正算:
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+bs
l=ld*3600+lm*60+ls
cb=(cos(b*pi/180))^2
n=6399698.902-(21562.267-(108.973-0.612*cb))*cb
a0=32140.404-(135.3302-(0.7092-0.004*cb)*cb)*cb
a4=(0.25+0.00253*cb)*cb-0.04166
a6=(0.166*cb-0.084)*cb
a3=(0.3333333+0.001123*cb)*cb-0.1666667
a5=0.0083-(0.1667-(0.1968+0.004*cb)*cb)*cb
rou=180*3600/pi
b2s=(bd*3600+bm*60+bs)/rou
l2s=((ld-lzj)*3600+lm*60+ls)/rou
cbs=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*sbs
y=(l+(a3+a5*l2s^2)*l2s^2)*l2s*n*cbs
set(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*60
ld=fix(l)
lm=fix((l-ld)*60)
ls=(l-ld)*3600-bm*60
set(handles.edit4,'string',bd)
set(handles.edit11,'string',bm)
set(handles.edit10,'string',bs)
set(handles.edit11,'string',ld)
[实验结论]*
高斯正、反算是大地测量中经常用到的运算,一旦坐标转换没有掌握,就很难进行内业的处理工作,所以其具有很重要的作用,因此要熟练掌握这些基本原理。
[实验注意事项]*
需要弄清楚每条代码的实际意义,按照代码的要求进行窗口的设定。
同时应注意代码的正确书写,以及代码与控件的相互对应。
[心得体会]
这次实习主要是学习matlab软件的坐标转换的功能,matlab软件还有丰富的功能,总的而言matlab是一款十分有用的计算软件。
实验中遇到的困难就是指令比较多,格式刚刚开始接触觉得陌生,相信多做练习一定能掌握这个软件的使用要领。
利用MATLAB编程解算高斯正反算的问题,其最大的优势在于程序编制者无须再为复杂的矩阵计算而编写大量的代码。
且MATLAB语言简单易懂,稍有编程基础的人都可以轻松的学习它、利用它来解决实际当中的一些计算问题。