Отображение ориентации астероида, как видно с Земли

Я пишу программу для визуализации астероида, видимого из разных частей Солнечной системы. Моя цель — примерно воспроизвести образ Какуса согласно информации на его странице подробностей DAMIT .

Вот мой подход:

  1. Создайте солнечную систему с JD0=2443568.0. Оси визуализации располагаются по эклиптике с положительной осью X в направлении точки весеннего равноденствия, а остальные оси по правилу правой руки. Земля находится в точке t=JD0. ( изображение )

  2. Поместите астероид в точку (0, 0, 0) и начните вращать объект в соответствии с матричным умножением, описанным на странице « Описание» и в Kaasalainen & Torppa 2001 :

    • φ0=0 и t=JD0, поэтому нет начального вращения оси Z

    • Широта β равна -63, поэтому поверните 90 - (-63) = 153 градуса по оси Y ( изображение )

    • Долгота λ равна 251, поэтому поверните объект на 251 градус против часовой стрелки вокруг оси Z эклиптики ( изображение )

  3. Используя эфемериды из базы данных малых тел НАСА/Лаборатории реактивного движения, переместите Какуса на его позицию на орбите в точке JD0. ( изображение )

  4. Переместите камеру в положение Земли в точке JD0 и направьте ее на астероид. ( изображение )

Мой финальный рендеринг не совпадает с проекцией от DAMIT . Я понимаю, что есть такие факторы, как коррекция светового времени, которые я не учитываю, но это выглядит совершенно по-другому.

Что не так с моим подходом к вращению астероида вокруг его оси вращения?

Мой рендер Какуса

(Визуализация незавершенной работы находится онлайн здесь )

Сначала очевидные вопросы: конвертировали ли вы β и λ углы в радианах, прежде чем пытаться использовать их в матрице вращения?
Я действительно конвертирую углы в радианы
Как вы определяете, где Земля находится в jd0?
@cms Если вы хотите прочитать код, вот функция, которую я написал для вычисления гелиоцентрических координат из эфемерид: gist.github.com/typpo/e20da5a9976edd28511240b9248f00fe . Я использую ephem для EM Barycenter из ssd.jpl.nasa.gov/?planet_pos
@cms Я подробно описал свой процесс определения гелиоцентрической позиции здесь: astronomy.stackexchange.com/questions/29575/…

Ответы (1)

Из статьи М. Каасалайнена, Дж. Торппы и К. Муйнонена уравнение (1) выглядит следующим образом:

р а с т "=" р г ( ю ( т т 0 ) + ф 0 ) р у ( β ^ ) р г ( λ ) р е с л

Чтобы изменить это уравнение, вы должны изменить порядок поворотов и углов поворота:

р е с л "=" р г ( λ ) р у ( β ^ ) р г ( ю ( т т 0 ) ф 0 ) р а с т

Из вашего описания вы изменили порядок поворотов, но не углы поворота.

Глядя на документ и на веб-страницу описания DAMIT, я не могу сопоставить эти два преобразования. Они утверждают, что используют одну и ту же рукоять для своих вращений, но эти два уравнения являются обратными друг другу.
Спасибо @cms. Учитывая 𝛽̂ = 90 - 𝛽, t=t0 и phi0=0, мое окончательное преобразование будет Сначала я вращаю -(90-𝛽) =-153 вокруг оси Y, затем -𝜆=-251 вокруг оси Z. Это все еще выглядит не совсем правильно , но небольшое ручное вращение соответствует рендерингу DAMIT. Возможно, это объясняется незначительными различиями в эфемеридах или другими факторами. Я немного скептичен, но на данный момент трудно быть уверенным. Я также обновил интерактивный рендеринг соответствующим образом.