Астрология и программирование

Вопрос, вероятно, назрел. Многим хочется разработать что-то полезное для наших астрологических целей и хотя бы отдалённо приближающееся к точности и удобству программ серии Нева. Сначала Андрей этим заинтересовался, потом Алишер и Вадим, а теперь и мне интересно. Уверен, что есть и другие, о которых я не знаю.

Предлагаю в этой ветке размещать размышления и обсуждать различные вопросы астрологического программирования начиная с Excel и далее, кто что знает: языки программирования, годные для наших целей, какие-то методы и приёмы, обзоры годных IDE и тому подобное.

Предлагаю все наработки размещать под GNU General Public License, то есть:

  • свободное использование, копирование, распространение и/или модификация программного обеспечения и его исходного кода; всех публикумых материалов;
  • чёткое отслеживание версий и изменений в них;
  • чёткое указание авторства и способов обратной связи;
  • полное отсутствие гарантий чего-либо, всё работает как есть и никто никому и ничего не должен, всё используется на свой страх и риск.

Более подробо права и ограничения раскрыты в оригинальном тексте лицензии, есть и переводы на другие языки.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Насчёт расчётного модуля

Сергей Васильевич, если Вы все-же сможете уделить мне время (не обязательно в открытом форуме, можно связаться и по почте ).

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

Сергей Васильевич, у Вас в программе видимо есть округления, которые , не затрагивая нужной нам точности, позволяют считатьв программе вывод аспектов раз в 30-40 быстрее чем это делают "швейцарцы" выводя длинный список аспектов... я мог бы снять видео как это выводится в моей программе.

В остальном она неплоха и расчеты именно по правилам школы точны (если бы не координаты).

Если не сочтете за надоедливость... - могли бы ли Вы поделиться алгоритмом округления эфемерид в виде исходного файла на Delfi Borland (если вы пишете в Delfi ). Остальное не проблема, можно потом перевести в Java, если видеть как это сделано в Delfi ... И программа для ОС Андроид может получиться на высоком уровне. И поделиться своими результатами в этом направлении я был бы просто обязан.

нева-профи под андроид

Нева-профи++ программа для профессионалов. Работа профессионала на планшете без клавиатуры крайне неудобна. Поэтому нецелесообразно создавать профессиональные программы для планшетов. Конечно, нева-альфа могла бы быть использована для этих целей, но переписывать её под андроид экономически нерентабельно.

Формулы для расчёта положений планет

содержатся в:

1. Астронимический календарь (постоянная часть).

2. Меёс "Астрономия с калькулятором"

Упомянутые Сергеем Васильевичем книги можно скачать здесь:

  1. Астронимический календарь (постоянная часть, pdf, djvu).
  2. Меёс "Астрономия с калькулятором".

В Debian есть программа swetest с очень неплохим функционалом

Я ещё протестирую её подробно, а потом доложу. Она свободная, лицензия LGPL2.

Мануал по командам и описание здесь.

Команда swemini

evgeny@samsung:~/Рабочий стол$ man swemini

swemini(1)

NAME

swemini - swemini.c

SYNOPSIS

swemini A minimal program to test the Swiss Ephemeris.

DESCRIPTION

Input: a date (in gregorian calendar, sequence day.month.year)

Output: Planet positions at midnight Universal time, ecliptic coordinates, geocentric apparent positions relative to true equinox of date, as usual in western astrology.

This documentation can also be found on line on astrodienst's web pages.

General Documentation ⟨http://www.astro.com/swisseph/swisseph.htm

Programmer's Documentation ⟨http://www.astro.com/swisseph/swephprg.htm

AUTHOR

The Swiss Ephemeris was written by Dieter Koch and Alois Treindl of Astrodienst.

This manual page was written by Paul Elliott <pelliott@blackpatchpanel.com> from source comments in swemini.c, for the Debian project (and may be used by others).

evgeny@samsung:~/Рабочий стол$ swemini
Date (d.m.y) ?25/02/2013
date: 25.02.2013 at 0:00 Universal time
planet      longitude   latitude    distance  speed long.
Sun         336.5441719 -0.0000634  0.9898637  1.0053227
Moon        146.2804963 -4.9897540  0.0026017 12.9478752
Mercury     349.6634882  3.0370702  0.7320660 -0.2624951
Venus       328.6436606 -1.2761338  1.6952783  1.2498121
Mars        348.0679139 -0.8798065  2.3441964  0.7847413
Jupiter      67.4055232 -0.4992036  4.9693213  0.0822671
Saturn      221.4921191  2.5473307  9.3463799 -0.0108605
Uranus        6.7220139 -0.6764757 20.9038945  0.0510958
Neptune     332.9659063 -0.6114636 30.9767361  0.0379338
Pluto       281.0311421  3.2811921 32.9406036  0.0229093
mean Node   230.6852305  0.0000000  0.0025696 -0.0529791
true Node   229.8102663  0.0000000  0.0024727 -0.2161397
mean Apogee  78.3887258 -2.3971262  0.0027106  0.1110027
osc. Apogee  66.2158860 -1.4216226  0.0027045  -1.1950044
Chiron      339.1793466  5.0487463 18.4209562   0.0646518
Date (d.m.y)?

