渾儀ARMILLARY

功能 · FEATURES

每一個數字,
都說得出它從哪裡來。

界表有書名與頁碼,時區資料庫有版本號,出生時刻不確定就標成不確定。不解讀,不預測,只計算。

底下每一組數字都是真的輸出——同一張示範盤,1990-05-15 14:30 臺北,直接由本站引擎算出。你可以自己重算一次來對。

排一張盤 →

01 古典方法

「界」不只有一張表。
我們四張都給,一張都不預設。

這張盤的月亮在摩羯 24°20′。
它的界主是誰,取決於你用誰的表。

埃及界土星Tetrabiblos I.20
Robbins, Loeb 1940, pp. 91–97
迦勒底界火星依 Tetrabiblos I.21 的規則生成
依日夜盤切換土/水次序
Ptolemy 界土星Robbins, Loeb 1940 印本完整界表
pp. 103–107,作者歸屬有學界爭議
Lilly 1647火星Christian Astrology, p. 104
初版掃描轉錄

這不是誤差,是四套具名表本來就不一致。多數軟體給你一個「界」欄位卻不說那是誰的界——於是你永遠不知道自己在用誰的說法。

四套表的規則識別碼、出處與「為什麼不設預設」,見〈方法〉。

七顆星的完整對照
天體位置埃及界迦勒底界Ptolemy 界Lilly 1647幾種答案
太陽金牛 24°10′30″土星火星火星土星2
月亮摩羯 24°20′12″土星火星土星火星2
水星金牛 8°02′31″水星土星水星水星2
金星牡羊 12°33′25″水星金星金星金星2
火星雙魚 18°09′49″水星金星水星水星2
木星巨蟹 9°29′54″金星木星木星木星2
土星摩羯 25°15′12″土星火星火星土星2

七顆星,七顆的界主都會換。面/旬(兩套)與三分性(三套)比照辦理。

邊界:不打分、不加總、不解讀。把廟、旺、三分性、界、面這些不同類別的尊貴折成同一個數字,等於宣稱它們可以通約——我們不做這個宣稱。陷、弱、外來、接納(含互容)、almuten 尚未裁決,不提供。

02 精準度

精準不是形容詞。
是一組可以查的版本號。

每一次計算都回報三個獨立的版本號——而且主動告訴你其中一個不歸我們管。

pyswisseph 套件2.10.3.2pip 安裝的 Python 套件
Swiss Ephemeris C 函式庫2.10.03函式庫自報版本
內建星曆檔另見檔頭:based on JPL DE441(2026-05-26 建立)
IANA 時區資料庫2026c由作業系統或 image 提供
不由本產品固定

前兩個數字格式相近,但不是同一個值——我們把這句話寫進每一份卷宗,因為搞混了會誤導。第三個更重要:時區資料庫更新後,同一組輸入可能換算出不同的 UTC。所以它的版本也印在你的卷宗裡。1970 年前、特別是標為地方平時(LMT)的時段,資料庫自承多為推定,我們不把它當成已驗證的歷史鐘面。

已經對過外部基準的部分

  • 月相四相(朔、上弦、望、下弦)的事件時刻,已與 USNO Astronomical Applications API v4.0.1 的一分鐘精度資料交叉核對。
  • 臺北固定案例的太陽與月亮升起、過中天、落下,已與 USNO 單日表交叉核對;USNO 只顯示到分鐘,自動測試因此容許 2 分鐘誤差。
  • 黃赤交角逐次計算,取平交角加章動,不是寫死的常數——這張盤是 23°26′31.79″,平值 23°26′25.92″ 加章動 +5.870″。
  • 真高度與視高度分成兩欄;視高度另附折射模型與當時採用的氣壓、溫度假設,不會被合稱為「高度」。

邊界:下中天與極區狀態目前只有內部回歸測試,尚無第二套外部參照。真位置、J2000 與關閉章動三種模式在外部參考管線(JPL DE442+Astropy/ERFA;與產品共享 JPL/IAU 譜系,不稱完全獨立)的涵蓋範圍之外。「可執行」不等於「已獨立驗證」,兩者在〈驗證證據〉頁逐項分開列出。

03 出生時刻

只記得大約幾點?
那就別假裝知道。

