【发布时间】:2017-09-26 18:46:38
【问题描述】:
我在卫星轨道的地球中心惯性坐标 (ECI) 中有位置 (x,y,z) 和速度 (Vx,Vy,Vz) 向量,最终希望得到大地坐标(纬度、经度、 & 海拔)。
根据这个other Stack Overflow question,我似乎需要转换为地心地球固定 (ECEF) 坐标作为中间步骤(因此 ECI --> ECEF --> Lat/Lon/Alt)。
我知道 ECI 和 ECEF 共享相同的原点(地球质心)和指向北极的相同 z 轴。但是,我不确定将 ECI 转换为 ECEF 需要执行哪些实际方程式或调整。
否则,如果有人知道 Astropy 上的任何罐头转换或类似的东西,那就更好了。 (我还没有看到 ECI 作为 Astro Py 或 Space Py 的选项)。
这是我用来生成轨道并获取位置和速度向量的代码。
from scipy.constants import kilo
import orbital
from orbital import earth, KeplerianElements, Maneuver, plot, utilities
from orbital.utilities import Position, Velocity
import matplotlib.pyplot as plt
import numpy as np
orbitPineapple = KeplerianElements.with_period(5760, body=earth,
e=0.05, i=(np.deg2rad(0)), arg_pe=(np.deg2rad(30)))
plot(orbitPineapple)
plt.show()
print(orbitPineapple.r)
print(orbitPineapple.v)
输出: 位置(x=5713846.540659178,y=3298890.8383577876,z=0.0) 速度(x=-3982.305479346745, y=6897.555421488496, z=0.0)
【问题讨论】:
-
您能否提供一些示例性输入和预期输出?这样可以更轻松地找到真正适合您的解决方案。
-
我将编辑我的问题以包含我用来生成我的轨道并获取位置和速度向量的代码。
-
所以现在我在 ECI 中有一个样本卫星轨道的位置和速度。 Position(x=5713846.540659178, y=3298890.8383577876, z=0.0) Velocity(x=-3982.305479346745, y=6897.555421488496, z=0.0) 我想得到卫星的纬度、经度和高度位置。我读到我首先需要从 ECI 转换为 ECEF 才能转换为纬度和经度。问题是 ECI 是一个固定的坐标系,它不会像 ECEF 和纬度/经度/纬度那样随地球旋转。我不确定如何将 ECI 转换为 ECEF。
-
ECI 和 ECEF 不共享相同的 Z 轴:ECEF 通常有一个 Z 轴,由最适合地球的椭球体 (WGS84) 的短轴给出,该轴既进动又相对于 ECI 中的固定 Z 轴摆动一点。 ECI 和 ECEF 可以在特定时间点共享 Z 轴(例如,对于 J2000,地球时间为 2000 年 1 月 1 日中午)。
标签: python coordinate-systems coordinate-transformation coordinate astropy