Старый 20.05.2022, 20:53   #1
VScor
Собеседник
 
Аватар для VScor
 
Регистрация: 23.12.2021
Адрес: Russian, Ekaterinburg
Сообщения: 4
VScor репутация выше +10
По умолчанию Определение ретроградных планет (swisseph)

Здравствуйте, изучаю библиотеку swisseph на Python. Пытаюсь создать свою программу для астрологии. Тут появился такой вопрос как определить ретроградную планету ? есть ли готовая функция или формула по которой оно должно определятся ? (по возможности я бы хотел просто использовать готовую функцию, и не париться с вычислениями, потому что работы и так оч много) Может быть кто ни будь делал это или видел решение в другой программе ?
VScor вне форума   Ответить с цитированием
Старый 20.05.2022, 23:11   #2
AlMaximus
Сообщник
 
Аватар для AlMaximus
 
Регистрация: 03.02.2014
Сообщения: 2,230
AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000AlMaximus репутация выше +2000
По умолчанию

Цитата:
Сообщение от VScor
Здравствуйте, изучаю библиотеку swisseph на Python. Пытаюсь создать свою программу для астрологии. Тут появился такой вопрос как определить ретроградную планету ? есть ли готовая функция или формула по которой оно должно определятся ? (по возможности я бы хотел просто использовать готовую функцию, и не париться с вычислениями, потому что работы и так оч много) Может быть кто ни будь делал это или видел решение в другой программе ?
В швейцарских эфемеридах есть же куча всевозможных функций, например, возвращающие угловую скорость планеты.
AlMaximus вне форума   Ответить с цитированием
Старый 23.05.2022, 07:21   #3
DoReMi
Бухгалтер
 
Аватар для DoReMi
 
Регистрация: 23.04.2008
Адрес: Волгодонск
Сообщения: 356
DoReMi репутация выше +50DoReMi репутация выше +50
По умолчанию

swe_calc, например, возвращает скорость, если добавить флаг SEFLG_SPEED, соответственно отрицательная скорость = ретроградность.

Это и есть "готовое" )
DoReMi вне форума   Ответить с цитированием
Старый 02.06.2022, 05:18   #4
VScor
Собеседник
 
Аватар для VScor
 
Регистрация: 23.12.2021
Адрес: Russian, Ekaterinburg
Сообщения: 4
VScor репутация выше +10
По умолчанию

Спасибо, протестировал функцию calc(), и да 3 параметром она возвращает положительную/отрицательную скорость, по которой можно определить статус движения. До этого делал вроде все тоже самое то почему то мне показалось что эта функция выводит какую то рандомную скорость, поэтому спросил здесь.
Если кому то понадобится код:
(Python) (swisseph)
Код:
# Определение ретроградности планеты def is_retro(jd: float, planet: int): speed_long: float = swe.calc(jd, planet, swe.FLG_SPEED)[0][3] if speed_long < 0: return True return False

Грубая функция для определения статуса планеты:
(Python) (swisseph)
Код:
# Определение статуса планеты def get_status_planet(jd: float, planet: int): speed_long: float = swe.calc(jd, planet, swe.FLG_SPEED)[0][3] lim: float = 0.1 if speed_long < 0: if -lim < speed_long < 0: return "stationary-retrograde" else: return "retrograde" else: # direct if 0 < speed_long < lim: return "stationary-direct" else: return "direct"
VScor вне форума   Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +1, время: 10:13.


Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 1995-2024, ARGO