JPL Horizons - как отформатировать время ввода TLIST для запроса электронной почты?

Я пытаюсь получить список всех перигелий и афелий Меркурия за период в несколько десятилетий. Для каждого события мне нужны данные X, Y, X и Vx, Vy, Vz.

Зная время первого события, легко получить приблизительные времена последующих событий, используя известный орбитальный период.

Мне удалось получить значения с помощью ручного веб-интерфейса к JPL Horizons. Работая с одним событием за раз, я могу получить данные для эпохи в течение одной минуты после каждого события. Но я хочу (а) тайминги с точностью до секунды и (б) получить целую серию событий апсид за один раз.

Интерфейс электронной почты JPL Horizons кажется подходящим вариантом. Используя это, я смог получить данные для определенного диапазона времени и интервала шага. Но, как и в случае с веб-интерфейсом, невозможно (за один раз) охватить весь многолетний период с желаемым разрешением (1 с).

Итак, теперь я хочу использовать средство TLIST, чтобы указать список времени отдельных событий (время с интервалом в 1 секунду в диапазоне от нескольких секунд до и после приблизительного времени каждого события апсид).

Документация ( узнайте , как получить документацию по электронной почте Horizons, отправленную вам по почте ) включает этот раздел в TLIST:

!TLIST allows users to specify up to 10000 discrete times
!individually. If TLIST is used, START_TIME, STOP_TIME and
!STEP_SIZE are ignored. TLIST is a list of either "Julian
!Day Numbers" (JD) or "Modified Julian Day Numbers"
!(MJD; days since Nov 17, 1858 (JD 2400000.5)).

!In either case, the input is one or more real numbers.
!The program puts TLIST in ascending chronological order
!and determines whether it is JD or MJD based on smallest
!day number.  Example usage:
!
!   TLIST= '2451454.8937833' '2451455.11256351'
!          '2451456.45576728'
!          '2451459.65778822'
!          '2451458.97618331'
!          '2451459.72787832'
!          '2451462.25656722'
!
!   Note that there can be more than one value on the line
!   OR one per line. Line length should be less than 80
!   characters. List is space or comma delimited. "TLIST="
!   is used only once so it does not supercede any previous
!   assignment in the command file.


 TLIST = 200*' '

Но у меня возникла проблема с форматированием входных данных TLIST таким образом, чтобы программа могла их принять. Каждая попытка до сих пор возвращала сообщение об ошибке вида «BATVAR: невозможно прочитать значение TLIST: --F4F5E805D2040CE6C2».

Я отправил электронное письмо системному администратору, но пока не получил ответа.

Ниже приведена копия текста электронного письма, которое я отправлял (формат = Кому: Horizons@ssd.jpl.nasa.gov Тема: РАБОТА ******).

Буду признателен, если кто подскажет, что нужно сделать с форматом данных для команды TLIST.

!$$SOF
EMAIL_ADDR = '************@gmail.com'
!...Target= Mercury
COMMAND= '199'
!...Reference Site = Centre of Sun
CENTER= '500@10'
MAKE_EPHEM= 'YES'
TABLE_TYPE= 'VECTORS'
OUT_UNITS= 'KM-S'
REF_PLANE= 'ECLIPTIC'
REF_SYSTEM= 'J2000'
VECT_CORR= 'NONE'
VEC_LABELS= 'YES'
VEC_DELTA_T= 'YES'
CSV_FORMAT= 'YES'
OBJ_DATA= 'YES'
VEC_TABLE= '2'
!
! The following works OK (but I want to use TLIST)
!
!START_TIME= 'JD 2451590.2526841'
!STOP_TIME= 'JD 2451590.2596841'
!STEP_SIZE= '1 m'
!
!
! What I desire (but it fails):-
!
!TLIST=
!'2451546.2714931'
!'2451546.2715046'
!'2451546.2715162'
!'2451546.2715278'
!'2451546.2715393'
!'2451546.2715509'
!'2451546.2715625'
!
! Test (it failed)
!
   TLIST= '2451454.8937833,2451455.11256351,'
          '2451456.45576728,'
          '2451459.65778822,'
          '2451458.97618331,'
          '2451459.72787832,'
          '2451462.25656722'
