Files
Jyotisha/references/open_source_sources/VedicAstro/StudyNotebooks/VedicAstroStudy.ipynb
T
732642856 a4f8620a71 v6.2.0: 全面技法宝库升级 — 16个新模块 + 12个文件优化
## 新增模块 (16个)
### P0 精度修复
- ashtakavarga: calc_prastara_av() + calc_sodhita_av()
- kakshya.py: Kakshya评分系统 (8区间×3.75°)
- shadbala.py: Sputa Drishti + Yuddha Bala

### P1 核心升级
- bhava_bala.py: 宫位三元力量 (jyotishganit MIT)
- pancha_mahapurusha.py: PMC完整检测含4层失效条件
- sade_sati.py: Sade Sati+Kantaka Shani
- sudarshana_chakra.py: 三参考点盘+收敛分析
- tajika.py: Sahams 7→36 + Tajika Yogas 10种
- birth_time_rectifier.py: 生时矫正

### P2 覆盖扩展
- kp_system.py: KP Sublord+ABCD Significator (diliprk/VedicAstro MIT)
- synastry.py: 16因子合盘36分制 (dashaflow MIT)
- muhurtha_election.py: 6活动选举 (dashaflow MIT)
- career_analysis.py: 结构化事业引擎
- relationship_analysis.py: 结构化感情引擎
- conditional_dashas.py: Dwisaptati+Shattrimsa+Dwadashottari
- divisional_charts_extended: D81/D108/D144
- remedies.py: 5类补救系统

## 修改文件
jaimini/dasha_calculator/shadbala/SKILL.md/COVERAGE_AUDIT等12个

## 开源复用: 4个MIT项目
2026-06-11 19:03:21 +08:00

74 KiB

In [1]:
from vedicastro.VedicAstro import VedicHoroscopeData
from vedicastro.utils import pretty_data_table
from pprint import pprint
import polars as pl
In [2]:
help(VedicHoroscopeData)
Help on class VedicHoroscopeData in module vedicastro.VedicAstro:

class VedicHoroscopeData(builtins.object)
 |  VedicHoroscopeData(year: int, month: int, day: int, hour: int, minute: int, second: int, utc: str, latitude: float, longitude: float, ayanamsa: str = 'Lahiri', house_system: str = 'Equal')
 |  
 |  Methods defined here:
 |  
 |  __init__(self, year: int, month: int, day: int, hour: int, minute: int, second: int, utc: str, latitude: float, longitude: float, ayanamsa: str = 'Lahiri', house_system: str = 'Equal')
 |      Generates Planetary and House Positions Data for a time and place input.
 |      
 |      Parameters
 |      ==========
 |      year: Birth Year
 |      month: Birth Month
 |      day: Birth Day
 |      house: Birth Hour
 |      minute: Birth Minute
 |      utc: Country UTC
 |      latitude: latitude
 |      longitude: longitude
 |      ayanamsa: ayanamsa
 |  
 |  compute_vimshottari_dasa(self, chart: flatlib.chart.Chart)
 |      Computes the Vimshottari Dasa for the chart
 |  
 |  generate_chart(self)
 |      Generates a `flatlib.Chart` object for the given time and location data
 |  
 |  get_ascendant_data(self, asc_data: flatlib.object.GenericObject, PlanetsDataCollection: <function namedtuple at 0x0000012D4198BEC0>)
 |      Generates Ascendant Data and returns the data in the format of the PlanetsDataCollection Named Tuple
 |  
 |  get_ayanamsa(self)
 |      Returns an Ayanamsa System from flatlib.sidereal library, based on user input
 |  
 |  get_consolidated_chart_data(self, chart: flatlib.chart.Chart, return_style: str = None)
 |      Create consolidated dict data where all objects (both planets and houses) are listed by rasi (sign)
 |  
 |  get_consolidated_chart_data_rasi_wise(self, df: polars.dataframe.frame.DataFrame)
 |      Returns in dict format, the consolidated chart data stored in a polars DataFrame grouped by Rasi
 |  
 |  get_house_system(self)
 |      Returns an House System from flatlib.sidereal library, based on user input
 |  
 |  get_house_wise_significators(self, chart: flatlib.chart.Chart)
 |      Generate the ABCD significators table for each house
 |  
 |  get_houses_data_from_chart(self, chart: flatlib.chart.Chart)
 |      Generate the houses data table given a `flatlib.Chart` object
 |  
 |  get_planet_in_house(self, chart: flatlib.chart.Chart)
 |      Determine which house each planet is in given a `flatlib.Chart` object
 |  
 |  get_planet_wise_significators(self, chart: flatlib.chart.Chart)
 |      Generate the ABCD significators table for each planet
 |  
 |  get_planetary_aspects(self, chart: flatlib.chart.Chart)
 |  
 |  get_planets_data_from_chart(self, chart: flatlib.chart.Chart)
 |      Generate the planets data table given a `flatlib.Chart` object
 |  
 |  get_rl_nl_sl_data(self, deg: float)
 |      Returns the  Rashi (Sign) Lord, Nakshatra, Nakshatra Pada, Nakshatra Lord, Sub Lord and Sub Sub Lord 
 |      corresponding to the given degree.
 |  
 |  get_unique_house_nrs_for_rasi_lord(self, planets_df: polars.dataframe.frame.DataFrame, planet_name: str)
 |      Returns the unique set of house numbers where the given planet is the rasi lord
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables
 |  
 |  __weakref__
 |      list of weak references to the object

Generate Chart Data with Input Elements

