地球空间坐标系转换常用公式

常量

含义量纲对象类型地球半长轴米a=6378137偏率无f=1/298.257222101第一偏心率平方无e2=2f−f2=0.00669438002290 \begin{array} {|l|l|l|} \hline 含义 & 量纲 & 对象类型 \\ \hline 地球半长轴 & 米 & a = 6378137 \\ \hline 偏率 & 无 & f = 1/298.257222101 \\ \hline 第一偏心率平方 & 无 & e^2 = 2f - f^2 = 0.00669438002290 \\ \hline \end{array} 含义地球半长轴偏率第一偏心率平方量纲对象类型a=6378137f=1/298.257222101e2=2ff2=0.00669438002290

地心纬度与大地纬度

tan(ϕ1)=(1−e2)tan(ϕ0) tan(\phi_1) = (1-e^2) tan(\phi_0) tan(ϕ1)=(1e2)tan(ϕ0)

其中ϕ0\phi_0ϕ0为地心纬度,ϕ1\phi_1ϕ1为大地纬度。

地心距计算

R0=acos2ϕ+(1−e2)2sin2ϕ1−e2sin2ϕ R_0 = a \sqrt{ \frac{cos^2{\phi} + ( 1 - e^2 )^2 sin^2{\phi} } { 1 - e^2 sin^2{ \phi } } } R0=a1e2sin2ϕcos2ϕ+(1e2)2sin2ϕ

其中ϕ\phiϕ为(地心)纬度

大地距

对应地心距离,地理学上好像没有这种概念,但是确实会用到这个距离,与地心距的关系如下:

R0sinϕ0=R1sinϕ1 R_0 sin\phi_0 = R_1 sin\phi_1 R0sinϕ0=R1sinϕ1

其中R0R_0R0为地心距,ϕ0\phi_0ϕ0为地心纬度,ϕ1\phi_1ϕ1为大地纬度。

那么大地距R1R_1R1的计算公式为:

R1=a(1−e2)1−e2sin2ϕ1 R_1 = \frac{ a ( 1 - e^2 ) }{ \sqrt{ 1 - e^2 sin^2{ \phi1 } } } R1=1e2sin2ϕ1a(1e2)

在许多情况下可以近似地认为ϕ0=ϕ1\phi_0=\phi_1ϕ0=ϕ1

某一经纬坐标处的ENU正方向

ECEF坐标系中某一点处的ENU单位向量有:

e⃗=(−sinθ,cosθ,0)Tn⃗=(−sinϕ×cosθ,−sinϕ×sinθ,cosϕ)Tu⃗=(cosϕ×cosθ,sinϕ×sinθ,sinϕ)T \begin{align} \vec{ e } &= ( -sin{\theta} , cos{\theta} , 0 )^T \\ \vec{ n } &= ( -sin{\phi} \times cos{\theta} , -sin{\phi} \times sin{\theta} , cos{\phi} )^T \\ \vec{ u } &= ( cos{\phi} \times cos{\theta} , sin{\phi} \times sin{\theta} , sin{\phi} )^T \\ \end{align} enu=(sinθ,cosθ,0)T=(sinϕ×cosθ,sinϕ×sinθ,cosϕ)T=(cosϕ×cosθ,sinϕ×sinθ,sinϕ)T

其中θ\thetaθ为经度,ϕ\phiϕ为纬度。

ENU坐标转LLA

θ0\theta_0θ0ϕ0\phi_0ϕ0处的ENU坐标系内有坐标点penu⃗=(x,y,z)T \vec{ p_{enu} } = ( x, y, z )^T penu=(x,y,z)T,要计算该点对应的LLA坐标,首先计算该位置上的地心距R0R_0R0和大地距R1R_1R1,然后计算经纬高偏移量:

ΔLongitude=arctan⁡xR0cosϕ0ΔLatitude=arctan⁡yR1 \begin{align} \Delta Longitude &= \arctan{ \frac{x}{R_0 cos{\phi_0}} } \\ \Delta Latitude &= \arctan{ \frac{y}{R_1} } \\ \end{align} ΔLongitudeΔLatitude=arctanR0cosϕ0x=arctanR1y

于是得到该点对应的经纬度:

θ1=θ0+ΔLongitudeϕ1=ϕ0+ΔLatitude \begin{align} \theta1 &= \theta_0 + \Delta Longitude \\ \phi1 &= \phi_0 + \Delta Latitude \\ \end{align} θ1ϕ1=θ0+ΔLongitude=ϕ0+ΔLatitude

同时计算地心纬度与大地纬度的差值:

ϕ0−ϕ0′=arctan⁡tanϕ01−e2 \phi_0 - \phi_0' = \arctan{ \frac{ tan \phi_0 }{ 1 - e^2 } } ϕ0ϕ0=arctan1e2tanϕ0

计算θ1\theta_1θ1ϕ1\phi_1ϕ1处的大地距R2R_2R2,最终计算对应的高程值:

Altitude=z+x2+y2×sin(ϕ0−ϕ0′)+R02+cos2(ϕ0−ϕ0′)−R2; Altitude = z + \sqrt{ x^2 + y^2 } \times sin(\phi_0 - \phi_0') + \sqrt{ R_0^2 + cos^2(\phi_0 - \phi_0') } - R_2; Altitude=z+x2+y2×sin(ϕ0ϕ0)+R02+cos2(ϕ0ϕ0)R2;

即可得到转换后的LLA坐标(θ1,ϕ1,Altitude)T( \theta_1, \phi_1, Altitude )^T(θ1,ϕ1,Altitude)T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值