All Projects → g-battaglia → kerykeion

g-battaglia / kerykeion

Licence: GPL-2.0 license
Kerykeion is a python library for astrology. It can generate SVG charts and extract all data about a birthchart, a composite chart and a transit chart.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to kerykeion

EKAstrologyCalc
Astrology Calculator calculates moon's rise/set times, moon Age, moon phases and Zodiac Sign for location and time
Stars: ✭ 31 (-56.94%)
Mutual labels:  zodiac-sign, astronomical-algorithms, astrology-calculator
Astrology-JS
An open source javascript project to create a class for easy distribution and access to astrological information in web-applications/web-pages
Stars: ✭ 39 (-45.83%)
Mutual labels:  zodiac-sign, astrology
ephemeris-compute-de405
A command-line tool for producing tables of the positions of solar system objects over time.
Stars: ✭ 14 (-80.56%)
Mutual labels:  ephemeris, planets
pico-solar-system
No description or website provided.
Stars: ✭ 186 (+158.33%)
Mutual labels:  planets
accrete-starform-stargen
An attempt to reconcile all available versions of the Accrete/Starform/Stargen solar system generator.
Stars: ✭ 24 (-66.67%)
Mutual labels:  planets
emoji-clock
🕟 Generate the emoji clock face, moon phase 🌗 , or zodiac sign ♉ 🐶 for a given time
Stars: ✭ 12 (-83.33%)
Mutual labels:  zodiac-sign
astrobook
The Astrobook source files
Stars: ✭ 32 (-55.56%)
Mutual labels:  astronomical-algorithms
api-rest
API - The Solar System OpenData
Stars: ✭ 18 (-75%)
Mutual labels:  planets
gpuvmem
GPU Framework for Radio Astronomical Image Synthesis
Stars: ✭ 27 (-62.5%)
Mutual labels:  astronomical-algorithms
HoroscopeDrawer
JavaScript-Library to draw celestial charts in SVG-Format.
Stars: ✭ 51 (-29.17%)
Mutual labels:  astrology
astrale
React Native mobile application. Find out what the future holds for you in this astrology app, available for Android. Powered with Python, MongoDB and PHP.
Stars: ✭ 100 (+38.89%)
Mutual labels:  astrology
pymeeus
Library of astronomical algorithms in Python
Stars: ✭ 25 (-65.28%)
Mutual labels:  planets
kosmorro
A program to calculate your ephemerides.
Stars: ✭ 53 (-26.39%)
Mutual labels:  ephemeris
PlanetaryImager
Qt capture software for astronomy, mainly planetary shooting
Stars: ✭ 45 (-37.5%)
Mutual labels:  planets
hypatia
Geo-Astronomical library for artist
Stars: ✭ 53 (-26.39%)
Mutual labels:  astronomical-algorithms
SpaceProject
A top-down 2D, procedurally generated space exploration and shooter game using libGDX. Kinda like Asteroids, only a little bigger.
Stars: ✭ 28 (-61.11%)
Mutual labels:  planets
GroundGrowing
Open Source Unity3d Planetary Terrain Editor Extension with incremental background updates via multithreading
Stars: ✭ 66 (-8.33%)
Mutual labels:  planets
astrology-api
Astrology API Rest
Stars: ✭ 35 (-51.39%)
Mutual labels:  astrology
DrawSpace
Space-game oriented rendering engine
Stars: ✭ 20 (-72.22%)
Mutual labels:  planets
horoscope
Open source horoscope generation engine
Stars: ✭ 18 (-75%)
Mutual labels:  astrology

Kerykeion

 

Kerykeion is a python library for Astrology. It can calculate all the planet and house position, also it can calculate the aspects of a single persone or between two, you can set how many planets you need in the settings in the utility module. It also can generate an SVG of a birthchart, a composite chart or a transit chart.

Installation

Kerykeion is a Python 3.9 package, make sure you have Python 3.9 or above installed on your system.

pip3 install kerykeion

Usage

Here some examples:

# Import the main class for creating a kerykeion instance:
from kerykeion import KrInstance

# Create a kerykeion instance:
# Args: Name, year, month, day, hour, minuts, city, nation(optional)
kanye = KrInstance("Kanye", 1977, 6, 8, 8, 45, "Atlanta")

# Get the information about the sun in the chart:
# (The position of the planets always starts at 0)
kanye.sun

#> {'name': 'Sun', 'quality': 'Mutable', 'element': 'Air', 'sign': 'Gem', 'sign_num': 2, 'pos': 17.598992059774275, 'abs_pos': 77.59899205977428, 'emoji': '♊️', 'house': '12th House', 'retrograde': False}

# Get informations about the first house:
kanye.first_house

#> {'name': 'First House', 'quality': 'Cardinal', 'element': 'Water', 'sign': 'Can', 'sign_num': 3, 'pos': 17.995779673209114, 'abs_pos': 107.99577967320911, 'emoji': '♋️'}

# Get element of the moon sign:
kanye.moon.get("element")

#> 'Water'

To avoid connecting to GeoNames (eg. avoiding hourly limit or no internet connection) you should instance kerykeion like this:

kanye = KrInstance(
    "Kanye", 1977, 6, 8, 8, 45,
    lng=50, lat=50, tz_str="Europe/Rome"
    )

Generate a SVG Chart:

from kerykeion import KrInstance, MakeSvgInstance

