Вопрос, вероятно, назрел. Многим хочется разработать что-то полезное для наших астрологических целей и хотя бы отдалённо приближающееся к точности и удобству программ серии Нева. Сначала Андрей этим заинтересовался, потом Алишер и Вадим, а теперь и мне интересно. Уверен, что есть и другие, о которых я не знаю.
Предлагаю в этой ветке размещать размышления и обсуждать различные вопросы астрологического программирования начиная с Excel и далее, кто что знает: языки программирования, годные для наших целей, какие-то методы и приёмы, обзоры годных IDE и тому подобное.
Предлагаю все наработки размещать под GNU General Public License, то есть:
Более подробо права и ограничения раскрыты в оригинальном тексте лицензии, есть и переводы на другие языки.
Насчёт расчётного модуля
Сергей Васильевич, если Вы все-же сможете уделить мне время (не обязательно в открытом форуме, можно связаться и по почте ).
У меня в содружестве с несколькими программистами были пробы написания материала Вашей концепции формул событий на швейцарских эфемеридах. Но загвоздка в том, что исходник швейцарских эфемерид не только дает отклонения в координатах (иногда существенные, особенно для ретроградности-директности дальних планет) от привычной и легкой Невы, но этот модуль и считает гораздо медленнее.
Сергей Васильевич, у Вас в программе видимо есть округления, которые , не затрагивая нужной нам точности, позволяют считатьв программе вывод аспектов раз в 30-40 быстрее чем это делают "швейцарцы" выводя длинный список аспектов... я мог бы снять видео как это выводится в моей программе.
В остальном она неплоха и расчеты именно по правилам школы точны (если бы не координаты).
Если не сочтете за надоедливость... - могли бы ли Вы поделиться алгоритмом округления эфемерид в виде исходного файла на Delfi Borland (если вы пишете в Delfi ). Остальное не проблема, можно потом перевести в Java, если видеть как это сделано в Delfi ... И программа для ОС Андроид может получиться на высоком уровне. И поделиться своими результатами в этом направлении я был бы просто обязан.
нева-профи под андроид
Нева-профи++ программа для профессионалов. Работа профессионала на планшете без клавиатуры крайне неудобна. Поэтому нецелесообразно создавать профессиональные программы для планшетов. Конечно, нева-альфа могла бы быть использована для этих целей, но переписывать её под андроид экономически нерентабельно.
Формулы для расчёта положений планет
содержатся в:
1. Астронимический календарь (постоянная часть).
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
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...
...