!
!
! The Following Fail:-
!
!   TLIST= 'JD 2451454.8937833' 'JD 2451455.11256351'
!          'JD 2451456.45576728'
!          'JD 2451459.65778822'
!          'JD 2451458.97618331'
!          'JD 2451459.72787832'
!          'JD 2451462.25656722'
!
!   TLIST= '2451454.8937833' '2451455.11256351'
!          '2451456.45576728'
!          '2451459.65778822'
!          '2451458.97618331'
!          '2451459.72787832'
!          '2451462.25656722'
!
!TLIST= '2451546.27149310' '2451546.27149310'
! '2451546.27150460'
!
!TLIST= '2451546.2714931' '2451546.2714931'
! '2451546.2715046'
!
!TLIST= '
! 2451546.2714931
! 2451546.2715046
! 2451546.2715162'
!
!TLIST= '
! 2451546.2714931,
! 2451546.2715046,
! 2451546.2715162'
!
!TLIST= ''2451546.2714931', '2451546.2715046', '2451546.2715162''
!
!TLIST= '2451546.2714931', '2451546.2715046', '2451546.2715162'
!
!TLIST= '2451546.2714931' '2451546.2715046' '2451546.2715162'
!
!TLIST= '2451546.2714931 2451546.2715046 2451546.2715162'
!
!TLIST='2451546.2714931,2451546.2715046,2451546.2715162'
!
!TLIST=200*''
!
!TLIST= '2451454.8937833' '2451455.11256351'
!
!TLIST= '2451546.2'
!
!TLIST='2451546.2714931''2451546.2715046''2451546.2715162'!'2451546.2715278',
!'2451546.2715393',
!'2451546.2715509',
!'2451546.2715625'
!
!$$EOF
@uhoh Спасибо за ваши предложения и предложения. В настоящее время я сосредоточен на JPL Horizons, и мой текущий план Б для этого конкретного запроса — использовать онлайн-приложение NASA WebGeoCalc. Но я хотел бы решить проблему TLIST электронной почты JPL Horizons не только для этого запроса, связанного с апсидами, но и для других возможных типов запросов в будущем. К сожалению, я не использовал Python, но, пожалуйста, не стесняйтесь опубликовать ответ с вашим методом, так как он может помочь другим пользователям в будущем.
Если вы можете сделать это в веб-интерфейсе, должна быть кнопка для преобразования в формат электронной почты. Если вы собираетесь делать много запросов HORIZONS, вы можете заглянуть в CSPICE , который позволяет вам получать числа на вашем локальном компьютере.
Я почти уверен, что "!" является символом комментария. Единственное место, где он должен появиться, это в !$$SOFи !$$EOF. Остальное, что вы отправляете, не должно иметь "!". Если это все еще не удается, дайте мне знать, и я опубликую рабочий пример.
@баррикартер. Спасибо. (Re:предыдущий комментарий 1) Веб-интерфейс HORIZONS не поддерживает TLIST. CSPICE слишком тяжел для меня прямо сейчас. (К комментарию 2): В электронной документации HORIZONS указано, что строки комментариев (с префиксом !) могут появляться где угодно. Недавно я обнаружил, что один конкретный формат TLIST работает нормально, несмотря на наличие дополнительных строк комментариев. Я добавил это в конце вопроса.
@uhoh Большое спасибо за предложения. Я переместил свое обновление в ответ и включил ссылки. Re: кнопка «Электронная почта» — на странице веб-интерфейса HORIZONS в разделе «Специальные параметры» 3-й маркер — «показать данные «пакетного файла» (для использования в интерфейсе электронной почты)».
Отлично! ОК, очистка комментариев. Спасибо!
2 декабря 2021 г. — Версия 4.92 * Значения TLIST теперь могут включать календарные даты в дополнение к числовым формам JD и MJD, если каждое значение отдельно заключено в кавычки. Например: TLIST= '2021-Dec-03 12:10:43.21' '2023-05-17 09:11:01' '2459551.367633' '2033-07-15 02:52.771' '17bc-feb-2 01: 00' См. документацию с обновленным примером командного файла здесь: ssd.jpl.nasa.gov/ftp/ssd/hrzn_batch.txt
@PM 2Ring Я давно не работал в этой области, но спасибо за информацию.

Ответы (1)

Методом проб и ошибок я обнаружил, что следующий текст электронного письма (включая промежуточные строки комментариев) приемлем для HORIZONS:

!$$SOF
EMAIL_ADDR = 'xxxxxx@gmail.com'
!...Target= Mercury
COMMAND= '199'
!...Reference Site = Centre of Sun
CENTER= '500@10'
MAKE_EPHEM= 'YES'
TABLE_TYPE= 'VECTORS'
OUT_UNITS= 'KM-S'
REF_PLANE= 'ECLIPTIC'
REF_SYSTEM= 'J2000'
VECT_CORR= 'NONE'
VEC_LABELS= 'YES'
VEC_DELTA_T= 'YES'
CSV_FORMAT= 'YES'
OBJ_DATA= 'YES'
VEC_TABLE= '3'
TLIST= '2451546.27149305' '2451546.27150462'
 '2451546.2715162'
 '2451546.27152777'
 '2451546.27153934'
!
! The following works OK but I want to use TLIST
!
!START_TIME= 'JD 2451590.9526841'
!STOP_TIME= 'JD 2451591.0596841'
!STEP_SIZE= '10 m'
!
!$$EOF

Однако я не могу сказать, что нашел причину, по которой все предыдущие отправки не выполнялись. Например, если я перемещаю последний 7-строчный блок комментариев (оставляя строку !$$EOF на месте в конце) и помещаю его перед командной строкой TLIST... тогда задание завершается ошибкой.

Тем не менее, у меня есть формат для использования TLIST, который теперь у меня работает нормально.

Полезные ссылки

Веб-интерфейс JPL HORIZONS

https://ssd.jpl.nasa.gov/?horizons#email

https://ssd.jpl.nasa.gov/dat/Configuring_Mail_Clients_to_Send_Plain_ASCII_Text.pdf