feat: 本地skill积累更新 - 引擎增强+婚姻时机验证v5/v6+K.N.Rao八参数法
- SKILL.md: 更新至v3.7.4,补充能力描述 - scripts/jyotish_engine.py: 大幅增强计算引擎(+725行) - scripts/event_prediction_model.py: 事件预测模型重构 - scripts/jaimini.py: Jaimini系统增强 - scripts/dasha_calculator.py: Dasha计算优化 - scripts/varga.py: 分盘计算更新 - jyotish-app/: 前端界面+过境分析功能增强 - references/: 新增3个婚姻时机研究文件 - verified-patterns-marriage-timing-v5.md - verified-patterns-marriage-timing-v6.md - rao-marriage-timing-8-parameters.md
This commit is contained in:
+14
-13
@@ -99,6 +99,8 @@ def calculate_bhukti(mahadasha_planet, years_into_mahadasha):
|
||||
"""
|
||||
Calculate current Bhukti (sub-period) within Mahadasha
|
||||
|
||||
Correct formula: Antar_Years = Mahadasha_Years × Antar_Planet_Years / 120
|
||||
|
||||
Args:
|
||||
mahadasha_planet: Current Mahadasha lord
|
||||
years_into_mahadasha: Years elapsed in current Mahadasha
|
||||
@@ -111,16 +113,18 @@ def calculate_bhukti(mahadasha_planet, years_into_mahadasha):
|
||||
|
||||
years_remaining = years_into_mahadasha
|
||||
|
||||
for planet, years in sequence:
|
||||
if years_remaining <= years:
|
||||
for planet, planet_full_years in sequence:
|
||||
# Scale Antar period to Mahadasha duration
|
||||
bhukti_years = mahadasha_total * planet_full_years / 120.0
|
||||
if years_remaining <= bhukti_years:
|
||||
return {
|
||||
'bhukti_lord': planet,
|
||||
'bhukti_years': years,
|
||||
'bhukti_years': bhukti_years,
|
||||
'years_into_bhukti': years_remaining,
|
||||
'years_remaining': years - years_remaining,
|
||||
'bhukti_percentage': (years_remaining / years) * 100
|
||||
'years_remaining': bhukti_years - years_remaining,
|
||||
'bhukti_percentage': (years_remaining / bhukti_years) * 100
|
||||
}
|
||||
years_remaining -= years
|
||||
years_remaining -= bhukti_years
|
||||
|
||||
return None
|
||||
|
||||
@@ -129,20 +133,17 @@ def calculate_pratyantar_dasha(mahadasha_planet, bhukti_planet, years_into_bhukt
|
||||
"""
|
||||
Calculate Pratyantar Dasha (sub-sub-period)
|
||||
|
||||
This is a more detailed calculation based on the ratio of the
|
||||
Mahadasha and Bhukti periods.
|
||||
Correct formula: PA_Years = Antar_Years × PA_Planet_Years / 120
|
||||
where Antar_Years = Maha_Years × Antar_Planet_Years / 120
|
||||
"""
|
||||
mahadasha_years = VIMSHOTTARI_PERIODS[mahadasha_planet]
|
||||
bhukti_years = VIMSHOTTARI_PERIODS[bhukti_planet]
|
||||
|
||||
# Pratyantar Dasha proportion = (Bhukti years / 120) * Mahadasha years
|
||||
pratyantar_proportion = (bhukti_years / 120) * mahadasha_years
|
||||
bhukti_years = mahadasha_years * VIMSHOTTARI_PERIODS[bhukti_planet] / 120.0
|
||||
|
||||
sequence = get_mahadasha_sequence(mahadasha_planet)
|
||||
|
||||
pratyantar_sequence = []
|
||||
for planet, _ in sequence:
|
||||
pratyantar_years = (VIMSHOTTARI_PERIODS[planet] / 120) * pratyantar_proportion
|
||||
pratyantar_years = bhukti_years * VIMSHOTTARI_PERIODS[planet] / 120.0
|
||||
pratyantar_sequence.append((planet, pratyantar_years))
|
||||
|
||||
return pratyantar_sequence
|
||||
|
||||
@@ -71,6 +71,18 @@ def varga_map(si, pi, div):
|
||||
|
||||
def calc_varga(lon, div):
|
||||
"""计算行星在指定分盘的位置(星座+精确度数+尊贵状态)"""
|
||||
# 2026-05-03修正:D9 Navamsa使用Harmonic(×9)法而非BPHS映射法
|
||||
# 原因:Harmonic法与主流Jyotish软件(Jagannatha Hora等)结果一致
|
||||
# 且在Einstein等名人案例中与人生事件吻合度更高
|
||||
# BPHS映射法(el={0:0,1:9,2:6,3:3})仍保留在varga_map中作为备选
|
||||
if div == 9:
|
||||
nav_lon = (lon * 9) % 360
|
||||
vsi = int(nav_lon / 30) % 12
|
||||
dp = nav_lon - vsi * 30
|
||||
pi = int(dp / (30.0/9)) # approximate pada from harmonic degree
|
||||
r = {'sign': _sn(vsi), 'sign_idx': vsi, 'degree_in_sign': round(dp, 4),
|
||||
'part_index': pi, 'lord': SIGN_LORDS.get(_sn(vsi), ''), 'pada': pi + 1}
|
||||
return r
|
||||
si=_si(lon); d=lon-si*30; ps=30.0/div; pi=int(d/ps); dp=d-pi*ps
|
||||
vsi=varga_map(si,pi,div)
|
||||
r={'sign':_sn(vsi),'sign_idx':vsi,'degree_in_sign':round(dp,4),
|
||||
|
||||
Reference in New Issue
Block a user