## 新增模块 (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项目
74 KiB
74 KiB
In [1]:
from vedicastro.VedicAstro import VedicHoroscopeData
from vedicastro.utils import pretty_data_table
from pprint import pprint
import polars as plIn [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
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 systemIn [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_systemOut [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_dfOut [10]:
shape: (16, 13)
| Object | Rasi | isRetroGrade | LonDecDeg | SignLonDMS | SignLonDecDeg | LatDMS | Nakshatra | RasiLord | NakshatraLord | SubLord | SubSubLord | HouseNr |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| str | str | bool | f64 | str | f64 | str | str | str | str | str | str | i64 |
| "Asc" | "Capricorn" | null | 288.596 | "+18:35:46" | 18.5961 | null | "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 [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_dfOut [12]:
shape: (12, 12)
| Object | HouseNr | Rasi | LonDecDeg | SignLonDMS | SignLonDecDeg | DegSize | Nakshatra | RasiLord | NakshatraLord | SubLord | SubSubLord |
|---|---|---|---|---|---|---|---|---|---|---|---|
| str | i64 | str | f64 | str | f64 | f64 | str | str | str | str | str |
| "I" | 1 | "Capricorn" | 288.596 | "+18:35:46" | 18.596 | 47.902 | "Shravana" | "Saturn" | "Moon" | "Mercury" | "Moon" |
| "II" | 2 | "Pisces" | 336.499 | "+06:29:55" | 6.499 | 36.194 | "UttaraBhādrapa… | "Jupiter" | "Saturn" | "Mercury" | "Mars" |
| "III" | 3 | "Aries" | 12.692 | "+12:41:33" | 12.692 | 25.66 | "Ashwini" | "Mars" | "Ketu" | "Mercury" | "Rahu" |
| "IV" | 4 | "Taurus" | 38.352 | "+08:21:08" | 8.352 | 21.24 | "Krittika" | "Venus" | "Sun" | "Venus" | "Moon" |
| "V" | 5 | "Taurus" | 59.592 | "+29:35:31" | 29.592 | 21.427 | "Mrigashīrsha" | "Venus" | "Mars" | "Saturn" | "Rahu" |
| "VI" | 6 | "Gemini" | 81.019 | "+21:01:08" | 21.019 | 27.577 | "Punarvasu" | "Mercury" | "Jupiter" | "Jupiter" | "Venus" |
| "VII" | 7 | "Cancer" | 108.596 | "+18:35:46" | 18.596 | 47.902 | "Āshleshā" | "Moon" | "Mercury" | "Ketu" | "Ketu" |
| "VIII" | 8 | "Virgo" | 156.499 | "+06:29:55" | 6.499 | 36.194 | "UttaraPhalgunī… | "Mercury" | "Sun" | "Mercury" | "Jupiter" |
| "IX" | 9 | "Libra" | 192.692 | "+12:41:33" | 12.692 | 25.66 | "Svati" | "Venus" | "Rahu" | "Mercury" | "Mercury" |
| "X" | 10 | "Scorpio" | 218.352 | "+08:21:08" | 8.352 | 21.24 | "Anuradha" | "Mars" | "Saturn" | "Venus" | "Venus" |
| "XI" | 11 | "Scorpio" | 239.592 | "+29:35:31" | 29.592 | 21.427 | "Jyeshtha" | "Mars" | "Mercury" | "Saturn" | "Rahu" |
| "XII" | 12 | "Sagittarius" | 261.019 | "+21:01:08" | 21.019 | 27.577 | "PurvaAshadha" | "Jupiter" | "Venus" | "Jupiter" | "Venus" |
In [13]:
planets_significators_table = vhd.get_planet_wise_significators(planets_data, houses_data)
pl.DataFrame(planets_significators_table)Out [13]:
shape: (12, 5)
| Planet | A | B | C | D |
|---|---|---|---|---|
| str | i64 | i64 | list[i64] | list[i64] |
| "Sun" | 10 | 11 | [4, 5, 9] | [] |
| "Moon" | 10 | 7 | [4, 5, 9] | [7] |
| "Mercury" | 10 | 10 | [6, 8] | [6, 8] |
| "Venus" | 1 | 10 | [1] | [4, 5, 9] |
| "Mars" | 8 | 11 | [] | [3, 10, 11] |
| "Jupiter" | 8 | 2 | [] | [2, 12] |
| "Saturn" | 2 | 1 | [] | [1] |
| "Uranus" | 10 | 3 | [4, 5, 9] | [] |
| "Neptune" | 2 | 1 | [2, 12] | [] |
| "Pluto" | 11 | 12 | [] | [] |
| "Rahu" | 10 | 2 | [6, 8] | [] |
| "Ketu" | 11 | 8 | [3, 10, 11] | [] |
In [14]:
house_significators_table = vhd.get_house_wise_significators(planets_data, houses_data)
pl.DataFrame(house_significators_table)Out [14]:
shape: (12, 5)
| House | A | B | C | D |
|---|---|---|---|---|
| str | list[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" |
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'}}}In [17]:
planetary_aspects = vhd.get_planetary_aspects(chart)
pl.DataFrame(planetary_aspects)Out [17]:
shape: (88, 5)
| P1 | P2 | AspectType | AspectDeg | AspectOrb |
|---|---|---|---|---|
| str | str | str | i64 | f64 |
| "Sun" | "Moon" | "Trine" | 120 | 2.371 |
| "Sun" | "Mars" | "Conjunction" | 0 | 12.895 |
| "Sun" | "Jupiter" | "Trine" | 120 | 5.059 |
| "Sun" | "Venus" | "Semi Quintile" | 36 | 1.31 |
| "Sun" | "Saturn" | "Sextile" | 60 | 7.348 |
| "Sun" | "Uranus" | "Trine" | 120 | 8.727 |
| "Sun" | "Neptune" | "Sextile" | 60 | 14.441 |
| "Sun" | "Rahu" | "Square" | 90 | 10.201 |
| "Sun" | "Ketu" | "Square" | 90 | 10.201 |
| "Moon" | "Sun" | "Trine" | 120 | 2.371 |
| "Moon" | "Mercury" | "Square" | 90 | 9.189 |
| "Moon" | "Jupiter" | "Trine" | 120 | 7.43 |
| … | … | … | … | … |
| "Rahu" | "Sun" | "Square" | 90 | 10.201 |
| "Rahu" | "Moon" | "Bi Quintile" | 144 | 1.831 |
| "Rahu" | "Mars" | "Trine" | 120 | 6.903 |
| "Rahu" | "Mercury" | "Trine" | 120 | 1.358 |
| "Rahu" | "Venus" | "Sesqui Square" | 135 | 2.511 |
| "Rahu" | "Saturn" | "Semi Square" | 45 | 2.549 |
| "Ketu" | "Sun" | "Square" | 90 | 10.201 |
| "Ketu" | "Moon" | "Semi Quintile" | 36 | 1.831 |
| "Ketu" | "Mars" | "Sextile" | 60 | 6.903 |
| "Ketu" | "Mercury" | "Sextile" | 60 | 1.358 |
| "Ketu" | "Venus" | "Semi Square" | 45 | 2.511 |
| "Ketu" | "Saturn" | "Sesqui Square" | 135 | 2.549 |
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_dfOut [19]:
shape: (12, 6)
| Rasi | Object | isRetroGrade | LonDecDeg | SignLonDMS | SignLonDecDeg |
|---|---|---|---|---|---|
| str | list[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]}]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}