基于matlab的大地坐标与直角坐标间的转换
更新时间:2024-04-17 13:03:01 阅读量: 综合文库 文档下载
测量程序设计 实验报告
换算
实验名称:大地坐标与空间直角坐标的
实验四 大地坐标与空间直角坐标的换算
一、实验目的
编写大地坐标与空间直角坐标相互转换的程序,并对格式化文件数据进行计算,验证程序。 二、实验内容:
1、大地坐标向空间直角坐标换算 转换公式:
x?(N?h)cosBcosLy?(N?h)cosBsinL (1) z?[N(1?e2)?h]sinB其中:L为经度,B为纬度,h为大地高,N?a1?esinB22为卯酉圈曲率半径,
e?a2?b2为第一偏心率,a为旋转椭球长半轴,b为短半轴。 aWGS84椭球参数:长半轴 a=6378137
扁率 f = 1/298.257223563
根据上式创建以geo2xyz命名的函数,函数输入输出格式为 [x, y, z] = geo2xyz (L, B, h) 2、空间直角坐标向大地坐标换算
根据式(1)推导大地坐标向空间直角坐标转换公式:
L?arctan(y/x)z?Ne2sinBB?arctan()
22x?yh?x2?y2?NcosBaz注意计算纬度时需要用到迭代,可用B?arctan()作为初始值。
22bx?y创建以xyz2geo命名的函数,函数输入输出格式为 [L, B, h] = xyz2geo (x, y, z)
三、实验步骤
1、大地坐标向空间直角坐标换算 主程序:
%%大地坐标向空间直角坐标换算
%函数的输入输出格式为[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,'.7f .7f .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
2、空间直角坐标向大地坐标换算 主程序:
%% 将文件data.2.txt中的空间直角坐标系转换为大地坐标,并将计算结果按照格式存储在文件data3.txt中
úta3.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) 纬度(ddmmss) 大地高\\n'); fprintf(fid,'.7f .7f %7.3f\\n',[L,B,H]'); fclose('all');
函数:
function [L,B,H]=xyz2geo(x,y,z) %将直角坐标转换为大地坐标 %% 已知:WGS-84椭球参数
f=1/298.257223563;%扁率f=(a-b)/a a=6378137; %长半轴 b=a*(1-f); %短半轴
e=(sqrt(a^2-b^2))/a; %第一偏心率 %% 经度L的计算 L=atan2(y,x); L=rad2dms(L); %% 纬度B的计算
B0=atan2((a*z),(b.*sqrt(x.^2+y.^2))); % B初始值 while 1
N=a./(sqrt(1-(e^2).*(sin(B0).^2))); %卯酉圈曲率半径N B=atan2(z+N.*(e^2).*sin(B0),(sqrt(x.^2+y.^2))); if abs(B0-B)<10^-6 break; end
abs(B0-B) B0=B; end
%% 大地高H的计算
H=(sqrt(x.^2+y.^2))./cos(B)-N; B=degree2dms(B.*180/pi);%纬度B End
function dms= degree2dms(jiaodu) %度->度分秒(dd.mmss) degree = fix(jiaodu);
mimute = fix((jiaodu-degree)*60);
second = ((jiaodu-degree)*60-mimute)*60; dms = degree+mimute/100+second/10000;
正在阅读:
生活配套设施项目施工组织设计04-01
法语句型短语归纳07-17
当代大学生的学习观现状及思考01-03
起步抓规范,力求上水平303-10
电影摄影课程笔记09-29
高性能18650型锂离子蓄电池03-19
兴 趣 是 最 好 的 老 师(何军成)09-17
课程设计模版05-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 直角坐标
- 坐标
- 大地
- 基于
- 转换
- matlab
- 跟我学礼拜念词
- 2019注会《公司战略与风险管理》主观题背诵版直接打印已整理好
- 职业培训定点机构投标书
- 形意拳大师张长发资料
- 公开课病句修改
- 圆柱和圆锥综合练习题(提高篇)
- 火电、送变电工程建设预算费用构成及计算标准(02电力定额预规)
- 拯救多肉摊大饼的3种方法,有图有真相!
- (新)无机化学习题参考答案
- 医疗器械电气安全分类
- GCT数学 微积分(讲义)
- 《玩的教育 - 我园游戏化园本课程的构建与实践》结题报告 - 图文
- 机能三 离体兔肠设计性试验
- 1 自动配料系统模拟实验
- 计算机 江苏转本历年真题
- 亚信科技笔试题
- 华医网 2013医学科研方法
- 国家低压电工国家题库模拟题(判断题答案)
- 机械原理(郭宏亮)第9章课后题答案
- 陌越E#厂房高支模专项施工方案(修改)