計算の精度
AstroWay API は Swiss Ephemeris(Astrodienst 公式の C コードで、30 年以上にわたりプロのアストロロジーで使用されている Solar Fire ($495)、Kepler ($995)、Astro Gold ($29.99/月)、Janus の基盤)を採用しています。これを WebAssembly にコンパイルし、REST API 層で提供しています。仲介業者のマージンはありません。各基本計算エンドポイントは regression snapshot テストでカバーされており、精度は triangulation(3 つの独立したソースと NASA 5-Millennium Eclipse Catalog による検証)で確認されています。
- 惑星位置:
< 0.1 秒角(swetest CGI Astrodienst 公式と比較) - Placidus ハウス・カスプ:
0.000"exact match - 日食:
< 1 分(NASA Eclipse Catalog と比較) - ACG ライン: 赤道上で
< 1.5 km(swetest と比較) - 日の出/日の入り:
< 10 秒(timeanddate.com と比較) - ムーン VOC、イングレス、惑星会合: 数秒単位の精度
| コンポーネント | 値 |
|---|---|
| ライブラリ | Swiss Ephemeris C code (aloistr/swisseph) |
| バージョン | upstream Astrodienst C code |
| バインディング | swisseph-wasm(Node.js 用 WebAssembly) |
| Ephemeris | DE431 JPL ephemeris(.se1 ファイル経由) |
| フォールバック | Moshier analytical(1800–2399 年外の日付用) |
| コード共有 | app.astroway.info と共有の @/core — エンジンは 1 つ、トランスポートは 2 つ |
精度は triangulation(3 つの独立したソースとの比較)で検証されます。
1. swetest CGI(リファレンス実装)
Section titled “1. swetest CGI(リファレンス実装)”Astrodienst 自身が提供する Swiss Ephemeris の公式リファレンス実装です。Astro.com を作成し、世界中の数百万人のアストロロジストにサービスを提供しています。最も権威ある公開ソースです。当社のエンジンは 同一(角度秒で 0.00–0.07 のドリフト)。
2. Kerykeion(Python)
Section titled “2. Kerykeion(Python)”Python ライブラリで、当社の WASM ではなく pyswisseph バインディングを使用しています。当社の WASM 層がデータを歪めていないことを確認します。
3. Prokerala API
Section titled “3. Prokerala API”リモート Swiss Ephemeris API(サイデリアン Lahiri)。8–17 秒角の系統的ドリフトは Lahiri ayanamsa の異なる計算式に起因し、エンジンの精度とは関係ありません。
Triangulation 結果
Section titled “Triangulation 結果”| チャート | swetest(Astrodienst)と比較 | Kerykeion(Python)と比較 | Prokerala API と比較 |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (systemic) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (systemic) |
| Einstein 1879 | 0.07” | Kerykeion の LMT アーティファクト | 14.96” (systemic) |
エンドポイントレベルの regression テスト
Section titled “エンドポイントレベルの regression テスト”各基本計算エンドポイントは、3 つのリファレンスチャート(Monroe / Diana / Einstein)に対して 818 個の snapshot テスト でカバーされています。
Snapshot-suite が検出するもの:
- 入力マッピングのバグ — 惑星 ID、UT、ハウスシステムの誤り
- 後処理 — 四捨五入、単位変換、符号の損失
- デフォルトの不一致 — mean vs true node、地心 vs 地上座標
- Schema drift — バリデーションで不正な形式が通過
- 古いデプロイ — prod dist がコードと一致しない
許容誤差: デフォルトで全ての数値フィールドに対し 5e-5°(≈0.18 秒角)。
詳細ベンチマーク
Section titled “詳細ベンチマーク”惑星位置(トロピカル、swetest と比較)
Section titled “惑星位置(トロピカル、swetest と比較)”| チャート | 日付 | 最大ドリフト |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
Placidus ハウス・カスプ(swetest と比較)
Section titled “Placidus ハウス・カスプ(swetest と比較)”| チャート | drift ASC | drift MC | 最大カスプドリフト |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
日食(NASA 5-Millennium Catalog と比較)
Section titled “日食(NASA 5-Millennium Catalog と比較)”| イベント | NASA 最大値 | 当社最大値 | ドリフト |
|---|---|---|---|
| 2025-03-14 皆既月食 | 06:58 UT | 06:58 UT | 0.8 分 |
| 2025-03-29 部分日食 | 10:47 UT | 10:47 UT | 0.5 分 |
| 2025-09-07 皆既月食 | 18:11 UT | 18:11 UT | 0.8 分 |
| 2025-09-21 部分日食 | 19:41 UT | 19:42 UT | 1.0 分 |
アストロカルトログラフィー(swetest の RA 式と比較)
Section titled “アストロカルトログラフィー(swetest の RA 式と比較)”全ての MC/IC/ASC/DSC ラインは正しい式 longitude = RA − GMST(Kenneth Bowser 標準)を使用しています。基準とのドリフト: 赤道上で全惑星に対し < 1.5 km。
日の出/日の入り(timeanddate.com と比較)
Section titled “日の出/日の入り(timeanddate.com と比較)”| 場所 | 日付 | パラメータ | ドリフト |
|---|---|---|---|
| London | 2026-04-15 | Sunrise | 0.6 秒 |
| London | 2026-04-15 | Sunset | 9 秒 |
極地(|緯度| > 66.5°)では自動的に polarState と、通常の planetary hours が定義されていないという警告を返します。
アスペクト・オービス
Section titled “アスペクト・オービス”AstroWay は 可変オービス(各惑星ごと、2 惑星の MIN ルール)を使用しています。ZET9 や astro.com と同様です。デフォルトのオービス(natal チャート用):
| アスペクト | Sun | Moon | Inner | Jupiter | Outer |
|---|---|---|---|---|---|
| 合 | 12° | 10° | 5° | 8° | 5° |
| 六合 | 6.5° | 6° | 5° | 5° | 5° |
| 四角 | 10° | 8° | 5° | 7° | 5° |
| 三合 | 12° | 8° | 5° | 5° | 5° |
| 衝 | 12° | 10° | 5° | 8° | 5° |
マイナーアスペクト(36°、40°、45°、72°、108°、135°、144°)は デフォルトで無効 です。ALL_ASPECTS で明示的に有効化します。
|緯度| > 66.5° の場合、Placidus / Koch / Regiomontanus は数学的に定義されません。この場合、Swiss Ephemeris は自動的に Porphyry を返し、当社 API は警告を追加します。
{ "system": "P", "warning": "緯度=68.96° (> 66.5°) のため Placidus システムは定義されません。Swiss Ephemeris は Porphyry を代用しました..."}Regression は 全ての PR に対し CI で検証 されます:
api-calc/tests/endpoints/— 818 個の snapshot(Monroe / Diana / Einstein + synastry / composite / davison).github/workflows/api-accuracy.yml— PR 時に自動実行- swetest CGI + Kerykeion との triangulation — 毎週実行
- Dependabot による upstream Swiss Ephemeris のモニタリング
- 日付範囲外(1800 年以前・2399 年以降):Moshier analytical を使用。精度は DE431 ファイルを使用した SWIEPH(< 0.01”)と比較して ~0.1”。
- True Lilith (id=13) vs Mean Lilith (id=12):最大 12° の差。デフォルトでは Mean Lilith(安定した動作)を使用。True Lilith は
planetIds: [13]で取得可能。 - 地上座標 vs 地心座標:デフォルトは地心座標。
- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- NASA Eclipse Catalog: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/
お問い合わせ
Section titled “お問い合わせ”精度に関する質問は、チャートデータと期待される基準(astro.com またはその他の権威あるソース)を添えて support@astroway.info までご連絡ください。