- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
测量程序设计
实验报告
实验名称:大地坐标与空间直角坐标的换算
实验四 大地坐标与空间直角坐标的换算
一、实验目的
编写大地坐标与空间直角坐标相互转换的程序,并对格式化文件数据进行计算,验证程序。
二、实验内容:
1、大地坐标向空间直角坐标换算
转换公式:
(1)
其中:L为经度,B为纬度,h为大地高,为卯酉圈曲率半径,为第一偏心率,a为旋转椭球长半轴,b为短半轴。
WGS84椭球参数:长半轴 a = 6378137
扁率 f = 1/298.257223563
根据上式创建以geo2xyz命名的函数,函数输入输出格式为
[x, y, z] = geo2xyz (L, B, h)
2、空间直角坐标向大地坐标换算
根据式(1)推导大地坐标向空间直角坐标转换公式:
注意计算纬度时需要用到迭代,可用作为初始值。
创建以xyz2geo命名的函数,函数输入输出格式为
[L, B, h] = xyz2geo (x, y, z)
三、实验步骤
大地坐标向空间直角坐标换算
主程序:
%%大地坐标向空间直角坐标换算
%函数的输入输出格式为[x,y,z]=geo2xyz(L,B,h)
[filename,pathname] = uigetfile(*.txt,请选择打开的数据文件);
file = [pathname, filename];
data = importdata(file);
L=data.data(:,1);
B=data.data(:,2);
h=data.data(:,3);
[x,y,z]=geo2xyz(L,B,h);
A=[x,y,z];
A=A;
[filename_out,pathname_out] = uiputfile(*.txt,请选择要输出数据文件);
fileout = [pathname_out, filename_out];
fid = fopen(fileout,wt);
fprintf(fid, x y z\n);
fprintf(fid,%15.7f %15.7f %15.7f\n,A);
close(all);
函数:
function [x,y,z]=geo2xyz(L,B,h)
%大地坐标经纬度转换成空间直角坐标
B=dms2rad(B);
L=dms2rad(L);
a=6378137;
%a是长半轴
f=1/298.257223563;
%f是扁率
b=a-a*f;
e=sqrt(a^2-b^2)/a;
N=a./(sqrt(1-e^2.*(sin(B)).^2));
%N为卯酉圈半径率,e为第一偏心率
x=(N+h).*cos(B).*cos(L);
y=(N+h).*cos(B).*sin(L);
z=(N*(1-e^2)+h).*sin(B);
end
function rad=dms2rad(jiaodu)
%度分秒-弧度(rad)
degree = fix(jiaodu);
mimute = fix((jiaodu-degree)*100);
second = (jiaodu-degree-mimute/100)*10000;
degree = degree+mimute/60+second/3600;
rad=degree/180*pi;
end
空间直角坐标向大地坐标换算
主程序:
%% 将文件data.2.txt中的空间直角坐标系转换为大地坐标,并将计算结果按照格式存储在文件data3.txt中
%data3.txt格式为:经度(ddmmss) 纬度(ddmmss) 大地高
[filename,pathname]=uigetfile(*.txt,请选择打开的数据文件);
file=[pathname,filename];
data=importdata(file);
x=data.data(:,1);
y=data.data(:,2);
z=data.data(:,3);
[L,B,H]=xyz2geo(x,y,z);
[filename_out,pathname_out] = uiputfile(*.txt,请选择要输出数据文件);
fileout = [pathname_out, filename_out];
fid = fopen(fileout,wt);
fprintf(fid, 经度(ddmmss) 纬度(d
您可能关注的文档
最近下载
- 饮食营养与卫生.doc VIP
- 固定卷扬式启闭机计算书.doc VIP
- 部编版语文三年级上册第四单元习作《续写故事》课件.pptx VIP
- 2025全国大学生英语竞赛c类真题.pdf VIP
- 尼康D5200使用说明书_大陆_VRUM_SG(Sc)01.pdf VIP
- 管理会计智慧树知到答案章节测试2023年安徽财经大学.docx VIP
- 两、三位数除以一位数第1课时 口算和估算 课件 2025 苏教版数学三年级上册.ppt
- 选煤厂操作规程汇编.docx VIP
- 2025中国南方电网有限责任公司共享运营公司招聘(17人)笔试备考试题及答案解析.docx VIP
- 青岛版信息科技第3册学历案.docx VIP
文档评论(0)