這張盤如果只知道「下午兩點多」——
七顆星的落宮會在同一個時刻附近一起換宮。我們把那個時刻夾在 15 秒以內的區間裡。

14:22:58 – 14:23:12翻面就發生在這 14 秒之間
7顆星的落宮同時改變
13.62°上升點在這一小時內取樣到的範圍

做法是對整個小時取樣五個時刻,再用有界二分法把分類改變的位置夾出來:

14:00:00處女 24°46′40.7″
14:15:00處女 28°11′04.4″
14:30:00天秤 1°35′32.3″
14:45:00天秤 4°59′56.5″
14:59:59天秤 8°23′55.8″

月亮在每個取樣點都在摩羯,標為「各取樣點分類相同」——這不排除兩個取樣點之間變了又變回。求根方法字串 bounded_bisection_of_a_sampled_classification_change 也印在卷宗裡。

只知道日期呢?那就不給你上升點、中天、宮位與日夜盤——沒有時刻,那些東西不存在。我們改給你全日的位置範圍,並標出月亮可能跨星座。

邊界:取樣加有界二分,不是對整個連續小時的數學證明。各取樣點都相同只能說「各取樣點分類相同」,不能說結果穩定。恆星與反照點在此模式下不做區間重算,未重算的路徑會逐項列出;月相、日月食與升降則另以三個代表性取樣並列(見方法頁 §07.7)。

04 口徑

兩個網站算出不同的上升星座。
通常兩邊都沒錯。

同一個時間、同一個地點。換一把尺,上升星座整個退一格。

回歸黃道 · 春分點為原點天秤 1°35′32″黃經 181.591957°
恆星黃道 · Fagan–Bradley處女 6°58′59″黃經 156.982954°

兩者相差 24°36′32″,就是這套歲差修正值。你可以自己把兩個黃經相減來核對。

可以換的口徑:黃道系統(回歸/四種恆星)、宮位制(整宮/Alcabitius/Regiomontanus/Placidus/不算宮位)、月亮位置(跟隨全域或單獨改用出生地站心)。換一項,哪些數字會動、動多少,當場看得見。

邊界:計算中心、位置模式與黃道框架目前固定為地心、視位置、當日框架,介面不提供切換;三者仍逐次印在卷宗裡。對帳需要知道「這次用了什麼」,那和「你可以改成什麼」是兩件事。

05 座標

一次計算,
三套座標一起輸出。

多數占星軟體只給黃經。赤道與地平座標可以直接拿去對天文軟體。

黃道 — 它在十二宮的哪裡λ 54°10′30.48″β −0°00′00.10″
赤道 — 它在天球的哪裡α 03h27m12.82sδ +18°49′03.80″
地平 — 此時此地往哪看Az 268.582°真高 52.553°/視高 52.566°

同一顆太陽,同一個時刻。這條驗證管道是刻意留的。

涵蓋七政、三王星、凱龍星、平均與密切交點(含南交點)、Lilith 與 Priapus,以及 34 顆恆星。相位分兩層輸出:整宮配置層(純算術)與逐度層(角距離、距精確相位差、入相位方向)。四套相位集合(預設合相+四種傳統相位)、兩套具名容許度表(預設 Lilly 1647),都可切換,每一次的預設值都印在卷宗裡。

邊界:恆星只輸出座標與星等,不判定合相——那要先選定幾何(黃道合相、與角點同升或中天、地平事件),再定容許度與歲差政策,這些都還沒裁決。行運、推運、太陽回歸盤(solar return)、合盤目前一項都沒有。

06 出處

算完之後,
這份結果還要能被查。

每次計算都能取得一份卷宗:逐步軌跡、完整口徑、所有版本號,以及一組 SHA-256 收據。完整卷宗在「技術細節與驗算資料」與「運算結果+驗算資料」匯出裡;預設的結果頁只取它需要的部分。

步算什麼得到怎麼來的
002儒略日 JD(UT)2448026.7708342UTC → JD
004真黃赤交角 ε23°26′31.79″平交角 + 章動 Δε +5.870″
005地方真恆星時 LAST6.1171350 hGAST + 東經 ÷ 15

步數隨啟用的模組而變,實際步數印在該次卷宗裡。整份可複製、可下載、可離線核對。

