enu2ecefv()函数的matlab实现,也即enu坐标系下向量转换到ecef坐标系下

matlab的mapping toolbox的enu2ecefv()实现

1、介绍功能:

Rotate local east-north-up vector to geocentric Earth-centered Earth-fixed.

就是将ENU坐标系下的向量坐标转换为ECEF坐标系下的向量坐标。

2、实现思路

2.1 先观察enu2ecefv()的函数原型

[U,V,W] = enu2ecefv(uEast,vNorth,wUp,lat0,lon0)

其中,输入[uEast,vNorth,wUp]是向量在ENU坐标系下的坐标表示;[lat0,lon0]是ENU坐标系原点对应的纬度、经度;输出[U,V,W]是原向量转换到ECEF坐标系下的向量坐标表示。

2.2 具体想法

[uEast,vNorth,wUp]是向量坐标表示,那么可以确定这个向量的起点和终点。首先,起点可认为是ENU坐标系的原点,终点可认为是[uEast,vNorth,wUp]在ECEF坐标系下指代的一点。然后,将这两个在ENU坐标系下的点坐标转换为在ECEF坐标系下的坐标。最后,用ECEF下的终点坐标减去起点坐标,即可得到向量的转换坐标。

3、实现结果展示与拓展

3.1 展示enu2ecefv()函数介绍里的例子

 3.2 复现代码

其中的geodetic_to_ecef()和enu_to_ecef()函数为自实现函数,功能与mapping toolbox中的函数geodetic2ecef()和enu2ecef()一致。

lat0 = 17.41;
lon0 = 78.27;

uEast = -27.6190;
vNorth = -16.4298;
wUp = -0.3186;
h = 6378137;

[x0, y0, z0] = geodetic_to_ecef(lat0, lon0, h);
[x1, y1, z1] = enu_to_ecef(uEast, vNorth, wUp, lat0, lon0, h);
result = [x1, y1, z1] - [x0, y0, z0]

3.3 复现结果与分析

 

从上述结果中可以看出,实现思路正确,实现代码的结果与3.1节中例子的结果一致。

4、扩展

enu2ecefv()函数里有一个默认参数,就是默认目标(也即ENU的原点在地球表面)在地球表面。但如果目标不在地球表面,而在表面上方的一定高度h上,这时候的转换就未必正确。所以,可以考虑修改代码中的h,来进行完善。

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值