Как получить земно-инерциальные или земно-центрированные координаты объектов из PyEphem?
Я хотел бы получить координаты объектов в различных координатах XYZ, а не там, где они появляются на небе. Я заинтересован в:
ЕЭК: " Земля-центрированная инерция" (не вращение с землей)
ECEF: " Земля-центрированная Земля-Фиксированная" (не инерционная, также называемая "Земля-центрированная Вращение")
и некоторая солнечная система или эклиптические координаты (центрированные по Солнцу или барицентру).
Я установил PyEphem, запустил несколько примеров и начал понимать, что скрывается под капотом, но пока что примеры, которые я нашел, сосредоточены на том, как вещи появляются в небе.
Будет полезна либо ссылка на полезное "как", либо простой пример. Прямо сейчас я не вижу, куда идти со стандартными опциями:
In [55]: mars.
mars.a_dec mars.g_dec mars.radius
mars.a_epoch mars.g_ra mars.rise_az
mars.a_ra mars.hlat mars.rise_time
mars.alt mars.hlon mars.set_az
mars.az mars.hlong mars.set_time
mars.circumpolar mars.mag mars.size
mars.compute mars.name mars.sun_distance
mars.copy mars.neverup mars.transit_alt
mars.dec mars.parallactic_angle mars.transit_time
mars.earth_distance mars.phase mars.writedb
mars.elong mars.ra
In [55]: mars.
1 ответ
Старая библиотека C, вокруг которой PyEphem является оберткой, увы, не всегда использует (x, y, z) координаты внутри, а когда она это делает, она не раскрывает их, чтобы Python мог видеть, кем они были - (x, y, z) координаты отбрасываются после вычисления углов.
Для более новой библиотеки астрономии того же автора (как это происходит со мной!), Которая была полностью переписана так, что координаты (x, y, z) действительно доступны на каждом этапе пути, попробуйте взглянуть на Skyfield:
http://rhodesmill.org/skyfield/
В частности, посмотрите, как атрибуты .position.km
а также .position.au
позвольте вам получить любую позицию и разложить ее на (x, y, z) декартовы координаты: