第三步:五行八卦上手——集成本地命理算法(八字排盘逻辑)
一、前置知识与环境准备 命理推演的本质是时间坐标的精密转换与关系建模,而非玄学黑箱。本方案严格遵循《渊海子平》《滴天髓》等经典框架,将八字四柱(年、月、日、时)视为一个可计算的时空坐标系——输入是用户提供的公历出生时间与地理经度(如 "1992-02-05 14:30:00", "116.4"),输出是结构化命理数据:四柱干支、十神关系、五行旺衰分值、先天八卦映射编号。整个流程完全离线运行,不依赖任何网络API,既保障用户隐私(出生信息永不离开本地),也支持无网环境下的学术复现与教学演示。 ⚠️ 关键边界声明: 输入:datetime 对象(已带 pytz 时区) + 精确到0.1°的东经度数(如北京116.4°E,上海121.5°E) 输出:JSON 可序列化字典,含 {'year': '壬申', 'month': '壬寅', 'day': '戊辰', 'hour': '己未', 'ten_gods': [...], 'element_strength': {'wood': 0.82, ...}, 'bagua_number': 6} 必需依赖与环境配置 我们禁用所有网络请求类库(如 requests, httpx),仅选用轻量、确定性高的科学计算基础包: # 推荐 Python 版本:3.9+(兼容 `zoneinfo` 且避免旧版 `pytz` 时区陷阱) python3.9 -m venv bazi-env source bazi-env/bin/activate # Linux/macOS # bazi-env\Scripts\activate # Windows pip install julian pytz numpy julian:提供高精度儒略日(JD)计算,误差 < 0.001秒,是节气时刻推算的基石 pytz:处理中国标准时间(CST, Asia/Shanghai)与真太阳时转换 numpy:用于五行旺衰的向量化加权计算(后续章节详述) 时区与真太阳时校正:为什么经度不可省略? 中国全境统一使用 Asia/Shanghai(UTC+8),但真太阳时(True Solar Time)取决于实际地理经度。北京时间以东经120°为基准,每偏离1°,时间差约4分钟。例如: ...