In [3]:
year = 2024
month = 1
day = 1
hour = 9
minute = 15
secs = 0
latitude, longitude, utc = 40.707013856558156, -74.01123260406254, "-5:00" ## New York
ayan = "Lahiri"
house_system = "Placidus" # Default House system for Krishnamurti Paddhati system
In [4]:
vhd = VedicHoroscopeData(year = year, month = month, day = day, hour = hour, minute = minute, second = secs, utc = utc, 
                        latitude = latitude, longitude = longitude, ayanamsa = ayan, house_system = house_system)
In [5]:
vhd.ayanamsa, vhd.house_system
Out [5]:
('Lahiri', 'Placidus')
In [6]:
chart = vhd.generate_chart()
In [7]:
for planet in chart.objects:
    print(planet.id, '-' ,planet.lon)
Sun - 256.4532215907955
Moon - 138.82386279908562
Mercury - 238.0126214840217
Venus - 219.14368203961783
Mars - 243.55789036912742
Jupiter - 11.39400795464457
Saturn - 309.10545581586103
Uranus - 25.180261426586714
Neptune - 330.89401372611945
Pluto - 275.18537798459965
Chiron - 351.2746275368828
North Node - 356.6546220663508
South Node - 176.65462206635084
Syzygy - 70.77806237663256
Pars Fortuna - 195.15771264219325
In [8]:
for house in chart.houses:
    print(house.id, '-', house.lon)
House1 - 288.5962365716464
House2 - 336.4985654659893
House3 - 12.692432429895113
House4 - 38.35217376720323
House5 - 59.592006672618886
House6 - 81.01876071470457
House7 - 108.59623657164639
House8 - 156.4985654659893
House9 - 192.69243242989512
House10 - 218.35217376720323
House11 - 239.59200667261888
House12 - 261.01876071470457
In [9]:
planet_in_house = vhd.get_planet_in_house(houses_chart = chart, planets_chart = chart)
pprint(planet_in_house)
{'Chiron': 2,
 'Fortuna': 9,
 'Jupiter': 2,
 'Ketu': 8,
 'Mars': 11,
 'Mercury': 10,
 'Moon': 7,
 'Neptune': 1,
 'Pluto': 12,
 'Rahu': 2,
 'Saturn': 1,
 'Sun': 11,
 'Syzygy': 5,
 'Uranus': 3,
 'Venus': 10}
