← 观星台计算方法与精度

观星台的排盘是怎么算的

市面上多数免费排盘工具不说自己用什么算。这一页把观星台的每一层都摊开:用了哪些引擎、哪份星历、怎么校正时间,以及每一项你可以怎么自己核对。能核对,才谈得上准。

一、各盘种用的计算引擎

盘种计算依据
紫微斗数开源程序 iztro 2.5.8(MIT 许可证)确定性计算
八字按节气定月柱、真太阳时定时柱,MIT 许可证引擎
六爻按起卦当地时刻换算干支,MIT 许可证引擎
奇门遁甲按节气与符头定局,MIT 许可证引擎
西洋占星本命盘Skyfield 1.55(MIT 许可证)
星盘行运Skyfield 1.55 + NASA JPL DE440s 星历

「确定性计算」的意思是:同样的输入必然得到同样的输出。盘面上没有任何一处是随机生成或人工微调的。这一点可以验证 —— 同一组出生数据重复提交,结果必须逐字一致。

二、星历:NASA JPL DE440s

西洋占星和行运计算的底层数据,是 NASA 喷气推进实验室(JPL)发布的 DE440s 行星历表。

项目说明
发布方NASA 喷气推进实验室(JPL)
版本DE440s
文件大小约 31 MB,常驻内存加载 1 次
版权状态美国政府作品,公有领域
计算库Skyfield 1.55,MIT 许可证

这是天文学界用于实际轨道计算的同一份数据,不是简化星表。行运接口的返回结果里带有 ephemeris 字段,值为 DE440s,可以直接核对。

为什么不用 Swiss Ephemeris

很多占星软件用的是 Swiss Ephemeris(或其 Python 绑定 pyswisseph)。观星台明确不用它,原因不是精度,是许可证:

Swiss Ephemeris 采用 AGPL-3.0。这个许可证有一条"网络条款"——只要以网络服务的形式提供,就必须开源整个后端。对一个要长期维护、可能商用的站点来说,这是不可接受的约束。

Skyfield(MIT)+ NASA JPL 星历(公有领域)在精度上属于同一量级,且没有这层约束。这是一个写在代码注释里的明确工程决定,不是能力不足的妥协。

三、时间校正:两个最容易出错的地方

排盘算错,十次有九次错在时间,不在算法。观星台处理了这 2 个最常见的坑:

真太阳时

换算依据数值
地球自转一周360 度 / 24 小时
每 1 度经度约 4 分钟时差
每 15 度经度1 小时时差

中国全境统一使用东八区时间,但实际跨越了 60 多度经度。以北京时间为准的钟表时刻,和出生地的真实太阳时刻可能相差超过 1 小时——这足以让时柱整个错位。观星台按出生地经度换算真太阳时,并把经纬度、时区、校正后的时刻都保留在盘面上。

1986–1991 年的夏令时

中国大陆在 1986 至 1991 年共 6 年实行过夏令时,夏季钟表被拨快 1 小时。这 6 年夏季出生的人,如果按出生证明上的钟表时间直接排盘,时柱有很大概率是错的。

这一条是检验排盘工具是否认真的最快方法:拿一个 1988 年 7 月出生的时间去试。不处理夏令时的工具,排出来的时柱会和处理了的差 1 个时辰。

四、你可以怎么核对

观星台不要求你相信它算得对,而是把可核对的参数全部留在盘面上。不同盘种要核对的项目不同:

盘种核对这几项
紫微斗数经纬度、时区、真太阳时时刻
八字节气交接时刻、真太阳时、早晚子时处理方式
六爻月建、日辰、旬空
奇门遁甲阴遁阳遁、局数、符头、值符值使
西洋占星宫制、星历版本、容许度设置

核对逻辑很简单:这些参数一致,结果必然一致。如果两个软件排出来不一样,一定能在上表里定位到是哪一项有分歧——是精度问题(时间没校正),还是流派问题(宫制、安星法不同)。前者是错,后者不是。

五、我们不做什么

把边界说清楚,比把能力说满更重要:

去排一张盘,看看参数长什么样 →免费。紫微、八字、六爻、奇门、西洋占星,全部保留计算参数。

常见问题

观星台的星盘用的是哪份星历?

NASA 喷气推进实验室发布的 DE440s 星历,文件约 31MB,属于美国政府作品、公有领域。计算库是 Skyfield 1.55(MIT 许可证)。行运接口会在返回结果中标注 ephemeris 为 DE440s,可直接核对。

为什么不用 Swiss Ephemeris?

Swiss Ephemeris 及其 Python 绑定 pyswisseph 采用 AGPL-3.0 许可证,网络服务使用它需要开源整个后端。观星台选择 Skyfield(MIT)配 NASA JPL 星历(公有领域),在精度同级的前提下避免许可证风险。这是一个明确的工程决定,不是能力限制。

真太阳时是怎么校正的?

地球自转 360 度需 24 小时,即每 1 度经度约合 4 分钟时差。观星台按出生地经度换算真太阳时,并在盘面保留经纬度、时区与校正后的时刻,可与其他软件逐项核对。

1986 到 1991 年出生的人需要注意什么?

中国大陆在 1986 至 1991 年实行过夏令时,这 6 年的夏季钟表被拨快 1 小时。如果按钟表时间直接排盘,时柱可能整个错位。观星台会自动识别并还原这段时期的标准时。

我怎么验证观星台算得对不对?

每张盘都保留了计算参数:紫微保留经纬度、时区与真太阳时;六爻保留月建、日辰与旬空;奇门保留阴阳遁、局数与符头;星盘保留宫制与星历版本。拿这些参数去和任何其他软件比对,参数一致则结果必然一致,不一致就能立刻定位到是哪一步的差异。