計算精度
AstroWay APIはSwiss Ephemeris (astro.comの作成者であるAstrodienstの公式Cコード) を使用しています - プロの占星術師が30年以上にわたりSolar Fire ($495)、Kepler ($995)、Astro Gold ($29.99/月)、Janusで作業しているのと同じエンジンです。私たちはそれをWebAssemblyにコンパイルし、仲介手数料なしでREST APIレイヤーとして公開しました。各基本計算エンドポイントは回帰スナップショットテストでカバーされており、エンジンの精度は3つの独立したソースとのtriangulationとNASA 5-Millennium Eclipse Catalogとの比較によって検証されています:
- 惑星の位置: 中央値
0.0013", 最大値0.561"vs Astrodienst公式swetest CGI (2026-07-29に130回の測定で計測)。各天体の内訳は下記 - プラシーダスハウスカスプ:
0.000"完全一致 - 食: NASA Eclipse Catalogと比較して
< 1分 - ACGライン: swetestと比較して赤道上で
< 1.5 km - 日の出/日の入り: timeanddate.comと比較して
< 10秒 - 月のボイド・オブ・コース、イングレス、惑星の合: 1秒未満の精度
方法論: 測定方法
Section titled “方法論: 測定方法”これらの数値は推定値ではなく、実行結果です。スクリプトは1900年から2050年までの10のチャートを取得し、Astrodienstのライブswetest CGIに同じ瞬間を問い合わせ、私たちが提供する13の天体すべてを比較します。合計130回の測定です。
| 天体 | 最大ドリフト |
|---|---|
| 太陽 | 0.001" |
| 金星 | 0.001" |
| 土星 | 0.001" |
| 水星 | 0.002" |
| 真のノード | 0.004" |
| 火星 | 0.007" |
| 木星 | 0.009" |
| 月 | 0.022" |
| 天王星 | 0.083" |
| 冥王星 | 0.097" |
| 海王星 | 0.223" |
| キロン | 0.561" |
| 平均遠地点 (リリス) | 0.000" |
全130回の測定の中央値: 0.0013".
以前、このページには「< 0.1 arcsec」という一般的な約束が記載されていました。2026-07-29の測定により、海王星、冥王星、キロンがこの約束を満たしていないことが示されたため、約束は実際の数値に置き換えられました。キロンと外惑星は、WASMアセンブリ内の圧縮されたエフェメリスセットから位置が取得されるため、より大きなドリフトを示します。
あなた自身で再現できます: api-calc/scripts/accuracy-vs-swetest.mjsは、まさにこれらのクエリを実行し、同じテーブルを出力します。
自分で確認してください。 上記の数値を測定したスクリプトは、MITライセンスの下で公開リポジトリにあります: astroway/astrology-accuracy-benchmark。これは私たちだけでなく、他のAPIにも対応しています。他のAPIへのアダプターは30行程度なので、同じ130回の測定を競合他社に対して実行し、比較することができます。サンドボックスキーで十分です。
| コンポーネント | 値 |
|---|---|
| ライブラリ | Swiss Ephemeris Cコード (aloistr/swisseph) |
| バージョン | upstream Astrodienst Cコード |
| バインディング | swisseph-wasm (Node.jsでのWebAssembly) |
| エフェメリス | DE431 JPLエフェメリス (.se1ファイル経由) |
| フォールバック | Moshier解析 (1800-2399年以外の日付用) |
| コード共有 | app.astroway.infoとの@/core共有 - 1つのエンジン、2つのトランスポート |
精度は三角測量 - 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 (恒星ラヒリ)。8〜17秒角のシステムドリフトは、Lahiri ayanamsaの異なるバージョンに関連しており、エンジンの精度とは関係ありません。
三角測量の結果
Section titled “三角測量の結果”| チャート | swetest (Astrodienst)との比較 | Kerykeion (Python)との比較 | Prokerala APIとの比較 |
|---|---|---|---|
| モンロー 1926 | 0.00” | 0.19” | 16.95” (システム的な) |
| ダイアナ 1961 | 0.00” | 0.69” | 8.18” (システム的な) |
| アインシュタイン 1879 | 0.07” | KerykeionのLMTアーティファクト | 14.96” (システム的な) |
エンドポイントレベルでの回帰テストスイート
Section titled “エンドポイントレベルでの回帰テストスイート”各基本計算エンドポイントは、3つの参照チャート (モンロー / ダイアナ / アインシュタイン) に対するフリーズされたスナップショットテストでカバーされています = 873個のスナップショット。
スナップショットスイートが検出するもの:
- 入力データマッピングのバグ - 誤った惑星ID、UT、ハウスシステム
- 後処理 - 丸め、単位変換、符号の欠落
- デフォルトの不一致 - 平均ノード vs 真のノード、地心 vs 地表
- スキーマドリフト - 検証が誤った形式を許可した
- 古いデプロイ - 本番環境のディストリビューションがコードと一致しない
許容誤差: すべての数値フィールドでデフォルトで5e-5° (≈0.18秒角)。
詳細なベンチマーク
Section titled “詳細なベンチマーク”惑星の位置 (トロピカル、swetestとの比較)
Section titled “惑星の位置 (トロピカル、swetestとの比較)”| チャート | 日付 | 最大ドリフト |
|---|---|---|
| マリリン・モンロー | 1926-06-01 | 0.00” |
| ダイアナ妃 | 1961-07-01 | 0.00” |
| アルベルト・アインシュタイン | 1879-03-14 | 0.07” |
プラシーダスハウスカスプ (swetestとの比較)
Section titled “プラシーダスハウスカスプ (swetestとの比較)”| チャート | ASCドリフト | MCドリフト | カスプの最大ドリフト |
|---|---|---|---|
| モンロー | 0.000” | 0.000” | 0.000” |
| ダイアナ | 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との比較)”| 場所 | 日付 | パラメータ | ドリフト |
|---|---|---|---|
| ロンドン | 2026-04-15 | 日の出 | 0.6 秒 |
| ロンドン | 2026-04-15 | 日の入り | 9 秒 |
極地 (|lat| > 66.5°) では、通常のプラネタリーアワーが定義されていないというpolarStateと警告が自動的に返されます。
アスペクトオーブ
Section titled “アスペクトオーブ”AstroWayは、ZET9やastro.comと同様に、惑星ごとの可変オーブ (2つの惑星の最小値ルール) を使用しています。デフォルトのオーブ (出生図の場合):
| アスペクト | 太陽 | 月 | 内惑星 | 木星 | 外惑星 |
|---|---|---|---|---|---|
| 合 | 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を介して明示的に有効にできます。
|lat| > 66.5°の場合、プラシーダス / コッホ / レギオモンタヌスシステムは数学的に定義されていません。このような場合、Swiss Ephemerisは自動的にポルフィリーを返し、私たちのAPIは警告を追加します:
{ "system": "P", "warning": "Система Placidus не визначена для lat=68.96° (> 66.5°). Swiss Ephemeris підставив Porphyry..."}継続的な検証
Section titled “継続的な検証”回帰テストはCIを介してすべてのPRで検証されます:
api-calc/tests/endpoints/- 参照チャート (モンロー / ダイアナ / アインシュタイン) + シナストリー / コンポジット / デイビソンに対する873個のスナップショット.github/workflows/api-accuracy.yml- PRでの自動実行- swetest CGI + Kerykeionに対する三角測量 - 毎週
- Dependabotを介したupstream Swiss Ephemerisの監視
MCPの信頼性 - 型付き出力
Section titled “MCPの信頼性 - 型付き出力”エンジンの精度は信頼の半分です。もう半分は、エージェント (Claude、ChatGPT、Cursor) が検証できる出力契約です。私たちのMCPサーバーは「生テキスト、自分で解釈してください」とは返しません:
- 型付き
structuredContent。 600以上のMCPツールがあり、その圧倒的多数が厳格なoutputSchemaを公開しています - MCPクライアントは、ランダムに解析する必要がある文字列ではなく、検証済みの構造を受け取ります。 - スキーマドリフトからの保護。 CIテスト
openapi-example-driftは、各回帰スナップショットをその例から導出されたスキーマに対して検証します。エンドポイントの実際の出力が公開されたスキーマと異なる場合、ビルドは失敗します。この種の不一致がMCPエラー-32602 Output validation errorを引き起こします。 - エラーはエラーです。 ツールの失敗は常に
isErrorフラグと型付きコード (UPPER_SNAKE) とともに返されます。私たちはモデルに生のスタックトレースや内部サーバーパスを「データ」として決して提供しません。
つまり、MCPを介した統合は、直接のREST呼び出しと同じくらい予測可能です: /openapi.jsonに記述されているものは、ツールが返すものです。
既知の制限事項
Section titled “既知の制限事項”- 範囲外の日付 (1800年以前および2399年以降): Moshier解析が使用され、精度は〜0.1” (DE431ファイルを使用するSWIEPHでは< 0.01”)
- 真のリリス (id=13) vs 平均リリス (id=12): 最大12°の差 - デフォルトでは平均リリス (安定した挙動)、真のリリスは
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までご連絡ください。