In [10]:
planets_data = vhd.get_planets_data_from_chart(chart)
planets_df = pl.DataFrame(planets_data)
# planets_df.select(["Object", "LonDecDeg", "Nakshatra", "RasiLord", "NakshatraLord", "SubLord"])
planets_df
Out [10]:
shape: (16, 13)
ObjectRasiisRetroGradeLonDecDegSignLonDMSSignLonDecDegLatDMSNakshatraRasiLordNakshatraLordSubLordSubSubLordHouseNr
strstrboolf64strf64strstrstrstrstrstri64
"Asc""Capricorn"null288.596"+18:35:46"18.5961null"Shravana""Saturn""Moon""Mercury""Moon"1
"Sun""Sagittarius"false256.453"+16:27:12"16.453"+01:01:08""PurvaAshadha""Jupiter""Venus""Moon""Rahu"11
"Moon""Leo"false138.824"+18:49:26"18.824"+11:48:34""PūrvaPhalgunī""Sun""Venus""Rahu""Saturn"7
"Mercury""Scorpio"true238.013"+28:00:45"28.013"-00:05:02""Jyeshtha""Mars""Mercury""Saturn""Saturn"10
"Venus""Scorpio"false219.144"+09:08:37"9.144"+01:13:00""Anuradha""Mars""Saturn""Venus""Rahu"10
"Mars""Sagittarius"false243.558"+03:33:28"3.558"+00:44:31""Mula""Jupiter""Ketu""Sun""Venus"11
"Jupiter""Aries"false11.394"+11:23:38"11.394"+00:00:18""Ashwini""Mars""Ketu""Saturn""Jupiter"2
"Saturn""Aquarius"false309.105"+09:06:20"9.105"+00:05:21""Shatabhisha""Saturn""Rahu""Jupiter""Saturn"1
"Uranus""Aries"true25.18"+25:10:49"25.18"-00:01:17""Bharani""Mars""Venus""Mercury""Rahu"3
"Neptune""Pisces"false330.894"+00:53:38"0.894"+00:00:53""PurvaBhādrapad…"Jupiter""Jupiter""Mars""Saturn"1
"Pluto""Capricorn"false275.185"+05:11:07"5.185"+00:01:52""UttaraAshadha""Saturn""Sun""Mercury""Mercury"12
"Chiron""Pisces"false351.275"+21:16:29"21.275"+00:00:18""Revati""Jupiter""Mercury""Venus""Mercury"2
"Rahu""Pisces"true356.655"+26:39:17"26.655"-00:03:11""Revati""Jupiter""Mercury""Jupiter""Mercury"2
"Ketu""Virgo"true176.655"+26:39:17"26.655"-00:03:11""Chitra""Mercury""Mars""Jupiter""Mercury"8
"Syzygy""Gemini"false70.778"+10:46:41"10.778"+12:46:48""Ardra""Mercury""Rahu""Saturn""Saturn"5
"Fortuna""Libra"false195.158"+15:09:28"15.158"+00:00:00""Svati""Venus""Rahu""Ketu""Mercury"9
In [11]:
print(pretty_data_table(planets_data))
+---------+-------------+--------------+-----------+------------+---------------+-----------+-----------------+----------+---------------+---------+------------+---------+
|  Object |     Rasi    | isRetroGrade | LonDecDeg | SignLonDMS | SignLonDecDeg |   LatDMS  |    Nakshatra    | RasiLord | NakshatraLord | SubLord | SubSubLord | HouseNr |
+---------+-------------+--------------+-----------+------------+---------------+-----------+-----------------+----------+---------------+---------+------------+---------+
|   Asc   |  Capricorn  |     None     |  288.596  | +18:35:46  |    18.5961    |    None   |     Shravana    |  Saturn  |      Moon     | Mercury |    Moon    |    1    |
|   Sun   | Sagittarius |    False     |  256.453  | +16:27:12  |     16.453    | +01:01:08 |   PurvaAshadha  | Jupiter  |     Venus     |   Moon  |    Rahu    |    11   |
|   Moon  |     Leo     |    False     |  138.824  | +18:49:26  |     18.824    | +11:48:34 |  PūrvaPhalgunī  |   Sun    |     Venus     |   Rahu  |   Saturn   |    7    |
| Mercury |   Scorpio   |     True     |  238.013  | +28:00:45  |     28.013    | -00:05:02 |     Jyeshtha    |   Mars   |    Mercury    |  Saturn |   Saturn   |    10   |
|  Venus  |   Scorpio   |    False     |  219.144  | +09:08:37  |     9.144     | +01:13:00 |     Anuradha    |   Mars   |     Saturn    |  Venus  |    Rahu    |    10   |
|   Mars  | Sagittarius |    False     |  243.558  | +03:33:28  |     3.558     | +00:44:31 |       Mula      | Jupiter  |      Ketu     |   Sun   |   Venus    |    11   |
| Jupiter |    Aries    |    False     |   11.394  | +11:23:38  |     11.394    | +00:00:18 |     Ashwini     |   Mars   |      Ketu     |  Saturn |  Jupiter   |    2    |
|  Saturn |   Aquarius  |    False     |  309.105  | +09:06:20  |     9.105     | +00:05:21 |   Shatabhisha   |  Saturn  |      Rahu     | Jupiter |   Saturn   |    1    |
|  Uranus |    Aries    |     True     |   25.18   | +25:10:49  |     25.18     | -00:01:17 |     Bharani     |   Mars   |     Venus     | Mercury |    Rahu    |    3    |
| Neptune |    Pisces   |    False     |  330.894  | +00:53:38  |     0.894     | +00:00:53 | PurvaBhādrapadā | Jupiter  |    Jupiter    |   Mars  |   Saturn   |    1    |
|  Pluto  |  Capricorn  |    False     |  275.185  | +05:11:07  |     5.185     | +00:01:52 |  UttaraAshadha  |  Saturn  |      Sun      | Mercury |  Mercury   |    12   |
|  Chiron |    Pisces   |    False     |  351.275  | +21:16:29  |     21.275    | +00:00:18 |      Revati     | Jupiter  |    Mercury    |  Venus  |  Mercury   |    2    |
|   Rahu  |    Pisces   |     True     |  356.655  | +26:39:17  |     26.655    | -00:03:11 |      Revati     | Jupiter  |    Mercury    | Jupiter |  Mercury   |    2    |
|   Ketu  |    Virgo    |     True     |  176.655  | +26:39:17  |     26.655    | -00:03:11 |      Chitra     | Mercury  |      Mars     | Jupiter |  Mercury   |    8    |
|  Syzygy |    Gemini   |    False     |   70.778  | +10:46:41  |     10.778    | +12:46:48 |      Ardra      | Mercury  |      Rahu     |  Saturn |   Saturn   |    5    |
| Fortuna |    Libra    |    False     |  195.158  | +15:09:28  |     15.158    | +00:00:00 |      Svati      |  Venus   |      Rahu     |   Ketu  |  Mercury   |    9    |
+---------+-------------+--------------+-----------+------------+---------------+-----------+-----------------+----------+---------------+---------+------------+---------+
In [12]:
houses_data = vhd.get_houses_data_from_chart(chart)
houses_df = pl.DataFrame(houses_data)
houses_df
Out [12]:
shape: (12, 12)
ObjectHouseNrRasiLonDecDegSignLonDMSSignLonDecDegDegSizeNakshatraRasiLordNakshatraLordSubLordSubSubLord
stri64strf64strf64f64strstrstrstrstr
"I"1"Capricorn"288.596"+18:35:46"18.59647.902"Shravana""Saturn""Moon""Mercury""Moon"
"II"2"Pisces"336.499"+06:29:55"6.49936.194"UttaraBhādrapa…"Jupiter""Saturn""Mercury""Mars"
"III"3"Aries"12.692"+12:41:33"12.69225.66"Ashwini""Mars""Ketu""Mercury""Rahu"
"IV"4"Taurus"38.352"+08:21:08"8.35221.24"Krittika""Venus""Sun""Venus""Moon"
"V"5"Taurus"59.592"+29:35:31"29.59221.427"Mrigashīrsha""Venus""Mars""Saturn""Rahu"
"VI"6"Gemini"81.019"+21:01:08"21.01927.577"Punarvasu""Mercury""Jupiter""Jupiter""Venus"
"VII"7"Cancer"108.596"+18:35:46"18.59647.902"Āshleshā""Moon""Mercury""Ketu""Ketu"
"VIII"8"Virgo"156.499"+06:29:55"6.49936.194"UttaraPhalgunī…"Mercury""Sun""Mercury""Jupiter"
"IX"9"Libra"192.692"+12:41:33"12.69225.66"Svati""Venus""Rahu""Mercury""Mercury"
"X"10"Scorpio"218.352"+08:21:08"8.35221.24"Anuradha""Mars""Saturn""Venus""Venus"
"XI"11"Scorpio"239.592"+29:35:31"29.59221.427"Jyeshtha""Mars""Mercury""Saturn""Rahu"
"XII"12"Sagittarius"261.019"+21:01:08"21.01927.577"PurvaAshadha""Jupiter""Venus""Jupiter""Venus"

