Телескопы покупают здесь


A A A A Автор Тема: dll для JPL ephemerides  (Прочитано 4290 раз)

0 Пользователей и 1 Гость просматривают эту тему.

AiK

  • Гость
dll для JPL ephemerides
« : 19 Фев 2002 [16:28:36] »
Приветствую участников форума!

В результате работы над диссертацией появился побочный продукт в виде dll для работы с JPL ephemerides.  Поскольку я не являюсь знатоком C++ и Fortran,  мне пришлось потратить довольно много времени на поиск готовой программы и адаптирования её для использования в Delphi.
Если сообщество заинтересовано, то я могу выложить эту dll в сеть для свободного скачивания.
Да, кроме вычисления положений и ускорений планет относительно центра добавлено вычисление ускорений.
З.Ы: dll можно использовать не только с Delphi, но и с VB, C++ и т.д. и даже в Excel, правда только под winXX.
С уважением,
Артём.

Оффлайн Pietro

  • *****
  • Сообщений: 839
  • Благодарностей: 47
  • Мауна Кеа
    • Сообщения от Pietro
    • Моя страничка на фото.сайте
Re:dll для JPL ephemerides
« Ответ #1 : 20 Фев 2002 [09:37:33] »
А можно поподробнее?  Какие именно эфемериды, DE200, DE405, DE406?  Какие поддерживаются координатные системы и временнЫе шкалы?

AiK

  • Гость
Re:dll для JPL ephemerides
« Ответ #2 : 20 Фев 2002 [14:57:11] »

А можно поподробнее?  Какие именно эфемериды, DE200, DE405, DE406?  Какие поддерживаются координатные системы и временнЫе шкалы?

DE405. Могу легко переделать под DE200, DE403, DE404, DE406.
Если будет время, то, надеюсь, cмогу и универсальной сделать.

По-поводу всего остального - это почти полный аналог test1 выложеного на сайте JPL, только рабочий :). И по всей видимости моё предложение будет интересно только тем, кто не знает С или Fortran.

Оффлайн Pietro

  • *****
  • Сообщений: 839
  • Благодарностей: 47
  • Мауна Кеа
    • Сообщения от Pietro
    • Моя страничка на фото.сайте
Re:dll для JPL ephemerides
« Ответ #3 : 21 Фев 2002 [10:07:40] »
А какие координатные системы и шкалы времени (UT, UTC, TT)?  
И еще, я может чего-то не догоняю, но как использовать эту dll скажем в Visual C++?  Ведь нужна еще и export library?

AiK

  • Гость
Re:dll для JPL ephemerides
« Ответ #4 : 21 Фев 2002 [12:06:06] »

А какие координатные системы и шкалы времени (UT, UTC, TT)?  

Тут уже видимо я не догоняю, причём тут шкалы?
Задаёшь нужный момент в JD и получаешь координаты, скрорости и ускорения объекта относительно центра.
Цитата

И еще, я может чего-то не догоняю, но как использовать эту dll скажем в Visual C++?  Ведь нужна еще и export library?

Во-первых, если я и буду выкладывать, то с исходниками. Они как раз под MS Visual C++.
Во-вторых, как я писал выше, я не гуру в С++, но сомневаюсь, что C++ какой-то особенный и ему нужна какая-то  export library.
DLL экспортирует единственный метод

extern "C"
long WINAPI  getEphemerides (double et, long nctr, long ntarg, double *rr, char *filename );

где et - момент, на который производится интерполяция, nctr - номер центра, ntarg - номер объекта, в double *rr будут размещены положение, скорость и ускорения (9 величин), *filename - полное имя файла с эфемеридами.


Оффлайн Pietro

  • *****
  • Сообщений: 839
  • Благодарностей: 47
  • Мауна Кеа
    • Сообщения от Pietro
    • Моя страничка на фото.сайте
Re:dll для JPL ephemerides
« Ответ #5 : 21 Фев 2002 [16:45:22] »
Понятно.  Оказывается, это в чистом виде "извлечение" эфемерид из файлов, без преобразований к другим системам (учета прецесси, нутации, движения полюсов, звездной/планетной аберрации и гравитационного искривления), а также без поддержки временнЫх шкал вроде UT.  ET напрямую использовать не сахар.

Чтобы использовать функции из *.dll, нужна export library, которая включается в проект и является интерфейсом к этой dll, иначе link'ер выдаст ошибку при сборке проекта.