astronomia 本命星盘排盘
何时使用 / When to Use
- 用户要根据出生时间和出生地坐标生成西洋占星本命盘。
- 用户要计算上升点(ASC)、中天(MC)、宫位分布。
- 用户要查看行星黄经、落座(星座)与主要相位。
- 用户明确提到
astronomia,希望用可执行脚本完成排盘。
前置依赖 / Prerequisites
- 推荐运行环境:Node 24(可直接运行 TypeScript 源码)。
- 兼容方案:若 Node 版本较低,使用
tsx执行。 - 执行目录:在 skill 根目录(
SKILL.md所在目录)执行以下命令。 - 脚本按 TypeScript 源码直接运行,不需要预编译。
npm i
# 仅在需要兼容运行时安装
npm i -D tsx
脚本清单 / Script Index
scripts/buildNatalChart.ts:根据出生时间与经纬度生成本命盘(ASC/MC、整宫制宫位、行星位置、主要相位)。
脚本与参数 / Scripts & Parameters
scripts/buildNatalChart.ts
# 推荐方式
node scripts/buildNatalChart.ts --datetime <ISO8601-with-timezone> --lat <latitude> --lon <longitude> [--orb <deg>] [--format <markdown|json>]
# 兼容方式(fallback)
tsx scripts/buildNatalChart.ts --datetime <ISO8601-with-timezone> --lat <latitude> --lon <longitude> [--orb <deg>] [--format <markdown|json>]
参数定义 / Parameters:
--datetime(必填 / required)- 格式:必须包含时区的 ISO 8601,例如
1990-05-15T14:30:00+08:00或1990-05-15T06:30:00Z - 默认值:无
- 非法输入:缺失时报错
--datetime is required.;无时区时报错并退出
- 格式:必须包含时区的 ISO 8601,例如
--lat(必填 / required)- 格式:十进制度数
- 取值范围:
-90..90 - 默认值:无
- 非法输入:超范围或非数字时报错并退出
--lon(必填 / required)- 格式:十进制度数(东经为正,西经为负)
- 取值范围:
-180..180 - 默认值:无
- 非法输入:超范围或非数字时报错并退出
--orb(可选 / optional)- 含义:相位容许度(度)
- 取值范围:
0..12 - 默认值:
6 - 非法输入:超范围或非数字时报错并退出
--format(可选 / optional)- 取值范围:
markdown、json - 默认值:
markdown - 非法输入:非法枚举时报错并退出
- 取值范围:
输出说明 / Output:
markdown:输出可读排盘报告(ASC/MC、宫位、行星位置、主要相位)。json:输出结构化结果,适合二次处理。
示例 / Examples
# 最小可用示例(北京坐标)
node scripts/buildNatalChart.ts \
--datetime 1990-05-15T14:30:00+08:00 \
--lat 39.9042 \
--lon 116.4074
# 指定输出 JSON 与更小容许度
node scripts/buildNatalChart.ts \
--datetime 1990-05-15T14:30:00+08:00 \
--lat 39.9042 \
--lon 116.4074 \
--orb 4 \
--format json
注意事项 / Notes
- 所有命令必须在本 skill 根目录执行,不依赖仓库根目录路径。
- 时间参数必须带时区;不带时区会导致排盘结果偏差或脚本拒绝执行。
- 当前宫位制固定为
Whole Sign(整宫制);若要 Placidus/Koch 需扩展算法。 - 当前输出天体包含:太阳、月亮、水星、金星、火星、木星、土星、天王星、海王星。
- 本脚本负责排盘计算,不包含占星解释文案生成。