Planet-wise Significators Table

In [13]:
planets_significators_table = vhd.get_planet_wise_significators(planets_data, houses_data)
pl.DataFrame(planets_significators_table)
Out [13]:
shape: (12, 5)
PlanetABCD
stri64i64list[i64]list[i64]
"Sun"1011[4, 5, 9][]
"Moon"107[4, 5, 9][7]
"Mercury"1010[6, 8][6, 8]
"Venus"110[1][4, 5, 9]
"Mars"811[][3, 10, 11]
"Jupiter"82[][2, 12]
"Saturn"21[][1]
"Uranus"103[4, 5, 9][]
"Neptune"21[2, 12][]
"Pluto"1112[][]
"Rahu"102[6, 8][]
"Ketu"118[3, 10, 11][]

House-wise Significators Table

In [14]:
house_significators_table = vhd.get_house_wise_significators(planets_data, houses_data)
pl.DataFrame(house_significators_table)
Out [14]:
shape: (12, 5)
HouseABCD
strlist[str]list[str]list[str]str
"I"["Venus"]["Saturn", "Neptune"]["Venus"]"Saturn"
"II"["Saturn", "Neptune"]["Jupiter", "Rahu"]["Neptune"]"Jupiter"
"III"[]["Uranus"]["Ketu"]"Mars"
"IV"[][]["Sun", "Moon", "Uranus"]"Venus"
"V"[][]["Sun", "Moon", "Uranus"]"Venus"
"VI"[][]["Mercury", "Rahu"]"Mercury"
"VII"[]["Moon"][]"Moon"
"VIII"["Mars", "Jupiter"]["Ketu"]["Mercury", "Rahu"]"Mercury"
"IX"[][]["Sun", "Moon", "Uranus"]"Venus"
"X"["Sun", "Moon", … "Rahu"]["Mercury", "Venus"]["Ketu"]"Mars"
"XI"["Pluto", "Ketu"]["Sun", "Mars"]["Ketu"]"Mars"
"XII"[]["Pluto"]["Neptune"]"Jupiter"

Vimshottari Dasa System