first = KrInstance("Jack", 1990, 6, 15, 15, 15, "Roma")
second = KrInstance("Jane", 1991, 10, 25, 21, 00, "Roma")

# Set the type, it can be Natal, Composite or Transit

name = MakeSvgInstance(first, chart_type="Composite", second_obj=second)
name.makeSVG()
print(len(name.aspects_list))

#> Generating kerykeion object for Jack...
#> Generating kerykeion object for Jane...
#> Jack birth location: Roma, 41.89193, 12.51133
#> SVG Generated Correctly
#> 38

alt text

Report

To print a report of all the data:

from kerykeion import Report, KrInstance

kanye = KrInstance("Kanye", 1977, 6, 8, 8, 45, "Atlanta")
report = Report(kanye)
report.print_report()

Returns:

+- Kerykeion report for Kanye -+
+----------+------+-------------+-----------+----------+
| Date     | Time | Location    | Longitude | Latitude |
+----------+------+-------------+-----------+----------+
| 8/6/1977 | 8:45 | Atlanta, US | -84.38798 | 33.749   |
+----------+------+-------------+-----------+----------+
+-----------+------+-------+------+----------------+
| Planet    | Sign | Pos.  | Ret. | House          |
+-----------+------+-------+------+----------------+
| Sun       | Gem  | 17.6  | -    | Twelfth House  |
| Moon      | Pis  | 16.43 | -    | Ninth House    |
| Mercury   | Tau  | 26.29 | -    | Eleventh House |
| Venus     | Tau  | 2.03  | -    | Tenth House    |
| Mars      | Tau  | 1.79  | -    | Tenth House    |
| Jupiter   | Gem  | 14.61 | -    | Eleventh House |
| Saturn    | Leo  | 12.8  | -    | Second House   |
| Uranus    | Sco  | 8.27  | R    | Fourth House   |
| Neptune   | Sag  | 14.69 | R    | Fifth House    |
| Pluto     | Lib  | 11.45 | R    | Fourth House   |
| Mean_Node | Lib  | 21.49 | R    | Fourth House   |
| True_Node | Lib  | 22.82 | R    | Fourth House   |
+-----------+------+-------+------+----------------+
+----------------+------+----------+
| House          | Sign | Position |
+----------------+------+----------+
| First House    | Can  | 18.0     |
| Second House   | Leo  | 9.51     |
| Third House    | Vir  | 4.02     |
| Fourth House   | Lib  | 3.98     |
| Fifth House    | Sco  | 9.39     |
| Sixth House    | Sag  | 15.68    |
| Seventh House  | Cap  | 18.0     |
| Eighth House   | Aqu  | 9.51     |
| Ninth House    | Pis  | 4.02     |
| Tenth House    | Ari  | 3.98     |
| Eleventh House | Tau  | 9.39     |
| Twelfth House  | Gem  | 15.68    |
+----------------+------+----------+

And if you want to export it to a file:

$ python3 your_script_name.py > file.txt 

Example of a possible text output with information:

from kerykeion import print_all_data, KrInstance

kanye = KrInstance("Kanye", 1977, 6, 8, 8, 45, "Atlanta")

print_all_data(kanye)

Returns:

NAME: Kanye
PLANET     POSITION

Sun:       Gem 17.599 in 12th House
Moon:      Pis 16.425 in 9th House
Mercury:   Tau 26.286 in 11th House
Venus:     Tau 2.032 in 10th House
Mars:      Tau 1.79 in 10th House
Jupiter:   Gem 14.607 in 11th House
Saturn:    Leo 12.799 in 2nd House
Uranus:    Sco 8.273 in 4th House
Neptune:   Sag 14.693 in 5th House
Pluto:     Lib 11.446 in 4th House

PLACIDUS HAUSES
House Cusp 1:     Can  17.996
House Cusp 2:     Leo  9.506
House Cusp 3:     Vir  4.022
House Cusp 4:     Lib  3.977
House Cusp 5:     Sco  9.393
House Cusp 6:     Sag  15.681
House Cusp 7:     Cap  17.996
House Cusp 8:     Aqu  9.506
House Cusp 9:     Pis  4.022
House Cusp 10:    Ari  3.977
House Cusp 11:    Tau  9.393
House Cusp 12:    Gem  15.681

Other exeples of possibles usecase

# Get all aspects between two persons:

from kerykeion import CompositeAspects, KrInstance
first = KrInstance("Jack", 1990, 6, 15, 15, 15, "Roma")
second = KrInstance("Jane", 1991, 10, 25, 21, 00, "Roma")

name = CompositeAspects(first, second)
aspect_list = name.get_relevant_aspects()
print(aspect_list[0])

#> Generating kerykeion object for Jack...
#> Generating kerykeion object for Jane...
#> {'p1_name': 'Sun', 'p1_abs_pos': 84.17867971515636, 'p2_name': 'Sun', 'p2_abs_pos': 211.90472999502984, 'aspect': 'trine', 'orbit': 7.726050279873476, 'aspect_degrees': 120, 'color': '#36d100', 'aid': 6, 'diff': 127.72605027987348, 'p1': 0, 'p2': 0}

Documentation

Most of the functions and the classes are self documented by the types and have docstrings. An auto-generated documentation is available here.

Sooner or later I'll try to write an extensive documentation.

Development

You can clone this repository or download a zip file using the right side buttons.

Contributing

Feel free to contribute to the code!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].