三年後你翻出一份舊卷宗,可以照著軌跡用同一個星曆函式庫重算核對;另一個人拿著它可以重建等價請求。這是可重現性,不是截圖。

四種匯出:JSON(完整結構)、Markdown(可讀卷宗,也適合餵給 AI)、CSV(表格核對)、純文字。預設的「運算結果」模式含天體、座標、宮位、相位與所選計算,不另列出生地座標,但星盤數值本身可推回大致地點;要把軌跡、版本與收據一起帶走,選「運算結果+驗算資料」。結果頁另有列印版面,直接列印或存成 PDF 時隱藏表單與控制項、展開所有摺疊區塊並印出結果;已打開「技術細節與驗算資料」取得驗算資料時,收據與驗算資料也一併印出。畫面與匯出讀同一份資料,不從畫面反推。

邊界:收據裡的 SHA-256 只對計算軌跡(calculation_trace)這一段計算,沒有金鑰,任何人改了內容都能重算一個新的:它只能偵測意外損壞,不證明來源,也不證明沒被刻意修改。它不涵蓋位置、方法結果、版本欄位與匯出檔的其他部分,也不是「這個占星方法是對的」。各項方法採取什麼做法、依據什麼,在〈方法〉逐項說明。

07 隱私

不留你的資料。
因為沒有地方可以留。

這不是一個可以關掉的設定,是應用程式的形狀。
下面每一個 0,你打開瀏覽器的開發者工具就能自己數。

Cookie
0
網站放在你瀏覽器、每次連線自動送回去的小紙條。跨站追蹤最常用的就是它。
localStorage
0
存在瀏覽器裡、不會自己過期的資料。關掉分頁、重開電腦都還在,可以拿來長期認出同一個人。
sessionStorage
0
同樣存在瀏覽器裡,但只活到你關掉這個分頁。常被用來在頁面之間傳遞你剛填過的東西。
IndexedDB
0
瀏覽器內建的資料庫,能存大量結構化資料——整張命盤放進去綽綽有餘,而且你不會察覺。
Service Worker
0
常駐在背景的腳本。就算你已經離開這個網站,它仍可能繼續執行、快取內容或送出請求。
第三方主機
0
整個計算頁載入的每一個檔案都來自本站——沒有外部字型、沒有 CDN、沒有分析腳本。任何一個外部請求都會把你的 IP 交給別人。

另外沒有的:帳號、email、帳號密碼——公開測試(Public Alpha)階段連存取憑證也沒有,任何人都可以直接使用。沒有帳號資料庫、沒有命盤資料庫、沒有請求快取、沒有背景佇列。

  • 預設計算請求期間,若有 Python 程式碼以寫入模式開檔,測試會直接失敗——這是機制,不是承諾;原生函式庫不在涵蓋範圍內。
  • 地名搜尋讀內建的離線資料庫,不呼叫第三方地理服務、不使用瀏覽器定位、不看你的 IP。
  • 匯出檔名固定為 classical-astrology-export.{json,md,csv,txt},不嵌入出生日期、時間、姓名或座標。
  • 「清除本頁敏感資料」會清空表單、結果、錯誤與網址列的 query 與 fragment,並使已發出的複製/下載 handler 立即失效。

邊界:此為目前公開測試階段的架構陳述,不是對未來所有階段的無限期承諾。你按下下載之後,檔案就在你的裝置上,我們無法撤回;貼進剪貼簿的內容同理。這說的是沒有主動寫入,不是安全抹除——我們不宣稱能從記憶體、swap 或當機傾印中抹除任何東西。完整資料流見〈信任中心〉。

08 資安

資安跟隱私是兩件事。
隱私是我們不拿;資安是別人也拿不到。

瀏覽器收到的每一個安全標頭都是可以當場查的。
把開發者工具切到 Network,點任一個回應,就在 Headers 裡。

