У меня есть векторы положения (x, y, z) и скорости (Vx, Vy, Vz) в центрированных по центру Земли инерциальных координатах (ECI) для спутниковой орбиты, и в конечном итоге я хочу получить геодезические координаты (широта, долгота и высота) .
Согласно этому другие Вопрос о переполнении стека кажется, что мне нужно преобразовать в координаты Земли по центру Земли (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)