In [15]:
vimshottari_dasa = vhd.compute_vimshottari_dasa(chart)
pprint(vimshottari_dasa)
{'Jupiter': {'bhuktis': {'Jupiter': {'end': '25-11-2078',
                                     'start': '07-10-2076'},
                         'Ketu': {'end': '18-08-2084', 'start': '12-09-2083'},
                         'Mars': {'end': '09-05-2090', 'start': '03-06-2089'},
                         'Mercury': {'end': '12-09-2083',
                                     'start': '06-06-2081'},
                         'Moon': {'end': '03-06-2089', 'start': '04-02-2088'},
                         'Rahu': {'end': '03-10-2092', 'start': '09-05-2090'},
                         'Saturn': {'end': '06-06-2081', 'start': '25-11-2078'},
                         'Sun': {'end': '04-02-2088', 'start': '17-04-2087'},
                         'Venus': {'end': '17-04-2087', 'start': '18-08-2084'}},
             'end': '07-10-2092',
             'start': '07-10-2076'},
 'Ketu': {'bhuktis': {'Jupiter': {'end': '01-09-2133', 'start': '26-09-2132'},
                      'Ketu': {'end': '06-03-2129', 'start': '07-10-2128'},
                      'Mars': {'end': '08-09-2131', 'start': '12-04-2131'},
                      'Mercury': {'end': '07-10-2135', 'start': '10-10-2134'},
                      'Moon': {'end': '12-04-2131', 'start': '12-09-2130'},
                      'Rahu': {'end': '26-09-2132', 'start': '08-09-2131'},
                      'Saturn': {'end': '10-10-2134', 'start': '01-09-2133'},
                      'Sun': {'end': '12-09-2130', 'start': '06-05-2130'},
                      'Venus': {'end': '06-05-2130', 'start': '06-03-2129'}},
          'end': '07-10-2135',
          'start': '07-10-2128'},
 'Mars': {'bhuktis': {'Jupiter': {'end': '01-03-2054', 'start': '23-03-2053'},
                      'Ketu': {'end': '02-09-2056', 'start': '06-04-2056'},
                      'Mars': {'end': '05-03-2052', 'start': '07-10-2051'},
                      'Mercury': {'end': '06-04-2056', 'start': '10-04-2055'},
                      'Moon': {'end': '08-10-2058', 'start': '08-03-2058'},
                      'Rahu': {'end': '23-03-2053', 'start': '05-03-2052'},
                      'Saturn': {'end': '10-04-2055', 'start': '01-03-2054'},
                      'Sun': {'end': '08-03-2058', 'start': '02-11-2057'},
                      'Venus': {'end': '02-11-2057', 'start': '02-09-2056'}},
          'end': '07-10-2058',
          'start': '07-10-2051'},
 'Mercury': {'bhuktis': {'Jupiter': {'end': '31-01-2126',
                                     'start': '25-10-2123'},
                         'Ketu': {'end': '05-03-2115', 'start': '06-03-2114'},
                         'Mars': {'end': '07-04-2121', 'start': '11-04-2120'},
                         'Mercury': {'end': '06-03-2114',
                                     'start': '07-10-2111'},
                         'Moon': {'end': '11-04-2120', 'start': '11-11-2118'},
                         'Rahu': {'end': '25-10-2123', 'start': '07-04-2121'},
                         'Saturn': {'end': '09-10-2128', 'start': '31-01-2126'},
                         'Sun': {'end': '11-11-2118', 'start': '05-01-2118'},
                         'Venus': {'end': '05-01-2118', 'start': '05-03-2115'}},
             'end': '07-10-2128',
             'start': '07-10-2111'},
 'Moon': {'bhuktis': {'Jupiter': {'end': '06-01-2046', 'start': '07-09-2044'},
                      'Ketu': {'end': '05-08-2049', 'start': '05-01-2049'},
                      'Mars': {'end': '07-03-2043', 'start': '07-08-2042'},
                      'Mercury': {'end': '05-01-2049', 'start': '05-08-2047'},
                      'Moon': {'end': '07-08-2042', 'start': '07-10-2041'},
                      'Rahu': {'end': '07-09-2044', 'start': '07-03-2043'},
                      'Saturn': {'end': '05-08-2047', 'start': '06-01-2046'},
                      'Sun': {'end': '05-10-2051', 'start': '05-04-2051'},
                      'Venus': {'end': '05-04-2051', 'start': '05-08-2049'}},
          'end': '07-10-2051',
          'start': '07-10-2041'},
 'Rahu': {'bhuktis': {'Jupiter': {'end': '12-11-2063', 'start': '19-06-2061'},
                      'Ketu': {'end': '23-04-2070', 'start': '05-04-2069'},
                      'Mars': {'end': '07-10-2076', 'start': '19-09-2075'},
                      'Mercury': {'end': '05-04-2069', 'start': '18-09-2066'},
                      'Moon': {'end': '19-09-2075', 'start': '19-03-2074'},
                      'Rahu': {'end': '19-06-2061', 'start': '07-10-2058'},
                      'Saturn': {'end': '18-09-2066', 'start': '12-11-2063'},
                      'Sun': {'end': '19-03-2074', 'start': '23-04-2073'},
                      'Venus': {'end': '23-04-2073', 'start': '23-04-2070'}},
          'end': '07-10-2076',
          'start': '07-10-2058'},
 'Saturn': {'bhuktis': {'Jupiter': {'end': '04-10-2111', 'start': '22-03-2109'},
                        'Ketu': {'end': '28-07-2099', 'start': '19-06-2098'},
                        'Mars': {'end': '16-05-2106', 'start': '07-04-2105'},
                        'Mercury': {'end': '19-06-2098', 'start': '10-10-2095'},
                        'Moon': {'end': '07-04-2105', 'start': '08-09-2103'},
                        'Rahu': {'end': '22-03-2109', 'start': '16-05-2106'},
                        'Saturn': {'end': '10-10-2095', 'start': '07-10-2092'},
                        'Sun': {'end': '08-09-2103', 'start': '27-09-2102'},
                        'Venus': {'end': '27-09-2102', 'start': '28-07-2099'}},
            'end': '07-10-2111',
            'start': '07-10-2092'},
 'Sun': {'bhuktis': {'Jupiter': {'end': '12-08-2038', 'start': '25-10-2037'},
                     'Ketu': {'end': '06-10-2040', 'start': '30-05-2040'},
                     'Mars': {'end': '01-12-2036', 'start': '25-07-2036'},
                     'Mercury': {'end': '30-05-2040', 'start': '24-07-2039'},
                     'Moon': {'end': '25-07-2036', 'start': '25-01-2036'},
                     'Rahu': {'end': '25-10-2037', 'start': '01-12-2036'},
                     'Saturn': {'end': '24-07-2039', 'start': '12-08-2038'},
                     'Sun': {'end': '25-01-2036', 'start': '07-10-2035'},
                     'Venus': {'end': '06-10-2041', 'start': '06-10-2040'}},
         'end': '07-10-2041',
         'start': '07-10-2035'},
 'Venus': {'bhuktis': {'Jupiter': {'end': '06-08-2028', 'start': '07-12-2025'},
                       'Ketu': {'end': '06-10-2035', 'start': '06-08-2034'},
                       'Mars': {'end': '07-12-2022', 'start': '07-10-2021'},
                       'Mercury': {'end': '06-08-2034', 'start': '06-10-2031'},
                       'Moon': {'end': '07-10-2021', 'start': '07-02-2020'},
                       'Rahu': {'end': '07-12-2025', 'start': '07-12-2022'},
                       'Saturn': {'end': '06-10-2031', 'start': '06-08-2028'},
                       'Sun': {'end': '07-02-2020', 'start': '07-02-2019'},
                       'Venus': {'end': '07-02-2019', 'start': '07-10-2015'}},
           'end': '07-10-2035',
           'start': '07-10-2015'}}
In [16]:
vimshottari_dasa["Mercury"]
Out [16]:
{'start': '07-10-2111',
 'end': '07-10-2128',
 'bhuktis': {'Mercury': {'start': '07-10-2111', 'end': '06-03-2114'},
  'Ketu': {'start': '06-03-2114', 'end': '05-03-2115'},
  'Venus': {'start': '05-03-2115', 'end': '05-01-2118'},
  'Sun': {'start': '05-01-2118', 'end': '11-11-2118'},
  'Moon': {'start': '11-11-2118', 'end': '11-04-2120'},
  'Mars': {'start': '11-04-2120', 'end': '07-04-2121'},
  'Rahu': {'start': '07-04-2121', 'end': '25-10-2123'},
  'Jupiter': {'start': '25-10-2123', 'end': '31-01-2126'},
  'Saturn': {'start': '31-01-2126', 'end': '09-10-2128'}}}

