我在卫星轨道的地心惯性坐标 (ECI) 中具有位置 (x,y,z) 和速度 (Vx,Vy,Vz) 向量,最终希望得到大地坐标(纬度、经度和高度) 。
根据这个其他堆栈溢出问题 https://stackoverflow.com/questions/8233401/how-do-i-convert-eci-coordinates-to-longitude-latitude-and-altitude-to-display-o看来我需要转换为地心地球固定(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)