Интерполировать эфемериды Земли

У меня есть таблица векторов состояния, сгенерированных из эфемерид Земли с временными шагами в 1 минуту.

Теперь я хотел бы интерполировать это с более мелкими приращениями времени, чтобы использовать его как часть интеграции орбиты для другого тела с временными шагами порядка 1 секунды. Они могут быть равноудаленными или нет, в зависимости от используемого метода интегрирования. Как поступить и что может быть наиболее точным способом сделать это?

Вопрос о методах интерполяции — это вопрос о вычислительной науке и как раз там по теме! sccomp.stackexchange.com/help/on-topic Однако здесь это не по теме.
Нет ничего плохого в том, чтобы задавать вопросы на нескольких сайтах SE, даже если это одна и та же тема. Вы можете добавить сюда ссылку на один или несколько вопросов и ответов, чтобы дать им больше информации и избежать двойного объяснения. Вы должны объяснить фактический уровень точности, который вам нужен , и упомянуть, что скорость также доступна, потому что это значительно упрощает интерполяцию! Я получил фантастический ответ , когда задал вопрос там!
Спасибо. Я подумал, что лучше разместить здесь. Я бы также задал этот вопрос в Computational Science, и если бы ответили, опубликуйте ответ также здесь.
Я бы порекомендовал вам задать немного другой вопрос. Например, «как использовать скорость в интерполяции положения». Мы не должны публиковать одинаковые вопросы на двух сайтах одновременно. Это называется кросспостингом, и кто-то быстро закроет один из них, если узнает.
Лучшим способом может быть использование полиномиальной интерполяции Чебышева, которую использует само НАСА; см. astronomy.stackexchange.com/questions/13488 для более подробной информации.
@barrycarter Не могли бы вы опубликовать ответ, показывающий уравнения и алгоритмы?
«Лучший» метод интерполяции — это метод, который обеспечивает точность в необходимых вам границах при уровне усилий, который вы считаете приемлемым. Обычная старая линейная интерполяция положения для типичной круговой орбиты с 90-минутным периодом даст вам ошибку положения не намного более 5 км (если вы интерполируете линейно в декартовых координатах - если вы интерполируете в полярных координатах, ошибка еще меньше). В зависимости от того, что вы собираетесь делать с данными, этого может быть достаточно.
Я мог бы также отметить, что моя предыдущая оценка ошибки была для объекта на орбите вокруг Земли. Для Земли по орбите вокруг Солнца она будет совсем крошечной — порядка 3 метров . Мне пришлось поискать калькулятор, который мог бы легко вернуть точный расчет косинуса 6 микрорадианов, не округляя его до 1.
@Tristan Самый точный означает наиболее близкий к реальным данным.
@TarlanMammadzada Как вы думаете, насколько точны настоящие данные? Линейная интерполяция земных эфемерид между реперными точками, отстоящими друг от друга на 60 секунд, дает ошибки не выше одной стомиллиардной. Это верно в отношении неопределенности для мю с ты н , из которого вычисляются эфемериды!
@ Тристан, я бы с тобой согласился. Не могли бы вы опубликовать ответ?
@Tristan Если вы собираетесь опубликовать ответ, я бы попросил вас показать линейную интерполяцию координат между двумя точками с использованием скоростей.
Мой github.com/barrycarter/bcapps/blob/master/ASTRO/README.bsp может быть полезен.

Ответы (3)

Интерполяция настолько точна, насколько точны ее исходные данные. Стремление к «наиболее точной» интерполяции без понимания неопределенности интерполируемых данных в лучшем случае является академическим упражнением.

Для орбитальных эфемерид линейная интерполяция в декартовых координатах, т.е.

д ( т ) т 1 т т 1 т 0 д ( т 0 ) + т т 0 т 1 т 0 д ( т 1 ) , т 0 т т 1

куда д ( ) представляет собой любую интересующую величину (скорость, положение и т. д.), даст вам относительную ошибку положения, пропорциональную второй производной по времени от этой величины за этот период времени. Для положений на орбите ошибка приблизительно пропорциональна версинусе половины истинного угла аномалии, лежащего между реперными точками в перицентре. То же самое более или менее верно для орбитальной скорости. В случае данных об эфемеридах по орбите Земли вокруг Солнца интервалы в одну минуту соответствуют наклонному углу примерно в 12 микрорадиан, что дает относительную ошибку О ( 10 11 ) .

Учитывая, что гравитационный параметр Солнца известен только с относительной точностью около 8 ×   10 11 , если вы действительно не полагаетесь на что-то, что гарантирует непрерывность производных более высокого уровня, линейная интерполяция обеспечит вам точность, соизмеримую с вашими исходными данными. Использование «более точного» метода интерполяции было бы напрасной тратой усилий — неточные данные, точно интерполированные точно, все равно будут неточными.

Не могли бы вы добавить описание того, как линейно интерполировать координаты во временном интервале с помощью Velocities?
Вы бы просто проигнорировали скорости для целей линейной интерполяции положения. Если вам нужны скорости, вы также линейно интерполируете их.
@Tristan отличный ответ! В этом и этом комментариях я упомянул об использовании скоростей, включенных в ядра Spice и выходные данные Horizons. Это (очевидно) первые производные от позиций, и наличие производной информации делает возможной лучшую интерполяцию, я верю, но я не знаю, как сказать это на математическом языке.
(продолжение ...) точно, я считаю, что он используется при создании полинома Эрмита , как описано в « двойной публикации » этого вопроса, поэтому я не уверен, почему вас снова спрашивают здесь.
Я надеюсь, что ОП интерполирует положение Земли в барицентре Земля-Луна (для которого точность эфемерид может достигать сантиметров), а не в барицентре Солнечной системы, потому что, если это последнее, будут огромные ошибки, если только также учитывается гравитационное воздействие Солнца на космический аппарат.

Один оборот Земли вокруг Солнца занимает около 365 дней или 525 960 минут. Поэтому разница векторов состояния от минуты к минуте не должна сильно меняться. Если это так, то линейная интерполяция не проблема. Как насчет сравнения разности некоторых соседних векторов состояния для проверки предположения?

Ваш совет о фактической проверке того, сколько необходимо, конечно, очень хороший совет. Однако часть о «не так много» немного субъективна. Единственным показателем того, насколько мало, будет настоящий тест.

Точки могут быть интерполированы с использованием интерполяции Эрмита. Ответ дан в Computational Science .

Чтобы опубликовать ответ на свой вопрос, вам нужно будет объяснить, почему интерполяция Hermite является «наиболее точным способом сделать это?» а не, например, полиномы Чебычева, как предложено в комментарии выше. Просто размещение ссылки называется ответом только по ссылке, и это не одобряется (как, конечно, перекрестная публикация одного и того же вопроса в двух местах для начала).
Я знаю, что вы пытаетесь быть полезным здесь, делясь информацией, и это здорово! Но, не написав правильного ответа, вы должны просто оставить комментарий. Может быть трудно привыкнуть к правилам и практикам, используемым в Stack Exchange, но оно того стоит.