Я хотел бы написать скрипт, который может рассчитать расстояние между двумя астероидами в какой-то момент времени, учитывая какой-то объект в базе данных астероидов и комет JPL , поэтому доступные параметры ограничены меню, которое они там предоставляют. Для этого было бы достаточно просто получить согласованные пространственные координаты для объектов (в любой системе координат, меня не волнует определение системы) в значении времени.
Меня не будут беспокоить тривиальные преобразования, такие как переход между сферическими и декартовыми координатами или преобразование даты/месяца/года в числа с плавающей запятой. У меня больше проблем с пониманием того, что это за параметры и что с ними делать.
Что касается степеней свободы, я в конечном итоге ожидаю 3 функции, которые принимают один входной параметр (время) и дают пространственную координату (x, y, z). Учитывая эту спецификацию задачи, я думаю, нужно 5 свободных параметров. Я говорю это для того, чтобы охватить протяженность по каждой координате, временной сдвиг для этого периода и угловую ориентацию орбитального эллипса. Орбитальный период является избыточным с пространственными данными, так как я знаю GM Солнца, поэтому мне не нужен другой для этого. База данных JPL имеет большое количество параметров с небольшим очевидным значением. Мой вопрос касается их использования. Какие из них мне нужны и как их использовать?
Вот некоторые из наиболее перспективных, мне нужно будет рассортировать их по категориям. Теперь я понимаю, что JED, вероятно, является единицей времени (несложно). Я понимаю, что эпоха, вероятно, является эталонным временем и может понадобиться, но не будет учитываться в моих 5 ожидаемых бесплатных переменных.
связанный со временем
традиционные параметры орбиты
концепции пространственного смещения
Я знаю, что этот вопрос звучит как материал из Википедии/учебника, который я мог бы легко найти. Итак, давайте обратимся к Википедии за их методом расчета координат тела на орбите. Они полагаются на истинную аномалию (или среднюю аномалию) для установки временной начальной точки. JPL, похоже, имеет среднюю аномалию, но я должен что-то упустить для этого метода. Этот параметр относится к местоположению объекта в некоторый момент времени , а параметр (переменная M) не дает никакой точки отсчета для использования. На самом деле моя идея о том, что эпоха является эталонным временем для других параметров, с моей стороны полностью спекуляция. Этот параметр (и только этот параметр) одинаков для всех объектов в базе данных, поэтому я подумал, что такая интерпретация имеет смысл, но могу ошибаться.
Я подозреваю, что некоторые параметры избыточны, и что либо время прохождения перигелия, либо аномалия Среднего могут быть использованы в своей собственной уникальной последовательности вычислений. Мне все равно, какой подход я использую, мне просто нужен тот, который работает.
Как мне проще всего получить кулинарную книгу, чтобы начать писать этот скрипт для получения координат объектов в базе данных?
Заранее спасибо за интерес к такому подробному вопросу.
Позвольте мне занять немного больше места (в уже переполненном вопросе), чтобы ответить на комментарий.
вы просите нас написать главу книги. Это слишком много для вопросов типа вопросов и ответов по стеку обмена.
В этом учебнике будут чрезвычайно короткие главы. Но я понимаю опасность этого вопроса, похожего на «объясните мне орбитальную механику!» потому что это не то, что я имею в виду. Поэтому вместо того, чтобы пытаться выразить это словами, позвольте мне просто выразить это уравнениями.
Я только что нашел это в физических формах , и это почти отвечает на мой вопрос, за исключением нескольких проблем с обработкой... если я правильно интерпретировал это. В источнике не было последовательных скобок, но приведенная выше форма соответствует моей математической картине проблемы. Получение ТА также не должно быть трудным, учитывая, что все, что мне нужно, — это решение с поддержкой сценариев . Но я до сих пор не видел формы для ТА, которую явно можно было бы получить с текущим временем.
Здесь должно отсутствовать только одно дополнительное выражение или несколько других подобных деталей. Я хотел бы просто получить какой-нибудь код из инструментария SPICE, который делает то же самое, но его источник, вероятно, состоит из 10 000 строк кода, выполняющих всевозможные не относящиеся к делу вещи. Если приведенные выше уравнения верны, для этого действительно потребуется всего 1 или 2 небольших, лаконичных элемента.
Используйте эту страницу , чтобы сгенерировать ядра SPICE для интересующих вас тел, а затем используйте подпрограммы SPICE для расчета всего, что душе угодно.
Ааррр. Я не знаю, зачем ты заново изобретаешь колесо.
Хорошо, цинга, трюмная крыса, вот оно:
Это будет дано вам в самолете. Тогда я буду вращать самолет с преобразованием Эйлера в эту землю. , , (долгота восходящего узла, наклон и аргумент перицентра), умножив его матрицу на ваш вектор:
Вы также будете нуждаться в это время ( будучи й солнца):
Йер а также в свое время перицентр. Вы видите, что каждый в , это будет один оборот вокруг Солнца.
Если ваша цинговая скала приближается к планете, то вы теряете время, так как ее орбита меняется.
!$$SOF
COMMAND = 'DES=2010 VQ'
CENTER = '500@0'
MAKE_EPHEM = 'YES'
TABLE_TYPE = 'VECTORS'
START_TIME = '2017-04-01 00:00:00'
STOP_TIME = '2017-04-01 00:00:01'
STEP_SIZE = '1'
OUT_UNITS = 'AU-D'
VECT_TABLE = '3'
REF_PLANE = 'ECLIPTIC'
REF_SYSTEM = 'J2000'
VECT_CORR = 'NONE'
VEC_LABELS = 'NO'
CSV_FORMAT = 'YES'
OBJ_DATA = 'YES'
!$$EOF
возвращает гелиоцентрические координаты:
$$SOE
2457844.500000000, A.D. 2017-Apr-01 00:00:00.0000, 7.539123579055962E-01, 7.098001692200981E-01, 1.408370538460704E-03, -1.019002972030220E-02, 1.127277705358026E-02, 9.280758228718769E-05, 5.980387083611182E-03, 1.035471924841630E+00, 3.082270281389151E-04,
2457844.500011574, A.D. 2017-Apr-01 00:00:01.0000, 7.539122399654240E-01, 7.098002996920419E-01, 1.408371612622512E-03, -1.019003207292571E-02, 1.127277484368998E-02, 9.280757740530809E-05, 5.980387104214990E-03, 1.035471928409068E+00, 3.082263804494916E-04,
$$EOE
Здесь координаты XYZ выглядят так:
JDTDB, Calendar Date (TDB), X, Y, Z, VX, VY, VZ, LT, RG, RR,
Другой астероид:
COMMAND = 'DES=2008 LD'
CENTER = '500@0'
MAKE_EPHEM = 'YES'
TABLE_TYPE = 'VECTORS'
START_TIME = '2017-04-01 00:00:00'
STOP_TIME = '2017-04-01 00:00:01'
STEP_SIZE = '1'
OUT_UNITS = 'AU-D'
VECT_TABLE = '3'
REF_PLANE = 'ECLIPTIC'
REF_SYSTEM = 'J2000'
VECT_CORR = 'NONE'
VEC_LABELS = 'NO'
CSV_FORMAT = 'YES'
OBJ_DATA = 'YES'
!$$EOF
....
тогда делайsqrt(dx^2+dy^2+dz^2)
TildalWave
AlanSE
Дэвид Хаммен
Рассел Борогов