占星 — 全頻譜星盤解算引擎
從單一出生輸入計算四種系統:八字、西洋回歸黃道、吠陀恆星黃道與人類圖。
輸入(所有系統)
| 欄位 | 說明 |
|---|---|
year, month, day | 曆法日期,本地民用時間 |
hour, minute | 24 小時制本地民用時間 |
lat | 緯度,北半球為正 |
lon | 經度,東半球為正 |
tz_offset | UTC 時差(小時),例如泰國 +7 |
如果缺少日期、時間或地點的任何一項,請詢問使用者 — 不要自行猜測。時區/座標的精確度會直接影響上升星座、宮位、時柱與所有人類圖爻線。
兩種引擎 — 請擇一使用
1. Python — 具權威性(Swiss Ephemeris)
scripts/astrology.py 使用 pyswisseph 處理所有行星運算,是正確性來源。優先使用此引擎。
python scripts/astrology.py 1992 8 8 16 49 6.53995 101.29 7
# 參數:年 月 日 時 分 緯度 經度 時區
或透過環境變數傳遞 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/ 中。若要使用真正的 Swiss Ephemeris 檔案(而非 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
# 參數:年 月 日 時 分 緯度 經度 時區 [性別]
# 性別 (m/f) 為選填 — 用於確定大運順逆
它會自動載入同捆的 assets/*.se1 星曆檔。其解讀表格為泰文(ELEMENT_TH, DEITY_TH, NAKSHATRA_TH, TYPE_TH 等),可直接在原處擴充。此外,就八字而言,它還會計算:十二長生、18 神煞(文昌、太極貴人、桃花、驛馬、華蓋、干祿、紅艷煞等)、納音、空亡、日主強弱附喜用神/忌神、大運十年週期並標註十神與喜用神標記、流年年柱,以及一個最終的泰文綜合解讀(第五節),將八字、人類圖與西洋占星結合。神煞採用經典公式(部分流派可能有差異);其餘部分皆為標準計算。reading.py 會自行以正確的陰陽屬性(正 vs 偏)計算八字十神,因為 astrology.py 內建的表格會將所有與日主同五行之天干都標記為「比肩」。
輸出涵蓋:真太陽時 + 四柱 + 十神 + 五行數量;上升/中天、行星、Placidus 宮位、相位;吠陀星座/宿命/刻/九分盤;以及人類圖類型、策略、權威、定義、人生角色、輪迴交叉、變數、中心、通道與個性/設計的激活。
2. TypeScript — 免依賴、近似版本
scripts/astro.ts 以無依賴方式重新實作相同的四種系統,適用於沒有 Python/Swiss Ephemeris 的環境。使用 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°),Placidus 宮位制在緯度超過約 66° 時不可靠。若行星位於星座/宮位/閘門邊界附近,請如實告知,並以 Python 引擎驗證,切勿武斷判定。
解讀結果
這些腳本僅負責計算 — 它們輸出的是原始位置與分類。解讀/解釋是你的工作。在解釋每個系統之前,請先閱讀對應的參考檔案:
| 系統 | 參考檔案 | 閱讀其內容以了解 |
|---|---|---|
| 八字/四柱 | references/bazi.md | 日主、五行、十神、四柱含義 |
| 西洋占星 | references/western.md | 行星、星座、宮位、相位、四角 |
| 吠陀占星 | references/vedic.md | 星座、宿命、守護星、刻、九分盤、歲差 |
| 人類圖 | references/human-design.md | 類型、權威、定義、人生角色、中心、通道 |
僅載入使用者實際詢問之系統的相關參考檔案。當使用者要求完整解讀時,請執行引擎,然後針對每個要求的系統,使用其參考檔案進行解讀,並將輸出轉換為白話文(若使用者以泰文輸入,則使用泰文),而非直接唸出原始表格。
各系統注意事項:
- 八字 — 月柱在節氣變換(而非每月 1 日),因此接近節氣邊界的出生需要真太陽時。
- 西洋占星 — 根據引擎回報的容許度來加權相位。
- 吠陀占星 — 宿命主星與刻比星座對預測更重要。
- 人類圖 — 設計時間是透過出生前 88° 的太陽弧角找到的,並非精確的 88 天。
禁止事項
- 禁止自行編造行星位置、閘門數字或輪迴交叉名稱 — 務必執行引擎。
- 禁止將近似 TS 輸出當作星曆等級的數據呈現。
- 禁止假設時區;請根據出生地點與日期確認時區(夏令時間與歷史時區變更會影響結果)。