標頭設定值擋掉什麼
Content-Security-Policyscript-src 'self'腳本只能由本站載入,並拒絕 inline 與 eval 型執行,降低常見注入的可利用面——這不是「不存在 XSS」的證明
frame-ancestors 'none'不准任何網站把本站嵌進 iframe(點擊劫持)
object-src 'none'不載入外掛物件
base-uri 'none'不准竄改相對路徑的基準位址
form-action 'self'表單只能送回本站,不能被改成送去別處
Permissions-Policygeolocation=()叫瀏覽器直接拒絕定位——就算我們自己的程式想問也問不到
camera=(), microphone=()同上,相機與麥克風一律關閉
Referrer-Policyno-referrer你從本站點出去時,對方拿不到你來自哪一頁
Cross-Origin-Opener-Policysame-origin切斷與其他分頁的視窗參照
X-Content-Type-Optionsnosniff不讓瀏覽器自行猜測檔案型別
Strict-Transport-Securitymax-age=31536000一年內只准用 HTTPS 連本站

寫進程式裡的其他限制

  • 試算表公式注入防護:CSV 匯出時,凡是以 = + - @ 開頭(前面的空白、控制字元與零寬字元不算數),而又不是十進位/科學記號數字、也不是完整的量測字面(單一數值加 °′″、%、℃ 或 h 單位)的欄位,會被前置單引號。否則有人把公式塞進地名,你一開檔它就在你的電腦上執行。合法的 -2.5、1e-6、-23°03′30″ 不受影響;-1+1% 這種帶運算子的仍會被前置。
  • 請求上限:單次計算請求最大 16 KB,每個工作行程最多 32 個併發連線、其中計算類最多 4 個。超過就拒絕,不是排隊到資源耗盡。
  • 失敗優先:算不出來就明白說算不出來。Placidus 在極區帶整帶拒絕;其他宮位制算不出合法宮頭時回錯誤並說明原因,不會偷偷換一個宮位制給你一個看起來正常的答案。
  • 供應鏈:沒有前端建置鏈、沒有 npm 執行期相依、沒有外部字型。你看到的每一個檔案都在公開原始碼裡,可以逐字比對。

邊界(這一段很重要):我們沒有第三方安全認證,沒有專業滲透測試,也沒有漏洞獎金計畫。有的是寫進程式並由失敗優先測試守著的限制、多輪具名外部技術審查與多工具對抗測試,以及一份誠實的「我們控制不了什麼」清單。這些都不等於專業滲透測試。完整的邊界、資料流與已知限制列在〈安全〉,那一頁是專門寫這件事的。

09 讀者

這個工具給誰用。

會問「你這個上升點是用什麼算的」的人

進階學習者與實務占星師。已經會排盤,在意臨界度數、宮頭、恆星與方法輸入值,現在得在兩三個工具之間手動核對。

要向學生或讀者交代設定的人

教師、作者、研究者。需要固定設定重現案例,需要可附錄的資料,需要一份說得出出處的講義素材。

不想讓 AI 自己猜天文數值的人

技術型使用者與 AI 工作流使用者。要 schema 穩定的 JSON、可讀的 Markdown,以及一份能重跑的請求。

目前不適合

剛開始學占星、想知道「我是什麼樣的人」的讀者。這裡不會告訴你任何一個數字代表什麼意思——那不在能力範圍內,也不會為了好賣而假裝在。

10 規格

可查證的數字。

計算引擎Swiss Ephemeris 2.10.03(套件與 C 函式庫版本分開輸出)
內建星曆基於 JPL DE441
可計算年份1900–2399
天體與點古典七政 · 三王星 · 凱龍星 · 平均/密切交點與南交點 · Lilith 與 Priapus · 恆星 34 顆
宮位制4 種,另可完全不計算宮位
界、面/旬、三分性4 套/2 套/3 套,全部具名到作品與章節、行號或頁碼,全部無預設
相位整宮層 + 逐度層;4 套相位集合、2 套具名容許度表、3 種同度判準
進階選項33 項,分八組,全部可個別開關並回顯於卷宗
出生時刻精度3 種:精確到分鐘 · 只知道小時 · 只知道日期
座標系黃道、赤道、地平並列;真高度與視高度分欄
匯出JSON · Markdown · CSV · 純文字,另有列印版面
授權GNU AGPL v3,原始碼公開
費用目前全部免費,包含上面每一項

速度:開發機上量到預設請求 20–40 毫秒、全部模組開啟約 130 毫秒。這是本機量測值,隨主機、網路與所選模組而變,不是線上服務的效能承諾。

不用註冊。不用 email。
填四個欄位就能算。

上面每一個數字,你都可以自己重算一次來對。

開始計算 →