fix(ephemeris): include nutation in the sidereal frame

恒星黄道改为与 Swiss Ephemeris FLG_SIDEREAL 同一套含章动岁差。
产品默认路径不再用平岁差去减含章动的视位置。上升和宫头用同一个岁差。
校正身份升到 rectification-v5-matrix-scoring-12。
BUG-1275。未推送,未部署。v5 先验头名三格下降 1.3 个百分点,不调参。
This commit is contained in:
jesse-ux
2026-10-08 18:42:45 +08:00
parent 1a8c97f64a
commit e5f2a75183
37 changed files with 52297 additions and 113 deletions
+2 -2
View File
@@ -9,7 +9,7 @@ from __future__ import annotations
from typing import Any
from ayanamsa_utils import DEFAULT_AYANAMSA_NAME, apply_ayanamsa, current_ayanamsa_name
from ayanamsa_utils import DEFAULT_AYANAMSA_NAME, apply_ayanamsa, current_ayanamsa_name, sidereal_ayanamsa_degrees
from kp_system import KP_LORDS, get_kp_lords
from scripts.domain_calculation_service import swiss_ephemeris_lock
@@ -59,7 +59,7 @@ def observe_kp_cusps(jd: float | None, lat: float | None, lon: float | None) ->
try:
apply_ayanamsa("krishnamurti", swe)
cusps_raw, _ascmc = swe.houses(float(jd), float(lat), float(lon), b"P")
ayanamsa = float(swe.get_ayanamsa(float(jd)))
ayanamsa = sidereal_ayanamsa_degrees(float(jd), swe)
houses: dict[str, dict[str, Any]] = {}
indices: dict[str, int] = {}
for house in range(1, 13):
+1 -1
View File
@@ -21,7 +21,7 @@ from scripts.rectification.case_holdout import holdout_event_ids
# scoring-11 (2026-10-07, BUG-1260): D5/D11 sign mappings change education and
# finance varga points for the same input. Cached scoring-10 results must not
# be reused as current. Policy and the dated window contract stay as they are.
ALGORITHM_VERSION = "rectification-v5-matrix-scoring-11"
ALGORITHM_VERSION = "rectification-v5-matrix-scoring-12"
INPUT_CONTRACT_VERSION = "rectification-calculation-spec-v5"
PRECISION_WEIGHTS = {
"day": 1.0,