コンテンツにスキップ
AstroWay/api v2.158.7 · ja
すべてのシステムが正常です

計算精度

AstroWay APIはSwiss Ephemeris (astro.comの作成者であるAstrodienstの公式Cコード) を使用しています - プロの占星術師が30年以上にわたりSolar Fire ($495)、Kepler ($995)、Astro Gold ($29.99/月)、Janusで作業しているのと同じエンジンです。私たちはそれをWebAssemblyにコンパイルし、仲介手数料なしでREST APIレイヤーとして公開しました。各基本計算エンドポイントは回帰スナップショットテストでカバーされており、エンジンの精度は3つの独立したソースとのtriangulationNASA 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秒未満の精度

これらの数値は推定値ではなく、実行結果です。スクリプトは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つの独立したソースとの比較 - によって検証されます:

Astrodienst自身によるSwiss Ephemerisの公式リファレンス実装 - Astro.comを作成し、世界中の何百万もの占星術師にサービスを提供しているチームです。最も信頼できる公開ソースです。私たちのエンジンは同一です (0.00–0.07秒角のドリフト)。

独立したPythonライブラリは、私たちのWASMの代わりにpyswissephバインディングを使用しています。これは、私たちのWASMレイヤーがデータを歪めていないことを確認します。

リモートのSwiss Ephemeris API (恒星ラヒリ)。8〜17秒角のシステムドリフトは、Lahiri ayanamsaの異なるバージョンに関連しており、エンジンの精度とは関係ありません

チャートswetest (Astrodienst)との比較Kerykeion (Python)との比較Prokerala APIとの比較
モンロー 19260.00”0.19”16.95” (システム的な)
ダイアナ 19610.00”0.69”8.18” (システム的な)
アインシュタイン 18790.07”KerykeionのLMTアーティファクト14.96” (システム的な)

エンドポイントレベルでの回帰テストスイート

Section titled “エンドポイントレベルでの回帰テストスイート”

各基本計算エンドポイントは、3つの参照チャート (モンロー / ダイアナ / アインシュタイン) に対するフリーズされたスナップショットテストでカバーされています = 873個のスナップショット

スナップショットスイートが検出するもの:

  • 入力データマッピングのバグ - 誤った惑星ID、UT、ハウスシステム
  • 後処理 - 丸め、単位変換、符号の欠落
  • デフォルトの不一致 - 平均ノード vs 真のノード、地心 vs 地表
  • スキーマドリフト - 検証が誤った形式を許可した
  • 古いデプロイ - 本番環境のディストリビューションがコードと一致しない

許容誤差: すべての数値フィールドでデフォルトで5e-5° (≈0.18秒角)。

惑星の位置 (トロピカル、swetestとの比較)

Section titled “惑星の位置 (トロピカル、swetestとの比較)”
チャート日付最大ドリフト
マリリン・モンロー1926-06-010.00”
ダイアナ妃1961-07-010.00”
アルベルト・アインシュタイン1879-03-140.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 UT06:58 UT0.8 分
2025-03-29 部分日食10:47 UT10:47 UT0.5 分
2025-09-07 皆既月食18:11 UT18:11 UT0.8 分
2025-09-21 部分日食19:41 UT19:42 UT1.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と警告が自動的に返されます。

AstroWayは、ZET9やastro.comと同様に、惑星ごとの可変オーブ (2つの惑星の最小値ルール) を使用しています。デフォルトのオーブ (出生図の場合):

アスペクト太陽内惑星木星外惑星
12°10°
セクスタイル6.5°
スクエア10°
トライン12°
オポジション12°10°

マイナーアスペクト (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..."
}

回帰テストはCIを介してすべてのPRで検証されます:

  • api-calc/tests/endpoints/ - 参照チャート (モンロー / ダイアナ / アインシュタイン) + シナストリー / コンポジット / デイビソンに対する873個のスナップショット
  • .github/workflows/api-accuracy.yml - PRでの自動実行
  • swetest CGI + Kerykeionに対する三角測量 - 毎週
  • Dependabotを介したupstream Swiss Ephemerisの監視

エンジンの精度は信頼の半分です。もう半分は、エージェント (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に記述されているものは、ツールが返すものです。

  • 範囲外の日付 (1800年以前および2399年以降): Moshier解析が使用され、精度は〜0.1” (DE431ファイルを使用するSWIEPHでは< 0.01”)
  • 真のリリス (id=13) vs 平均リリス (id=12): 最大12°の差 - デフォルトでは平均リリス (安定した挙動)、真のリリスはplanetIds: [13]を介して利用可能
  • 地表中心 vs 地心: デフォルトは地心

精度に関する質問は、チャートデータと期待される基準 (astro.comまたはその他の信頼できるソース) を添えてsupport@astroway.infoまでご連絡ください。

参考になりましたか?
Запропонувати правку

最終更新日: