← 觀星台計算方法與精度

觀星台的排盤是怎麼算的

市面上多數免費排盤工具不說自己用什麼算。這一頁把觀星台的每一層都攤開:用了哪些引擎、哪份星曆、怎麼校正時間,以及每一項你可以怎麼自己核對。能核對,才談得上準。

一、各盤種用的計算引擎

盤種計算依據
紫微斗數開源程式 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 小時。如果按鐘錶時間直接排盤,時柱可能整個錯位。觀星台會自動識別並還原這段時期的標準時。

我怎麼驗證觀星台算得對不對?

每張盤都保留了計算引數:紫微保留經緯度、時區與真太陽時;六爻保留月建、日辰與旬空;奇門保留陰陽遁、局數與符頭;星盤保留宮制與星曆版本。拿這些引數去和任何其他軟體比對,引數一致則結果必然一致,不一致就能立刻定位到是哪一步的差異。