ECEF坐标系(e系)中 笛卡尔坐标系到大地坐标系的变换

理论基础

摘自 惯性导航、卫星定位及其组的基本原理

下属代码只是核心代码,非完整代码 完整代码下方链接下载
完整代码下载地址

坐标转换公式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

地球常用几何数据

代码

注:代码是用matlab 写的

大地坐标系到笛卡尔坐标系的变换

%% 大地坐标系到笛卡尔坐标系的转换 
%e 表示地球离心率
%R_N 地球N轴长度
%Lat lon分别表示经纬度
function DescartesPos=e2d(Lat,Lon,h)
    e=0.08181919;
    eth=earth([Lat Lon h],[0 0 0]);
    R_N=eth.N;
    NplusH=R_N+h;
    DescartesPos(1)=(NplusH)*cos(Lat)*cos(Lon);
    DescartesPos(2)=(NplusH)*cos(Lat)*sin(Lon);
    DescartesPos(3)=((R_N)*(1-e*e)+h)*sin(Lat);
end

笛卡尔坐标系到大地坐标系的变换

%% 笛卡尔坐标系到大地坐标系的转换 
%e 表示地球离心率
%R_N 地球N轴长度
%Lat lon分别表示经纬度
function pos=d2e(x,y,z)
    a=6378137;
    b=6356752.3142;
    e=0.08181919;
    dot_e=sqrt((a^2-b^2)/b^2);
    p=sqrt(x*x+y*y);
    theta=atan2(z*a,p*b);
    pos(2)=2*atan2(y,x+sqrt(x^2+y^2));
    pos(1)=atan2((z+(dot_e^2)*b*sin(theta)^3),(p-e^2*a*cos(theta)^3));
    
    Lat=pos(1);
    N=(a*a)/sqrt(a*a*cos(Lat)^2+b^2*sin(Lat)^2);
    h=(p/cos(Lat))-N;
    pos(3)=h;
end
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值