地心地固直角坐标ECEF和大地坐标系转换公式和C语言函数代码

1.大地坐标系(φ,λ,h)转成ECEF(x,y,z)
x=(N+h)cos⁡∅ cos⁡λ
y=(N+h)cos⁡∅ sin⁡λ
z=[N(1-e^2 )+h]sin⁡∅
其中N是基准椭球体的卯酉圆曲率半径,e为椭球偏心率。

#define FE_WGS84    (1.0/298.257223563) /* earth flattening (WGS84) */
#define RE_WGS84    6378137.0           /* earth semimajor axis (WGS84) (m) */
/* transform geodetic to ecef position -----------------------------------------
* transform geodetic position to ecef position
* args   : double *pos      I   geodetic position {lat,lon,h} (rad,m)
*          double *r        O   ecef position {x,y,z} (m)
* return : none
* notes  : WGS84, ellipsoidal height
*-----------------------------------------------------------------------------*/
extern void pos2ecef(const double *pos, double *r)
{
    double sinp=sin(pos[0]),cosp=cos(pos[0]),sinl=sin(pos[1]),cosl=cos(pos[1]);
    double e2=FE_WGS84*(2.0-FE_WGS84),v=RE_WGS84/sqrt(1.0-e2*sinp*sinp);
    
    r[0]=(v+pos[2])*cosp*cosl;
    r[1]=(v+pos[2])*cosp*sinl;
    r[2]=(v*(1.0-e2)+pos[2])*sinp;
}
心地ECEF坐标系与东北天(ENU)坐标系是两种常用的地理坐标系,用于描述物体的位置和方向。它们之间可以进行坐标转换。 地心地坐标系是以地球中心为原点,以地球自轴为Z轴建立的坐标系。它的X轴指向经度为0度的子午线,Y轴指向经度为90度的子午线,Z轴垂直于地球表面向上。地心地坐标系可以直接通过地球球面坐标(经度、纬度、高度)与直角坐标系(X轴、Y轴、Z轴)进行转换。 东北天坐标系是与特定位置相关的本地坐标系,它的X轴指向东方,Y轴指向北方,Z轴垂直于地表向上。在东北天坐标系中,物体的位置和方向是相对于参考点而言的。 坐标系转换可以通过旋、平移和缩放等变换来实现。具体做法是先将地心地坐标系中的点转换为地球上某一特定点的局部东北天坐标系中的点,再通过旋将该点转换为目标位置的本地东北天坐标系中的点。 转换的具体步骤是先确定参考点的经纬度坐标以及在地心地坐标系中的坐标,然后计算出地心地坐标系中参考点到目标点的旋角度和缩放比例,最后将地心地坐标系中的点进行旋平移与缩放变换,得到目标位置的东北天坐标系中的点坐标。 通过地心地坐标系和东北天坐标系转换,我们可以方便地描述物体在空间中的位置和方向,应用于导航、航空、航天等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值