占星学 — 全光谱星盘引擎
通过一个出生信息计算四种系统:八字、西方回归黄道、吠陀恒星黄道和人类图。
输入(所有系统)
| 字段 | 说明 |
|---|---|
year, month, day | 日历日期,本地民用时间 |
hour, minute | 24小时制本地民用时间 |
lat | 纬度,北为正 |
lon | 经度,东为正 |
tz_offset | UTC偏移量(小时),例如泰国 +7 |
如果日期、时间或地点中任何一项缺失,请询问用户——不要猜测。时区/坐标的准确性会直接影响上升点、宫位分界、时柱及所有人类图爻线。
两个引擎 — 选择其一
1. Python — 权威版(瑞士星历表)
scripts/astrology.py 使用 pyswisseph 进行所有行星计算,是数据源之真。首选此引擎。
python scripts/astrology.py 1992 8 8 16 49 6.53995 101.29 7
# 参数:年 月 日 时 分 纬度 经度 tz_offset
或者通过环境变量传递JSON(适合编程调用):
WOR_INPUT='{"year":1992,"month":8,"day":8,"hour":16,"minute":49,"lat":6.53995,"lon":101.29,"tz_offset":7}' python scripts/astrology.py
不带参数和环境变量时,运行内置的默认星盘。
星历表文件: 脚本会在 scripts/ 目录的相对路径 ../data 中查找 .se1 数据,然后回退到 data/ephe。本仓库将其存储在 assets/ 中。要使用真实的瑞士星历表文件(而非Moshier回退),可以直接调用函数并传递路径:
from astrology import run_full_astronomical_profile
run_full_astronomical_profile(1992, 8, 8, 16, 49, 6.53995, 101.29, 7,
ephe_path="assets")
若缺少依赖,请安装:pip install pyswisseph。
1b. Python — 泰语解读(解释层)
scripts/reading.py 导入上述引擎,并将原始输出转换为覆盖所有四种系统的纯文本泰语解读。当用户希望获得实际解读(คำอ่าน/คำทำนาย)而非原始数据时使用。
python scripts/reading.py 1992 8 8 16 49 6.53995 101.29 7 m
# 参数:年 月 日 时 分 纬度 经度 tz_offset [性别]
# 性别(m/f)可选 — 大运方向需要
它会自动加载捆绑的 assets/*.se1 星历表文件。其解读表为泰语(如 ELEMENT_TH、DEITY_TH、NAKSHATRA_TH、TYPE_TH 等),可直接扩展。对于八字,它还计算:十二长生、18神煞星(文昌、太极贵人、桃花、驿马、华盖、干禄、红艳煞等)、纳音、空亡、日主强弱及喜用神/忌神、大运十年周期(标注十神和喜用神标记)、流年年柱,以及最终的泰语总结解读(第5部分),将八字、人类图和西方系统整合在一起。神煞使用经典公式(某些流派可能有差异);其余部分精确无误。reading.py 自行计算八字十神并正确区分正偏(直接与间接),因为 astrology.py 内置表将所有同五行干支均标记为“日主”。
输出内容涵盖:真太阳时 + 四柱 + 十神 + 五行计数;上升/天顶、行星、普拉西度宫位、相位;吠陀星座/纳克沙特拉/细分/纳瓦姆沙;以及人类图类型、策略、权威、定义、轮廓、轮回交叉、变量、中心、通道及个性/设计激活。
2. TypeScript — 零依赖,近似版
scripts/astro.ts 重新实现了相同的四个系统,无任何依赖,适用于没有Python/瑞士星历表的环境。使用 npx tsx scripts/astro.ts 运行——但请注意它仅导出函数,没有CLI运行器。 可编写一个小的驱动程序导入它:
import { computeChart } from './astro';
const chart = computeChart({
year: 1992,
month: 8,
day: 8,
hour: 16,
minute: 49,
utcOffsetHours: 7,
latitude: 6.53995,
longitude: 101.29
});
console.log(chart);
将TS输出视为仅限星座/闸门级别。精度说明在 astro.ts 顶部有文档说明:太阳约±0.01°,月亮约±0.1–0.3°,行星使用开普勒轨道(无摄动,外行星可达约±1°),纬度高于约66°时普拉西度宫位不可靠。如果某颗行星接近星座/宫位/闸门边界,请说明情况并使用Python引擎验证,而非直接断言。
解读结果
脚本仅进行计算——输出原始位置和分类。解读工作由您完成。在解读每个系统之前,请阅读相应的参考文件:
| 系统 | 参考文件 | 阅读目的 |
|---|---|---|
| 八字 / 四柱 | references/bazi.md | 日主、五行、十神、干支含义 |
| 西方 | references/western.md | 行星、星座、宫位、相位、角度 |
| 吠陀 | references/vedic.md | Rashi、纳克沙特拉、主星、Pada、Navamsha、岁差 |
| 人类图 | references/human-design.md | 类型、权威、定义、轮廓、中心、通道 |
仅加载用户实际询问的系统的参考文件。当用户要求完整解读时,运行引擎,然后针对每个请求的系统,使用其参考文件将输出转化为通俗语言(如果用户使用泰语书写,则用泰语),而不是复述原始表格。
各系统注意事项:
- 八字 — 月柱在节气时变化(而非每月1日),因此出生时间接近节气边界时需要真太阳时。
- 西方 — 根据引擎报告的容许度加权相位。
- 吠陀 — 纳克沙特拉主星和Pada比星座本身对预测更重要。
- 人类图 — 设计时间戳由出生前88°太阳弧确定,并非精确的88天。
禁止行为
- 禁止凭空编实行星位置、闸门编号或轮回交叉名称——始终运行引擎。
- 禁止将近似的TS输出呈现为星历表级别。
- 禁止假定时区;需根据出生地点和日期确认时区(夏令时和历史偏移会改变结果)。