Planetary Aspects

In [17]:
planetary_aspects = vhd.get_planetary_aspects(chart)
pl.DataFrame(planetary_aspects)
Out [17]:
shape: (88, 5)
P1P2AspectTypeAspectDegAspectOrb
strstrstri64f64
"Sun""Moon""Trine"1202.371
"Sun""Mars""Conjunction"012.895
"Sun""Jupiter""Trine"1205.059
"Sun""Venus""Semi Quintile"361.31
"Sun""Saturn""Sextile"607.348
"Sun""Uranus""Trine"1208.727
"Sun""Neptune""Sextile"6014.441
"Sun""Rahu""Square"9010.201
"Sun""Ketu""Square"9010.201
"Moon""Sun""Trine"1202.371
"Moon""Mercury""Square"909.189
"Moon""Jupiter""Trine"1207.43
"Rahu""Sun""Square"9010.201
"Rahu""Moon""Bi Quintile"1441.831
"Rahu""Mars""Trine"1206.903
"Rahu""Mercury""Trine"1201.358
"Rahu""Venus""Sesqui Square"1352.511
"Rahu""Saturn""Semi Square"452.549
"Ketu""Sun""Square"9010.201
"Ketu""Moon""Semi Quintile"361.831
"Ketu""Mars""Sextile"606.903
"Ketu""Mercury""Sextile"601.358
"Ketu""Venus""Semi Square"452.511
"Ketu""Saturn""Sesqui Square"1352.549

Consolidated Chart Data

In [18]:
%%time
## Pandas df.to_dict(orient = "records") style return
consolidated_chart_data_style1 = vhd.get_consolidated_chart_data(planets_data=planets_data, houses_data=houses_data, return_style = "dataframe_records")
pprint(consolidated_chart_data_style1[:3])
[{'LonDecDeg': [12.692, 11.394, 25.18],
  'Object': ['III', 'Jupiter', 'Uranus'],
  'Rasi': 'Aries',
  'SignLonDMS': ['+12:41:33', '+11:23:38', '+25:10:49'],
  'SignLonDecDeg': [12.692, 11.394, 25.18],
  'isRetroGrade': [False, False, True]},
 {'LonDecDeg': [38.352, 59.592],
  'Object': ['IV', 'V'],
  'Rasi': 'Taurus',
  'SignLonDMS': ['+08:21:08', '+29:35:31'],
  'SignLonDecDeg': [8.352, 29.592],
  'isRetroGrade': [False, False]},
 {'LonDecDeg': [81.019, 70.778],
  'Object': ['VI', 'Syzygy'],
  'Rasi': 'Gemini',
  'SignLonDMS': ['+21:01:08', '+10:46:41'],
  'SignLonDecDeg': [21.019, 10.778],
  'isRetroGrade': [False, False]}]