на 00:00 UTC 31.12.2000

        swemini    Михельсен  Profi++
Sun     09°36'50"♑ 09°36'50"♑ 09°36'47"♑
Moon    06°42'34"♓ 06°42'32"♓ 06°42'07"♓
Mercury 12°39'07"♑ 12°39'06"♑ 12°39'02"♑
Venus   25°51'36"♒ 25°51'36"♒ 25°51'32"♒
Mars    04°19'32"♏ 04°21'06"♏ 04°21'07"♏
Jupiter 02°16'19"♊ 02°16'18"♊ 02°16'18"♊
Saturn  24°38'06"♉ 24°38'06"♉ 24°38'07"♉
Uranus  18°36'06"♒ 18°36'06"♒ 18°36'05"♒
Neptune 05°17'32"♒ 05°17'30"♒ 05°17'32"♒
Pluto   13°43'57"♐ 13°43'54"♐ 13°43'54"♐
true N  15°30'32"♋ 15°30'12"♋ 15°29'42"♋

2013.02.25 00:00:00 UTC

               ephemeris.com  swemini   newa-profi++
Sun            06 Psc 32'39"  06°32'39" 06°32'36"
Moon           26 Leo 16'52"  26°16'50" 26°16'12"
Moon's Node    19 Sco 48'37"R 19°48'37" 19°52'07"
Apogee         06 Gem 12'57"R 06°12'57" 06°20'31"
Mercury        19 Psc 39'49"R 19°39'49" 19°39'49"
Venus          28 Aqr 38'37"  28°38°37" 28°38°33"
Mars           18 Psc 04'05"  18°04'04" 18°04'02"
Jupiter        07 Gem 24'20"  07°24'20" 07°24'17"
Saturn         11 Sco 29'32"R 11°29'32" 11°29'32"
Uranus         06 Ari 43'19"  06°43'19" 06°43'18"
Neptune        02 Psc 57'57"  02°57'57" 02°57'58"
Pluto          11 Cap 01'52"  11°01'52" 11°01'47"

Исполняемые файлы Швейцарских эфемерид можно скачать здесь

ftp://ftp.astro.com/pub/swisseph/programs/

файлы swetest.zip и swewin32.zip

  • swewin.exe is a Windows program which computes complete horoscopes including houses and asteroids.
  • swetest.exe is a MSDOS program which computes planetary positions. It is very versatile and can be used to create tables of ephemerides, or other tabular data for export to Excel.
    Issue the command
    swetest -?
    to get information about the features of swetest.

Они, правда, не учитывают поправку на несферичность Земли (надо самим корректировать) ну и положение Лилит тут больше, чем в Неве на 01°03'36". А так довольно близко к Неве считают.

Данные со swetest грузите в электронные таблицы и манипулируйте с расчётом прогноза конфликтности по методу Наталии Вальтеровны, подбору идеального партнёра и прочему.

Удалось настроить формирование эфемерид за любой период

Вот исходный код программы:

#!/usr/bin/tclsh

# Положение светил на начало суток

# Используется swetest и tcl

puts "Положение светил на начало всемирных суток
Дата JD ♇ ♆ ⛢ ♄ ♃ ♂ ♀ ☿ ☽ ☉ ⚸"

puts "Введите дату начала периода в формате ДД.ММ.ГГГГ "

set a [expr [exec swetest -b[gets stdin] | grep ET: | cut -c 5-23] + 0]

puts "Введите дату окончания периода в формате ДД.ММ.ГГГГ "

set b [expr [exec swetest -b[gets stdin] | grep ET: | cut -c 5-23] + 0]

while {$a < $b} {
puts "[exec swetest -j$a | grep date | cut -c 12-22 | sed s/j//g | sed s/u//g | sed s/l//g | sed s/g//g | sed s/r//g | sed s/\ .//g | sed s/\ //g] $a [exec swetest -j$a -roundsec | grep Pluto | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Neptune | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Uranus | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Saturn | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Jupiter | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Mars | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Venus | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Mercury | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Moon | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Sun | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -roundsec | grep Apogee | cut -c 18-28 | sed s/\ //g]"
set a [expr {$a + 1}]
}

