首页 > 解决方案 > 用于 ECEF 到 WGS84 速度(地速)的开源 c# 库

问题描述

有谁知道我在哪里可以找到一个开源 c# 库,它可以将 3D 笛卡尔(ECEF、地心、地固定)线速度转换为大地 WGS84 地速?或者一篇告诉我直接计算的文章也会有所帮助。

标签: velocitywgs84

解决方案


我一直在寻找同样的东西并得出结论,WGS84 速度实际上意味着(至少对我而言)ENU 坐标中的速度;即WGS84 椭球切面速度的东、北和上分量。

我还设法编写代码来根据 ECEF 速度计算这一点。我需要的实际上是 X、Y、Z 位置(在 ECEF 坐标中)和 X、Y、Z 速度(在 ECEF 坐标中)。步骤是

1) 计算Wgs84坐标中的位置(lat, lon, alt)

ECEF (X,Y,Z) 到 Wgs84 (lat, lon, alt) 不是最简单的转换,但我使用了维基百科的“Heikkinen”方程并设法让脚本来回转换坐标而不损失准确性(检查了代码有效)。

2)将速度从ECEF转换为ENU(Wgs84切面)

对于 ECEF 到 ENU(或 NED)坐标转换,有多个 Internet 来源。一个很好的来源是导航百科。步骤很简单

  • 使用步骤 1 中计算的 (lat, lon) 形成旋转矩阵
  • 将 (X,Y,Z) 坐标与旋转矩阵相乘

以标量形式,上述 ENU 速度分量的矩阵方程为

E = -sin(lon) * x + cos(lon) * y
N = -cos(lon) * sin(lat) * x - sin(lon) * sin(lat) * y + cos(lat) * z
U = cos(lon) * cos(lat) * x + sin(lon) * cos(lat) * y + sin(lat) * z

和是 Wgs84 位置坐标,lat和是 ECEF 速度坐标。lonxyz


推荐阅读