CPU times: total: 0 ns
Wall time: 14.3 ms
In [19]:
result_df = pl.DataFrame(consolidated_chart_data_style1)
result_df
Out [19]:
shape: (12, 6)
RasiObjectisRetroGradeLonDecDegSignLonDMSSignLonDecDeg
strlist[str]list[bool]list[f64]list[str]list[f64]
"Aries"["III", "Jupiter", "Uranus"][false, false, true][12.692, 11.394, 25.18]["+12:41:33", "+11:23:38", "+25:10:49"][12.692, 11.394, 25.18]
"Taurus"["IV", "V"][false, false][38.352, 59.592]["+08:21:08", "+29:35:31"][8.352, 29.592]
"Gemini"["VI", "Syzygy"][false, false][81.019, 70.778]["+21:01:08", "+10:46:41"][21.019, 10.778]
"Cancer"["VII"][false][108.596]["+18:35:46"][18.596]
"Leo"["Moon"][false][138.824]["+18:49:26"][18.824]
"Virgo"["VIII", "Ketu"][false, true][156.499, 176.655]["+06:29:55", "+26:39:17"][6.499, 26.655]
"Libra"["IX", "Fortuna"][false, false][192.692, 195.158]["+12:41:33", "+15:09:28"][12.692, 15.158]
"Scorpio"["X", "XI", … "Venus"][false, false, … false][218.352, 239.592, … 219.144]["+08:21:08", "+29:35:31", … "+09:08:37"][8.352, 29.592, … 9.144]
"Sagittarius"["XII", "Sun", "Mars"][false, false, false][261.019, 256.453, 243.558]["+21:01:08", "+16:27:12", "+03:33:28"][21.019, 16.453, 3.558]
"Capricorn"["I", "Asc", "Pluto"][false, null, false][288.596, 288.596, 275.185]["+18:35:46", "+18:35:46", "+05:11:07"][18.596, 18.5961, 5.185]
"Aquarius"["Saturn"][false][309.105]["+09:06:20"][9.105]
"Pisces"["II", "Neptune", … "Rahu"][false, false, … true][336.499, 330.894, … 356.655]["+06:29:55", "+00:53:38", … "+26:39:17"][6.499, 0.894, … 26.655]
In [20]:
result_df.to_dicts()
Out [20]:
[{'Rasi': 'Aries',
  'Object': ['III', 'Jupiter', 'Uranus'],
  'isRetroGrade': [False, False, True],
  'LonDecDeg': [12.692, 11.394, 25.18],
  'SignLonDMS': ['+12:41:33', '+11:23:38', '+25:10:49'],
  'SignLonDecDeg': [12.692, 11.394, 25.18]},
 {'Rasi': 'Taurus',
  'Object': ['IV', 'V'],
  'isRetroGrade': [False, False],
  'LonDecDeg': [38.352, 59.592],
  'SignLonDMS': ['+08:21:08', '+29:35:31'],
  'SignLonDecDeg': [8.352, 29.592]},
 {'Rasi': 'Gemini',
  'Object': ['VI', 'Syzygy'],
  'isRetroGrade': [False, False],
  'LonDecDeg': [81.019, 70.778],
  'SignLonDMS': ['+21:01:08', '+10:46:41'],
  'SignLonDecDeg': [21.019, 10.778]},
 {'Rasi': 'Cancer',
  'Object': ['VII'],
  'isRetroGrade': [False],
  'LonDecDeg': [108.596],
  'SignLonDMS': ['+18:35:46'],
  'SignLonDecDeg': [18.596]},
 {'Rasi': 'Leo',
  'Object': ['Moon'],
  'isRetroGrade': [False],
  'LonDecDeg': [138.824],
  'SignLonDMS': ['+18:49:26'],
  'SignLonDecDeg': [18.824]},
 {'Rasi': 'Virgo',
  'Object': ['VIII', 'Ketu'],
  'isRetroGrade': [False, True],
  'LonDecDeg': [156.499, 176.655],
  'SignLonDMS': ['+06:29:55', '+26:39:17'],
  'SignLonDecDeg': [6.499, 26.655]},
 {'Rasi': 'Libra',
  'Object': ['IX', 'Fortuna'],
  'isRetroGrade': [False, False],
  'LonDecDeg': [192.692, 195.158],
  'SignLonDMS': ['+12:41:33', '+15:09:28'],
  'SignLonDecDeg': [12.692, 15.158]},
 {'Rasi': 'Scorpio',
  'Object': ['X', 'XI', 'Mercury', 'Venus'],
  'isRetroGrade': [False, False, True, False],
  'LonDecDeg': [218.352, 239.592, 238.013, 219.144],
  'SignLonDMS': ['+08:21:08', '+29:35:31', '+28:00:45', '+09:08:37'],
  'SignLonDecDeg': [8.352, 29.592, 28.013, 9.144]},
 {'Rasi': 'Sagittarius',
  'Object': ['XII', 'Sun', 'Mars'],
  'isRetroGrade': [False, False, False],
  'LonDecDeg': [261.019, 256.453, 243.558],
  'SignLonDMS': ['+21:01:08', '+16:27:12', '+03:33:28'],
  'SignLonDecDeg': [21.019, 16.453, 3.558]},
 {'Rasi': 'Capricorn',
  'Object': ['I', 'Asc', 'Pluto'],
  'isRetroGrade': [False, None, False],
  'LonDecDeg': [288.596, 288.596, 275.185],
  'SignLonDMS': ['+18:35:46', '+18:35:46', '+05:11:07'],
  'SignLonDecDeg': [18.596, 18.5961, 5.185]},
 {'Rasi': 'Aquarius',
  'Object': ['Saturn'],
  'isRetroGrade': [False],
  'LonDecDeg': [309.105],
  'SignLonDMS': ['+09:06:20'],
  'SignLonDecDeg': [9.105]},
 {'Rasi': 'Pisces',
  'Object': ['II', 'Neptune', 'Chiron', 'Rahu'],
  'isRetroGrade': [False, False, False, True],
  'LonDecDeg': [336.499, 330.894, 351.275, 356.655],
  'SignLonDMS': ['+06:29:55', '+00:53:38', '+21:16:29', '+26:39:17'],
  'SignLonDecDeg': [6.499, 0.894, 21.275, 26.655]}]

Consolidated Chart Data - RasiWise Style