За основу взяты швейцарские эфемериды, программа swetest.

Работает в интерпретаторах языка tcl (язык интерпретируемый).

Возможно подготовить эфемериды за любой период по такому образцу:

Положение светил на начало всемирных суток
Дата JD ♇ ♆ ⛢ ♄ ♃ ♂ ♀ ☿ ☽ ☉ ⚸
1.1.2013 2456293.5 279°19'19" 331°4'16" 4°45'39" 219°32'39" 67°46'24" 304°40'45" 259°45'40" 270°38'18" 140°45'26" 280°43'45" 72°17'11"
2.1.2013 2456294.5 279°21'27" 331°5'53" 4°46'37" 219°37'16" 67°40'49" 305°27'54" 261°0'46" 272°11'3" 153°23'24" 281°44'53" 72°23'50"
3.1.2013 2456295.5 279°23'34" 331°7'31" 4°47'39" 219°41'48" 67°35'23" 306°15'4" 262°15'54" 273°44'8" 166°14'26" 282°46'2" 72°30'29"
4.1.2013 2456296.5 279°25'42" 331°9'11" 4°48'43" 219°46'15" 67°30'8" 307°2'15" 263°31'2" 275°17'34" 179°20'25" 283°47'11" 72°37'9"
5.1.2013 2456297.5 279°27'49" 331°10'52" 4°49'50" 219°50'37" 67°25'2" 307°49'28" 264°46'11" 276°51'21" 192°43'28" 284°48'20" 72°43'48"

Положение планет округлено до секунд и Лилит рассчитана неверно. А в остальном можно пользоваться.

Файл эфемерид на начало суток за 2013 год можно скачать здесь. Но помните, что Лилит пока не верна!

Получился расчёт Чёрной Луны и дробной части градусов

Удалось настроить расчёт положения Чёрной Луны и представление долготы светил в виде десятичной дроби. Теперь можно загружать эфемериды в электронные таблицы и использовать их в удобном виде. Не забудьте только заменить точку (разделитель целой и дробной части) на запятую.

Отклонение положения Чёрной Луны от Невы-Профи несколько десятых угловой секунды. Во всяком случае по проверенным мной значениям.

Если кому-то нужны эфемериды в электронном виде - дайте знать, вышлю или выгружу.

Если найдёте ошибки - пишите.

А вот  и код программы (не много, не правда-ли?):

#!/usr/bin/tclsh

# Положение светил на начало суток

# Используется swetest и tcl

puts "Положение светил на начало всемирных суток

Дата JD ♇ ♆ ⛢ ♄ ♃ ♂ ♀ ☿ ☽ ☉ ⚸"

puts "Введите дату начала периода в формате ДД.ММ.ГГГГ "

set a [expr [exec swetest -b[gets stdin] | grep ET: | cut -c 5-23] + 0]

puts "Введите дату окончания периода в формате ДД.ММ.ГГГГ "

set b [expr [exec swetest -b[gets stdin] | grep ET: | cut -c 5-23] + 0]

while {$a < $b} {]

puts "[exec swetest -j$a | grep date | cut -c 12-22 | sed s/j//g | sed s/u//g | sed s/l//g | sed s/g//g | sed s/r//g | sed s/\ .//g | sed s/\ //g] $a [exec swetest -j$a -fPl | grep Pluto | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Neptune | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Uranus | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Saturn | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Jupiter | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Mars | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Venus | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Mercury | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Moon | cut -c 18-28 | sed s/\ //g] [exec swetest -j$a -fPl | grep Sun | cut -c 18-28 | sed s/\ //g] [expr int([expr ($a-2566.074495)*360/3232])%360+[expr ($a-2566.074495)*360/3232]-int([expr ($a-2566.074495)*360/3232])]"
set a [expr {$a + 1}]
}

--

Выглядит итоговый вариант так:

Положение светил на начало всемирных суток↵
Дата     JD        ♇           ♆           ⛢         ♄           ♃...
1.1.2013 2456293.5 279.3220571 331.0710146 4.7608079 219.5442231 67.7732351...

2.1.2013 2456294.5 279.3574963 331.0979647 4.7770282 219.6210272 67.6801488...

3.1.2013 2456295.5 279.3929134 331.1253194 4.7940739 219.6965344 67.5897464...

...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".