Использования JPL эфемерид НАСА в среде MatLab
15 Nov 2009 | Автор: LordWilex |Хорошая новость! Нашел в интернете одну весьма аппетитную штуковину.
Оказывается НАСА предоставляет программный интерфейс для работы со своими JPL эфемеридами в системе MatLab (а так же, библиотеки для Visual C, GCC, и fortran). Называется это чудо SPICE, располагается на сайте http://naif.jpl.nasa.gov/naif.
В общем, пока до конца не разобрался в этом деле, пытаюсь читать документацию. Система действительно не простая, но с точки зрения использования в астрологической статистике, – перспективы просто завораживающие!
И так, попробую рассказать, как подключить эту систему к Matlab.
1. Идем сюда: ftp://naif.jpl.nasa.gov/pub/naif/toolkit/MATLAB/PC_Windows_VisualC_MATLAB7.x_32bit/packages/ и скачиваем файл mice.exe (а заодно, и другие мелкие файлы, там имеется инструкция по установки на инглише).
2. Распаковываем это чудо в папку, где у вас установлен Matlab, на пример, у меня это “c:\MATLAB701\”.
И сразу же небольшая тонкость, в папке “c:\MATLAB701\mice\lib\” есть такой файл: “mice.mexw32″ , если в вашей версии MatLab’а он не захочет подключаться, как это произошло у меня,- переименовываем его в “mice.mex”.
3. Далее идем сюда: ftp://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/ и качаем файлы: de421.bsp и de421.cmt, (документация к ним тут же в файлах: de421_announcement.pdf и de421_lunar_ephemeris_and_orientation.pdf), в них содержатся самые последние и точные на сегодняшний день эфемериды DE421, в терминологии системы SPICE эти файлы называются ядрами (kernels).
Весят они, всего на всего, 16 мегабайт, но к сожалению, охватывают слишком маленький интервал времени, всего с 1900 по 2050 годы.
Если нужно что нибудь в более широким временным интервалом, идем в папку “/a_old_versions/” и качаем, на пример, DE408 (файлы de408.bsp, de408.cmt, de408.inp). DE408 это то же самое, что и DE406, единственное отличие в том, что временной интервал в них расширен с 10 тысячелетия до н.э. по 10 тыс. лет. нашей эры (вместо 3 тыс. до н.э./н.э.), но предупреждаю сразу, весят они целый гигабайт. Самих же DE406 почему-то нет, а та версия что, лежит на сайте швейцарских эфемерид по моему не того формата, хотя надо попробовать, может подключится…
Если вам нужно что-нибудь по легче, рекомендую de414, они охватывают интервал с 1599 по 2201 годы, для большинства задач вполне подойдут, и весят всего 60 МБ.
4. Для того, чтобы эта штуковина заработала, нам понадобится еще одно ядро naif0009.tls, скачать его можно тут: ftp://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/
5. Так же, если вам нужно, можно скачать ядра разных орбитальных телескопов, естественных и искусственных спутников планет, космических миссий и т.д. и т.п. ftp://naif.jpl.nasa.gov/pub/naif/
6. Теперь запускаем MatLab.
Вводим команды:
>> addpath(‘C:\MATLAB701\mice\src\mice\’)
>> addpath(‘C:\MATLAB701\mice\lib\’)
Потом вводим команду:
>> which mice
Если все подключилось удачно, появится надпись: “C:\MATLAB701\mice\lib\mice.mex”
Если нет, переименовываем файл “mice.mexw32″ в “mice.mex” с снова пробуем команду:
>> which mice
7. Теперь подключаем эфемериды, сделать это можно командой
>> cspice_furnsh(‘C:\MATLAB701\mice\data\de421.bsp’)
(Обязательно указывайте полный путь к файлу de421.bsp, у меня без этого почему-то не хотело подключаться).
Теперь подключаем ядро временных поправок:
>> cspice_furnsh(‘C:\MATLAB701\mice\data\naif0009.tls’)
И все, в принципе можно пользоваться.
8. Давайте попробуем вычислить координаты, кажется Луны, кажется на сегодня, кажется в прямоугольной системе координат (если честно, еще не разобрался в функциях и в том, как в этой системе координаты переводить, только вчера поставил :bs3: ).
Наберем:
>> et = cspice_str2et(‘Nov 15, 2009′)
>> [state,lt] = cspice_spkezr( ‘MOON’ , …
et , …
‘J2000′, …
‘NONE’ , …
‘EARTH’ )
В результате чего, программа выдаст нам вот такую загагулину:
state =
1.0e+005 *
-3.2793
-1.6567
-1.0835
0.0000
-0.0000
-0.0000
lt =
1.2777
*****
Недостатки:
1. Нет специфических для астрологических исследований функций (Асц, МС, системы домов, аспекты и т.д.). Но это дело поправимо, эти функции всегда можно дописать, главное эфемеридное ядро.
2. Система очень сложная, я убил пол дня, только на то, чтобы разобраться, как её подключить, и думаю, что уйдет неделя на изучение функций.
3. Для более или менее полноценной работы, нужно грузить очень много файлов большого объема.
Преимущества:
1. В MatLab имеется шикарнейший пакет статистических функций, и вообще чего, там только нет.
2. В MatLab по сути своей заточен на матричную алгебру, что гораздо удобней, быстрей и экономичней, по сравнению с таблицами Excel.
На пример, если нам нужно сложить 2 столбца с данными, в Excel’е придется вводить формулу для сложения 2х ячеек, а потом её вручную копировать на 10000 остальных ячеек, что при большом объеме данных не очень-то удобно. В то время, как в MatLab достаточно просто написать C=A+B
3. Планеты вычисляются явно на порядок быстрей по сравнению с использованием Швейцарских эфемерид в Excel (см. мой проект http://sweru.lordwilex.ru и http://forum.argo-school.ru/showthread.php?t=904 ).
В общем, думаю, со временем, из всего этого можно сделать отличный инструмент для астрологических исследований.
Комментарии закрыты.