In [21]:
%%time
## JSON Style return grouped by Rasi order
consolidated_chart_data_style2 = vhd.get_consolidated_chart_data(planets_data=planets_data, houses_data=houses_data)
print(f"Length of consolidated chart data: {len(consolidated_chart_data_style2)}")
Length of consolidated chart data: 12
CPU times: total: 0 ns
Wall time: 14 ms
In [22]:
pprint(consolidated_chart_data_style2)
{'Aquarius': {'Saturn': {'LonDecDeg': 309.105,
                         'SignLonDMS': '+09:06:20',
                         'SignLonDecDeg': 9.105,
                         'is_Retrograde': False}},
 'Aries': {'III': {'LonDecDeg': 12.692,
                   'SignLonDMS': '+12:41:33',
                   'SignLonDecDeg': 12.692,
                   'is_Retrograde': False},
           'Jupiter': {'LonDecDeg': 11.394,
                       'SignLonDMS': '+11:23:38',
                       'SignLonDecDeg': 11.394,
                       'is_Retrograde': False},
           'Uranus': {'LonDecDeg': 25.18,
                      'SignLonDMS': '+25:10:49',
                      'SignLonDecDeg': 25.18,
                      'is_Retrograde': True}},
 'Cancer': {'VII': {'LonDecDeg': 108.596,
                    'SignLonDMS': '+18:35:46',
                    'SignLonDecDeg': 18.596,
                    'is_Retrograde': False}},
 'Capricorn': {'Asc': {'LonDecDeg': 288.596,
                       'SignLonDMS': '+18:35:46',
                       'SignLonDecDeg': 18.5961,
                       'is_Retrograde': None},
               'I': {'LonDecDeg': 288.596,
                     'SignLonDMS': '+18:35:46',
                     'SignLonDecDeg': 18.596,
                     'is_Retrograde': False},
               'Pluto': {'LonDecDeg': 275.185,
                         'SignLonDMS': '+05:11:07',
                         'SignLonDecDeg': 5.185,
                         'is_Retrograde': False}},
 'Gemini': {'Syzygy': {'LonDecDeg': 70.778,
                       'SignLonDMS': '+10:46:41',
                       'SignLonDecDeg': 10.778,
                       'is_Retrograde': False},
            'VI': {'LonDecDeg': 81.019,
                   'SignLonDMS': '+21:01:08',
                   'SignLonDecDeg': 21.019,
                   'is_Retrograde': False}},
 'Leo': {'Moon': {'LonDecDeg': 138.824,
                  'SignLonDMS': '+18:49:26',
                  'SignLonDecDeg': 18.824,
                  'is_Retrograde': False}},
 'Libra': {'Fortuna': {'LonDecDeg': 195.158,
                       'SignLonDMS': '+15:09:28',
                       'SignLonDecDeg': 15.158,
                       'is_Retrograde': False},
           'IX': {'LonDecDeg': 192.692,
                  'SignLonDMS': '+12:41:33',
                  'SignLonDecDeg': 12.692,
                  'is_Retrograde': False}},
 'Pisces': {'Chiron': {'LonDecDeg': 351.275,
                       'SignLonDMS': '+21:16:29',
                       'SignLonDecDeg': 21.275,
                       'is_Retrograde': False},
            'II': {'LonDecDeg': 336.499,
                   'SignLonDMS': '+06:29:55',
                   'SignLonDecDeg': 6.499,
                   'is_Retrograde': False},
            'Neptune': {'LonDecDeg': 330.894,
                        'SignLonDMS': '+00:53:38',
                        'SignLonDecDeg': 0.894,
                        'is_Retrograde': False},
            'Rahu': {'LonDecDeg': 356.655,
                     'SignLonDMS': '+26:39:17',
                     'SignLonDecDeg': 26.655,
                     'is_Retrograde': True}},
 'Sagittarius': {'Mars': {'LonDecDeg': 243.558,
                          'SignLonDMS': '+03:33:28',
                          'SignLonDecDeg': 3.558,
                          'is_Retrograde': False},
                 'Sun': {'LonDecDeg': 256.453,
                         'SignLonDMS': '+16:27:12',
                         'SignLonDecDeg': 16.453,
                         'is_Retrograde': False},
                 'XII': {'LonDecDeg': 261.019,
                         'SignLonDMS': '+21:01:08',
                         'SignLonDecDeg': 21.019,
                         'is_Retrograde': False}},
 'Scorpio': {'Mercury': {'LonDecDeg': 238.013,
                         'SignLonDMS': '+28:00:45',
                         'SignLonDecDeg': 28.013,
                         'is_Retrograde': True},
             'Venus': {'LonDecDeg': 219.144,
                       'SignLonDMS': '+09:08:37',
                       'SignLonDecDeg': 9.144,
                       'is_Retrograde': False},
             'X': {'LonDecDeg': 218.352,
                   'SignLonDMS': '+08:21:08',
                   'SignLonDecDeg': 8.352,
                   'is_Retrograde': False},
             'XI': {'LonDecDeg': 239.592,
                    'SignLonDMS': '+29:35:31',
                    'SignLonDecDeg': 29.592,
                    'is_Retrograde': False}},
 'Taurus': {'IV': {'LonDecDeg': 38.352,
                   'SignLonDMS': '+08:21:08',
                   'SignLonDecDeg': 8.352,
                   'is_Retrograde': False},
            'V': {'LonDecDeg': 59.592,
                  'SignLonDMS': '+29:35:31',
                  'SignLonDecDeg': 29.592,
                  'is_Retrograde': False}},
 'Virgo': {'Ketu': {'LonDecDeg': 176.655,
                    'SignLonDMS': '+26:39:17',
                    'SignLonDecDeg': 26.655,
                    'is_Retrograde': True},
           'VIII': {'LonDecDeg': 156.499,
                    'SignLonDMS': '+06:29:55',
                    'SignLonDecDeg': 6.499,
                    'is_Retrograde': False}}}
In [23]:
sign = "Sagittarius"
print(f"Nr. of items in sign: {sign}",len(consolidated_chart_data_style2[sign]))
consolidated_chart_data_style2[sign]
Out [23]:
Nr. of items in sign: Sagittarius 3
{'XII': {'is_Retrograde': False,
  'LonDecDeg': 261.019,
  'SignLonDMS': '+21:01:08',
  'SignLonDecDeg': 21.019},
 'Sun': {'is_Retrograde': False,
  'LonDecDeg': 256.453,
  'SignLonDMS': '+16:27:12',
  'SignLonDecDeg': 16.453},
 'Mars': {'is_Retrograde': False,
  'LonDecDeg': 243.558,
  'SignLonDMS': '+03:33:28',
  'SignLonDecDeg': 3.558}}
In [24]:
consolidated_chart_data_style2[sign]["Sun"]
Out [24]:
{'is_Retrograde': False,
 'LonDecDeg': 256.453,
 'SignLonDMS': '+16:27:12',
 'SignLonDecDeg': 16.453}