Скажем, у меня есть (ECEF) широта, долгота и расстояние до Земли для объекта в определенное время. Мне нужно получить координаты J2000. Что я делаю
import skyfield.api
planets = skyfield.api.load('de421.bsp')
earth = planets['earth']
ts = skyfield.api.load.timescale()
sat = earth + skyfield.api.Topos(latitude_degrees=latitude, longitude_degrees=longitude)
obs = earth.at(ts.utc(time)).observe(sat)
x, y, z = obs.km
Затем я бы нормализовал [x, y, z]
и умножил его на расстояние до Земли. Есть два вопроса:
- Это правильно?
- Есть ли более быстрый способ без загрузки de421.bsp?