Kshana · क्षण · 精密な一瞬
PNT(測位・航法・時刻)レジリエンスのためのオープンソースのシミュレーターです。
main ブランチの継続的インテグレーションのステータス
行カバレッジは src/ の約 95 %。docs/COVERAGE.md で測定し、継続的インテグレーションで 85 % をゲートとしている
検証マトリクスによる、401 件の機能のうち 176 件が、独立した外部のオラクルに対して VALIDATED
SonarQube Cloud のクオリティゲートのステータス
リリース v0.40.0
ライセンス:AGPL-3.0-only
DOI 10.5281/zenodo.20528627、すべてのリリースを束ねる Zenodo のコンセプトレコード
商用ライセンスは Ashforde® OÜ から提供されます。エディションを参照してください
crates.io の kshana、現在の公開バージョン
PyPI の kshana、現在の公開バージョン
npm の kshana、現在の公開バージョン
Kshana Studio を開く · インストール · 機能 · エビデンス · 研究 · ドキュメント · 引用
目次
- GNSS が途絶える瞬間をリハーサルする
- 0.40 の新機能、0.39 の新機能、0.38 の新機能、そして 0.38 の詳細:Jammertest のスコアリング、受信機自身のフラグ、機械入力、タイミングとホールドオーバー、標準パック、LunaNet AFS、ラボの往復、kshana-bench、オブザバトリー、エクスポーター、光学、宇宙ユーザーの航法、月のインフラ
- Kshana Studio とすべての Studio ページ
- 機能:領域の一覧表、ファミリー別のすべてのシナリオ種別、すべてのコマンド、すべてのサーフェス
- 実行の仕組み、ミッション
- エビデンス:台帳、機能ドメイン
- インストール、アーキテクチャ(および図)、AI アシスタント
- エディション、研究、引用、ライセンス
- リファレンス:使い方、シナリオ形式、出力、リポジトリ構成、FAQ、トラブルシューティング、バージョニング、ロードマップ、コントリビューション、ドキュメント
GNSS が途絶える瞬間をリハーサルする#
Kshana は、GNSS(全球測位衛星システム)の信号が失われたときのジャミング、スプーフィング、時計のホールドオーバーを再現し、システムが予算内で時刻と位置をどれだけ保てるか、そしてどの時計やセンサーが最も多くのマージンをもたらすかを示します。一つの Rust エンジンであり、ターミナル、ノートブック、IDE(統合開発環境)、AI(人工知能)アシスタント、またはブラウザーで動作します。
すべての実行は、シナリオ、シード、エンジンのバージョンからビット単位で再現可能です。すべての機能は、機械検査される台帳の中で、三つのラベルのいずれかを持ちます。VALIDATED(独立した外部のオラクルと一致)、MODELLED(内部で整合しており、その旨を明示)、PARTNER(ハードウェアパートナーが所管)です。
ステータス:v0.40.0。PNT レジリエンスのための、独立した外部の参照と照合して確認された、再現可能なシミュレーション基盤です。タイミングとホールドオーバーを最初に扱うのは、この領域が最もよく確認されているためです。Kshana は研究とトレードオフ分析のための道具であり、無線周波数(RF)の信号発生器ハードウェアではなく(無線を駆動せず、何も送信せず、信号レベルの出力はソフトウェア受信機向けのベースバンド IQ サンプルファイルです)、ハードウェアの、または認証を受けた GNSS 受信機でもなく(ソフトウェア受信機は解析用ツールです)、飛行用製品でもありません。この分野は初めてですか?やさしい入門と用語集から始めてください。
0.40 の新機能#
0.40 では、ミッションレベルの誤差バジェットを追加し、すべての図と表にエビデンスの区分を付け、測定されたクロックログを読み込み、データパートナーの提出物をチェックし、干渉の発信源がありうる場所を推定し、英語に加えて十七の言語で表示します。台帳は 401 行になりました:176 行が VALIDATED、221 行が MODELLED、4 行が PARTNER です。VALIDATED に昇格した行はなく、以下の未達はすべてテストで固定されています。
- ミッションスレッド。
mission-threadの種別は、打ち上げから再突入までのフェーズ(launch-ascent、leo-rendezvous、tli-and-cruise、entry、そして四つの月の種別)を、明示した引き継ぎ規則、明示した要求に対する余裕、最弱の連結とともに連鎖させます。11 フェーズ(地球のセグメントと月のセグメント)にわたる、エンドツーエンドのアルテミス級の例があり、シナリオ種別は全部で 92 種類です。すべての数値は MODELLED です。公開されているアルテミス I の軌道に対する地球・月間空間(シスルナー)の伝播は、事前登録した合格基準に届きません(45.3 km と 0.25 m/s に対して基準は 5 km と 0.05 m/s。原因は、モデルに含まれていない小さな軌道変更です)。CAPSTONE の軌道に対する月の伝播器も届きません(一周の終わりで 136.8 km に対して基準は 25 km)。LRO との比較は満たされています。行は MODELLED のままです(ミッションスレッド、月のセグメント)。Studio では、このスレッドは/studio/mission-thread/で読めます。 - エビデンスのラベル。実行が書き出すすべての図と表には、マトリクスから読み取った区分と、それが依拠する台帳の行 ID が付きます。
- 測定されたクロック。八つのクロックログ形式を読み込み(
docs/CLOCK-LOG-FORMATS.md)、フィットした系列でホールドオーバーを駆動できます。事前登録した合格基準に対して、フィットは六件中五件の記録で F1(a) に届かず、一件で F2 に届きません。どちらも MODELLED のままです(変更履歴)。 - データパートナー。
kshana partner checkは提出物の形式をチェックするだけで、スコアリングは行いません(docs/PARTNER-DATA.md)。 - 発信源の領域。
kshana interference-map locateは、ADS-B または AIS の報告から、領域と楕円を示し、単一の点は示しません。Jammertest 2025 の送信地点と一回比較した結果は、どちらの情報源についても NOT ASSESSABLE(公開データに予定されたセッションが少なすぎた)であり、この行は MODELLED のままです(干渉マップ)。 - ベンチマーク。0.40 の再キャンペーンは、A3、D3(どちらも EXPLORATORY)、R3、R4 を満たします。A2、D1、R1 は NOT MET のままです(Bench)。
- 言語。nl、pl、pt-BR、pt-PT、fi、sv、da、nb、cs、uk、ru、de、fr、es、et、ja、zh-Hans。ネイティブスピーカーによる確認が行われていない機械翻訳として提供しています。英語が基準であり、英語以外での実行には約二倍の時間がかかります(
docs/i18n.md)。
0.39 の新機能#
0.39 は機能を追加せず、結果も変えません。エンジンの出力は 0.38 の出力です。コマンドラインの不具合を一つ修正し、クロスバリデーション用ツールの依存関係を更新し、ベンチマークの判定を完全な形で記載しています。
- コマンドライン。
kshana kinds | head(標準出力が閉じられた場合)で、パニックを起こさなくなりました。プログラムは、閉じたパイプに対する他のツールと同様に、ステータス 141 で静かに終了します。その他の書き込みエラーは、これまでどおり報告されます。 - Dependencies. 二つの ANISE クロスチェック用ロックでの
memmap20.9.11、およびオラクル環境のピンでのpillow13.0.0 とcertifi2026.10.19。すべてxval/配下であり、出荷されるものは何も変わっていません。 - kshana-bench、すべての判定。事前登録した合格基準に対して、三つが NOT MET であり、それぞれテストで固定されています。A2(
agc_k_sigmaの AUC 0.766、基準は 0.80 以上)、D1(最大ギャップ 0.0301)、タスク (b) の R1(引き継ぎで、再実行なし)です。基準は一つも緩めていません(Bench)。
0.38 の新機能#
0.38 は、中立の審判を測定可能にします。公開されたテストスケジュールに対して受信機ログをスコアリングし、より多くの受信機とセンサーを読み取り、タイミングシステムを試験し、ベンチマークと干渉オブザーバトリーを同梱します。引き続き助言の範囲にとどまります。ここにあるものは認証を受けたものではなく、どの結果も型式承認ではなく、何も送信しません。各行は、台帳がそれについて保持している内容を示します(ラベルの獲得方法)。ステータスが示すのは、確認した内容だけであり、確認していない内容は、台帳の行とリンク先のページに記載されています。
| 0.38 の新機能 | 内容とその理由 | 台帳のステータス | 読み取る内容 |
|---|---|---|---|
| Jammertest のスコアリング | kshana jammertest import は、公開されている NPRA のテストカタログと送信計画を、計画された真値として読み取ります。jammertest score は、受信機ログをテストごとに(検出の遅延、見逃し、誤警報、回復までの時間)スコアリングし、鍵を与えれば署名付きのエビデンスパックにします |
MODELLED:台帳の一行。基準はスコアリングの実行より前に事前登録しました。JammerTest 2024 のデータでは、最小データ規則が二回とも満たされず(スコア対象のウィンドウは 4 と 7、必要数は 10)、評価可能な基準はなく、何も主張していません | Jammertest |
| 受信機自身のフラグ | UBX-NAV-STATUS の spoofDetState、UBX-SEC-SIG、NovAtel RXSTATUS を、エポックごとの self_report に読み込み、Kshana のアラームと比較します(両方、受信機のみ、Kshana のみ、どちらでもない)。Septentrio SBF リーダーと、読み取り専用の --serial 入力もあります |
MODELLED:受信機の検出器と Kshana の検出器が一致しても、検証にはなりません | 受信機の信頼性 |
| より多くの受信機とセンサー | RTKLIB の .pos、NovAtel OEM7、RTCM 3 MSM4/MSM7 の C/N0(RTCM の文章ではなく、BSD ライセンスの pyrtcm のテーブルから)、GNSS-SDR のモニターストリーム、第二のセンサーとしての IMU ログ、ROS 2 パッケージ、gnss_lib_py ブリッジ、ハイブリッドセンサーパラメーター用の imu-fit |
MODELLED:台帳の六行。自作のフィクスチャのみで、実機の受信機、IMU、GNSS-SDR の実行、ROS グラフからのキャプチャは読み取っていません | 機器の入力 |
| タイミングとホールドオーバーの試験 | holdover-test 種別は、測定された時刻誤差の記録を ITU-T のマスクに対してスコアリングし、ホールドオーバー試験(運用者による GNSS の除去、ホールドオーバー、回復)を評価します。表現は「マスクに対して測定」です。linuxptp と chrony のログリーダー、ハードウェアのステージ、lab-attestation フィールドもあります |
MODELLED:台帳の二行。時刻は運用者の申告であり、検証されていません | タイミング HIL、ハードウェアの安全性 |
| 標準パック、LunaNet AFS、ラボのラウンドトリップ | DHS RPCF、IMO MSC.1/Circ.1575、ICAO Doc 9849 Appendix F の、実行前に定めた基準に対するスコアリング済みパック(「supports evidence for」)、NIST IR 8323r1 のクロスウォーク、LunaNet AFS のコード生成器とチェッカー、ラボの実行のシナリオ、試験条件、受信機ログ、スコアを結びつける署名付きパック | パックとラウンドトリップは MODELLED。AFS のコード検査は、印刷されたチェック列に対して VALIDATED(台帳の行を参照) | 標準、LunaNet AFS |
| kshana-bench とオブザーバトリー | 干渉検出、IQ 検出、ホールドオーバー予測、楽観ギャップのための固定されたタスク、分割、指標。封印したホールドアウトと静的なリーダーボード付き。24 時間の遅延、粗いセル、原因の特定なしで作られる、再現可能な日次の干渉成果物 | 独自の台帳の行はありません。提出物をスコアリングするもので、ベースラインは結果ファイル内で MODELLED とラベル付けされています。事前登録した合格基準に対して、スコアラー、C1 から C3、D2 は満たしており、三つの基準は NOT MET です(テストで固定)。A2(テスト分割で agc_k_sigma の AUC 0.766、基準は 0.80 以上)、D1(最大ギャップ 0.0301)、タスク (b) の R1(引き継ぎで、再実行なし)。xval/bench/RESULTS-v2.md を参照してください |
Bench、オブザーバトリー |
| エクスポーター | Prometheus、CEF、LEEF、OTLP に加えて、Home Assistant の MQTT ディスカバリーおよび状態メッセージとしての信頼性テレメトリー(発行のみ、認証情報なし) | MODELLED:台帳の一行 | 信頼テレメトリ |
| 時間に対する光リンクマージン | optical-atmosphere 種別は、サイトの天候のシード付きの一回の実現を、リンクマージンの系列として書き出せます |
MODELLED:台帳の一行。モデルからの一回の試行であり、気候ではありません | 光学大気 |
0.37 のハイライト:変更履歴。0.38 の完全な一覧は変更履歴にあります。
0.38 の詳細#
上の表の各機能を数行で説明します。何をするか、実行するコマンド一つ、エンジンの実際の実行から描いた図一枚、そして台帳がそれについて保持している内容です。図は tools/gen_figures_038.py が docs/figures/0.38/ に書き出します(手描きではありません)。python3 tools/gen_figures_038.py はビルド済みのエンジンからそれらを書き直し、--check は、図が古くなっている場合、またはここでのキャプションと異なる場合に失敗します。入力がログである場合、それはスクリプトが書く作り物のログです。実際のサードパーティのログは決して同梱しないためで、キャプションにもその旨を記しています。以下はすべて助言であり、認証を受けたものではなく、型式承認でもなく、何も送信しません。ステータスが示すのは確認した内容だけです。ラベルの獲得方法。
Jammertest のスコアリング#
kshana jammertest import は、公開されている NPRA のテストカタログと送信計画を計画された真値にし、kshana jammertest score は受信機ログをそれに対してスコアリングします。計画された各テストについて、検出されたかどうか、どれだけ遅れたか、受信機の回復にどれだけかかったか、さらに、すべてのスロットの外での誤警報です。カタログは取得するもので、同梱はしません。
xval/jammertest-plan/fetch.sh ../jammertest-plan
kshana jammertest score session.toml --catalog ../jammertest-plan/testcatalog2025.json \
--plan ../jammertest-plan/plan-tuesday-2025-09-16.json --location 1 --json
台帳のステータス:MODELLED。基準はスコアリングの実行より前に固定しました。JammerTest 2024 のデータでは、最小データ規則が二回とも満たされず、評価可能な基準はなく、何も主張していません。Jammertest。
受信機自身のフラグ#
UBX-NAV-STATUS の spoofDetState、UBX-SEC-SIG、NovAtel RXSTATUS はエポックごとの self_report に読み込まれ、Kshana のアラームと並べられます。両方、受信機のみ、Kshana のみ、またはどちらでもない、です。Septentrio SBF リーダーと読み取り専用の --serial 入力も、同じ比較に入力します。どちらの側も真値ではありません。
kshana receiver-trust session.toml # [log] format = "ubx", path = "receiver.ubx"
台帳のステータス:MODELLED。受信機の検出器と Kshana の検出器が一致しても、検証にはなりません。受信機の信頼性。
より多くの受信機とセンサー#
RTKLIB の .pos、NovAtel OEM7、RTCM 3 MSM4/MSM7 の C/N0、GNSS-SDR のモニターストリーム、第二のセンサーとしての IMU ログ、ROS 2 パッケージ、gnss_lib_py ブリッジは、すべて同じ受信機信頼性のタイムラインに行き着きます。imu-fit は、ハイブリッドおよびフュージョンのシナリオが必要とするセンサーパラメーターを静止状態の IMU ログから読み取るため、実際に持っているセンサーでシナリオを実行できます。
kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu
台帳のステータス:MODELLED。自作のフィクスチャのみで、実機の受信機、IMU、GNSS-SDR の実行、ROS グラフからのキャプチャは読み取っていません。機械入力。
タイミングとホールドオーバーの試験#
holdover-test 種別は、測定された時刻誤差の記録を ITU-T のマスクに対してスコアリングし、ホールドオーバー試験(運用者による GNSS の除去、ホールドオーバー、回復)を評価し、その言葉どおりに表現します。マスクに対して測定、です。linuxptp と chrony のログリーダーがこれに入力し、ハードウェアのステージと lab-attestation フィールドが、誰が何を申告したかを示します。
kshana scenarios/holdover-test-example.toml
台帳のステータス:MODELLED。GNSS を除去し復旧した時刻は運用者の申告であり、検証されていません。タイミング HIL、ハードウェアの安全性。
標準パック#
DHS Resilient PNT のテストプロファイル、IMO MSC.1/Circ.1575、ICAO Doc 9849 Appendix F のスコアリング済みパックに加え、compliance-report の NIST IR 8323r1 クロスウォークです。各テストは同梱のシナリオを実行し、結果フィールドを実行前に定めた基準と比較します。受信機ログが必要なテストは、入力が必要なものとして一覧に載り、スコアリングされません。表現は「supports evidence for」です。
kshana standards-pack list
kshana standards-pack run imo-circ-1575
台帳のステータス:MODELLED。基準を満たしたというのは、モデル化されたシナリオが明示された基準を満たしたという意味であり、製品については何も述べません。すべての未達は残され、テストで固定されています。標準。
LunaNet AFS#
LunaNet Augmented Forward Signal のコード生成器(Gold コード、Weil コード、三次コード、メッセージフレームとその誤り符号化)と、記録された、または生成されたシンボルストリームのチェッカー。仕様の一つの版に固定しています。
kshana lunanet-afs-check spec
kshana lunanet-afs-check generate --frames 2 --out afs.sym
kshana lunanet-afs-check symbols afs.sym
台帳のステータス:VALIDATED(コードと同期の検査について、仕様が印刷している値(仕様が TBC と記している値)に対して)。一つの検査は NOT MET であり、残して固定しています(印刷された三次コードの一つの列が異なります。文書は二つの PRN に同じ値を印刷しています)。サブフレーム 2 から 4 の LDPC と CRC のワードは検査していません。台帳の行が、正確にどれかを示します。LunaNet AFS。
ラボのラウンドトリップ#
kshana.test-conditions/1 は、ラボが行ったこと(イベント、時刻、電力)についての公開された記述です。kshana evidence round-trip は、シナリオのハッシュ、条件のハッシュ、受信機ログのハッシュ、スコアを一つの署名付きパックに結びつけ、イベントについて条件とスコアリング用のシナリオが食い違うパックを拒否します。Kshana は信号を生成することも再生することもありません。シナリオがどのように受信機に届いたかは、運用者の責任です。
kshana evidence --help
この図はパックのレイアウトです。台帳のステータス:MODELLED。試験条件、Test bench。
kshana-bench#
干渉検出、IQ 検出、ホールドオーバー予測、楽観ギャップのための固定されたタスク、分割、指標。封印したホールドアウトと静的なリーダーボード付きです。提出物をスコアリングするもので、受信機のランキングではありません。
kshana bench baseline --task d --split test --out results/
台帳のステータス:独自の台帳の行はありません。ベースラインは結果ファイル内で MODELLED とラベル付けされています。事前登録した合格基準に対して、スコアラー、C1 から C3、D2 は満たしており、三つの基準は NOT MET で、それぞれテストで固定されています。A2(テスト分割で agc_k_sigma の AUC 0.766、基準は 0.80 以上)、D1(最大ギャップ 0.0301)、タスク (b) の R1(以前のキャンペーンからの引き継ぎで、再実行なし)です。数値は xval/bench/RESULTS-v2.md にあります。Bench。
干渉オブザーバトリー#
オープンな航空機位置アーカイブから、UTC の日ごと・地域ごとに一つの成果物を、固定した粗いグリッド上で作ります。各セルは、劣化、劣化なし、未観測(これは「問題なし」ではありません)のいずれかです。日の終了から 24 時間以上経つまで公開せず、小さなセルは抑制し、原因の特定は行いません。
kshana interference-map daily /path/to/extracted/2026-09-15 \
--dataset adsb-lol --day 2026-09-15 --bbox 53.5,9.0,66.0,31.0 --out products/
この図は、コミット済みのサンプル日であり、オブザーバトリーの成果物ではありません。台帳のステータス:MODELLED:外部のオラクルも、真値も、原因の特定もありません。観測されていないセルは評価されていないことを意味し、問題がないこととは異なります。オブザーバトリーの手法。
エクスポーター#
Prometheus テキスト、CEF、LEEF、OTLP、Home Assistant の MQTT ディスカバリーおよび状態メッセージとしての信頼性テレメトリー。このコマンドは、指定した宛先にのみ発行し、認証情報は保持しません。
kshana trust-telemetry --result session.result.json --print-metrics
kshana trust-telemetry --result session.result.json --print-syslog --format cef
台帳のステータス:MODELLED。 信頼性テレメトリー。
時間に対する光リンクマージン#
optical-atmosphere 種別は、サイトの天候のシード付きの一回の実現を、リンクマージンの系列として書き出せます。雲のエピソード、それぞれに対する液水柱、ステップごとに一つのシンチレーションのサンプルです。Studio の「光学 PNT」ページは、optical-atmosphere のシナリオを開きます。
kshana scenarios/optical-atmosphere-network.toml
台帳のステータス:MODELLED。モデルからの一回の試行であり、気候ではありません。光学大気。
Studio の新しいビュー#
kshana.dev/studio に、ブリッジリプレイ(一つのミッションクロック上で二つの実行を並べて表示。/studio/replay/)、光学 PNT ページ(/studio/optical/)、ホールドオーバー試験ページ(/studio/holdover/)、オブザーバトリービューア(/studio/observatory/)が加わりました。これらはブラウザー内で同じエンジンを実行し、何もアップロードされず、同じ助言の文言を掲げています。上の図は、スクリプトがエンジン自身の出力から描いたものであり、これらのページのスクリーンショットではありません。
宇宙ユーザー航法(gnss-ssv)#
GNSS 軌道の上空、周囲、またはそのはるか先にある宇宙機のためのものです。いくつの GNSS 信号を使えるか、それらがどれだけ強いか、幾何がどれだけ良いか、そして搭載フィルターがそれらで何をできるか。種別は一つ、モードは四つで、シナリオのテーブルによって選ばれます。ユーザーのシェル(コンステレーションごとに、信号が一つあった時間と四つあった時間の割合)、軌道(軌道に沿った信号、C/N0、精度低下率、リム光線の媒質)、航法の実行(疑似距離に対する九状態フィルターで、月まで)、編隊(チーフの周りのデピュティの相対航法)です。可用性の比較の公開ソースは、相互運用可能な GNSS Space Service Volume のブックレット(UN OOSA ST/SPACE/75、International Committee on GNSS 発行)で、それ自体がシミュレーションです。これは取得するもので、同梱はしません。全ページ:docs/SSV.md。
kshana scenarios/gnss-ssv-shell.toml # shell: the upper space service volume, reduced size
kshana scenarios/gnss-ssv-heo.toml # trajectory: a high Earth orbit, limb medium
kshana scenarios/gnss-ssv-nav-lunar.toml # navigation: an onboard filter toward the Moon
kshana scenarios/gnss-ssv-formation-heo.toml # formation: relative navigation
台帳のステータス:MODELLED。ブックレットとの比較は、ほとんどが基準に届きません。基準は実行の前に固定しました。八つのうち、満たしたのは S0(逆リンクバジェット、13 個の値のうち 13 個)と S6(月ミッション)だけです。S1 から S5 と S7 は NOT MET です。上側および下側のサービスボリュームの幾何(52 セルのうち 43、52 セルのうち 48)、15/20/25 dB-Hz の上側サービスボリューム、六つの GEO ミッション、HEO ミッション、そしてパラメトリックなサイドローブパターンと、測定された GPS パネルパターンの比較です。S1 から S5 の未達のほとんどすべてに GLONASS が関わっており、ブックレットはそれについて二つの異なる基準角を印刷しています。もう一方の組を使う診断用のバリアントでは、S1、S2、S4 がすべてのセルで基準を満たしますが、それは記録済みの実行に取って代わるものではなく、VALIDATED の行はありません。編隊の実行の絶対フィルターも過信しています(正規化誤差二乗の平均が、整合したフィルターの値である約 3 を大きく上回っています)。
月面インフラ(lunar-infrastructure)#
月の軌道と表面を、航法および測地のインフラとして扱う五つの調査で、study で選択します。od-consistency(ハロー軌道での搭載 Earth-GNSS 軌道決定を、独立した地上のものと比較)、carrier-phase(地表局と周回機の間の整数アンビギュイティの決定)、frame-coestimation(周回機リンクあり・なしでの地球局の測距による月のデータム)、space-tie(一つの宇宙機上のレーザー、VLBI、GNSS のオフセットを、ローカルタイの誤差に対して比較)、geodesy-sensitivity(どの観測量ファミリーがラブ数 h2、k2、l2 を捉えるか)です。モデルは制限三体問題で、明示された単純化と例示用の入力を伴います。全ページ:docs/LUNAR-INFRASTRUCTURE.md。
kshana scenarios/lunar-infrastructure-od-consistency.toml
kshana scenarios/lunar-infrastructure-carrier-phase.toml # quick; the scored run takes about eight minutes
kshana scenarios/lunar-infrastructure-frame-coestimation.toml
kshana scenarios/lunar-infrastructure-space-tie.toml
kshana scenarios/lunar-infrastructure-geodesy-sensitivity.toml
台帳のステータス:MODELLED。三つの基準は NOT MET です。数値計算は独立した numpy と scipy のプログラムと照合して確認しており、月の量の測定とは何も比較しておらず、VALIDATED のものはありません。満たしたもの:二つの軌道解は整合しており(平均 q は期待値 6 に対して 5.81)、既知の軌道を仮定した場合、周回機リンクはデータムの最小固有値を約 111 倍に引き上げます。満たさなかったもの:注入した 3e-10 m/s2 のモデル誤差は検出されません(C3:搭載解は約 350 m まで分かっているため、約十メートルが共分散の中に隠れます)。整数値の決定は達成されません(25 dBi で成功率 1 から 3 %、登録された 12 dBi では問題を構成できません)。そして、観測量ファミリーを追加する G3 のトレースの側(28 回の追加のうち 12 回でトレースが上昇し、いずれもファミリーがランクを上げたためです)。それぞれの未達はテストで固定されています。月面インフラ。
Kshana Studio#
kshana.dev/studio を開くと、エンジン全体が WebAssembly にコンパイルされて、ブラウザー内で動作します。インストールは不要で、何もアップロードされません。Studio には同じエンジンの二つのビューがあり、ヘッダーのスイッチで切り替えられます。シナリオ、ビュー、変更した設定は維持されます。
シンプルビューは、Studio が最初に開くビューです。質問から始まります(いくつの衛星が見えるか、位置の測位解を信頼できるか、時計はどれだけ時刻を保てるか、ジャマーは受信機に何をするか)。また、エンジンにできることすべての地図から始まり、各領域には、確認済みの手法の割合が付いています。シナリオを開くと、答えが最初に表示されます。そのシナリオが測るものに合わせて書かれた、平易な一文で、続いて主要な数値とグラフです。表示される設定は最大五つで、答えを最も大きく変えるものです。残りは詳細設定の下で待機しています。この計算方法は手法を説明し、研究者向けはエンジン自身の数値、シナリオファイル、Python から実行するコード、引用を示します。

詳細ビューは、完全なダッシュボードです。シナリオライブラリ、番号付きの五つのステップ(選ぶ、設定する、実行する、結果を読む、共有またはエクスポートする)、実行がしきい値を示す場合に PASS と FAIL のチップが付く主要な数値、そしてすべてのパネル:概要、グラフ、マップ、リプレイ、エンジンのレポート、エクスポートです。一つの検索ボックスで、シナリオ、ドメイン、その中のフィールドに到達でき、最大四つの実行をピン留めして、並べて比較できます。
シンプルビューの開始画面と、実行後の詳細ビュー


Studio のソースとビルドの注記は web/README.md にあります。
サイト#
kshana.dev の残りの部分は、このリポジトリ自身のファイルとエンジンの実行から作られています。ミッション、機能、エビデンスの台帳、公開済みの研究、エディションです。

機能#
一つのエンジンが、最初のジャミングされた衛星から時計のホールドオーバーの最後のナノ秒まで、故障の連鎖全体を扱います。エンジンには 92 種類のシナリオ種別があり、kshana kinds がそれらを一覧表示し、docs/SCENARIOS.md がすべてのフィールドを説明しています。
| 機能 | 答える問い |
|---|---|
| スペクトル | ジャマーが GNSS の L 帯をどう奪うかを、帯域ごと、秒ごとに |
| 時計とタイミング | GNSS を失った後、各時計がどれだけ時刻を保つか |
| 任意の天体の周りのコンステレーション | 地球、月、火星の周りのカバレッジ、精度低下率、可用性 |
| 太陽系 | すべての惑星の位置と、あらゆるリンクの光時間 |
| 低軌道航法 | パス、リンク、航法メッセージ、融合した測位解を、段階ごとに |
| キャンペーン | 連鎖したミッション、スイープ、モンテカルロのアンサンブルを、一つのシナリオで |
| アニメーション | 実行の時系列を、アニメーション描画、プレーヤー、フレームとして |
| レポート | すべての数値を、単位とラベル付きで、HTML(HyperText Markup Language)と JSON(JavaScript Object Notation)で |
| 相互運用エクスポート | 他のツール向けの軌道と幾何:SP3、CCSDS OMM と OEM、CZML、KML、GeoJSON、STK、SigMF |
| 海事の信頼性 | ブリッジはこの測位解を信頼できるか:船舶の NMEA について、ライブまたはログから、0-100 のスコアと理由を示す(助言であり、型式承認を受けた航法装置ではありません) |
| NMEA 訓練ストリーム | 乗組員の訓練のための、スクリプト化されたジャミングとスプーフィングと教官ログ付きの合成ブリッジ NMEA(テキストのみ。船舶の実際の航法システムには決して使用しないでください。助言であり、型式承認を受けた航法装置ではありません) |
| 干渉マップ | 航空機や船舶が劣化した航法データを報告した場所と、それが航路のどれだけに及ぶか |
| 発信源の領域 | 明示した仮定のもとで、劣化した位置報告の発信源がありうる場所:明示した信頼度での領域、重心とその楕円であり、点ではありません(MODELLED、kshana interference-map locate) |
| エビデンスパック | 船舶のログウィンドウと、そこからエンジンが計算した内容についての、署名付きで、オフラインで検証できる技術記録。インシデント報告のためのもの(助言であり、型式承認を受けた航法装置ではありません) |
| 信頼テレメトリ | Prometheus メトリクス、SIEM イベント、任意の OpenTelemetry としての信頼性ストリーム。サンプルの Grafana ダッシュボード付き(deploy/grafana/kshana-gnss-trust.json) |
| Signal K と OpenCPN | 船の Signal K サーバーと OpenCPN 上の信頼スコア。受信機の隣に置く小型コンピューター向けのリファレンスビルド付き(助言であり、型式承認を受けた航法装置ではありません) |
| bench 向けエクスポート | kshana bench-export:ラボの GNSS シミュレーター向けに、シナリオの機体の運動とイベントを出力し(信号は書き出されません)、その後に受信機のログをスコアリングする方法 |
| compliance のマッピングとレポート | kshana compliance-report:一組の実行が、公開されているレジリエンスのフレームワークのどの行について証拠を裏付けるか(supports evidence for)、そして残るギャップ |
| ノートブック | 実行できるチュートリアル:船舶の信頼性と訓練のストリーム、干渉マップの航路への曝露、compliance のマッピングとテスト bench、量子と古典の GDOP |
| Galileo OSNMA 検証器 | 受信機がどの衛星の航法データを暗号的に認証できるか、そして検査が失敗する理由。Kshana は、EU の OSNMA ICD IPRs に基づく権利を一切付与しません(ページ内の告知を参照) |
エクスポート形式の詳細:SP3 は Standard Product 3、CCSDS OMM と OEM は Consultative Committee for Space Data Systems の Orbit Mean-elements Message と Orbit Ephemeris Message、CZML と KML は Cesium と Keyhole の Markup Language、STK は Systems Tool Kit、SigMF は Signal Metadata Format です。
各機能を、実際の実行から描いたもの:L 帯ウォーターフォール、カバレッジマップ、太陽系、低軌道のパス
どれでも kshana example <scenario> > s.toml && kshana s.toml で実行できます。シナリオは l-band-waterfall-jamming、constellation-multi-gnss-coverage、solar-system-tour、leo-pass-iridium です。
海事と干渉の機能を、コミット済みの合成入力から描いたもの:信頼スコア、航路曝露付きの干渉マップ、訓練ストリーム、エビデンスパック
四つともすべて作り物のデータであり、助言です。示すのはソフトウェアの形式と動作であり、どの受信機やシステムが干渉に対してどう動作するかではありません。一つ目は kshana receiver-trust examples/maritime-trust/session.toml、二つ目は kshana route-exposure を examples/interference-map/ のサンプルに対して、三つ目は kshana nmea-scenario scenarios/training/coastal-drag-off.toml --out drag.nmea(訓練専用:実際の航法機器には決して入力しないでください)、四つ目は docs/EVIDENCE-PACKS.md のとおりに実行します。
機能の完全な表、ドメインごと
ドメインごとの完全な詳細は以下のとおりです。機能ごとの成熟度の台帳は docs/CAPABILITY.md と docs/VALIDATION.md を参照してください。
| 領域 | 機能 |
|---|---|
| 軌道とジオメトリ | SGP4/SDP4 伝搬(AIAA 2006-6753 の 666 個のベクターすべてに対して 4.12 mm まで確認済み)、実在の二行軌道要素(コミット済みで日付付きの Celestrak gps-ops のスナップショット)、または平均要素が 24 時間の伝搬で 1 km 未満まで i:T/P/F の式を実現する合成 Walker-delta コンステレーション、マルチコンステレーションの可視性、精度低下率:幾何、位置、水平、垂直、時刻(GDOP/PDOP/HDOP/VDOP/TDOP)。gnss_lib_py 1.0.4、Stanford NAV Lab(Navigation and Autonomous Vehicles Laboratory)に対して 1e-6 まで確認済み、および GNSS の可用性。勾配を使わないコンステレーション設計の最適化器、streets-of-coverage による最小衛星数の算定、マルチコンステレーションの比較ツール、そして、平面数 × 衛星数のグリッドでカバレッジ / PDOP / 再訪時間を表にして、パレート最適な設計を報告する Walker の設計スイープ。 |
| 数値伝搬器 | 解析的な SGP4/SDP4 経路を補う、Cowell 数値伝搬器(src/propagator.rs)。階層的な七種の摂動力モデル(src/forces.rs)を備えます。二体問題 + 完全な J2–J6 帯状場(地球の扁平を表す帯状調和係数 J2 から J6。その摂動ポテンシャルの厳密な解析的勾配)、任意の次数 70 までの EGM2008 田状球面調和ジオポテンシャル(Earth Gravitational Model 2008。src/gravity_sh.rs。実際の NGA(US(United States)National Geospatial-Intelligence Agency)の係数、Holmes–Featherstone の正規化ルジャンドル漸化式、閉形式のルジャンドル関数と解析的な ∇V 恒等式との照合)、エポック駆動の太陽と月の第三体重力(組み込みの低精度エフェメリスで、DE/SPK(Development Ephemeris / SPICE Spacecraft and Planet Kernel)カーネルは不使用)、太陽放射圧(円錐状の本影 + 半影の影を持つキャノンボールモデル)、大気抵抗(Vallado の区分指数密度、共回転する大気)、ポストニュートン Schwarzschild 相対論補正、Lense–Thirring フレームドラッグ項(IERS(International Earth Rotation and Reference Systems Service)Conventions 2010 §10。地球の角運動量に対して線形で、Schwarzschild より約 1〜2 桁小さい)です。二つの適応型積分器(RK4(四次の Runge–Kutta)のステップ倍加、またはDormand–Prince RK5(4) 埋め込みペア)から選んで駆動します。Orekit 12.2(CS GROUP、Apache-2.0)の NumericalPropagator/DormandPrince853 に対して確認済み:LEO(低軌道)+ GTO(静止トランスファー軌道)にわたる 278 エポックで、保存力の各階層は最悪の場合で |Δr| 0.08 m(24 時間)に一致します(tests/numerical_cowell_propagator_reference.rs)。大気抵抗の階層は別に特性評価しており(≈ 333 m / 24 時間)、太陽・月エフェメリスと密度の絶対的な入力は、正直にモデル計算のままです。追加の内部的な証拠(外部の検証ではありません):摂動なしの軌道は、厳密な普遍変数の Kepler 解と 24 時間で一メートル未満まで照合しており、エネルギーと角運動量は約 1e-9 まで保存され、各摂動は手導出の閉形式の特徴と一致します。 |
| 軌道変更と軌道設計 | 6×6 の共分散伝搬を伴うインパルシブな ΔV ノード(ECI(地球中心慣性系)/ LVLH(局所垂直・局所水平)の実行誤差座標系)、閉形式の Tsiolkovsky ロケット方程式に対して < 0.01 % まで照合した有限燃焼の積分、Izzo-2015 の単一周回 Lambert ソルバー、厳密な普遍変数の Kepler 伝搬器、JSON の等高線グリッドとして出力される porkchop(打ち上げ × 到着)の C3(打ち上げエネルギー)/ 到着 V∞ のスイープ。GMAT/Orekit の上位にある性能シミュレーション層で、すべての Lambert 出力を二体問題の真値に対して往復検査し、porkchop の最小値を解析的な Hohmann の下限と照合しています。 |
| 時刻系と座標系 | IERS のうるう秒を含む UTC / TAI / TT / UT1 の時刻系(協定世界時、国際原子時、地球時、地球自転に基づく世界時 1)、ユリウス日 API(アプリケーションプログラミングインターフェース)、IAU-2000(国際天文学連合)の地球自転角(ERA)、GMST(グリニッジ平均恒星時)に基づく TEME ↔ ECEF(真赤道・平均春分点 ↔ 地球中心・地球固定)と WGS-84(World Geodetic System 1984)の測地座標系、IAU 2006 の歳差(Fukushima–Williams)、完全な IAU 2000A/2000B 章動、IERS の極運動、そして春分点に依存しない CIO ベースの IAU 2006/2000A GCRS↔ITRS 変換(CIO = Celestial Intermediate Origin)。すべて SOFA/ERFA のベクターに対してビット単位で確認済みで、さらに ANISE と独立にクロスチェックしています(純粋な Rust による NAIF/SPICE の再実装。NAIF = NASA(米国航空宇宙局)の Navigation and Ancillary Information Facility)。kshana の GCRS→ITRS を、JPL の earth_latest_high_prec.bpc による ANISE の ITRF93(International Terrestrial Reference Frame 1993)と、両者に同じ IERS 地球姿勢パラメーターを与えて比較すると、2020〜2023 年の八つのエポックで、地表で ≤ 0.86 m、GNSS 軌道で ≤ 3.6 m(最大 0.028″)で一致します。 |
| 慣性 | 三軸ストラップダウン INS:クォータニオン姿勢、WGS-84 NED(北・東・下)メカニゼーション、コーニング/スカリング補償、決定論的な IMU 誤差モデル(スケールファクター、ミスアライメント、g 感度、量子化、ドリフト)。速度ランダムウォーク係数を導出する第一原理に基づく冷却原子干渉計加速度計(Mach–Zehnder 位相、量子射影雑音、コントラスト減衰、振動結合)。そして、地図支援(地形・重力を参照する)GPS 不在環境での航法のための、逐次重要度リサンプリング粒子フィルターです。 |
| 代替 PNT(GPS 拒否環境) | 冷却原子の重力計の測定モデルで、その白色雑音の下限(σ = ASD/√τ、ASD = 振幅スペクトル密度)は CAI 加速度計の物理から導出されます。低次数の、完全正規化された球面調和の重力異常場(閉形式のルジャンドル関数と手導出の単一項の異常で照合)と、合成のマスコン。重力汎関数の合成カーネル(gravity_sh::gravity_magnitude / gravity_disturbance_mgal)は、重力支援航法が照合する「地図の読み取り手」で、GRS80 標準重力(Geodetic Reference System 1980)に対して確認済みです。閉形式の Somigliana 標準重力と、公表されている γ_e / γ_p を 3.5e-12 まで再現し、実際の ICGEM(International Centre for Global Earth Models)の EGM2008 場から、物理的に妥当な範囲の擾乱マップを生成します(RMS(二乗平均平方根)≈ 26 mGal、次数 70 で最大 ≈ 89 mGal。tests/icgem_gravity_reference.rs)。さらに、通過する異常の系列から GPS 不在環境での軌跡を復元する重力マップ照合粒子フィルターがあります。これは地形参照航法(TERCOM/SITAN。地形等高線マッチング / Sandia Inertial Terrain-Aided Navigation。SRTM(Shuttle Radar Topography Mission)の .hgt DEM(数値標高モデル)に対するもので、src/altpnt/terrain.rs)、次数 13 までの IGRF-14 地磁気主磁場(第 14 世代 International Geomagnetic Reference Field。src/igrf.rs。傾いた双極子の閉形式と ∇V の有限差分で照合)、そして三つのスカラーチャネルすべてを一つの粒子フィルターで融合する重力 + 磁気 + 地形の複合航法装置(情報は加算的で、どのチャネルも測位解を悪化させません)にまで拡張されます。60 分の GPS 不在環境ベンチマーク(約 700 km / 一時間の途絶で、慣性解が約 70 km までドリフトする)は、階層的な粗から細への照合器によって 約 145 m(< 500 m)まで復元されます。これは ESA NAVISP(Navigation Innovation and Support Programme)の Quantum Wayfarer の目標です。 |
| フュージョン | 閉ループのフィードバックを持つ、疎結合の 15 状態 GNSS/INS 誤差状態 EKF(拡張カルマンフィルター)(gnss-ins パック)。四機未満の衛星でも補正を続ける密結合の疑似距離更新。結合した時計 + 位置のフィルター。強い非線形の測定のための、汎用の無香料(シグマポイント)カルマン推定器。120 秒の GNSS 途絶を含む 30 分の曲線 LEO パスで、力モデルによる軌道コーストが 0.77 m RMS まで自己整合性を検査された、密結合 GNSS/INS の UKF 航法装置(疑似距離 + ドップラー)(フィルターの整合性の数値であり、外部オラクルによる検証ではありません。この航法装置は MODELLED のままです)。そして、完全な 17 状態の密結合 GNSS/INS UKF(位置、速度、姿勢誤差、加速度計とジャイロのバイアス、時計のバイアスとドリフト)で、その量子 CAI 推測航法は、冷却原子加速度計から導出した速度ランダムウォークで 120 秒の途絶をコーストします。 |
| 軌道決定 | 地上局のレンジ追跡からの軌道状態 [r, v] の復元です。二体問題 + J2 の力モデルと RK4 積分器を組み合わせ、Gauss–Newton バッチ補正器(determine_orbit_batch。雑音のないレンジではサブメートル / mm·s⁻¹、5 m の雑音下限で約 2 m)と、逐次型の無香料フィルター版(determine_orbit_sequential)を備えます。 |
| 可観測性と推定理論 | 汎用で再利用可能な Fisher 情報 / Cramér–Rao 層(src/fim.rs):情報行列 M = HᵀWH、Cramér–Rao 下限、可観測性のランクとデータム欠陥の零空間(Moore–Penrose 擬似逆行列)、対称 Jacobi 固有値ソルバーから得る D/A/E/T 最適の実験計画スカラー。確認済み:固有値を numpy.linalg.eigh と、CRLB の共分散を numpy.linalg.inv による σ²(XᵀX)⁻¹ と、情報行列からの GNSS の DOP を、すべて 1e-9 まで一致(tests/fim_observability_reference.rs)させ、さらに、モンテカルロでの CRLB 達成を伴う Kay(1993)の閉形式の下限とも照合しています。DOP エンジン、受動ジオロケーションの CRLB、月面の絶対局可観測性定理(後述)の基盤です。 |
| 月と地球・月間空間 | 回転座標系での、地球–月の円制限三体問題(CR3BP)伝搬器:保存される Jacobi 定数とすべての五つのラグランジュ点(src/cr3bp.rs)。これに、6×6 の状態遷移行列(STM)と単一シューティングの微分補正器(cr3bp_jacobian、propagate_state_stm、differential_correct_halo)が加わり、真に周期的なハロー / NRHO(近直線ハロー軌道)が得られます。STM は有限差分で照合され、補正された軌道は機械精度まで閉じ、公表されている遠月点の状態を与えると L2 南側の 9:2 NRHO(L2 = 地球–月の第二ラグランジュ点。Gateway の軌道)が、周期 ≈ 6.57 日 / 近月点 ≈ 3,250 km で再現されます。公表されている ≈ 6.56 日 / ≈ 3,370 km と整合します(CR3BP、つまり円で太陽なしの解であり、実際の LANS(Lunar Augmented Navigation Service)/ Gateway のエフェメリスに対して確認されているわけではありません。補正された軌道の月心の MCI/MCMF(月中心慣性系 / 月中心・月固定系)変換は、今後の課題です)。さらに、LunaNet / LNIS(LunaNet Interoperability Specification)の地球・月間空間(シスルナー)PNT 幾何(MCI↔MCMF の変換、月面座標)に、インテグリティのギャップを正直に表面化させる月の南極の ARAIM パスを加えたもの。約 30 m の σ_URE(ユーザー測距誤差)が、保護レベルを 50 m のアラートリミットよりはるかに上へ押し上げます(src/lunar.rs、scenarios/lunanet-araim.toml)。そして、地表ビーコンによる DOP の補強(src/lunar_beacon.rs)。測量された少数の地表の測距ビーコンが、すべて頭上にある軌道のみの組に欠けている、低仰角で広い方位の視線方向の行をどう与えるかを示し、悪条件の南極の GDOP と、二乗和平方根の誤差予算を介して、メートル単位の実現された位置精度を改善します(gnss_lib_py で確認済みの DOP カーネルと、大気のない地平線の可視性の閉形式を再利用。精度低下率の解析は arXiv:2607.06212 にまとめています)。 |
| 月面 PNT スイート | CR3BP の中核の上に重ねた月 / 地球・月間空間の航法スイートで、それぞれ実行可能な kind です。月座標時(lunar-time-offset、src/lunar_time.rs。自己ポテンシャル差 + 運動項からの、LTC/TCL − TT の長期的な変化率(LTC = 月座標時、TCL = そのフランス語形 Temps-Coordonnée Lunaire)で、公表されている 56〜59 µs/日の範囲とともに報告)。測地的な月 VLBI(超長基線電波干渉計)遅延観測量(lunar-vlbi、src/lunar_vlbi.rs。地球基線の近傍場での二測距差の遅延 + 変化率で、遠方場の極限では同じコードベースの平面波 Δ-DOR(デルタ差分片道測距)と照合し、偏微分は有限差分で検証)。多手法結合の OD + 時計のバッチ推定器(lunar-joint-od-clock、src/lunar_combination.rs。VLBI + 月面ローカルの測距 + 衛星間測距を融合する Gauss–Newton 適合)で、Fisher 情報による可観測性の結果を備えます。内部の測距だけでは六自由度の剛体データム欠陥が残るため、地表局の絶対位置は、地球座標系への結び付けが加わるまで観測できません。地球基線の VLBI 遅延は、疎なコンステレーションでは可観測性を回復し、密なコンステレーションでは Cramér–Rao 限界を鋭くします。絶対データムは、同一直線上にない三つの地球局で閉じます(この可観測性の結果は arXiv:2607.02566 にまとめています)。座標系の実現(lunar-frame-realisation、src/lunar_frame_realise.rs。7 パラメーターの Helmert データム適合 + IAU 2015 WGCCRE の姿勢の結び付け。WGCCRE = IAU Working Group on Cartographic Coordinates and Rotational Elements)。Moonlight/LCNS クラスのサービスボリューム解析(LCNS = Lunar Communications and Navigation Services。moonlight-service-volume、src/lunar_service.rs。DOP / カバレッジ / 可用性 + 一般化した月の ARAIM の HPL/VPL(水平/垂直保護レベル)エンベロープで、gnss_lib_py で確認済みの DOP カーネルと LunaNet の σ_URE≈30 m の仕組みを再利用)。月の差分 PNT(lunar-differential-pnt、src/lunar_dpnt.rs。月の差分 GNSS / 静止衛星型補強システム(SBAS)に相当するもので、厳密な共通モードの時計の相殺 + 基線に対する一次の空間的な非相関。DO-229E の SBAS 保護レベルを再利用。DO-229E は RTCA(旧 Radio Technical Commission for Aeronautics)による SBAS 受信機の最小運用性能規格)。そして、LunaNet/IOAG に整合した相互運用エクスポート(IOAG = Interagency Operations Advisory Group。lunar-interop-export、src/lunar_interop.rs。IAU 2015 の月の天体固定系での CCSDS-OEM(Orbit Ephemeris Message)+ 月の時刻系の往復で、KIF エンベロープで包んだもの)。各要素のエビデンスのティアは検証マトリクスにあります。月座標時、結合 OD + 時計推定器、座標系の実現、サービスボリュームの幾何は VALIDATED です(それぞれ、その行が名指しする独立したオラクルに対して。VLBI 遅延のカーネル経路も同様)。VLBI 観測量、データム欠陥の可観測性の結果、差分 PNT、相互運用エクスポートは MODELLED です。パラメーターは公開情報に基づく例示用の値であり、実際の VLBI/Gateway の追跡に対して確認されているわけではなく、いかなる機関とも提携しておらず、その承認も受けておらず、TRL(技術成熟度レベル)や飛行実績の主張もありません。 |
| 深宇宙・火星 PNT | オープンな電波航法エンジン:反復的な光時間 + Shapiro 相対論的遅延、二方向・片方向・三方向のドップラーとレンジ(Moyer の二区間)、コヒーレントなトランスポンダーのターンアラウンド比、再生型/PN(疑似雑音)測距(CCSDS 414、疑似雑音測距の規格)、Δ-DOR の天球面(CCSDS 506、Delta-DOR の規格)、太陽プラズマ/対流圏/電離圏の媒質。CCSDS-TDM(503)追跡データメッセージの解析と出力。簡約力学の平方根情報フィルター(RTN(動径・横方向・法線)の経験的加速度 + 3 状態の搭載時計 + 火星大気抵抗)で、合成の閉ループで火星 LMO の軌道決定を ≈ 0.2 m まで行います。片道 + 双方向の融合の結合推定器。多天体の力学の中核(Body{μ, re, zonals, gravity, IAU-pole}、火星 GMM-3(Goddard Mars Model 3)重力、IAU の天体固定の火星座標系、差し替え可能な EphemerisProvider の接続部、二部構成のユリウス日 + TT↔TDB(太陽系力学時))。そして、エンドツーエンドの GSE 性能シミュレーター(GSE = 地上支援機器)(幾何 → リンクバジェット → 観測量 → SRIF → 共分散)を備えた mars-pnt 中継 PNT シナリオ(MARCONI の火星静止中継コンステレーション)。シミュレーションで確認済み(共分散 / 閉ループの性能指標)。太陽中心の火星力学は、JPL の DE440 に対して照合しています(137 m @ 1 日アーク、xval/anise-mars-od)。実際の DSN/ESTRACK の追跡データによる確認は、ロードマップに載っています。 |
| 太陽系と任意の天体の PNT | カーネル不要の太陽系全体のエフェメリス(src/ephem.rs、src/ephem_provider.rs):すべての惑星を、JPL の Standish のケプラー要素(Table 1、AD 1800〜2050 年。Tables 2a/2b、BC 3000〜AD 3000 年)から、各惑星の公表された公称誤差とともに求め、地球と月は月の級数で分け、フォボス、ダイモス、イオ、エウロパ、ガニメデ、カリスト、タイタンは JPL の平均要素と IAU(国際天文学連合)の自転モデルから求めます。ICRF(国際天文基準座標系)で任意の天体を他の任意の天体に対して表せます。Body は、GM(重力パラメーター)、半径、公表されている場合は J2(二次の帯状調和係数)、そして十八の天体の IAU の極と本初子午線を保持するようになりました。solar-system 種別は、任意の二つの天体間の位置、速度、定数、光時間と片道/双方向のレンジ(既存の電波航法の光時間ソルバーに、太陽の Shapiro 遅延を加えたもの)と、天体ごとの軌道トラックを報告します。インタラクティブな太陽系を描くのに十分です。body-pnt 種別は、周回機や着陸機を任意の天体の周囲に配置し(scenarios/mars-orbit-pnt.toml、scenarios/europa-surface-pnt.toml)、ローカルな Walker コンステレーション、精度低下率と Gauss–Newton の仕組み、地球からの深宇宙レンジを備えます。JPL Horizons に対して確認済み(DE441、JPL Development Ephemeris 441):Table 1 の水星〜土星と地球は公称誤差の二倍以内(最悪 1.87×)、Tables 2a/2b のすべての八つの惑星(最悪 1.71×)、そして地球–火星/木星の光時間。モデル計算:Table 1 の天王星と海王星(DE441 に対して、明示された誤差の 2.0× と 5.2×)、冥王星、衛星、そして body-pnt の航法結果。 |
| 融合した MEO + LEO PNT | src/leo_fusion/:任意のコンステレーション(Walker シェル、要素セット、GNSS プリセット)と任意の信号(搬送波、チップレート、C/N0 エンベロープ、軌道上の信号レンジ誤差)に対する、システムに依存しない LEO の測位、航法、時刻。出典付きの一ファイルのプリセットも任意で使えます(Xona Pulsar X1/X5、Iridium STL、Starlink の機会信号、CentiSpace、代表的な C 帯システム、ATOMIC のゼロクロックエフェメリスモデル)。leo-pvt:レンジレートからのバッチのドップラー測位(単一衛星および複数衛星、時計ドリフトと速度の状態、単一パスの進行方向/直交方向の幾何と鏡像解)、システムごとのシステム間バイアスと呼び出し側が与える信号ごとのシグマを伴うGNSS + LEO の結合重み付き最小二乗、LEO 衛星の数に対する DOP、極域と北極域のカバレッジ、C/N0 と発振器に対する UTC への LEO 時刻比較。leo-ppp:GNSS のみ、および LEO を加えた場合の、フロート PPP(精密単独測位)EKF(拡張カルマンフィルター)、その収束時間とカイ二乗 NEES の整合性検定。ntn-positioning:帯域幅の Cramér-Rao 限界からの 5G 非地上系ネットワークの測位。確認済み:公表されている Iridium と Xona の数値に対する LEO のドップラーエンベロープ。モデル計算:それ以外で、PPP の傾向は Li et al.(2019)と比較しています。docs/LEO-PNT-FUSION.md を参照してください。 |
| インテグリティ | スナップショットおよび解分離(ARAIM 型)の RAIM(受信機自律インテグリティモニタリング):水平/垂直保護レベル(HPL/VPL)、故障検出と除外、Stanford のインテグリティ図。明示的なインテグリティリスク予算による多重仮説解分離(MHSS)保護レベルで、二コンステレーション/多コンステレーションのコンステレーション全体の故障モードを含みます(EU(欧州連合)の ARAIM / DO-316、航空機ベースの補強を持つ GPS 機上機器の RTCA 性能規格)。実際の GPS + Galileo のスナップショットで実行しています(scenarios/araim-gps-galileo.toml)。保護レベルは、故障モードごとに片側の公称バイアスの射影 b_k = Σ_i|s_i|·b_nom を適用し、インテグリティ支援メッセージからのインテグリティ用シグマ σ_URA(ユーザー測距確度。精度用のシグマ σ_URE(ユーザー測距誤差)とは別)を使います。docs/ARAIM_REFERENCE.md を参照してください。検出カーネル(χ²/非心 χ²/正規のしきい値と K 乗数)は、171 件のケースにわたって SciPy に対して外部で確認済みです(tests/raim_reference.rs)。幾何は gnss_lib_py で確認済みの DOP カーネルを再利用します。ARAIM MHSS のインテグリティリスクの予算配分そのものには、公表された数値のオラクルがなく、正直にモデル計算のままです。 |
| 補強システム(SBAS) | DO-229E の重み付き最小二乗の形式(精密進入と航路上の K 係数)の SBAS / WAAS 保護レベル(WAAS = Wide Area Augmentation System)と、DO-316 の基盤となる L1/L5 二周波電離圏フリーの組み合わせ(L1 と L5 は GPS の民生用信号の二つの帯域。IS-GPS-705 は L5 信号の GPS インターフェース仕様、γ₁₅ ≈ 1.793)— src/sbas.rs。保護レベルのアルゴリズムは、RTKLIB の SBAS-PL フォークに対して外部で確認済みです(RTKLIB = オープンなリアルタイムキネマティック測位ライブラリ。PL = 保護レベル)(zsiki/rtklib_ws waasprotlevels()、Siki & Takács 2017、DO-229D — DO-229 の前の改訂 — App. J)。実際の EGNOS データ(European Geostationary Navigation Overlay Service)で実行し、その HPL を < 2e-3 m まで再現しました(tests/sbas_reference.rs)。gLAB(GNSS Laboratory のツール群)v6.0.0 が同一の規約であることを確認しています。 |
| 時計とタイミング | 二状態のカルマン・ホールドオーバー(Joseph 形式の共分散、NIS/NEES — 正規化イノベーション二乗 / 正規化推定誤差二乗 — の整合性ヘルス)。Allan 系の安定度(ADEV / MDEV / TDEV / HDEV / MTIE — アラン偏差、修正アラン偏差、時間偏差、アダマール偏差、最大時間間隔誤差):雑音タイプ別の信頼区間と、完全な IEEE-1139 の五係数べき乗則適合(IEEE Std 1139、Institute of Electrical and Electronics Engineers の周波数・時間計測の定義)を備えます。推定器は、実機のハードウェアで Stable32 に対して確認済みです。実際の 5071A セシウム一次標準と水素メーザー(556,990 の位相サンプル、16 の平均化係数、OADEV/OHDEV — 重複アラン/アダマール偏差 — を 1e-3 まで。tests/cs5071a_reference.rs)と、標準の Stable32 PHASE.DAT 回帰系列(139 の平均化係数、OADEV/MDEV/TDEV を 1e-3 まで。tests/phasedat_reference.rs)です。ADEV/MDEV/TDEV 推定器と、通信の MTIE ワンダー指標は、NIST SP 1065 の系列について、独立した allantools 2024.06 ライブラリと < 1e-9 までさらにクロスチェックしています(tests/mtie_reference.rs、tests/mdev_tdev_reference.rs)。さらに、幾何補正(Sagnac、GNSS コモンビュー)、そして運用上の時刻比較手法:BIPM(国際度量衡局)の Sagnac 閉形式を伴う TWSTFT(双方向衛星時刻周波数比較)、GNSS コモンビュー、PPP(精密単独測位)電離圏フリー時刻比較、乱流シンチレーションを伴う自由空間の光リンク、最良の寄与時計を下回る逆分散の時計アンサンブル(紙上の)時間尺度です。GNSS 不在環境の時計ホールドオーバー計算機(src/holdover.rs)は、閉形式の van-Loan のコースト誤差の増大を、しきい値までのホールドオーバーの逆算として公開します。時計がフリーランして、時刻誤差が予算を超えるまでの時間を、代表的な古典的時計と量子時計のクラスにわたって求めます。モデル計算であり(多段の clock_state 共分散漸化式と照合)、非常に安定な時計では、厳しいしきい値までのホールドオーバーは、引用された ADEV ではなく、仮定された長 tau の雑音下限で決まることを正直に明記しています。条件付きのタイミング保護レベル(src/tpl.rs)は、ホールドオーバーをスプーフィングへ拡張します。独立したクロスチェックを仮定した未検出の時刻誤差の上限で、k シグマのモニター下限、検出遅延にわたる van-Loan のコースト分散、CUSUM(累積和)の警報までの時間を合成します。実際に記録されたスプーフ(JammerTest 2024)で較正し、cargo run --example tpl_jammertest で再現できます。MODELLED の合成であり(一時間あたりのインテグリティリスクの予算はなし)、検出を条件としており、有限の無条件の上限はありません。 |
| GNSS 観測量の領域 | Klobuchar(放送)と IONEX / TEC グリッド(IONosphere map EXchange format / 全電子数。測定値)の電離圏による疑似距離 / ドップラーの順方向合成:IONEX ファイルのパーサー、地図間の時間補間、薄殻の斜め係数の写像を含みます。Saastamoinen + Niell 対流圏、およびスナップショット RAIM(HPL/VPL)もあります。 |
| レジリエンス | リンクバジェットのジャミング(J/S → 有効 C/N₀ → ロックの喪失 — ジャマー対信号比、搬送波電力対雑音密度比 — で、対ジャミングのスペクトル分離係数 Q は、src/navsignal.rs — Q = 1/(R_c·κ) を介して、実際の信号とジャマーのパワースペクトルから導出されるようになり、以前の代表的な定数に対して CI でクロスチェックされます)。確率的な時刻スプーフ検出器(Neyman–Pearson / χ²₁ のエネルギー検定。閉形式とモンテカルロの P_fa/P_md と、1 − P_md のセキュリティ性能指標(FoM))。RAIM 整合性パリティ検定(同相モードの盲点を正直にモデル化)、RF の AGC 電力(自動利得制御)モニター、信号品質(SQM — 信号品質モニタリング、early-minus-late)モニターを融合する多層スプーフ検出器。そして、量子慣性推測航法の誤差予算(QuantumNavBudget、src/inertial/quantum_imu.rs)で、冷却原子干渉計の白色雑音の速度ランダムウォークを、残留バイアス(独立した AccelModel 積分器と照合)とスケールファクター誤差と合成して、ホールドオーバー中の位置ドリフトの数値にします。これは時計ホールドオーバーの慣性版です。枠組みに整合したレジリエンススコアリングエンジン(src/resilience/)は、アーキテクチャのシミュレーションされた振る舞いを、Kshana 自身の七つのレジリエンスのカテゴリ(DHS の用語ではありません)にわたる次元別のサブスコアに写像し、米国国土安全保障省の Resilient PNT Conformance Framework に整合させたうえで、Dirichlet の重み付け単体と五脅威のアンサンブルのもとで、単一の複合スコアや成熟度レベルの決定の安定性を調べます。Kendall-τ の順位不安定性、top-1 の首位入れ替わり率、同相モードの多様性の崩壊(Hill-N2)を含み、インテグリティのハッシュ付きの保証レポート(手導出のオラクルテスト 35 件)が付きます。cargo run --example resilience_report で再現できます。MODELLED の合成アーキテクチャであり、RPCF v2.0 に整合させた自己評価で、認証ではありません。docs/RESILIENCE-CROSSWALK.md を参照してください。 |
| 受動 RF ジオロケーション | TDOA/FDOA エミッター位置推定(到達時間差・到達周波数差、src/geolocation.rs)— ジャマーやスプーファー(あるいは逆 PNT のための機会信号源)の位置を、受信機ネットワークにまたがる到達時間差の双曲面から、ガウス・ニュートン法による最小二乗で求めます。移動する受信機で到達周波数差を加えると、エミッターの位置と速度を同時に推定でき、位置共分散のクラメール・ラオ下界はネットワークのジオメトリから導出されます。MODELLED(内部整合性のオラクル:順問題→逆問題の往復、J·CRLB = I の恒等式、GDOP の単調性、モンテカルロでの推定量による自身の CRLB の達成)— 点音源の見通し線モデルであり、マルチパス、NLOS(非見通し線)、受信機クロックバイアス、屈折の各項は含みません。 |
| 航法信号とコードトラッキング | リンクバジェットと測定領域の間にある信号レベル(src/navsignal.rs):BPSK-R(n)(矩形チップの二位相偏移変調)とサイン BOC(m,n)(バイナリオフセットキャリア)の単位面積電力スペクトル密度(PSD)、スペクトル分離係数(SSC)κ = ∫ G_s·G_i df(これは、ジャミングモデルが用いる対ジャミング Q(Q = 1/(R_c·κ))を、代表的な定数ではなく実際の信号・ジャマーのスペクトルから導出します)、RMS(ガボール)帯域幅(BOC > BPSK — 測距情報量・クラメール・ラオの尺度)、コヒーレント early–late DLL のコードトラッキング熱雑音ジッタ(DLL = 遅延ロックループ。Kaplan & Hegarty。45 dB-Hz での C/A(GPS の粗/捕捉コード)は サブメートル級)、そしてマルチパス誤差エンベロープ(コヒーレント EML、early-minus-late — ナローコリレーターによる抑圧)。閉形式の基準値(BPSK の自己 SSC = 2/(3·R_c)、単位面積の PSD、C/A ジッタがサブメートル級)に対して、独立した外部の参照と照合して確認済みです。これは信号性能の解析であり、アンテナや RF ペイロードのハードウェア設計ではありません(ペイロードパートナーの役割です)。 |
| 相互運用性 | RINEX-3 マルチ GNSS 放送エフェメリスの取り込み(GPS、Galileo、QZSS — 日本の準天頂衛星システム —、BeiDou の MEO/IGSO — 中軌道/傾斜静止軌道 — は IS-GPS-200(GPS インターフェース仕様)経由、GLONASS(ロシアの全球航法衛星システム)は PZ-90 — ロシアの Parametry Zemli 1990 測地系 — の状態ベクトル RK4 経由)で、衛星コンステレーションのソースとして利用できます(RINEX を入力し、PNT ジオメトリを出力)。RINEX-3 観測値パーサー(疑似距離、搬送波位相、ドップラー、信号強度。4.00 の観測レイアウトは解析できると見込まれますが未試験であり、RINEX 4 の航法ファイルは誤ってデコードせず、名前で拒否します)は、現在では単独測位(SPP)ソルバーに入力されます(pvt)— 実際のコード観測値を入力して実際の受信機位置を出力し、IGS データで確認済みです。さらに、9 次ラグランジュ補間を備えた SP3-c/d 精密エフェメリスの読み書き、飛行力学ツール(GMAT、Orekit、STK — Systems Tool Kit)向けの CCSDS OEM 2.0 + OMM(軌道平均要素メッセージ)の出力、そして深宇宙の電波追跡向けの CCSDS-TDM(503) 追跡データメッセージの解析と出力にも対応します。 |
| ミッション解析(システムエンジニアリング) | 一次近似のミッション設計バジェットで、それぞれ実行可能な kind です:二体問題の打ち上げ・上昇ジオメトリ(launch-window — 打ち上げ方位角 sin Az = cos i/cos lat、最小軌道傾斜角、地球自転の利得、ドッグレッグによる面変更 Δv、日ごとの打ち上げ機会、src/launch.rs)、アレン・エガースの弾道再突入コリドー(reentry — 最大減速度、最大 g 時の速度・高度、最大加熱時の速度、src/reentry.rs)、地球観測のカバレッジジオメトリ(eo-coverage — SMAD(Space Mission Analysis and Design)の宇宙三角形による、観測幅・直下点 GSD(地上サンプル間隔)・オフナディアアクセス・再訪頻度、src/eo_payload.rs)、3-DOF 姿勢・ポインティング誤差バジェット(三自由度、attitude-budget — 最悪ケースの重力傾斜トルク + RSS(二乗和平方根)ポインティングバジェット、src/attitude_budget.rs)、地上局パス予測(passes — AOS/TCA/LOS(信号捕捉・最接近時刻・信号喪失)、最大仰角、アクセス時間、src/passes.rs)、そして CCSDS 401 / DSN 810-005 のリンク方程式(CCSDS の無線周波数・変調規格 / 深宇宙ネットワークのリンク設計ハンドブック)に基づく片方向リンクバジェット(link-budget — FSPL(自由空間伝搬損失)、C/N₀、Eb/N₀(ビットあたりエネルギー対雑音密度比)、マージン、クロージャ、src/linkbudget.rs)。MODELLED の一次近似の解析的バジェットであり、STK/GMAT/Basilisk の下位にあるハードウェア前段の層です。6-DoF や電波計測の代替ではありません。 |
| 意思決定分析とトレードオフ(MCDA) | 四つの手法ファミリーすべてにまたがる完全な多基準意思決定分析(MCDA)スイート(src/mcda/)です。価値集約(WSM、WPM、WASPAS — 加重和モデル、加重積モデル、加重集約和積評価)、理想解との距離(TOPSIS、理想解類似度順位選好法)、妥協計画法(VIKOR、セルビア語の「多基準最適化と妥協解」に由来)、優位関係(PROMETHEE II、評価の充実のための選好順位組織化法、ELECTRE I、フランス語の「現実を表現する消去と選択」に由来)に加え、比率システムの MOORA(比率分析に基づく多目的最適化)と比例型の COPRAS(複合比例評価)を備え、さらに AHP(階層分析法)の一対比較による優先度の重み付け(整合性比)、パレート非劣解フロント、重みの感度分析、多属性効用スコアリングも含みます。九つの集約手法は、独立したサードパーティライブラリである pymcdm(WSM / WPM / WASPAS / MOORA / TOPSIS / VIKOR / PROMETHEE II)と pyDecision(ELECTRE I、COPRAS)を < 1e-9 の範囲で再現し、AHP の優先度ベクトルと整合性比は、Saaty のランダム指標表および SciPy/LAPACK の主固有値ソルバーと < 1e-9 の範囲で一致します(tests/mcda_*_reference.rs)。VALIDATED — トレードスタディエンジンの基盤となる意思決定層です。 |
| 宇宙環境 | 宇宙天気環境モデル(space-weather、src/space_weather.rs):太陽活動(F10.7 / 81 日中心の F10.7a — 10.7 cm の太陽電波フラックス)と地磁気活動(Kp(惑星 K 指数)と、定義上の Kp↔ap 変換表 — ap はその線形の惑星振幅)の指数、それらが駆動するジャッキア 1971 の外気圏温度(公表されている太陽活動の極小・平均・極大に対して確認済み)、そして高度ごとの活動補正済み熱圏中性密度と静的な熱圏中性密度の比較を扱い、静的な USSA76(米国標準大気 1976)大気が省略している太陽周期による密度依存性を表現します。MODELLED:較正された一次近似のスケールハイト結合であり、データで確認された(NRLMSISE — 米国海軍研究所の質量分析・非干渉散乱レーダー外気圏モデル)大気ではありません。 |
| 機械学習の評価とトレードオフ | RF 障害検出の評価テストベッド(impairment-eval、src/impairment_eval.rs):ラベル付きでパラメーターに根拠のある合成コーパス(公称/ジャミング/時刻スプーフィング/位置スプーフィング/マルチパス)、任意の検出器(energy | agc | sqm | parity | fused)を、目標 Pfa(誤警報確率)でのクラスごとの Pd(検出確率)とともに採点する検出器非依存の ROC/AUC(受信者動作特性/曲線下面積)ハーネス、そして分布内と分布外の楽観性ギャップ(分布シフトモード)で構成されます。加えて、量子と古典の PNT トレード(quantum-trade、src/quantum_trade.rs)があり、候補クロックのタイミングと慣性のホールドオーバーの利点を、測定 ADEV 曲線と古典のベースラインを比較して定量化します。長 τ の下限に関する注意事項は成果物に付記され、GNSS 拒否下のレジリエンス対時間のエンベロープも含みます。評価指標(AUC / 混同行列 / Pd-Pmd、Pmd は見逃し確率)は、scikit-learn 1.9.0 と完全一致することを確認済みです。これには実際の ESA OPS-SAT テレメトリ(OPSSAT-AD 異常検出データセット、Ruszczak ら 2025、CC BY 4.0 — クリエイティブ・コモンズ 表示 4.0)上での確認も含まれ、ホールドアウトのテスト分割で Kshana の Mann–Whitney ROC AUC は scikit-learn の roc_auc_score を < 1e-9 の範囲で再現し、透明性のあるピーク数検出器はラベル付き異常を AUC ≈ 0.85 で分離します(tests/opssat_ad_reference.rs)。またトレードエンジンの数値カーネル(ADEV の NNLS — 非負最小二乗 — フィット、χ² 整合性バンド、van-Loan のクロック Q)は scipy 1.17.1 に対して確認済みです。その上に構築されたデバイスの利点に関する数値は、MODELLED の動作特性にとどまり、実地データや IQ(同相/直交サンプル)データでは決してなく、良否の判定もありません。このテストベッドを土台に、より深い楽観性ギャップ研究(src/impairment_study.rs、impairment_ml.rs、eval_stats.rs)では、13 種類の検出器パネル(energy/AGC/SQM/parity と、シード付きのロジスティック回帰および 一つの隠れ層の MLP — 多層パーセプトロン — 検出器)を採点し、置換検定による帰無分布を用いて分布内と分布外のスケーリング則を当てはめ、分布内の統計量から分布外での性能劣化を予測するleave-one-out 予測器を学習します(cargo run --example optimism_study)。ソフトウェア定義受信機のフロントエンド(src/sdr.rs — 生の IQ/IF(中間周波数)→ コリレーターの early/prompt/late タップ → SQM)と実データ取り込みアダプター(src/realdata/ — RINEX、u-blox UBX(u-blox のバイナリプロトコル)、GnssLogger、JammerTest、Yunnan、SatGrid)により、同じ検出器をローカルで用意した記録に対して実行できます(データセットはコミットされていません)。パラメーター不確かさのもとでの量子と古典のレジリエンス交差マップ(src/crossover.rs、cargo run --bin crossover_study)は、結果の図の背後にある慣性とクロックの交差スタディを再生成します。 |
| 量子対応 PNT デモンストレーター | オープンなエンジンの背後にある、実行可能で MODELLED の 三つの応用領域です。それぞれが誠実な TradeEvidence と、代表性・飛行までのギャップの記録(src/representativeness.rs)を出力します:信頼できる量子時刻伝送(quantum-time-transfer、src/timetransfer_chain.rs — 光格子時計 + 光子リンクと CSAC(チップスケール原子時計)+ RF 双方向バジェットを比較するエンドツーエンドの評価で、再利用されるタイミング保護レベル、遅延・リプレイ攻撃に対するセキュリティ FoM(1 − P_md)、クロック異常検出と CUSUM の遅延を含みます)、GNSS なしの量子航法(quantum-gnss-free-nav、src/quantum_nav_od.rs — GNSS 途絶中の、冷却原子干渉計による慣性での惰行と、航法級 INS との比較です。外部の測位がなければ加速度計バイアスは観測不能で、誤差は依然として増大するという点を率直に示します)、そして量子システムの故障・異常検出(quantum-anomaly-detect、src/quantum_faults.rs — 外部で確認済みの eval_stats に由来するブートストラップ CI(信頼区間)付き ROC AUC を備えたラベル付き故障カタログと、固定の誤警報率での最小検出可能故障)です。共有の量子デバイス誤差モデルライブラリ(src/quantum_devices.rs)と統一された量子と古典のトレードハーネス(src/qtrade.rs)がこれらを支えます。それらが依拠する確認済みのカーネル(scikit-learn に対する評価指標、scipy に対するトレードカーネル)は再利用されます。その上に構築されたデバイスの利点に関する数値は MODELLED にとどまり、例示的な公開情報に基づくデバイス・リンクのパラメーターを用い、デバイスのクラスをモデル化したものです。TRL、飛行実績、認証はなく、どの機関による承認もありません。 |
| フルーガルエンジニアリングとインテグリティへの影響 | カバレッジあたりコストの ROI(投資収益率)の視点(src/frugal.rs)— アーキテクチャーのトレードにおける、提供されるカバレッジの単位あたりのコスト — と、モニターの見逃し率をそのインテグリティリスクへの寄与に変換する検出見逃し → インテグリティ影響のマッピング(src/integrity_impact.rs)です。MODELLED の意思決定支援バジェットで、加算的です。 |
| 成果物の交換 | Kshana Interchange Format(KIF)(src/interchange.rs)— シナリオの結果を、その kind、スキーマバージョン、MODELLED/VALIDATED ラベルとともに包む、バージョン付きで自己記述的なエンベロープです。保存された成果物がそれ自体で内容を説明でき、古いエンベロープも前方互換のまま読み取れます。 |
各機能は、Rust API、実行可能なシナリオ kind、またはその両方で利用できます。機能ごとの成熟度 — 確認済み、実行可能、ライブラリ — は docs/CAPABILITY.md で管理しています。機械検査される検証マトリクス(src/verification.rs)は、要件 → モジュール → テスト → オラクル → ステータスの相互参照を描画し、単体テストされた誠実性の不変条件によって、独立した外部のオラクルの裏付けがある場合にのみ確認済みのラベルを許可します。また、Kshana が意図的に提供しないハードウェアおよび PA(プロダクトアシュアランス)の機能も記録します。
四つのセンサーパックの初回公開時の結果
結果#
各シナリオは、約 1.8 時間の GNSS 途絶を通して、量子センサーを古典のセンサーと比較します。数値は再現可能です(scenario + seed + version)。
GNSS が失われたときに量子センサーが得られるもの — clock-holdover · シード 42 · エンジン 0.40.0 で描画。上のすべての図は、ビルドのたびに tests/published_figures_still_reproduce.rs によって現行のエンジンと照合して再確認されています · SVG
優位性は途絶時間と振動に依存し、古典が勝つ損益分岐点も明示されています。技術成熟度のはしご全体にわたって率直に示します(光クロックの数値は地上デモンストレーターの目標値であり、ストロンチウム光クロックはまだ飛行していません):
量子と古典のレジリエンス交差 — クロックホールドオーバーの TRL はしご(上)· 損益分岐の等高線付き慣性での優位性マップ(下)。cargo run --release --bin crossover_study で再生成できます。
GNSS 途絶中の推測航法の位置誤差:量子センサー(青)は仕様付近で平坦にとどまり、古典のセンサー(赤)は数十キロメートルまで発散します。Kshana が scenarios/imu-deadreckoning.toml から生成しました。
| パック | シナリオ | 量子 | 古典 |
|---|---|---|---|
| 1 — クロックホールドオーバー | clock-holdover.toml(20 ns の仕様) |
光クロックは途絶の全期間を保持 | CSAC は途絶の途中で仕様を超過 |
| 2 — 慣性による推測航法 | imu-deadreckoning.toml(100 m の仕様) |
冷却原子:約 41 m、途絶の全期間を保持 | 航法級:約 350 秒で超過 → 数十 km |
| 3 — 時刻伝送(光衛星間リンク) | timetransfer.toml |
光:測距 約 0.3 mm | RF(TWSTFT):測距 約 150 mm |
| 4 — ハイブリッド融合(集大成) | hybrid-pnt.toml |
途絶の全期間にわたる完全な位置とタイミング | 約 350 秒で位置が限界 |
集大成のシナリオは融合の考え方を示します。光衛星間時刻伝送は、古典のクロックでさえロックしたままにするため、古典の構成で弱点となるのは慣性センサーであることが浮き彫りになります。つまり、量子慣性と光タイミングを併用するということです。
GNSS 途絶中のクロックホールドオーバー:光クロック(青)は惰行の全期間にわたって 20 ns の仕様内にとどまり、チップスケールクロック(赤)は途中で仕様を超過します。Kshana が scenarios/clock-holdover.toml から生成しました。
さらに別のシナリオ orbit-gnss-challenged.toml は、手作業で設定した窓ではなく軌道ジオメトリから GNSS の可用性を導出します。GNSS シェルの内側にある宇宙機を、GPS に似たウォーカーコンステレーションに対して伝搬させ、可視衛星数(見通し線、地球による掩蔽、仰角マスク)が各ステップでの測位状態を決めます。一日を通して、ユーザーが測位状態にあるのは約 59% の時間だけです。量子クロックはすべての途切れを通して 5 ns のタイミング解を保持し(可用性 1.0)、チップスケールクロックは ~0.83 にとどまります。
軌道ジオメトリから GNSS の可用性を導出した 一日にわたるタイミング誤差:可視衛星数(見通し線、地球による掩蔽、仰角マスク)が各ステップでの測位状態を決めるため、クロックはすべての途切れを惰行しなければなりません — 光クロックは 5 ns の仕様を保持し、チップスケールクロックは超過します。Kshana が scenarios/orbit-gnss-challenged.toml から生成しました。
衛星コンステレーションは、実際の 二行軌道要素セット(TLE)として与えることもできます。完全な TLE(1 行目 + 2 行目)は、大気抵抗と、約 12 時間の GNSS 軌道で重要となる深宇宙の月・太陽摂動および 12 時間 / 24 時間の共鳴項を含む、完全な SGP4/SDP4 モデルで伝搬され、公式の AIAA 2006-6753 のベクトルに対して最悪ケースで約 4 mm まで確認済みです。scenarios/orbit-sgp4-gps.toml には、運用中の GPS コンステレーションの実際の Celestrak gps-ops スナップショット(2021-07-28、30 機)が同梱されており、有効な TLE チェックサムを必要とします。二行軌道要素セットは、米国宇宙軍/第 18 宇宙防衛飛行隊のカタログによるオープンデータで、Celestrak(Dr T. S. Kelso、celestrak.org)が再配布しています。更新は scripts/fetch_tles.sh で行います。2 行目のみのブロックは解析的な二体問題の伝搬のままです(scenarios/orbit-real-tle.toml)。この 二つの形式は 一つのコンステレーション内で混在させられます。コンステレーションは、受信機がデコードする形式である RINEX-3 GPS 放送エフェメリスレコードのブロックから構築することもでき、IS-GPS-200 のユーザーアルゴリズムで伝搬され、同じジオメトリを通して処理されます(scenarios/orbit-rinex.toml)。
何であり、何でないか(全文)
何であり、何でないか#
これは:PNT スタック全体(軌道ジオメトリ、慣性航法、GNSS/INS 融合、インテグリティ、クロック、タイミング)にわたる、決定論的で依存関係の少ないエンジンです。シナリオ(多くは GNSS 途絶)を実行し、較正されたセンサー誤差モデルを適切な推定器に通して発展させ、結果を運用上の性能指標に照らして採点します。出力は再現可能な JSON(JavaScript Object Notation)の結果と SVG のグラフで、Rust ライブラリ、コマンドラインインターフェース(CLI)、Python 拡張、ブラウザー内の WebAssembly モジュール、AI エージェント向けの Model Context Protocol(MCP)サーバー、または JetBrains IDE(統合開発環境)プラグインから利用できます。
これは次のものではありません:飛行用ハードウェア、量子ペイロードの設計、完全な GNSS 信号受信機、無線周波数(RF)信号シミュレーターやハードウェア・イン・ザ・ループの装置、認証された航空電子製品。また MATLAB/Simulink、STK(Systems Tool Kit)、Orekit の代わりにもなりません。これらと並べて使い、ファイルをやり取りします。量子ハードウェアの忠実度は、このツールではなく公表された誤差モデルに由来します。各機能の詳細な成熟度は docs/CAPABILITY.md に記載されています。
これは(まだ)次のものではありません:完全な原子干渉計の物理エンジン(ほとんどの量子センサーは、公表されたアラン偏差・ノイズバジェットの係数を使います。CAI(冷却原子干渉計)加速度計には第一原理の層があり — マッハ・ツェンダー位相、射影ノイズ、コントラスト減衰、振動結合に加え、コリオリ力と光シフトの系統誤差 — ですが、波面の系統誤差とフリンジのアンビギュイティ解決は、P2(ロードマップのフェーズ 2、量子物理層)のロードマップ層として残っています。ROADMAP.md と docs/QUANTUM-MODELS.md を参照してください)、認証済みの、あるいはハードウェアの GNSS 受信機(実際の RINEX(Receiver Independent Exchange Format)コード観測値から単独の PVT(位置・速度・時刻)測位解を求め — 実際の IGS(国際 GNSS 事業)データで確認済み — IQ 層(kshana iq、0.31.0 以降)は、記録または生成されたベースバンドサンプルをソフトウェアで捕捉・追跡する解析用受信機です。無線ハードウェアを駆動せず、送信もせず、認証された受信機ではなく、搬送波位相測位(RTK や PPP)も行いません)、そして完全なミッション設計スイート(ランベルト / ポークチョップ / 軌道変更 / 軌道決定の構成要素を備えていますが、GMAT(General Mission Analysis Tool)/Orekit の上位にある性能シミュレーション層であり、代替ではありません)。この適用範囲を自ら明示するのは意図的です。第一原理に基づく冷却原子干渉計の誤差バジェット(例:CARIOQA-PMP 級 — Cold Atom Rubidium Interferometry in Orbit for Quantum Accelerometry、Pathfinder Mission Preparation — や X-37B 方式の検証)が必要な場合は、P2 ロードマップを参照し、ご連絡のうえ共同でお取り組みください。
低軌道航法#
低軌道(LEO)衛星は速く、騒がしく通過します。leo-pnt-chain kind は、信号、パスとそのリンク、航法メッセージ、そして融合された位置・速度・時刻(PVT)測位と精密単独測位(PPP)まで、一つのシステムをすべての段階にわたって追跡します。各段階は自らの数値を次の段階へ渡します。docs/LEO-PNT.md を参照してください。
ファミリー別のすべてのシナリオ kind#
エンジンのシナリオ kind を、ファミリーごとに分類したものです。各ファミリーには、kind ごとに 一項目を載せたページ(エンジンによる説明とフィールド、コマンド例、実行から得た主要な数値、その kind を挙げている検証マトリクスの行、エンジン自身が書き出すグラフ)と、それらのグラフの一覧シートがあり、docs/KINDS.md がそれらすべての索引になっています。この表は tools/gen_readme_blocks.py が、各ページは tools/gen_kinds_index.py が生成し、エンジンにどのファミリーにも属さない kind が追加されると、どちらも失敗します。
すべてのコマンド#
kshana <scenario.toml> はシナリオを実行します。他のコマンドはすべてサブコマンドで、kshana --help がそれらすべての使い方を表示します。コマンドは --study、--validate、kinds、example、receiver-trust(live と evidence 付き)、evidence(keygen、verify、attach-timestamp、round-trip)、jammertest(import、score)、trust-telemetry、imu-fit、nmea-scenario、interference-map(adsb、ais、daily、sensitivity、fetch-land)、route-exposure、bench(spec、truth、cases、score、baseline、seal、reveal-check、manifest、verify-manifest、validate、leaderboard)、bench-export、compliance-report、lunanet-afs-check、standards-pack、partner(check)、osnma、iq(scene、acquire、track、sweep、labfit、campaign、conditions、frontend、monitor、inventory、info、extract、convert、decimate)、sky、skyline です。docs/COMMANDS.md に、それぞれの目的、検証済みの例、そのドキュメントページがあります。
すべての利用形態#
一つのエンジンで、どこでも同じ結果が得られます:コマンドライン、Rust ライブラリ、Python、JavaScript と WebAssembly、プラグインコマンドとスキルを備えた MCP サーバー、Kshana Studio(すべてのページがブラウザー内で動作し、インストールは不要で、何もアップロードされません)、ROS 2、Signal K、OpenCPN、GNSS-SDR、gnss_lib_py との連携、systemd、Docker、Grafana のデプロイキット、そして JetBrains プラグインです。docs/ALL-SURFACES.md には、これらの入手方法と、すべてのプラグインコマンド、スキル、Studio ページの名前が載っています。docs/SURFACES.md には、すべてのコマンドと kind について、どのサーフェスが対応し、どれが対応しないかが、その理由とともに記されています。
実行の流れ#
シナリオは TOML(Tom's Obvious, Minimal Language)ファイルで、kind、シード、パラメーターで構成されます。エンジンはこれを実行し、結果、グラフ、レポートを横に書き出し、要求したエクスポートも出力します。
この同梱シナリオは 2 時間を実行します:10 分間は GNSS が利用でき、その後の約 1.8 時間は GNSS が拒否されます。ストロンチウム光格子時計とチップスケール原子時計(CSAC)が、それぞれどれだけの間 20 ns 以内に時刻を保てるかを問います。
kshana example clock-holdover > clock-holdover.toml
kshana clock-holdover.toml
scenario 5ba83a232b94 | quantum holdover 6600s p95 1.20e-4ns integrity 1.000 security n/a (no attack) | classical holdover 2610s p95 19.7ns integrity 1.000 security n/a (no attack)
wrote clock-holdover.result.json, clock-holdover.chart.svg, clock-holdover.report.html, and clock-holdover.report.json
光クロックは 6600 秒の途絶の全期間にわたって 20 ns のバジェットを保ちます。CSAC は 2610 秒間これを保ち、実行時間の 95.6% でバジェット内にあります。これに対して光クロックは 100% です。kshana example は同梱のすべてのシナリオを一覧表示します。
ミッション#
十の分野が、同じエンジンに対して十通りの異なる問いを立てます。それぞれに、出発点となる同梱シナリオがあります。
| 分野 | 最初に試すもの |
|---|---|
| 防衛とセキュリティ | campaign-jam-spoof-holdover-integrity, spoof-meaconing |
| 宇宙、地球軌道 | orbit-gnss-challenged, leo-pnt-end-to-end |
| 月、火星、深宇宙 | lunar-relay-constellation, mars-orbit-pnt |
| 航空とドローン | small-uas-jammed-nav, araim-gps-galileo |
| 海上 | maritime-strait-jamming, maritime-port-approach-coast |
| 道路 | automotive-urban-canyon |
| 鉄道 | rail-tunnel-coast |
| 重要インフラとタイミング | clock-holdover, clock-ensemble |
| 通信と 5G(第五世代移動通信ネットワーク) | telecom-prtc-holdover-24h, leo-vertical-5g-network-timing |
| 科学と研究 | sweep-clock-stability, quantum-pnt-demonstrator.suite |
各分野が立てる問い
| 分野 | 立てる問い | 最初に試すもの |
|---|---|---|
| 防衛とセキュリティ | ジャミングとスプーフィングを受けた状態で、私たちの航法とタイミングはどれだけ信頼できる状態を保てるのか、そしてどの層が仕様内に保ってくれるのか。 | campaign-jam-spoof-holdover-integrity, spoof-meaconing |
| 宇宙:地球軌道 | 自分の宇宙機は十分な数の航法衛星を見られるのか、測位と測位の間にクロックはどれだけ時刻を保てるのか、そして低軌道の航法層は何を加えるのか。 | orbit-gnss-challenged, leo-pnt-end-to-end |
| 月と深宇宙 | 月、火星、さらにその先にある着陸機、ローバー、周回機は、信頼できる位置と時刻を得られるのか。 | lunar-relay-constellation, mars-orbit-pnt |
| 航空とドローン | ジャマーが GNSS を奪った後、無人航空機システム(UAS)はどれだけの間、位置バジェットの範囲内にとどまれるのか、そして自分の経路でインテグリティは利用できるのか。 | small-uas-jammed-nav, araim-gps-galileo |
| 海上 | ジャマーは水上をどこまで届くのか、位置の押し込みは検出されるのか、そして船は港までどれだけ惰行できるのか。 | maritime-strait-jamming, maritime-spoof-position-push, maritime-port-approach-coast |
| 道路と自動車 | 車は、陸橋の下や路側のジャマーの横を通るとき、どれだけずれるのか。 | automotive-urban-canyon |
| 鉄道 | トンネルに入って何秒間、列車は自分がどの線路にいるかを判別できるのか。 | rail-tunnel-coast |
| 重要インフラとタイミング | GNSS の時刻が失われたり偽装されたりした場合、電力網、取引所、データセンターは、トレーサブルな時刻をどれだけの間保てるのか。 | clock-holdover, clock-ensemble |
| 通信と 5G | GNSS の時刻基準が失われた場合、自分のネットワーククロックは ITU-T のマスク内にとどまるのか、そしてどれだけの間とどまるのか。 | telecom-prtc-holdover-24h, leo-vertical-5g-network-timing |
| 科学と研究 | PNT の結果を、シードに至るまで再現し、拡張し、引用できるか。 | sweep-clock-stability, quantum-pnt-demonstrator.suite |
エビデンス#
SGP4 を AIAA 2006-6753 の全 666 個の参照ベクトルと照合し、位置誤差は最悪で 4.12 mm
401 件中 176 件の機能を、独立した外部のオラクルと照合して確認済み。221 件は、率直にモデル計算と表示しています。検証マトリクスの各行は、機能、それを照合するオラクル、その照合を実行するテスト、そしてそれに付くラベルを示します。継続的インテグレーション(CI)により、独立した外部のオラクルなしに機能を VALIDATED と呼ぶことはできません。
| ラベル | 行数 | 意味 |
|---|---|---|
| VALIDATED | 176 | 独立した外部のオラクルが一致している:実データ、独立した実装、または公表された参照ベクトル |
| MODELLED | 221 | 解析的な真値またはシミュレーションの自己整合性と照合し、その旨を明示している |
| PARTNER | 4 | ハードウェアパートナーが所管しており、Kshana にはそのためのオラクルがない |
検査の一部:AIAA(American Institute of Aeronautics and Astronautics)2006-6753 の SGP4(Simplified General Perturbations 4)ベクトルの全 666 個を 4.12 mm で、Cowell 力モデルを Orekit 12.2 に対して 0.08 m で、Galileo を 0.61 m、Swarm-A を 0.10 m で、欧州宇宙機関(ESA)の実際の精密エフェメリスに対して照合しました。テストは src/ のラインカバレッジ約 95 % を保持し、CI では 85 % を下限としています。台帳は docs/VERIFICATION-MATRIX.md で、src/verification.rs から生成されています。401 行すべてのマトリクスと、モデル計算の各行に外部オラクルがない理由は docs/MODELLED-RATIONALE.md にあります。
検証の仕組み、厳選したハイライト表、エビデンスの図
検証、再現性、率直さ#
- すべてのノイズ項は、公表され引用された数値に較正され、標準的な関係式に対して確認されています(クロックにはアラン偏差、慣性には Groves の推測航法誤差増大、時刻伝送には時刻から測距への変換)。項ごとの状態は
docs/VALIDATION.mdでvalidatedまたはnot modeledとして管理しており、確認されていないものを確認済みとして示すことはありません。 - 構造上、再現可能です:
scenario + seed + engine version → identical bits。scripts/check-reproducible.shがこれを強制します。量子と古典の実行は独立したシードを使うため、ノイズは無相関です。 - 成熟度は率直に述べます:光クロックと光リンクの数値は目標値・地上デモンストレーターの結果であり、飛行したものではありません。
すべての図に付くエビデンスラベル#
実行が書き出すすべての図と表には、どこまで信頼できるか、そしてそれが台帳のどの行に基づくかが記されます。結果の JSON には evidence キー、グラフの SVG にはプロットの下の一行(と <metadata id="kshana-evidence"> 要素)、CSV の表には先頭に # evidence: のコメント行が付きます(comment='#' で読み込みます)。そこにはティアである VALIDATED、MODELLED、PARTNER のいずれかと、その実行が使った検証マトリクスの行の ID(VM- と八桁の十六進数)が示されます。ティアはそれらの行のうち最も弱いものになるため、モデル計算の行を一つでも頼っている実行は、確認済みの行がいくつ並んでいても MODELLED とラベル付けされます。ラベルが台帳以上のことを主張することは決してありません。行、ステータス、ID は入力したものではなくマトリクスから読み取られます(docs/VERIFICATION-MATRIX.md、docs/SCHEMA.md)。図にラベルがない場合、またはラベルがマトリクスと食い違う場合は、tests/evidence_labels_doc_sync.rs が失敗します。
検証の概要#
すべての行は、CI の名前付きテストによって強制されます。この表は厳選したハイライトであり、機械検査される完全なマトリクスは 401 行 — 176 が VALIDATED、221 が MODELLED、4 が PARTNER です(src/verification.rs)。完全なエビデンス(そして、まだ確認されていないことを率直に記したもの)は docs/VALIDATION.md に、リリースごとの kshana-validation-summary.html 成果物(cargo run --bin validation_report で生成され、SLSA — Supply-chain Levels for Software Artifacts — の証明付き)にあります。
ステータスの列は、上の検証のはしごに対応して、エビデンスの種類を示します:VALIDATED = 独立した外部のオラクル(実データ、独立したライブラリ、または公表された参照ベクトル)と照合して確認済み。MODELLED = 解析的な真値またはシミュレーションの自己整合性と照合(独立した外部のデータセットなし)。VALIDATED が表すのは照合の方法であり、合否ではありません。実際の外部オラクルに対する率直な未達も VALIDATED のままですが、どのマトリクス行もオラクルとして挙げていない比較(上の LRO — Lunar Reconnaissance Orbiter — のフィット)は MODELLED として示されます。CI の行は、性能指標ではなくプロセスの防止策です。実データの孤立した例(測定されたセシウムクロック、Stable32 の PHASE.DAT、生の入力に再配布ライセンスがない OPS-SAT/ICGEM の検査)はデータゲート式です。入力がない場合、テストはスキップの通知を出力して green のままとなり、公開されている参照数値は tests/fixtures/ にコミットされています。生の入力は、対応する scripts/fetch_*.sh で再取得できます。
| ステータス | 機能 | 一致 | 参照 / オラクル |
|---|---|---|---|
| VALIDATED | SGP4/SDP4 伝搬 | 666/666 ベクトル、最悪で 4.12 mm | AIAA 2006-6753(Vallado tcppver.out)+ 独立した sgp4 クレートとの直接比較 |
| VALIDATED | 座標系 — IAU 2000A/B 章動、IAU 2006/2000A CIO チェーン、ERA | ビット単位で一致(X、Y は 1e-14、s は 1e-18、ERA は 1e-12) | ERFA/SOFA eraXys06a · eraC2ixys · eraEra00 · eraNut00a/b |
| MODELLED | GCRS→ITRS を独立した SPICE エンジンと比較 | 最大 0.028″ → 地上で ≤ 0.86 m、GNSS 軌道で ≤ 3.6 m | ANISE(純 Rust の NAIF/SPICE)、同じ IERS finals2000A EOP、2020–2023 年の 8 エポック(この参照と比較したもの。どの検証マトリクス行も外部オラクルとして挙げていないため、VALIDATED とは表示していません) |
| MODELLED | EGM2008 ジオポテンシャル(次数/位数 70) | 加速度 = ∇V を < 1e-6 で再現。帯球関数への縮退は確認済みの J2 に一致 | NGA EGM2008 係数 + 解析的な ∇V の恒等式 |
| VALIDATED | 重力汎関数の合成(重力支援・GNSS なし航法マップ) | GRS80 の Somigliana 式と γ_e/γ_p を 3.5e-12 で再現。実際の EGM2008 擾乱マップは物理的に妥当(RMS ≈ 26 mGal、次数/位数 70) | GRS80(Moritz 1980、IAG — 国際測地学協会)Somigliana 正規重力 + 実際の ICGEM EGM2008(tests/icgem_gravity_reference.rs) |
| VALIDATED | アラン推定量(ADEV/MDEV/TDEV/HDEV)+ 信頼区間バンド | 参照偏差を再現。χ² バンドが一致 | NIST SP 1065(Riley)、1000 点の表 31/32 |
| VALIDATED | 実際に測定されたセシウムクロックに対するアラン推定量 | OADEV/OHDEV を 1e-3 で再現(観測値 ≤ 3e-5)、平均化係数 16 個 | 実際の 5071A Cs 対 H メーザー、556,990 点に対する Stable32(tests/cs5071a_reference.rs、データゲート式) |
| VALIDATED | 標準の Stable32 PHASE.DAT に対するアラン推定量 | OADEV/MDEV/TDEV を 1e-3 で再現(観測値 ≤ 5e-5)、平均化係数 139 個 | PHASE.DAT に対する Stable32 の参照偏差(tests/phasedat_reference.rs、データゲート式) |
| MODELLED | IMU 誤差モデル — ARW / VRW / バイアス不安定性 | < 5 % で復元(バイアス不安定性 < 15 %) | Analog Devices ADIS16465 データシート。NaveGo の参照プロファイル |
| VALIDATED | 数値 Cowell 伝搬器 + 力モデル(保守的なティア) | 位置誤差は最悪で 0.08 m、24 時間、278 エポック(LEO + GTO) | Orekit 12.2 NumericalPropagator/DormandPrince853(CS GROUP)、tests/numerical_cowell_propagator_reference.rs |
| MODELLED | Cowell の大気抵抗ティア + 太陽・月の絶対エフェメリスと密度の入力 | 大気抵抗ティアの特性は ≈ 333 m / 24 時間。摂動なしの場合は、普遍変数によるケプラー解とサブメートル級で一致し、エネルギーと運動量は ~1e-9 | 内蔵の低精度エフェメリス + 解析的なケプラー解 |
| MODELLED | ランベルト · ツィオルコフスキー · ポークチョップ | 二体問題の真値への往復。ΔV < 0.01 % | Izzo 2015 · ロケット方程式 · 解析的なホーマン下限 |
| MODELLED | 軌道決定(ガウス・ニュートン法のバッチ) | ノイズなしでサブメートル / mm·s⁻¹。5 m のノイズフロアで ~2 m | 二体問題 + J2 を RK4 の弧にわたって |
| MODELLED | Galileo の精密エフェメリスに対する力モデルのフィット(全弧) | 0.61 m 3 次元 RMS、24 時間、次数/位数 70、力モデルのみ | ESA/ESOC ESA0MGNFIN の最終軌道(E11)、実際の finals2000A EOP(この参照と比較したもの。どの検証マトリクス行も外部オラクルとして挙げていないため、VALIDATED とは表示していません) |
| MODELLED | Swarm-A の精密エフェメリスに対する力モデルのフィット(縮約動力学) | 0.10 m 3 次元 RMS(経験的ティアの上限であり、測定値ではありません) | ESA SW_OPER_SP3ACOM_2_ 精密軌道(この参照と比較したもの。どの検証マトリクス行も外部オラクルとして挙げていないため、VALIDATED とは表示していません) |
| MODELLED | LRO(月)に対する力モデルのフィット(率直な未達) | 縮約動力学で 6.67 m、目標の 5 m を上回る | JPL Horizons の LRO(NAIF −85)+ GRAIL(Gravity Recovery and Interior Laboratory)GRGM660PRIM(この参照と比較したもの。どの検証マトリクス行も外部オラクルとして挙げていないため、VALIDATED とは表示していません) |
| MODELLED | 深宇宙の火星 OD(縮約動力学 SRIF) | 火星 LMO で ≈ 0.2 m(シミュレーションの性能指標であり、実ミッションではありません) | 合成のクローズドループ OD — 推定器の仕組みの確認 |
| MODELLED | 太陽中心の火星の力学を JPL DE440 と比較 | 1 日の弧で 137 m(弧とともに増大 = n 体の効果が未モデル化) | ANISE 経由の JPL DE440(xval/anise-mars-od、カーネルゲート式)(この参照と比較したもの。どの検証マトリクス行も外部オラクルとして挙げていないため、VALIDATED とは表示していません) |
| VALIDATED | 測量済みの IGS 座標に対する単独測位(実際の観測値) | 5.7 m 3 次元 RMS / 1.1 m 水平、二周波電離層フリーのコード SPP | IGS 観測局 ABMF の測量値 + GPS 放送エフェメリス、2018-05-13(tests/pvt_abmf.rs) |
| MODELLED | 密結合 GNSS/INS UKF | 120 秒の途絶を含む 30 分間の LEO パスで 0.77 m RMS | 力モデルによる惰行、手計算で導出 |
| MODELLED | GPS 拒否下の重力マップ航法 | ~70 km の INS ドリフト → ~145 m まで回復 | ESA NAVISP Quantum Wayfarer の目標 |
| MODELLED | 地形参照航法(TERCOM/SITAN) | 70 km のドリフト → < 500 m(グリッド分解能の下限 ~140 m) | SRTM .hgt DEM。手動で注入したドリフト(非循環的な検査) |
| MODELLED | IGRF-14 主磁場(次数/位数 13) | 磁極 ~80.7°N、双極子 ~29.7 µT、物理的に妥当な 22–67 µT の範囲 | IAGA(国際地磁気・超高層物理学協会)igrf14coeffs.txt(Schmidt 半正規化) |
| MODELLED | 航法信号の変調とコードトラッキング | BPSK の自己 SSC = 2/(3·R_c)。単位面積の PSD。45 dB-Hz での C/A DLL ジッタはサブメートル級 | 閉形式の SSC/PSD の基準値 + Kaplan & Hegarty の DLL 熱雑音の式 |
| MODELLED | CR3BP のハロー/NRHO 微分修正器 | STM = 有限差分。軌道は機械精度で閉じる。L2 の 9:2 NRHO は ≈ 6.57 日 / 近月点 ≈ 3,250 km | 有限差分による STM の検査 + 公表されている L2 南側の 9:2 NRHO(≈ 6.56 日 / ≈ 3,370 km)— CR3BP であり、実際の Gateway のエフェメリスではありません |
| MODELLED | ARAIM 二重コンステレーションのインテグリティ | 実際の GPS + Galileo でのコンステレーション全体の故障モード | EU ARAIM TR(技術報告書)/ DO-316。Celestrak gps-ops 2021-07-28(この参照と比較したもの。どの検証マトリクス行も外部オラクルとして挙げていないため、VALIDATED とは表示していません) |
| VALIDATED | GNSS ジオメトリ / DOP(GDOP/PDOP/HDOP/VDOP/TDOP) | 8 通りのジオメトリ(良条件 → ほぼ特異)で相対 1e-6 まで一致 | gnss_lib_py 1.0.4(Stanford NAV Lab)— 独立したライブラリ(tests/dop_reference.rs) |
| VALIDATED | ML 検出器の評価指標(AUC/ROC/混同行列/Pd-Pmd/適合率/F1) | 5 つのデータセット × 24 個のしきい値で、件数は完全一致、かつ < 1e-9 | scikit-learn 1.9.0(Pedregosa ら、JMLR — Journal of Machine Learning Research — 2011)— 独立したライブラリ(tests/eval_metrics_reference.rs) |
| VALIDATED | 実際の ESA OPS-SAT テレメトリでの異常検出 ROC AUC | AUC は scikit-learn を < 1e-9 で再現。ラベル付きテスト分割でのピーク数検出器の AUC は ≈ 0.85 | OPSSAT-AD のテスト分割(Ruszczak ら 2025、CC BY 4.0)に対する scikit-learn の roc_auc_score — 実際の OPS-SAT テレメトリ(tests/opssat_ad_reference.rs) |
| VALIDATED | 量子トレードの数値カーネル(ADEV の NNLS フィット · χ² 整合性バンド · van-Loan のクロック Q) | NNLS + Q は完全一致。χ² は、動作時の自由度 ≥ 48 で < 5e-4 | scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm(tests/scipy_reference.rs) |
| VALIDATED | MTIE / MDEV / TDEV の通信ワンダー指標(ITU-T G.810/G.823/G.8261/G.811 — 国際電気通信連合電気通信標準化部門の勧告) | NIST SP 1065 の LCG(線形合同法)系列に対して、MTIE(平均化係数 9 個、ビット単位で一致)と MDEV + TDEV(係数 8 個、相対 < 1e-9) | allantools 2024.06 mtie / mdev / tdev — 独立したライブラリ(tests/mtie_reference.rs、tests/mdev_tdev_reference.rs) |
| VALIDATED | MCDA トレードスタディ手法 — 四つの意思決定ファミリーすべて、外部で確認済みの 九つの集約手法(WSM · WPM · WASPAS · MOORA · COPRAS · TOPSIS · VIKOR · PROMETHEE II · ELECTRE I)に加え、AHP の一対比較による優先度の重み付け | スコア / 順位 / 一致度行列を < 1e-9 で再現 | pymcdm + pyDecision(独立したサードパーティの MCDA ライブラリ)+ Saaty の RI(ランダム指標)/ SciPy-LAPACK の固有値計算(tests/mcda_*_reference.rs) |
| VALIDATED | 軌道と搬送波から求める LEO のドップラーエンベロープ | Iridium の最大値は、公表されている ±36 kHz の 5 % 以内。Xona Pulsar X1 は、公表されている 32–34 kHz の範囲内 | RNTF の LEO PNT テスト結果。Leclère、Marathe & Reid、arXiv:2509.19551(tests/leo_doppler_reference.rs) |
| MODELLED | LEO 補強による PPP の収束 | LEO 衛星 60 / 96 / 192 / 288 機で 7.4 → 4.8 / 3.2 / 2.7 / 2.3 分、単調。フィルターの NEES は χ² バンド内 | 傾向を Li ら、J. Geod. 93:749(2019)(9.6 → 7.0 / 3.2 / 2.1 / 1.3 分)と比較。コンステレーションとノイズは再現していません |
| MODELLED | 条件付きタイミング保護レベル(スプーフィング下の、ホールドオーバーで制限される未検出の時刻誤差) | 合成は、多段の clock_state 共分散再帰を再現。実際に記録されたスプーフィングで較正 |
JammerTest 2024(Zenodo 15911589)のスカラー値 + van-Loan / CUSUM の閉形式(examples/tpl_jammertest) |
| MODELLED | PNT レジリエンスのスコアリング + 判断の不安定性 | 手計算で導出したオラクルテストが 35 件。バイト単位で決定論的な研究成果物(固定シード) | DHS RPCF v2.0 のマッピング + Dirichlet / Kendall-τ / Hill-N2 の閉形式 — 合成のアーキテクチャーであり、認証ではありません |
| MODELLED | RF 障害の楽観性ギャップ研究(スケーリング則 + leave-one-out 予測器) | 置換検定による帰無分布での有意性。バイト単位で決定論的な成果物(シード 5 個) | 合成でパラメーターに根拠のあるコーパス — 評価の指標は scikit-learn に対して VALIDATED(上記)。この研究は MODELLED |
| CI | クロスプラットフォームの再現性 | 3 つの OS(オペレーティングシステム)で、ビット単位で同一の入力 + 形状のゴールデンファイル | Linux / macOS / Windows の CI マトリクス、SHA-256 ゴールデンファイル |
| CI | テストカバレッジ | src/*_data.rs と src/main.rs を除く src/ で ~95 % のライン、下限は ≥ 85 % |
cargo-tarpaulin(LLVM エンジン) |
機能がラベルを得る仕組み — CI が強制する不変条件:外部オラクルがなければ Validated にはなれません · SVG
上:Validated のすべての行は、構造上、外部データセットに裏付けられています。下:SGP4 はすべての領域で公式の参照と一致します(最悪で 4.12 mm)。SVG · SVG
確認済み 176 · モデル計算 221 · パートナー担当 4 — SVG
機能の領域#
公開マップのすべての機能を、領域別に、台帳のラベルとともに示します。領域の表は web/capabilities.json から tools/gen_readme_blocks.py が書き出すもので、Studio の「すべてのマップ」が読むのと同じファイルです。
領域ごとにすべての機能とそのラベルを載せた完全な表は docs/CAPABILITY-DOMAINS.md です。
インストール#
一行でコマンドラインツールを入手できます:cargo install kshana。すべてのチャネルが、同じタグ付きコミットから v0.40.0 を配布します。
| チャンネル | インストール | ガイド |
|---|---|---|
| ブラウザーで試す | https://kshana.dev を開く | Studio ガイド |
| コマンドライン(Rust) | cargo install kshana |
コマンドラインの使い方 |
| Rust ライブラリ | cargo add kshana |
docs.rs の API リファレンス |
| Python | pip install kshana |
Python API ガイド |
| JavaScript と WebAssembly | npm install kshana |
npm と WebAssembly のガイド |
| AI アシスタント(MCP サーバー、cargo) | cargo install kshana-mcp |
MCP サーバーガイド |
| Docker イメージ | docker run --rm -i ghcr.io/ashfordeou/kshana-mcp |
MCP サーバーガイド:Docker |
| Cursor(ワンクリック) | Cursor に追加(npx) · Cursor に追加(Docker) · npx -y kshana-mcp@0.40.0 |
MCP のインストール用スニペット一覧 |
| VS Code(ワンクリック) | VS Code にインストール(npx) · VS Code にインストール(Docker) · npx -y kshana-mcp@0.40.0 |
MCP のインストール用スニペット一覧 |
| npx | npx -y kshana-mcp@0.40.0 |
MCP のインストール用スニペット一覧 |
| uvx / pipx | uvx kshana-mcp==0.40.0 |
MCP のインストール用スニペット一覧 |
| Homebrew | brew install ashfordeOU/tap/kshana-mcp |
MCP のインストール用スニペット一覧 |
| Scoop | scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp |
MCP のインストール用スニペット一覧 |
| winget | winget install AshfordeOU.KshanaMcp |
MCP のインストール用スニペット一覧 |
| ビルド済みバイナリ | リリースから kshana-mcp-<target> をダウンロードし、SHA256SUMS と照合してください | MCP のインストール用スニペット一覧 |
| 公式 MCP レジストリ | io.github.ashfordeOU/kshana-mcp を検索 | MCP のインストール用スニペット一覧 |
| リモート(ストリーマブル HTTP)、セルフホスト | kshana-mcp --http 127.0.0.1:8080 |
セルフホストガイド |
| JetBrains IDE プラグイン | Settings → Plugins → Marketplace → "Kshana" を検索(プラグイン ID は dev.kshana.ide) | プラグインガイド |
| Signal K プラグイン | npm install signalk-kshana-trust |
Signal K プラグインガイド |
| OpenCPN プラグイン | リリースからプラグインの tarball をダウンロード | OpenCPN カタログへの申請 |
| Grafana ダッシュボード | リリースから kshana-grafana-*.json をインポート | ダッシュボードのソース |
| リファレンスビルドのイメージ | docker pull ghcr.io/ashfordeou/kshana-reference-build |
船舶向けインテグレーション |
JetBrains Marketplace の Kshana Rust 1.88 以降でビルドできます(Cargo.toml の rust-version)
MCP は Model Context Protocol です。リリースの固定には cargo install kshana --version 0.40.0、pip install kshana==0.40.0、npm install kshana@0.40.0 を使います。ソースからビルドするには、Reference の Install and build を参照してください。
Python と WebAssembly からシナリオを実行する
import json, kshana
toml = open("clock-holdover.toml").read()
result = json.loads(kshana.run(toml))
print(kshana.version(), result["quantum"]["fom"]["holdover_s"], result["classical"]["fom"]["holdover_s"])
# 0.40.0 6600.0 2610.0
run のほかに、このモジュールは run_full(JSON、SVG、一行の要約を一度に返します)、run_typed、validate_toml、list_kinds / scenario_kinds、error_kind を公開しています。docs/PYTHON_API.md を参照してください。
npm パッケージは、エンジン全体を WebAssembly にコンパイルしたものです。Node.js ではバイナリを initSync に渡し、ブラウザーでは await init() がそれを取得します(README.npm.md を参照)。
import { readFileSync } from "node:fs";
import { createRequire } from "node:module";
import { initSync, run, summary, version } from "kshana";
const wasm = createRequire(import.meta.url).resolve("kshana/kshana_bg.wasm");
initSync({ module: readFileSync(wasm) });
const toml = readFileSync("clock-holdover.toml", "utf8");
const result = JSON.parse(run(toml));
console.log(version(), result.quantum.fom.holdover_s, result.classical.fom.holdover_s);
// 0.40.0 6600 2610
console.log(summary(toml));
アーキテクチャ#
中心には一つのオープンなエンジンがあり、すべてのサーフェスがそれを実行します:コマンドライン、Rust ライブラリ、Python、WebAssembly と Kshana Studio、MCP サーバー、Docker イメージ、JetBrains プラグインです。同じシナリオファイルは、どのサーフェスでも同じバイト列を出力します。Kshana Pro は、エンジンに依存し、エンジンをフォークしない独立したオーバーレイとして、その上に位置します。
エンジンの内部:ドメイン層と検証台帳
一つのエンジン、多くの入口。単一の Rust コア(kshana)がすべてのシナリオを実行し、CLI、Python 拡張、ブラウザー内の WebAssembly モジュール、AI エージェント向けの MCP サーバー、JetBrains IDE プラグインを通して到達でき、そのすべてが一つの api::run_toml ディスパッチに収束します。内部では、センサーパックが共通の誤差モデルインターフェースに接続し、その傍らに、座標系の層(IAU 2006/2000A の歳差・章動と、CIO に基づく GCRS↔ITRS の変換)、軌道力学・数値計算の層(解析的な SGP4/SDP4 と、EGM2008/摂動の力モデルを備えた数値 Cowell 伝搬器、軌道変更の設計、軌道決定)、インテグリティ/GNSS の層(RAIM/ARAIM、SBAS、測定領域、ジャミング、地球・月間空間)、融合 / 代替 PNT の層(GNSS/INS 推定器と、重力・地形・磁気のマップマッチャー)、深宇宙・月の層(電波計測による火星 PNT と月 PNT スイートで、各要素のエビデンスのティアはマトリクスにあります — LTC 時刻、VLBI、OD とクロックの同時推定、座標系の実現、サービスボリューム、差分 PNT、相互運用)、ミッション解析の層(打ち上げ / 再突入 / カバレッジ / ポインティング / パス / リンクのバジェットと宇宙天気環境)、そしてオープンなレジリエンスと機械学習のスタディ層(RPCF レジリエンススコアリング、RF 障害の楽観性ギャップ、量子対応 PNT デモンストレーター)があり、その再現可能な成果物は確認済みのカーネルの上に載っています。
コアの横には、ワークスペースから除外された独立した二つのクレートがあります — mcp/kshana-mcp(MCP サーバー。edition-2024 の rmcp SDK 上に構築)と xval/anise-frames(ANISE/SPICE の座標系クロスチェック。MPL-2.0(Mozilla Public License 2.0)の依存関係を引き込みます)— これらは、ルートの Cargo.toml の exclude リストによって、公開クレートの依存グラフ、Cargo.lock、ライセンスゲート、MSRV(サポートされる最小の Rust バージョン)のビルドの外に置かれています。JetBrains プラグイン(ide/jetbrains)は別の Kotlin プロジェクトです。図の全体は docs/ARCHITECTURE.md を参照してください。
描画された図(エンジンの流れ、モジュールマップ、配布)は docs/ARCHITECTURE.md にあります。
図#
図は docs/diagrams/ にある Mermaid のソースで、SVG と PNG に描画されて docs/assets/diagrams/ に出力されます(Linux では tools/render-diagram-chromium.sh <name>、それ以外では他の二つの render-diagram スクリプト)。記録により、各 PNG はその元になった SVG と結び付けられています。テストは、記載された数を固定しています。上のセクションのグラフはツールがエンジンの実行から描いたもので、これらの図は各部分がどう組み合わさるかを示します。

一つのディスパッチ、一つのエンジン、再現可能な出力 · SVG · ソース system-overview.mmd

すべてのサーフェスが同じエンジンから · SVG · ソース surfaces.mmd

実行の内側のループ · SVG · ソース engine-flow.mmd

受信機のログから信頼スコアへ、そしてそれを使うもの · SVG · ソース trust-flow.mmd

シナリオから署名付きパックへ。Kshana は信号を生成も再生もしません · SVG · ソース lab-round-trip.mmd

Studio がローカルでどう動くか · SVG · ソース studio-flow.mmd

ローカルのゲートから検証済みのリリースまで、およびサイトのみの経路を含むテストとリリースの流れ · SVG · ソース release-flow.mmd · docs/RELEASING.md

コードの所在 · SVG · ソース module-map.mmd

何がどこで配布され、何がそれを検査するか · SVG · ソース distribution.mmd
AI アシスタント#
kshana-mcp は MCP サーバーです。アシスタントは実際のエンジンを実行してその JSON を読み戻すため、数学を推測する必要がありません。49 個のツールはそれぞれ kshana ライブラリの公開関数を薄く包んだもので、シミュレーションのロジックはサーバーの中にありません。
MCP サーバーをインストールする#
助言のみ:型式承認を受けた航法装置ではなく、航行の責任は引き続き運用者にあります。サーバーはお使いのコンピューター上で動作し、Ashforde OÜ には何も送信されません。
サードパーティの AI クライアントに言及する一節はここでは省いています。GitHub の README.md にあります。
| チャンネル | コマンドまたはボタン | 必要なもの | 固定した形式 |
|---|---|---|---|
| Cursor(ワンクリック) | npx (Node) · Docker | Node、または Docker | kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0 |
| VS Code(ワンクリック) | npx (Node) · Docker · Insiders (npx) | Node、または Docker | kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0 |
| npx | npx -y kshana-mcp@0.40.0 |
Node 18+ | kshana-mcp@0.40.0 |
| uvx / pipx | uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 |
Python 3.9+(uv または pipx を使用) | kshana-mcp==0.40.0 |
| Docker | docker run -i --rm ghcr.io/ashfordeou/kshana-mcp:0.40.0 |
Docker | ghcr.io/ashfordeou/kshana-mcp:0.40.0 |
| Homebrew | brew install ashfordeOU/tap/kshana-mcp |
brew | v0.40.0 用のフォーミュラ |
| Scoop | scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket、続けてscoop install kshana-mcp |
Scoop(Windows) | v0.40.0 用のマニフェスト |
| winget | winget install AshfordeOU.KshanaMcp |
winget(Windows) | --version 0.40.0 |
| cargo | cargo install kshana-mcp --version 0.40.0 |
Rust 1.88+ | kshana-mcp 0.40.0 |
| ビルド済みバイナリ | リリースページ:kshana-mcp(Linux x86-64)、kshana-mcp-<target>[.exe]。SHA256SUMSとgh attestation verifyで検証します |
なし | v0.40.0 |
| MCP レジストリ | io.github.ashfordeOU/kshana-mcp(レジストリ対応のクライアントが検出) |
レジストリ対応のクライアント | 0.40.0 |
| リモート(ストリーム可能な HTTP) | kshana-mcp --http 127.0.0.1:8080、セルフホスト:docs/deploy/mcp-http.md を参照 |
ご自身のホスト | v0.40.0 |
Glama 上の kshana-mcp と、その MCP サーバー品質スコア
サードパーティの AI クライアントに言及する一節はここでは省いています。GitHub の README.md にあります。
クライアントごとのセットアップは docs/integrations.md にあります。このサーバーは、公式の MCP レジストリに io.github.ashfordeOU/kshana-mcp として登録されています。
49 個のツール
シナリオとレポート
| ツール | 内容 |
|---|---|
run_scenario |
TOML(Tom's Obvious, Minimal Language)の定義からシナリオを実行する |
list_scenario_kinds |
説明と必須・任意フィールド付きの 92 種類の組み込みシナリオ kind。エージェントが有効なシナリオを組み立てられるようにします |
validate_scenario |
事前検査:実行せずに、TOML を解析してその kind を検出する |
list_example_scenarios |
同梱の参照シナリオを JSON で |
get_example_scenario |
同梱の参照シナリオ一つの TOML テキストで、scenarios/ 配下のファイルとバイト単位で同一 |
report_scenario |
シナリオを実行してそのレポートを返す |
animate_scenario |
シナリオを実行して、その時系列をアニメーションとして返す |
sky_geometry |
方位依存のスカイラインのもとでのスカイジオメトリ:見える衛星と隠れた衛星、DOP、東・北・上の共分散、水平誤差楕円。または出典付きのスカイラインのプリセット |
エクスポートと相互運用性
| ツール | 内容 |
|---|---|
list_export_formats |
どの相互運用フォーマット(czml、kml、geojson、stk、sigmf)がシナリオに適用できるか、適用できない場合はその理由、そして各ライターが従う仕様 |
export_interop |
シナリオを CZML(Cesium Language)、KML(Keyhole Markup Language)、GeoJSON、STK(Systems Tool Kit)のエフェメリス .e、または SigMF(Signal Metadata |
import_route |
GeoJSON の LineString 経路を、ウェイポイントの軌跡を飛行するシナリオ(terrain-nav、terrain-slam、gravity-map、combined-altpnt)に書き込み、新しい TOML を返す |
export_sp3 |
orbit シナリオのコンステレーションを、SP3-c(Standard Product 3、リビジョン c)の精密エフェメリスとしてエクスポートする |
export_omm |
orbit シナリオの軌道要素を、CCSDS(宇宙データシステム諮問委員会)502.0-B-2 OMM(軌道平均要素メッセージ)カタログとしてエクスポートする |
export_oem |
orbit シナリオの状態系列を、CCSDS OEM(軌道エフェメリスメッセージ)2.0 のエフェメリスとしてエクスポートする — TEME(真赤道・平均春分点)の位置と |
export_table_csv |
シナリオを実行して、その再現性テーブルを CSV(カンマ区切り値)で返す — CLI(コマンドラインインターフェース)が <scenario>.table.csv として書き出す、バイト単位で安定したテーブル |
export_test_bench |
ラボ用 GNSS シミュレーターのための、シナリオの機体の動きとイベント(kshana bench-export) |
受信機と船舶の信頼性
| ツール | 内容 |
|---|---|
assess_receiver_log |
実際の GNSS(全球測位衛星システム)受信機のログを、信頼性の観点で評価する |
assess_vessel_stream |
上限付きの NMEA 0183 抜粋(最大 2 MiB、20,000 エポック)を採点する |
assess_vessel_log |
船舶の NMEA 0183 ログ(最大 4 MiB)をバッチ実行として処理する。船舶の制限値はセッションの TOML に記載する |
create_evidence_pack |
船舶のログの一つの区間に対する、署名付きエビデンスパック(kshana receiver-trust evidence) |
attach_evidence_timestamp |
RFC 3161 のタイムスタンプトークン(.tsr のバイト列の base64)を、メモリ上でパックに結び付ける(kshana evidence attach-timestamp) |
verify_evidence_pack |
パックを検証する(kshana evidence verify) |
generate_training_nmea |
乗組員の訓練用に、nmea-scenario の TOML(ジャミング、位置のドラッグオフ、時刻スプーフィング、リプレイ遅延)から生成した合成のブリッジ NMEA 0183。教官ログ(kshana-nmea-training/1)付き |
build_interference_map |
ADS-B または AIS の位置報告を CSV テキストとして与えて作る GNSS 干渉マップ(最大 4 MiB) |
route_exposure |
一つ以上の干渉マップにおける、経路の長さのうち、劣化、非劣化、未評価、未観測のセルが占める割合。日付範囲を指定することもできる |
trust_telemetry |
信頼ストリーム(JSON Lines)または receiver-trust の結果を、Prometheus テキスト、CEF または LEEF の syslog 行、あるいは OTLP の JSON ペイロードとして描画する。kshana trust-telemetry のエンコーダー付き |
jammertest_import |
公開されている Jammertest のテストカタログと送信計画(NPRA/jammertest-plan、MIT)を、予定された真値(kshana jammertest import)として読み込みます:一つのテストエリアのスロットが、各ラベルにカタログ ID と年を含む受信機信頼性のイベントになります。予定されたスロットであり、記録された実際の送信時刻ではありません。計画の連絡先フィールドは読みません。MODELLED。docs/JAMMERTEST.mdを参照してください。 |
jammertest_score |
受信機のログを、そのスケジュールに照らして採点します(kshana jammertest score):テストごとの検出遅延、見逃しのアラーム、復帰までの時間、そしてすべてのスロットの外での誤警報。テキストのログはlog、バイナリ(ubx、sbf)はlog_base64として渡します。署名つきパックには鍵が必要です:コマンドラインで指定します。助言のみ。MODELLED。 |
fit_imu_log |
静止した IMU のログ(CSV または EuRoC)から、アラン偏差によってhybridおよびfusionシナリオの加速度計とジャイロのパラメーターをフィットし、そのまま貼り付けられる[accel_classical]テーブルとログの SHA-256(kshana imu-fit)を返します。テキストを入力し、JSON を出力します。MODELLED。 |
GNSS IQ(作業ディレクトリのファイル。HTTP モードでは無効)
| ツール | 内容 |
|---|---|
iq_signals |
GNSS IQ 層のセットアップ |
iq_info |
作業ディレクトリにある一つの IQ(同相・直交)記録を、処理せずに記述する |
iq_scene |
複数衛星の GNSS IQ シーンを作業ディレクトリに生成する(kshana iq scene) |
iq_acquire |
記録に対する一つ以上の PRN(疑似ランダム雑音符号)の FFT(高速フーリエ変換)による捕捉(kshana iq acquire)。必要に応じてフロントエンドの段を前置できる |
iq_track |
捕捉してから、DLL/PLL/FLL(遅延・位相・周波数ロックループ)のバンクで追跡する(kshana iq track)。ループは `kshana.loop-desig |
iq_frontend |
受信機のフロントエンドと干渉軽減の DSP(デジタル信号処理 |
iq_sweep |
作業ディレクトリにある一つの IQ 記録を、複数の追跡ループ設計にわたって再生する(kshana iq sweep) |
iq_monitor |
作業ディレクトリにある IQ 記録に対して、干渉とスプーフィングの検出モニターを実行する(kshana iq monitor) |
iq_labfit |
追跡ループのロックロスモデルを、ログがインラインで与えられた iq-labfit シナリオ(text または base64)によるラボの実行に当てはめる(kshana iq labfit |
iq_test_conditions |
テキストとして与えられた kshana.test-conditions/1 ファイルを検証し、解決された条件とそのハッシュを返す |
iq_campaign |
ラボでの再生キャンペーンを実行する(kshana iq campaign) |
iq_campaign_status |
キャンペーンの出力フォルダーの進捗 |
compliance のマッピング
| ツール | 内容 |
|---|---|
compliance_report |
テキストとして与えられた結果ドキュメントから埋める、公開フレームワークへのマッピング(kshana compliance-report) |
compliance_mapping |
静的なマッピング表(または sources を付けると、それらが引用するソースドキュメントをバージョンと URL 付きで)を、同じ文言を冒頭に付けた Markdown として |
list_standards_packs |
スタンダードパック(kshana standards-pack list):DHS の Resilient PNT フレームワークの試験プロファイル、IMO MSC.1/Circ.1575、ICAO Doc 9849 付属書 F に対する、採点されるシナリオセット |
run_standards_pack |
実行前に定めた合格基準に対して実行する一つのパック:各試験は MET、NOT MET、NEEDS INPUT のいずれかになります。MODELLED であり、いかなる製品も格付けしません |
lunanet_afs_check |
LunaNet Augmented Forward Signal を LNIS V5 AD1 Volume A(LSIS-AFS V1.0)に照らして検査する:符号は印刷された表と、またはシンボル列はフレーム形式と照合する。サブフレーム 2 から 4 の LDPC と CRC-24Q は検証されません |
create_round_trip_pack |
署名付きのラボ往復パック:シナリオ、kshana.test-conditions/1 ドキュメント、受信機ログ、スコアをハッシュで結び付けたもの |
ベンチマーク
| ツール | 内容 |
|---|---|
score_benchmark |
真値ファイルに照らして採点した kshana-bench の提出物。どちらも JSON テキストです(kshana bench score、bench/SPEC.md):仕様バージョン、分割、入力ハッシュ、タスクの指標を含む結果ファイル。MODELLED。ログまたはコーパスを記述するものであり、製品を記述することはありません。 |
render_leaderboard |
kshana-bench の結果ファイルを、静的なリーダーボードページ(HTML テキスト)としてレンダリングします。各ファイルは、先に形式を検証します。 |
エディション#
エンジン全体が無料です。Kshana Pro とカスタムスタディは、さらに多くを必要とするプログラム向けで、有料の経路はすべてメッセージから始まります。ここには価格はありません。
| 無料 | Kshana Pro | カスタムスタディ | |
|---|---|---|---|
| 内容 | オープンなエンジン全体、92 種類すべてのシナリオ kind、機能ゲートなし | 同じエンジンの上に載る独自のオーバーレイ。契約に基づく | お客様のシステムに対する MODELLED の PNT レジリエンススタディを、代行して実施 |
| ライセンス | AGPL-3.0(GNU Affero 一般公衆利用許諾書 バージョン 3)、または商用ライセンス | 独自 | 契約 |
| 始め方 | インストールするか、kshana.dev を開く | Pro の評価を依頼する | スタディを依頼する |
docs/PRO.md の言葉で見る、Pro とは何か:
オープンな Kshana の厳密な上位集合です。Pro はオープンなエンジンをライブラリとして利用し、フォークしません。オープンなシナリオ kind はすべて Pro でそのまま動作し、オープンなシナリオはライセンスなしでも Pro で動作します。
新しい物理はありません。Pro は物理モデルを追加せず、変更もしません。Pro のすべての数値はオープンなエンジンの実行から得られるため、Pro の数値の信頼性は、その元になったオープンなシナリオ kind と同じであり、それを超えることはありません。
Pro は、プログラムの次の問いに答えます:どの設計で飛ばすか(設計オプティマイザーとそのパレートフロント)、答えはどれほど確かか(不確かさと感度)、そしてミッションが要件を満たすか(ミッションドシエ、要件トレーサビリティ、トレードスタディ、シナリオ回帰チェック、クロックのデジタルツイン、スタディドシエ、オンプレミスのサービス)。さらに、図の数値のキャンペーンを監視して、悪化したときにパイプラインを失敗させ、候補の信号プランをオープンな衛星航法信号に対して双方向に試験し(スペクトル共存)、ハッシュ連鎖の納品台帳を備えたオンプレミスのジョブサービスでスタディをキューに入れます。それぞれが何を生成し、何をしないかは docs/PRO.md に記載されています。Pro が生成するものは認証ではなく、カスタムスタディも認証ではありません。
Kshana Pro がオープンなエンジンから読み取るもの、および Ashforde® OÜ によるサポート
Kshana Pro の土台。Pro のすべての部分はオープンなエンジンを土台として動作し、エンジンには手を加えません:
- 設計オプティマイザー、不確かさスタディ、ミッションドシエは、オープンなエンジンのシナリオをエンジンの公開インターフェース経由で実行し、すべての数値を実行結果から計算します。各出力は、オープンなエンジンが各数値に付けた VALIDATED、MODELLED、PARTNER のティアを保持し、それより高いティアにはなりません。
- クロックのデジタルツインは、オープンなエンジンのクロックモデルとそのアラン偏差推定器を使います。ツインはデバイスの公表されたアランバジェットに較正され、その後、オープンな推定器でツインのアラン偏差を推定することで確認されます。
- トレードスタディは、すべてのアーキテクチャーの選択肢をオープンなエンジンのシナリオとしてそのまま実行し、各実行の結果から読み取った性能指標で選択肢を順位付けします。
- キャンペーンウォッチは、パック内のシナリオに対するオープンなエンジンの実行結果から数値を読み取り、直前に合格した実行と比較します。
- スペクトル共存は、すべての物理的な数値を
leo-signalとconstellation-designの kind に対するオープンなエンジンの実行から読み取り、視界内の衛星にわたる総和とプランの順位付けだけを加えます。 - オンプレミスのジョブサービスは、オープンなシナリオと Pro のシナリオを同じエンジンで実行し、各結果を実行が返したとおりに保存します。
- エビデンスパックは、実行ごとに、オープンなエンジンが結果に付与するシナリオのハッシュを記録するため、パック内の数値は、そのシナリオを再実行することで再現できます。
- システムズエンジニアリングとプログラムのツール。Kshana Pro のモデルベースシステムズエンジニアリング(MBSE)とプログラムのツールは、プログラムの要件をオープンなエンジンの実行に照らして検査します。要件を、カンマ区切り値(CSV)として、または Requirements Interchange Format(ReqIF)や Systems Modeling Language バージョン 2(SysML v2)テキストの文書化されたサブセットとして取り込み、各受け入れ基準を、その単位とともに、実行が書き出した値に照らして評価し、検証クロスリファレンスマトリクス(VCRM)、SysML v2 モデル、変更影響レポート、オフラインのエビデンスパックを生成します。再実行も再計算も行わず、オープンなエンジンが公開するものだけを読み取ります:各実行の
result.json(基準が名指しするフィールド、その単位、シナリオのハッシュ・シード・エンジンバージョン・スキーマバージョンからなる再現性スタンプ、実行のラベルと数値のティア)、そのreport.json(kind、再現性の記録、機能ラベル)、シナリオファイル(そのハッシュ、kind、シード、パラメーター)、フィールド単位のスキーマ(各フィールドの単位、出典、エビデンスのティア)、そして検証マトリクス(各機能の VALIDATED、MODELLED、PARTNER のラベル)です。
サポートとプロフェッショナルサービス#
Kshana は AGPL-3.0 のもとで無料のオープンソースであり、Ashforde® OÜ(エストニア)によって専門的に開発・保守されています。オープンなエンジンは完結しており、単独で利用できます。さらに多くを必要とする組織向けに、Ashforde® OÜ は次を提供しています:
- 商用サポートと統合 — お客様のツールチェーンへの Kshana の組み込み、カスタムシナリオ、優先的な修正。
- カスタムセンサーモデル — お客様のハードウェアに合わせて較正します。非公開のオーバーレイで保守される、輸出管理上の配慮が必要なレジリエンスモデルも含みます。
- Kshana Pro — 独自のモデルベースシステムズエンジニアリング(MBSE)とプログラムのツールで、プログラムの要件をオープンなエンジンの実行に照らして検査し、検証クロスリファレンスマトリクス(VCRM)、Systems Modeling Language バージョン 2(SysML v2)モデル、変更影響レポート、オフラインのエビデンスパックを生成します。何も再実行せず、エンジンが公開する出力だけを読み取ります:各実行の
result.jsonとreport.json、シナリオファイル、フィールド単位のスキーマ、検証マトリクスのラベルです(完全な一覧はエディションにあります)。 - Kshana Pro の設計、不確かさ、ミッションのツール — 設計空間のパレートフロント、数千回の実行にわたる不確かさと感度、そして検証マトリクスと PDF を備えた、コマンド一つのミッションドシエ。
docs/PRO.mdを参照してください。 - Kshana Pro のキャンペーンウォッチ、スペクトル共存、ジョブサービス — 監視している数値が悪化したときに失敗するパイプライン、オープンな衛星航法信号に対して双方向に試験される信号プラン、そしてハッシュ連鎖の納品台帳を備えたオンプレミスのジョブキュー。
docs/PRO.mdを参照してください。 - 量子/古典 PNT の性能解析に関するトレーニングとコンサルティング。
これはオープンコアのモデルです。エンジンは、オープンなライセンスで公開されており、これからもそうあり続けます。事業を支えるのは、専門知識、サポート、独自の拡張であり、ライセンス料ではありません。連絡先:contact@ashforde.org · ashforde.org。
研究#
オープンなエンジンを土台にした研究は arXiv で公開されています。それぞれが背後にあるエンジンのコマンドを明記しているため、コミット済みのシナリオまたはスタディの例から、その数値を再生成できます。
| 論文 | 内容 | エンジンのコマンド |
|---|---|---|
| Anticipating the Optimism Gap: Predicting Distribution-Shift Degradation of RF-Impairment Detectors from In-Distribution Statistics arXiv:2606.22054 · doi:10.48550/arXiv.2606.22054 |
条件が変化したときの GNSS 干渉検出器のスコアの低下は、オープンな合成テストベッドと、続いてオープンな実地記録の上で、分布内の統計量だけから予測できます。 | cargo run --release --example optimism_study -- paper-artifacts/optimism-study.json |
| A Conditional Timing Protection Level: Holdover-Limited Undetected Time Error Under GNSS Spoofing arXiv:2606.24210 · doi:10.48550/arXiv.2606.24210 |
スプーフィングを受けた GNSS タイミング受信機には、未検出の時刻誤差に対する有限の無条件の上界がないため、この論文は条件付きの上界を示しています。これは、公開の JammerTest 2024 キャンペーンで記録された、実際の電波によるスプーフィングで較正されています。 | cargo run --release --example tpl_jammertest |
| How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting arXiv:2607.05415 · doi:10.48550/arXiv.2607.05415 |
単一の総合レジリエンススコアが判断の安定した根拠になるのは、一つの設計が他を圧倒している場合に限られます。設計が競合している場合は、重みを付け直すだけで勝者が変わりえます。 | cargo run --release --example resilience_report -- paper-artifacts/resilience-study.json |
| Earth-baseline VLBI restores the observability of a lunar surface station in joint orbit-and-clock determination arXiv:2607.02566 · doi:10.48550/arXiv.2607.02566 |
月面のコンステレーション内での測距だけでは、月面局の絶対位置は観測不能のままです。地球からの超長基線電波干渉計(VLBI)の遅延は、コンステレーションが疎な場合にそれを回復し、豊富な場合には精度を高めます。 | lunar-joint-od-clock kind:kshana example lunar-joint-od-clock > s.toml && kshana s.toml |
| The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis arXiv:2607.06212 · doi:10.48550/arXiv.2607.06212 |
計画されている四〜六機の衛星からなるコンステレーションでは、月の南極でのジオメトリが悪く、少数の月面測距ビーコンのほうが、衛星を増やすよりはるかに安価にそれを改善できます。 | lunar-beacon kind:kshana example lunar-beacon > s.toml && kshana s.toml |
| Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever arXiv:2610.23871 · doi:10.48550/arXiv.2610.23871 |
測距のみの地球・月間空間の追跡では、ある瞬間には速度が観測不能なため、精度低下率(DOP)は定義できません。そこでこの論文は、四つの平面逆行遠方軌道に対して可観測性グラミアンを用います:測距のみでは、ある瞬間のランクは 4 のうち 2 で、完全に観測可能になるには約 2.09 時間の弧が必要であり、弧が長くなるほど条件数は改善します。距離変化率(ドップラー)なら、ただちにランク 4 が得られます。そして、局を衛星の状態およびクロックと同時推定すると、外部の干渉計による観測量を加えない限り、ランク不足が一つ残ります。要件は、DOP ではなく、弧の長さ、条件数、観測種別のバジェットに置くべきものです。 | cislunar-observability kind:kshana scenarios/cislunar-observability.toml(兄弟にあたる cislunar-arc-recovery は、独立した有限差分推定器でしきい値を検証します) |
三つのスタディの例は、エンジンバージョン、シード、設定ハッシュを記録した、バイト単位で決定論的な成果物(固定シード)を書き出します。月と地球・月間空間に関する三本の論文は、月スイートの上に構築されています(各要素のエビデンスのティアは検証マトリクスにあります)。そのジオメトリと精度低下率に関する主張も、tests/validate_p*.rs で別個のオラクルに対してクロスチェックされています。詳しくは Reference の 再現可能なスタディ成果物を参照してください。
引用#
学術的または技術的な作業で Kshana を使用する場合は、使用したバージョンを、シナリオとシードとともに引用してください。CITATION.cff に機械可読のメタデータがあり、GitHub はそこから「Cite this repository」ボタンを表示します。すべてのリリースは Zenodo にアーカイブされており、コンセプト DOI(デジタルオブジェクト識別子)10.5281/zenodo.20528627 は常に最新バージョンに解決されます。
Baweja, C. (2026). Kshana — a PNT-resilience simulator with quantum-sensor performance models. Ashforde OÜ. https://doi.org/10.5281/zenodo.20528627
上記の論文:
Baweja, C. (2026). Anticipating the Optimism Gap: Predicting Distribution-Shift Degradation of RF-Impairment Detectors from In-Distribution Statistics. arXiv:2606.22054. https://doi.org/10.48550/arXiv.2606.22054
Baweja, C. (2026). A Conditional Timing Protection Level: Holdover-Limited Undetected Time Error Under GNSS Spoofing. arXiv:2606.24210. https://doi.org/10.48550/arXiv.2606.24210
Baweja, C. (2026). How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting. arXiv:2607.05415. https://doi.org/10.48550/arXiv.2607.05415
Baweja, C. (2026). Earth-baseline VLBI restores the observability of a lunar surface station in joint orbit-and-clock determination. arXiv:2607.02566. https://doi.org/10.48550/arXiv.2607.02566
Baweja, C. (2026). The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis. arXiv:2607.06212. https://doi.org/10.48550/arXiv.2607.06212
Baweja, C. (2026). Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever. arXiv:2610.23871. https://doi.org/10.48550/arXiv.2610.23871
ライセンス#
Kshana はデュアルライセンスです:GNU AGPL-3.0-only(LICENSE)、または AGPL が合わないクローズドな統合のための Ashforde® OÜ の商用ライセンス。どちらが適用されるかは LICENSING.md で説明しています。コントリビューションは AGPL のもとでインバウンドライセンスされ、同時に Ashforde® OÜ が商用エディションに含める権利も許諾します。各コミットには git commit -s で署名してください(CONTRIBUTING.md を参照)。「Kshana」とそのマークは Ashforde® OÜ の商標です。ライセンスの対象はコードであり名称ではないため、フォークは名称を変更してください。
リファレンス#
長い資料は折りたたんであります。すべてのドキュメントはドキュメントに一覧されています。
インストールとソースからのビルド
インストールとビルド#
Rust ツールチェーンが必要です(≥ 1.88、Cargo.toml の rust-version。開発は 1.93 で行っています)。
git clone https://github.com/ashfordeOU/kshana
cd kshana
cargo build --release
cargo test # all tests pass
使い方:コマンドラインの全体
使い方#
任意のシナリオを実行します。CLI はシナリオの kind フィールドで振り分け、その横に <scenario>.result.json、<scenario>.chart.svg、<scenario>.report.html、<scenario>.report.json を書き出します。テーブルを公開する kind では <scenario>.table.csv も書き出します。レポート(同じ内容の HyperText Markup Language(HTML)ページと JSON ドキュメント)には、エグゼクティブサマリー、単位付きのすべての入力、結果とグラフ、キャンペーンのスイープ・モンテカルロ・チェーンの表、イベントのタイムライン、実行が使用したすべての機能の VALIDATED / MODELLED / PARTNER のラベルと出典、モデル化されていないもの、そして再現性の記録(エンジンバージョン、Secure Hash Algorithm 256-bit(SHA-256)のダイジェスト、シード、プラットフォーム、正確なコマンド)が含まれます。ブラウザーから A4 または Letter 用紙で、見やすい PDF(Portable Document Format)ファイルとして印刷できます。エンジン自体は PDF を書き出しません。docs/REPORTS.md を参照してください。
cargo run -- scenarios/clock-holdover.toml
cargo run -- scenarios/imu-deadreckoning.toml
cargo run -- scenarios/timetransfer.toml
cargo run -- scenarios/hybrid-pnt.toml
cargo run -- scenarios/orbit-gnss-challenged.toml
cargo run -- scenarios/orbit-sgp4-gps.toml
cargo run -- scenarios/orbit-rinex.toml
cargo run -- scenarios/integrity-raim.toml
# Export a propagated constellation to an SP3-c precise-ephemeris file:
cargo run -- scenarios/orbit-sgp4-gps.toml --export-sp3 gps.sp3
# Export the constellation's mean elements to a CCSDS OMM catalogue (one OMM
# message per TLE-defined satellite, with its real NORAD id / COSPAR designator):
cargo run -- scenarios/orbit-sgp4-gps.toml --export-omm gps.omm
# Export the velocity-carrying state to a CCSDS OEM 2.0 ephemeris (GMAT/Orekit/STK):
cargo run -- scenarios/orbit-sgp4-gps.toml --export-oem gps.oem
# Export the geometry for a globe, a map or a mission-analysis tool: CZML, KML,
# GeoJSON, STK .e, or SigMF for the spectrum kind (every format that applies):
cargo run -- scenarios/jamming-demo.toml --export all
--export <czml|kml|geojson|stk|sigmf|all|list> は、CZML(Cesium Language)、KML(Keyhole Markup Language)、GeoJSON(Request for Comments 7946)、Ansys STK(Systems Tool Kit)の .e エフェメリス、SigMF(Signal Metadata Format)の記録を、シナリオの横に書き出します。--import-route <route.geojson> は、GeoJSON のラインを、軌跡を飛行する kind に入力します。各フォーマットは公表された仕様に照らして確認されており、フォーマットが適用できないシナリオには、その理由が示されます:docs/INTEROP.md を参照してください。
その他の CLI モード — シナリオの lint、実際の地球姿勢データの入力、スイート全体の実行:
# Lint a scenario without running it (checks the kind + required fields):
cargo run -- --validate scenarios/integrity-raim.toml
# Feed a real IERS Earth-orientation file (finals2000A) for frame precision:
cargo run -- scenarios/orbit-sgp4-gps.toml --eop tests/fixtures/agency/eop/finals2000A_2022001.txt
# Run a SUITE of scenarios into one aggregated, stamped study artifact
# (writes <suite>.study.json + <suite>.study.html next to the manifest):
cargo run -- --study scenarios/quantum-pnt-demonstrator.suite.toml
# Animate a run's time series: an animated SVG, a self-contained HTML player, and a
# numbered SVG frame sequence with manifest.json (see docs/ANIMATION.md):
cargo run -- scenarios/campaign-jam-spoof-holdover-integrity.toml --animate all
アニメーションのエクスポート。 --animate svg|html|frames|all は、<scenario>.animation.svg(Cascading Style Sheets(CSS)のキーフレーム、スクリプトなし)、<scenario>.animation.html(再生、一時停止、シーク、速度、同期パネル。外部アセットなし)、<scenario>.frames/(frame_0000.svg、… と、毎秒フレーム数と長さを記した manifest.json)を書き出します。キャンペーンはそのフェーズとアラームを、スペクトルの実行はそのウォーターフォールを再生します。テーマは prefers-color-scheme に従い、prefers-reduced-motion は完成した絵を表示します。実行自身のサンプルを描画し、再実行してもバイト単位で同一で、エビデンスは追加しません。docs/ANIMATION.md を参照してください。
スイートのマニフェストは、小さな TOML(Tom's Obvious, Minimal Language)ファイルで、title とシナリオのパスの scenarios = [ … ] 配列からなります。エンジンはこれを順に実行し、すべての結果(MODELLED / VALIDATED のラベル付き)を、自己記述的な一つのスタディ成果物にまとめます。scenarios/quantum-pnt-demonstrator.suite.toml を参照してください。
相互運用上の役割。Kshana は、後処理のツールチェーンと並んで位置する性能シミュレーションの層であり、その代替ではありません。位置解を得るには、その RINEX 出力を RTKLIB や gLAB に入力し、その SP3 出力は Ginan のようなツール向けの精密軌道プロダクトとして使います。Kshana は、実際の信号を得る前に、ある PNT アーキテクチャーがどれだけのレジリエンスをもたらすかに答え、それをこれらのツールがすでに取り込める形式で提供します(--export-sp3、または orbit シナリオでの export_sp3 = true が <scenario>.sp3 を書き出します)。同じ軌道は、標準化の流れにある CCSDS OMM の平均要素としても公開できます(--export-omm、または export_omm = true が <scenario>.omm を書き出します)。TLE で定義された衛星ごとに OMM 502.0 の KVN(キーワード = 値の記法)メッセージが一つ作られ、各天体の実際の NORAD(北米航空宇宙防衛司令部)カタログ番号、COSPAR(国際宇宙空間研究委員会)国際識別符号、元期が含まれます。独自仕様の二行軌道要素セットの代わりに、OMM に対応するあらゆる利用者向けに使えます。
出力例(クロックホールドオーバー — インテグリティとセキュリティの性能指標がどのように報告されるかに注目してください):
scenario 5ba83a232b94 | quantum holdover 6600s p95 1.20e-4ns integrity 1.000 security n/a (no attack) | classical holdover 2610s p95 19.7ns integrity 1.000 security n/a (no attack)
wrote scenarios/clock-holdover.result.json, scenarios/clock-holdover.chart.svg, scenarios/clock-holdover.report.html, and scenarios/clock-holdover.report.json
光クロックの 95 パーセンタイル(p95)のタイミング誤差は 1.20e-4 ns です。サマリーは、小さな値を 0.0 に丸めず、有効数字付きで表示します。このシナリオは攻撃を設定していないため、検出すべきものがなく、security は n/a (no attack) と表示されます。それでも JSON の結果には、各クロックの解析的なスプーフィング検出可能性の上界が fom.security に含まれます(光クロックは 0.997、チップスケール原子時計は 0.000。後者は、監視区間にわたる自身のノイズが 20 ns の仕様を超えるためです)。また、その figure_tiers ブロックは、この数値を applicable: false と示します。spoof のシナリオ kind は、注入された攻撃に対する検出を採点します。figure_tiers は、報告されるすべての数値に、その検証ティア — VALIDATED(外部のオラクルと照合して確認)または MODELLED — と、そのティアを読み取った検証マトリクスの行も付けます。軌道シナリオは、クロックの結果と並んで、ジオメトリのブロックも報告します — 測位解が得られたサンプルの割合、位置の DOP(PDOP)と位置精度の最良値・中央値です。
この二つの数値は慎重に読んでください。
securityは、各クロックの安定度から導かれる解析的なスプーフィング検出可能性の上界であり、設定されたスプーフィングのシナリオに対してのみ意味があり、複数衛星による RAIM 検出器ではありません。ここでのintegrityは、フィルターの自己整合性(途絶中のサンプルのうち、自身の k シグマの範囲内にあるものの割合)であり、航空の HPL/VPL のインテグリティ指標ではありません。docs/INTEGRITY.mdを参照してください。真の受信機自律型インテグリティには、
integrityシナリオ kind(scenarios/integrity-raim.toml)が、伝搬させたコンステレーションジオメトリに対して、実際のスナップショットと解分離(ARAIM 方式)の RAIM を実行します。エポックごとに水平/垂直の保護レベル(HPL/VPL)を計算し、設定された警報限界を満たしたエポックの割合を報告し、誤差対 PL(保護レベル)の分類のための Stanford インテグリティ図も備えます。
再現可能なスタディ成果物
四つのオープンなスタディが、それぞれコマンド一つから、バイト単位で決定論的な成果物(固定シード)を再生成します — 量子と古典の交差、RF 障害の楽観性ギャップ、PNT レジリエンスのスコアリング、タイミング保護レベルの各スタディの背後にある数値です:
# Quantum-vs-classical resilience crossover map (writes paper/crossover/*.json):
cargo run --release --bin crossover_study -- paper/crossover
# RF-impairment optimism-gap study (13-detector panel, scaling laws, LOO predictor):
cargo run --release --example optimism_study -- paper-artifacts/optimism-study.json
# Framework-aligned PNT-resilience scoring + decision-instability study:
cargo run --release --example resilience_report -- paper-artifacts/resilience-study.json
# Conditional Timing Protection Level, calibrated on a real recorded spoof:
cargo run --release --example tpl_jammertest
各成果物は、エンジンバージョン、シード、設定ハッシュを記録し、率直な MODELLED/VALIDATED のラベルを持ちます。実データのプローブ(*_probe)は、ローカルで用意した記録に対して同じパイプラインを実行します。データセットはリポジトリに同梱されていません。RF 障害の楽観性ギャップ研究はプレプリント arXiv:2606.22054 に、条件付きタイミング保護レベル(上記の tpl_jammertest)はプレプリント arXiv:2606.24210 にまとめられています(引用を参照)。
公表されている月 PNT の研究(arXiv:2607.06212 の月面ビーコン DOP、arXiv:2607.02566 の VLBI 可観測性、arXiv:2610.23871 の地球・月間空間の弧長の可観測性)は、ジオメトリ、精度低下率、リアルタイムの座標系 / 地球姿勢パラメーター(EOP)予測、遠方逆行軌道、RF 測距に関する主張を、tests/validate_p*.rs で別個のオラクル(scipy.special.j1、独立した NumPy による (HᵀH)⁻¹ の DOP 解、同じ IERS finals2000A の行の NumPy による再解析、NASA/JPL の三体周期軌道データベース)に対して独立にクロスチェックしています。これらは、モデル計算の月スイートに対する追加の回帰検査であり、機械検査されるマトリクスの件数は変わりません。
シナリオ形式
シナリオ形式#
シナリオは宣言的な TOML です。トップレベルの kind がパックを選び、全部で五十種類あります(省略した場合は clock が既定です):inertial、timetransfer、hybrid、hybrid-ukf、fusion、gnss-ins、orbit、ephemeris、gnss-sim、integrity、lunar-integrity、lunar-time-offset、spoof、spoof-detect、jamming、sweep、sweep-nd、gravity-map、terrain-nav、terrain-slam、combined-altpnt、pvt、mars-pnt、impairment-eval(機械学習による RF 障害検出の評価テストベッド — ラベル付き合成コーパス + 検出器非依存の ROC/AUC ハーネス + 分布内/分布外の楽観性ギャップ)、quantum-trade(測定 ADEV の取り込みと GNSS 拒否下のレジリエンスエンベロープを備えた量子と古典の PNT トレード。MODELLED)、space-weather(太陽・地磁気の指数 + Jacchia-71 の外気圏温度 + 静的大気に対する活動駆動の熱圏密度。MODELLED)、oem-interop(GMAT/Orekit/STK のエフェメリス向けの CCSDS OEM 取り込み・往復ブリッジ。MODELLED)、ミッション解析の三つ組 launch-window(二体問題の打ち上げ方位角 / 面変更 / 打ち上げ機会)、reentry(Allen-Eggers の弾道再突入コリドー)、eo-coverage(EO の観測幅 / GSD / アクセス / 再訪のジオメトリ)、space-packet(CCSDS 133.0 TM/TC — テレメトリ/テレコマンド — の Space Packet フレーミング — 正確なビット配置、往復検証済み)、および attitude-budget(3-DOF の重力傾斜トルク + RSS ポインティング誤差バジェット)、passes(地上局の出入りパス予測 — AOS/TCA/LOS、最大仰角、アクセス)、link-budget(片方向の CCSDS/DSN リンク方程式 — FSPL / Eb·N₀ / マージン / クロージャ)、telecom-timing(ホールドオーバーの時刻誤差、MTIE と TDEV を ITU-T のマスクに照らして検査)、spectrum(GNSS の L バンド全体を一つの電力スペクトル密度として扱う:スクリプトで指定した連続波、狭帯域、チャープ、またはマッチドノイズのジャマーのタイムラインのもとでの周波数×時間のウォーターフォール、スペクトル分離係数から求めるバンドごとのジャマー対信号比と実効搬送波雑音密度、そして Welch スペクトル推定を伴う Signal Metadata Format(SigMF)の記録の入出力。信号スペクトルは教科書の値に対して VALIDATED、ジャマーのシナリオは MODELLED。docs/SPECTRUM.md を参照。同じ kind は、設計された低軌道信号を含む UHF、S、C バンドのパネルも描きます)、leo-signal(任意のシステムのための低軌道の測位・航法・タイミング信号設計:帯域制限されたスペクトル、コードトラッキングジッタと測距精度、捕捉の探索と時間、GPS と Galileo に対するスペクトル分離、ジャマー耐性、UHF から C バンドまでのトレード。Xona Pulsar、Iridium、Starlink、CentiSpace などの公開プリセット、またはインラインの設計から。閉形式と LEO ドップラーは VALIDATED、設計は MODELLED。docs/LEO-SIGNAL.md を参照)、solar-system(ある一つのエポックにおける太陽、惑星、冥王星、月、七つの主要な衛星 — 位置、定数、光行時間、軌道の軌跡。惑星の位置は JPL Horizons に対して VALIDATED)と body-pnt(それらの任意の天体の周辺での、局所的な航法コンステレーションと地球からの深宇宙リンクを用いた測位。MODELLED)、campaign(既存の kind を組み合わせた、フェーズ間で状態を引き継ぐ連鎖的なミッションのタイムライン、パラメーター掃引、シード付きのモンテカルロアンサンブル、あるいは共通の一つの条件のもとでの複数のシナリオ。MODELLED、docs/CAMPAIGNS.md を参照)、constellation-design(Walker のデルタ型とスター型パターン、要素リスト、GPS・Galileo・BeiDou・GLONASS のプリセットを備えた複数シェルの設計、そして緯度/経度グリッド上でのカバレッジと精度低下率。ジェネレーターと GPS 全球 DOP は、公表されたサービスドキュメントに対して VALIDATED、docs/CONSTELLATION-DESIGN.md を参照)、leo-pass(低軌道(LEO)の測位・航法・タイミング(PNT)衛星のパスと、そのリンクバジェットをバンドごとに、任意のコンステレーションと任意の信号設計から:視線角、ドップラーとドップラーレート、ITU-R の降雨・気体・シンチレーション・建物侵入損失、視界内の MEO GNSS 衛星に対する搬送波雑音密度、一次の電離圏と電離圏フリーの組、低エネルギーの測位バジェット、すべてのバンドの組からの電離圏サウンディング、ドップラーとパスジオメトリの整合性およびバンド間の整合性によるスプーフィングモニター。ITU-R の項と静止ユーザーのドップラーエンベロープは VALIDATED、パスは MODELLED、docs/LEO-PASS.md を参照)、leo-navmsg(任意の軌道と搬送波に対する、低軌道(LEO)PNT 衛星の放送エフェメリスとクロックのメッセージ:積分した真値軌道から Galileo のケプラー要素セットへのフィッター、along-track・cross-track・radial の補正多項式を加えたそのセット、Liu ら 2025 の 22 パラメーターモデルまたは ATOMIC のゼロクロック ECEF 多項式、フィット区間と更新周期に対する信号空間測距誤差(SISRE)、パス途中の更新連続性の検査、CRC-24Q の巡回冗長検査と量子化バジェットを備えた Kshana 独自の文書化されたバイナリフレーム、そして Kshana 拡張と明記した RINEX-4 形式のブロック。SISRE の重み、Galileo のユーザーアルゴリズム、CRC-24Q は VALIDATED、フィットは MODELLED。Xona Pulsar、Iridium、Starlink、CentiSpace、代表的な C バンドシステム、ATOMIC、Celeste IOD のオプションのプリセット、docs/LEO-NAVMSG.md を参照)、MEO と LEO を融合した PNT の三つ組 leo-pvt(低軌道(LEO)の距離変化率によるドップラー測位、システム間バイアスを含む GNSS + LEO の疑似距離の同時測位と LEO 衛星数に対する DOP、極域と北極域のカバレッジ、そして UTC への LEO 時刻伝送 — 任意のコンステレーションに対して、Xona Pulsar、Iridium、Starlink の機会信号などのオプションのプリセット付き。LEO ドップラーエンベロープは、公表されている Iridium と Xona の数値に対して VALIDATED)、leo-ppp(GNSS のみの場合と LEO 補強を加えた場合の精密単独測位の収束を、Li ら 2019 と比較)、ntn-positioning(信号帯域幅のクラメール・ラオ下界から見た 5G 非地上系ネットワークの測位)。このエンベロープを除いて MODELLED、docs/LEO-PNT-FUSION.md を参照)、leo-pnt-chain(一つの LEO-PNT システムをエンドツーエンドで:leo-pass のバンドが運ぶ leo-signal の設計、そのパスの C/N0 と航法メッセージの信号空間測距誤差が、融合した leo-pvt の測位と leo-ppp の収束に渡され、すべての受け渡しが一覧されます。MODELLED、docs/LEO-PNT.md を参照。これは、レジリエンスキャンペーン、実験の重点領域ごとに一つ、エンドユーザーの業種ごとに一つのシナリオを含む、すべての LEO-PNT の kind とシナリオの概要でもあります)、月 PNT スイート lunar-vlbi、lunar-joint-od-clock、lunar-frame-realisation、moonlight-service-volume、lunar-differential-pnt、lunar-interop-export、量子対応 PNT デモンストレーター quantum-time-transfer、quantum-gnss-free-nav、quantum-anomaly-detect、そして信号セキュリティ、地球・月間空間、階層型レジリエンスの研究用 kind である lunar-attack-surface、realtime-frame-eop、lunar-time-budget、hybrid-optical-rf、cislunar-observability、conflict-resilience — ミッション解析の三つ組とこれらの後発の kind はすべて MODELLED です(それぞれ、確認済みの閉形式のコアを持ちます。マトリクスを参照)。共通のフィールド:seed、[time] グリッド、[gnss] の可用性タイムライン(途絶を駆動するもの)、そして各数値の出典を示す provenance 文字列を持つセンサーごとのブロックです。例(クロック):
seed = 42
threshold_ns = 20.0
[time]
step_s = 10.0
duration_s = 7200.0
[gnss]
windows = [
{ t0 = 0.0, t1 = 600.0, state = "nominal" }, # 10 min GNSS sync
{ t0 = 600.0, t1 = 7200.0, state = "denied" }, # ~1.8 h outage
]
[clock_quantum]
id = "optical-sr-lattice"
provenance = "Strontium optical lattice clock, space-oriented goal sigma_y(1s)=1e-15 (arXiv:1503.08457)"
y0 = 5.0e-17
q_wf = 1.0e-30 # white FM: q_wf = sigma_y(1s)^2
q_rw = 0.0 # random-walk FM
drift = 0.0 # linear aging (per second)
[clock_classical]
id = "csac-sa45s"
provenance = "Microchip SA65 / SA.45s CSAC datasheet sigma_y(1s)=3e-10"
y0 = 5.0e-10
q_wf = 9.0e-20
q_rw = 0.0
drift = 0.0
任意のフィールド(なければ無効):クロックは flicker_floor(1/f FM — 周波数変調 — のアラン下限)を追加でき、慣性センサーは gyro_bias と q_arw(ジャイロバイアスと角度ランダムウォーク)、および bias_instability と q_aa(アランのバイアス不安定性の下限と加速度ランダムウォーク)を追加できます。これらを合わせて、単軸(1-DOF)の加速度計誤差バジェット(VRW/ARW — 速度/角度ランダムウォーク — とバイアス不安定性)になります。これが、同梱の inertial シナリオのパックが実行する誤差バジェットです。これとは別に、ライブラリには、確認済みの 3 軸ストラップダウンナビゲーター(src/inertial/{attitude,mechanization,imu_errors}.rs)が加わりました:コーニング/スカーリング補償付きのクォータニオン姿勢、完全な NED メカニゼーション(地球自転と輸送レートの項、WGS-84 の Somigliana 重力)、そしてスケールファクター、ミスアライメント、g 感度、量子化、レートランプがモデル化された決定論的な IMU 誤差モデルです(IEEE Std 952-1997 — IEEE のジャイロ仕様および試験手順の規格 — §A.2、Groves 2013 §4.3)。その 3 軸の経路は現在、実行可能な疎結合 GNSS/INS パックに組み込まれています(kind = "gnss-ins"):15 状態の誤差状態 EKF が、GNSS が利用できる間はノイズを含む測位解に対してストラップダウン解を補正し、その後、途絶を惰行して、融合した水平誤差を、開ループの自由 INS の惰行と比較して報告します。密結合の疑似距離更新も利用できます(距離領域でイノベーションを形成するため、衛星が四機未満でも補正を続けられます)。クロックホールドオーバーのシナリオは、runs(> 1)を追加してモンテカルロアンサンブルを実行できます — その場合、各性能指標は、5 〜 95 パーセンタイルの幅を持つ平均として報告され、グラフは誤差の信頼区間バンドに色付けされます(scenarios/clock-ensemble.toml を参照)。
fusion シナリオ(hybrid と同じブロック)は、独立した二つのカルマン推定器を実行します — 一つはクロック状態、もう一つは位置状態用で、GNSS で補正され、光時刻伝送で支援され、合成したホールドオーバーの FoM を報告します。この二つのブロックは相互共分散を共有しません。これは誤差バジェットを積み重ねた組であり、真に結合したクロック + 位置の同時フィルターではありません(ブロック間の共分散はロードマップの項目です)。scenarios/fusion-pnt.toml を参照してください。
spoof シナリオは時刻スプーフィングを注入します — 四種類の [attack.shape] kind(linear_ramp、step_jump、meaconing、replay。素の rate_ns_per_s も引き続き線形ランプとして受け付けます)のうちの一つ — そして各クロックのスプーフィング検出器を実行します。検出器は、クロック支援のモニター統計量に対する、両側の χ²₁ エネルギー / Neyman–Pearson 検定で、しきい値は目標の誤警報バジェット target_pfa から設定され、見逃し確率 P_md は閉形式とモンテカルロ(仮説ごとに mc_runs 試行 — 両者は ×1/√N の数倍以内で一致します)の両方で報告されます。セキュリティの性能指標は 1 − P_md で、運用上有害な(仕様の)大きさで評価します。したがって、仕様の大きさのスプーフィングを捉える静かなクロックは ≈ 1 となり、しばしば見逃す雑音の多いクロックはそれより低くなります(scenarios/spoof-attack.toml、scenarios/spoof-meaconing.toml を参照)。
gnss-sim シナリオは測定領域のシミュレーションです:見える各衛星について、疑似距離 ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath と L1 ドップラーを合成し、Klobuchar の単一周波数電離圏([iono]、IS-GPS-200 §20.3.3.5.2.5)と、Niell(1996)の写像関数で投影した Saastamoinen の天頂対流圏([tropo])を用います。残差は、エポックごとの HPL/VPL のためのスナップショット RAIM に入力され、すべての衛星の疑似距離、ドップラー、C/N₀、電離圏・対流圏の補正が、JSON の gnss_measurements 配列に出力されます。これは順方向のシミュレーター(既知の真値から測定値を生成する)であり、受信機やソルバーではありません — ノイズなしの実行では、ジオメトリと補正をサブミリメートル級で再現します(scenarios/gnss-sim-raim.toml を参照)。
jamming シナリオは、RF 干渉をリンクバジェットとしてモデル化します。[jammer](ECEF 位置、送信 power_dbw、種類)が、Walker [constellation]を観測する[receiver]におけるジャマー対信号比を引き上げます。ジオメトリ(自由空間伝搬損失と方向ごとの受信アンテナ利得)から各衛星の J/S を計算し、標準的なアンチジャム式(拡散処理利得 × スペクトル分離係数 Q、Kaplan & Hegarty §9.4)で実効 C/N₀ を求め、設定可能な追尾しきい値を下回るとロックロスとして示し、availability_under_jamming という性能指標を報告します。10 W の広帯域ジャマーが 1 km の距離にあると受信機は完全に使用不能になります(J/S ≈ 72 dB)。同じジャマーが 100 km の距離では、リンクを劣化させるだけです(scenarios/jamming-demo.toml を参照)。
sweep シナリオはトレードスタディを実行します。ひとつの parameter(threshold_ns、duration_s、quantum_q_wf、または classical_q_wf)を start から stop まで steps 点にわたり lin または log の scale で変化させ、両方の時計について metric(例:holdover_s)を記録し、二本の曲線をグラフにします。基準となるシナリオは [base] の下に置きます(scenarios/sweep-clock-stability.toml を参照)。
sweep-nd シナリオはこれを任意のパックと任意の数の軸に一般化したものです。[base] シナリオ(任意の kind)のドット区切りの TOML キーを [[axes]] のデカルト積にわたって変化させ、各グリッドノードを再実行し、結果へのドット区切りの JSON パスとして指定された metrics を記録します(例:classical.fom.holdover_s)。TOML と結果の境界で動作するため、すべてのパックで使えます。ネイティブ実行ではグリッドを並列に評価し(追加の依存関係はなく、wasm では逐次実行に切り替わります)、出力は決定的で行優先です(scenarios/sweep-nd-inertial.toml を参照)。
orbit シナリオは、[gnss]のタイムラインを手で記述するのではなくジオメトリから導出します。[user]軌道、[constellation]、仰角 mask_deg、二つの時計ブロックを指定します。衛星ジオメトリから位置精度も報告します。任意の sigma_uere_m(1σ のユーザー等価距離誤差、既定値は 1 m)が、位置の精度低下率を位置のシグマに換算します。ユーザー軌道は eccentricity と argp_deg で離心軌道にでき、j2 = true は地球扁平による永年ドリフトを加えます(scenarios/orbit-molniya.toml を参照)。コンステレーションを実在のものにすることもできます。[constellation] に二行軌道要素の tle ブロックを指定すると、衛星はそこから読み込まれます(scenarios/orbit-real-tle.toml を参照)。マルチ GNSS(例:GPS + Galileo、scenarios/orbit-multignss.toml を参照)では、[[constellations]] ブロックを一つ以上追加します。
kind = "orbit"
seed = 7
threshold_ns = 5.0
mask_deg = 10.0
sigma_uere_m = 1.0 # optional; position sigma = position-DOP * this
[time]
step_s = 60.0
duration_s = 86400.0
[user] # spacecraft (altitude in km, angles in deg)
altitude_km = 8000.0
inclination_deg = 0.0
[constellation] # Walker-delta GNSS (GPS-like)
altitude_km = 20180.0
inclination_deg = 55.0
planes = 6
sats_per_plane = 4
phasing_f = 1.0
[clock_quantum] # ... as above
[clock_classical] # ... as above
GPS が使えない環境の alt-PNT の各種別は、GNSS をまったく使わずに航法を行い、測定した現地の系列をパーティクルフィルターで地図と照合します。gravity-map シナリオは、球面調和関数による重力異常場の中を航跡が飛行し、冷却原子重力計の読み取り値からそれを復元します(scenarios/gps-denied-gravity-nav.toml)。terrain-nav シナリオは、SRTM の標高 DEM に対して同じことを行います(TERCOM/SITAN、scenarios/terrain-nav.toml)。combined-altpnt シナリオは、重力 + IGRF 磁場 + 地形を 単一のフィルターで融合します(scenarios/combined-altpnt.toml)。
lunar-integrity シナリオは地球・月間空間(シスルナー)の PNT を評価します。月の南極における ARAIM の保護レベルを LunaNet/LNIS の中継局群に対して計算し、インテグリティのギャップをありのまま報告します。月の σ_URE が約 30 m であるため、保護レベルは 50 m のアラートリミットを大きく上回り、航空機向けのインテグリティ規則のもとではサービスは利用不可になります(scenarios/lunanet-araim.toml)。
lunar-time-offset シナリオは、月座標時(LTC/TCL)の時間スケールの基礎となる相対論的な地球・月間のクロックレートを報告します。第一原理に基づくポストニュートン恒等式が、自己ポテンシャルの差(IAU の L_G ジオイドポテンシャルから月面の自己ポテンシャルを引いたもの)と月の運動(二次ドップラー)項を合算して約 57 µs/日の永年レートを求め、公表されている 56~59 µs/日の範囲とともに報告します。また、ある期間にわたる LTC−TT の累積オフセットと、逆分散アンサンブル(月のペーパークロック)も示します。MODELLED です。代表値は基準に依存し(地球ジオイドか月のセレノイドか、平均化の窓)、そのため単一の認証済みの数値ではなく範囲を報告しています(scenarios/lunar-time-offset.toml)。
すべての kind について、少なくとも一つの実例を scenarios/ に用意しています(92 種類の kind、193 個のシナリオ .toml ファイル + 1 個のスイートマニフェスト。いくつかの kind は複数の例を同梱しています)。すべての kind に、その名前のファイルがあるわけではありません。lunar-integrity → scenarios/lunanet-araim.toml と gravity-map → scenarios/gps-denied-gravity-nav.toml は、そうした例のうちの二つです。ディスパッチ可能な kind は、いつでも cargo run -- --validate <file> のエラー、Python の list_kinds()、または MCP の list_scenario_kinds ツールで一覧できます。
出力
出力#
結果アーティファクトは、バージョン管理された自己記述型の JSON です。ステップごとの時系列、採点された性能指標、有効なモデル仕様(出典付き)、シード、シナリオハッシュを含むため、どのグラフもこのファイルから再現できます。さらに各時計について adev_curve([{tau_s, adev, n_samples, noise, edf, ci_lo, ci_hi}])を含みます。これはオクターブ間隔の平均化時間にわたるオーバーラッピングのアラン偏差で、時計の安定度を読み取る標準的な方法です。現在は各点にノイズ種別ごとの 95% 信頼帯を備えています(記録のべき乗則の種別は修正アラン偏差の傾きから特定し、χ² 区間には対応する NIST SP 1065 の有効自由度を使います)。ブラウザープレイグラウンドは、これを両対数グラフ「Clock stability (ADEV)」として描画します。(MDEV、TDEV、HDEV はライブラリの推定器として利用できます。エクスポートされる結果曲線はオーバーラッピング ADEV です。)単位と出典へのポインターを含むすべてのフィールドは、docs/SCHEMA.md に記載されています。
すべてのグラフは自己記述型です。ブラウザープレイグラウンド、CLI の *.chart.svg エクスポート、HTML(HyperText Markup Language)スコアカードは、いずれも各グラフ画像に Kshana v<version> · scenario <hash> · kshana.dev という内容のフッターを刻印します。scenario <hash> は、その実行のシナリオハッシュの先頭 12 桁の十六進文字です。シナリオハッシュは、正規化したシナリオ定義(シード、しきい値、モデルパラメーター、GNSS の窓など)に対する SHA-256(256 ビットの Secure Hash Algorithm)ダイジェストです。それ自体にハッシュを持たないインテグリティレポートと月レポートは、シナリオソースの SHA-256 で代用します。これは 一行サマリーや結果 JSON に表示されるものと同じフィンガープリントなので、保存または貼り付けたグラフには常に、そのバージョン、それを生成した正確なシナリオ(ビット単位の再現のため)、およびソースが含まれます。入力を一つでも変更すれば、ハッシュも変わります。
性能指標は、標準的な運用上の PNT 性能指標に従います。
| 性能指標 | Kshana での計算方法 |
|---|---|
| タイミング性能(クロック/軌道パック) | 途絶期間中の時計位相誤差の RMS と 95 パーセンタイル。単位はナノ秒(timing_rms_ns)。位置ではなくタイミングの指標です |
| 測位性能(慣性/ハイブリッドパック) | 途絶期間中の 1 自由度の位置誤差の RMS と 95 パーセンタイル。単位はメートル(pos_rms_m)で、単一軸です。単一の実行には monte_carlo: false のフラグが付きます。モンテカルロのアンサンブルでは runs = N を設定すると、各指標の平均、ばらつき、ブートストラップ 95% CI(信頼区間)を報告します。2 次元の CEP/2DRMS(円確率誤差/距離二乗平均平方根の二倍)や DOP で重み付けした精度ではありません(これらには 3 軸モデルが必要で、ロードマップ上の項目です) |
| 自律性 | ホールドオーバー継続時間:GNSS 喪失後に仕様内に留まる時間(グリッドで量子化されるため下限値) |
| レジリエンス | 途絶期間中の誤差増加の傾き |
| 可用性 | 実行のうち、仕様内の解が得られた割合 |
| インテグリティ | フィルターの自己整合性:途絶期間中のサンプルのうち、誤差がカルマンフィルター自身の k シグマ境界内に収まる割合。航空機向けの HPL/VPL/RAIM のインテグリティ指標ではありません(docs/INTEGRITY.md を参照) |
| セキュリティ | クロックの安定度から求めた時刻スプーフィングの解析的な検出可能性の限界:単一クロックの整合性モニターが、どれだけ小さく、どれだけゆっくりした時刻スプーフィングまで検出できるか。攻撃を設定した場合にのみ意味を持ちます。複数衛星の RAIM 検出器ではありません |
これらの用語は初めてですか?それぞれ用語集で平易な言葉で定義しています。
リポジトリ構成
リポジトリ構成#
kshana/
├── src/ # the kshana core crate (library + CLI)
│ ├── api.rs · main.rs · lib.rs # typed dispatch (92 kinds) + CLI + crate root
│ ├── python.rs · wasm.rs # optional PyO3 / wasm-bindgen bindings
│ ├── types.rs · scenario.rs · allan.rs # shared core (time grid, GNSS timeline, Allan)
│ │
│ ├── models.rs · estimator.rs · kalman.rs # Pack 1 — clock holdover + integrity
│ ├── security.rs · detection.rs · spoof.rs · spoof_monitors.rs # spoof detection
│ ├── filter_health.rs · fom.rs · fom_label.rs · report.rs · chart.rs · run.rs # health · FoM scoring + labelling · output
│ ├── suite.rs · study.rs # scenario suites + aggregated multi-scenario study artifacts (`--study`)
│ ├── inertial/ # Pack 2 — strapdown INS (attitude · mechanization · imu_errors · quantum_imu)
│ ├── timetransfer.rs · timetransfer_adv.rs · timegeo.rs # Pack 3 — TWSTFT/CV/PPP/optical, Sagnac
│ ├── hybrid.rs · ensemble.rs · sweep.rs # Pack 4 — fused PNT, Monte-Carlo, trade sweeps
│ │
│ ├── timescales.rs · jd2.rs · ephem.rs # time systems, two-part JD, Sun/Moon ephemeris
│ ├── precession.rs · nutation.rs · cio.rs # IAU 2006/2000A precession-nutation + CIO GCRS↔ITRS
│ ├── frames.rs · *_data.rs # TEME↔ECEF + generated nutation/CIO/EGM2008/IGRF tables
│ │
│ ├── orbit.rs · sgp4.rs · tle.rs · walker.rs # geometry, SGP4/SDP4, TLE, Walker design
│ ├── propagator.rs · forces.rs · gravity_sh.rs · integrator.rs # Cowell + perturbations (EGM2008 d/o70, GR) + RK4/DOPRI
│ ├── maneuver.rs · batch_ls.rs · orbit_determination.rs # burns/Lambert/porkchop, Gauss-Newton, OD
│ ├── cr3bp.rs · lunar.rs · lunar_frame.rs · lunar_od.rs # Earth–Moon CR3BP + halo/NRHO STM corrector, cislunar/LunaNet ARAIM, MCI↔MCMF, lunar OD
│ ├── lunar_time.rs · lunar_vlbi.rs · lunar_combination.rs · lunar_frame_realise.rs · lunar_service.rs · lunar_dpnt.rs · lunar_interop.rs # tiers per piece in the matrix lunar PNT suite — LTC time · geodetic VLBI · joint OD+clock · frame realisation · Moonlight service-volume · differential PNT · LunaNet/IOAG interop export
│ ├── body.rs · mars_frame.rs · ephem_provider.rs · radiometric.rs · ccsds_tdm.rs # deep-space: multi-body · Mars frame · ephemeris seam · radiometric obs + CCSDS-TDM
│ ├── deepspace_od.rs · clock_state.rs · mars_atmos.rs · mars_pnt.rs · linkbudget.rs · gse_sim.rs # SRIF OD · onboard clock · Mars drag · relay-PNT · link budget · GSE sim
│ │
│ ├── fusion/ # GNSS/INS — EKF · UKF · tightly_coupled(17) · coupled · closed_loop
│ ├── raim.rs · sbas.rs # RAIM/ARAIM HPL/VPL, SBAS DO-229E PLs + L1/L5 iono-free
│ ├── gnss_sim.rs · ionex.rs · pvt.rs · jamming.rs # measurement domain · ionosphere maps · single-point positioning · jamming
│ ├── navsignal.rs # nav-signal PSD (BPSK-R/BOC) · spectral-separation → anti-jam Q · DLL code-tracking jitter · multipath envelope
│ ├── gravimeter.rs · igrf.rs · mapmatch.rs · particle_filter.rs · altpnt/ # gravity/magnetic/terrain alt-PNT
│ ├── rinex.rs · rinex_obs.rs · glonass.rs · sp3.rs · oem.rs · omm.rs · permalink.rs # interop formats
│ ├── launch.rs · reentry.rs · eo_payload.rs · attitude_budget.rs · passes.rs · space_packet.rs # mission-analysis budgets + CCSDS Space Packet
│ ├── space_weather.rs · holdover.rs · tpl.rs # space-weather environment · GNSS-denied clock-holdover calculator · conditional Timing Protection Level (under spoofing)
│ ├── resilience/ # framework-aligned PNT-resilience scoring + decision-instability study (RPCF · Dirichlet · Kendall-τ · diversity collapse · assurance report)
│ ├── impairment_eval.rs · impairment_study.rs · impairment_ml.rs · eval_stats.rs # Machine-learning RF-impairment eval testbed · optimism-gap study · LR/MLP detectors · bootstrap/DeLong/Spearman stats
│ ├── sdr.rs · realdata/ # software-defined-receiver front end (IQ/IF → E/P/L taps → SQM) + real-data ingest adapters (RINEX · UBX · GnssLogger · JammerTest · Yunnan · SatGrid)
│ ├── crossover.rs · quantum_trade.rs · frugal.rs · integrity_impact.rs # quantum-vs-classical crossover map · PNT trade · cost-per-coverage ROI · integrity impact
│ ├── quantum_devices.rs · quantum_faults.rs · quantum_nav_od.rs · qtrade.rs · timetransfer_chain.rs · representativeness.rs # Quantum-Enabled PNT demonstrator — device error models · fault catalogue · GNSS-free quantum OD · unified trade harness · quantum time-transfer chain · representativeness / gaps-to-flight ledger
│ ├── interchange.rs · verification.rs # KIF artifact envelope · machine-checked verification matrix
│ └── bin/crossover_study.rs · bin/validation_report.rs # crossover-study artifact generator · release validation-summary HTML
│
├── mcp/kshana-mcp/ # standalone, workspace-EXCLUDED crate — the MCP server (+ Dockerfile, server.json)
├── ide/jetbrains/ # standalone Kotlin/Gradle IntelliJ-Platform plugin
├── xval/ # standalone, workspace-EXCLUDED external cross-checks: anise-{frames,lunar-od,mars-od,service-geometry} (Rust ANISE/SPICE DE440) + orekit-passes (Java Orekit)
│
├── examples/ # reproducible study generators: tpl_jammertest · resilience_report · optimism_study + real-data probes (jammertest_probe · yunnan_probe · satgrid_probe · texbat_probe · ingest_realdata)
├── paper-artifacts/ # byte-deterministic study artifacts, regenerable from examples/ (optimism-study.json · resilience-study.json); raw datasets stay out
├── scenarios/ # one cited .toml per kind + geometry-driven + GPS-denied
├── scripts/ # reproducibility + repo-hygiene + SBOM guards
├── docs/ # CONCEPTS, ARCHITECTURE, CAPABILITY, VALIDATION, PROVENANCE, GLOSSARY, …
├── web/ # the WebAssembly playground + kshana.dev site
├── tools/ # table generators (EGM2008 · IGRF · nutation · CIO) + fetch_tles.sh
├── .github/workflows/ # ci · release · publish · wheels · pages · mcp-publish · jetbrains-plugin · frame-xval
├── pyproject.toml # Python packaging (maturin)
├── CHANGELOG.md # Keep a Changelog + SemVer
└── CITATION.cff · ROADMAP.md · CONTRIBUTING.md · SECURITY.md
FAQ(よくある質問)
FAQ#
これを使うのに量子物理学を理解する必要がありますか?いいえ。コマンドラインを実行できれば Kshana を実行できます。まず平易な言葉の入門から始め、用語は用語集で調べてください。
量子ハードウェアの設計、または飛行用ソフトウェアですか?いいえ。性能を評価するシミュレーターです。量子ハードウェアの忠実度は、このツールではなく公表されている誤差モデルに由来します。何であり、何でないかを参照してください。
量子の結果は現実的ですか、それとも宣伝ですか?すべてのパラメーターはデータシートまたは論文を出典としており、すべてのモデルは教科書の関係式と照合して検証されています。成熟度は VALIDATION.md に正直に記載しており、ストロンチウム光時計が飛行したことがないという点も含みます。エンジンは中立で、量子と古典は、公表されている数値が違うだけの同じコードです。
二回の実行が一致すると信頼できますか?はい。実行は決定的です。scenario + seed + engine version → bit-identical output であり、scripts/check-reproducible.sh で強制しています。
Python やブラウザーから使えますか?はい。インストールを参照してください。Python と WebAssembly の例はその下にあります。どちらも同じエンジンを呼び出します。
自分のセンサーをモデル化するには?センサーの公表値を provenance フィールドに記入して、シナリオ .toml を書いてください。シナリオ形式と scenarios/ の例を参照してください。
商用利用は無料ですか?はい。AGPL-3.0 のもとで、商用の場面でも利用できます。ただし AGPL のコピーレフトを守る必要があります(特に、Kshana を改変してネットワーク経由で提供する場合は、その利用者に改変したソースを提供しなければなりません)。これが合わない場合、たとえば Kshana を独自製品に組み込む、またはクローズドなネットワークサービスを運用する必要がある場合は、Ashforde® OÜ から商用ライセンスを入手できます。LICENSING.md とサポートを参照してください。
トラブルシューティング
トラブルシューティング#
古いツールチェーンで cargo build が失敗する。Kshana には Rust ≥ 1.88 が必要です。rustup update で更新してください。
macOS で Python 拡張のビルドがリンクに失敗する(Undefined symbols … _Py…)。Python 拡張はシンボルをロード時に解決します。maturin は適切なリンカーフラグを自動で設定するため、単独の cargo build ではなく maturin develop --features python を使ってください。
Python のビルドで、インタープリターが PyO3 の把握しているものより新しいと警告される。PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 を設定してください(abi3 ホイールは CPython のバージョン間で前方互換です)。
WebAssembly のビルドでターゲットが見つからない。rustup target add wasm32-unknown-unknown で一度インストールしてから、wasm-pack build --target web -- --features wasm を実行してください。
出力はどこにありますか?実行のたびに、入力の .toml の隣へ <scenario>.result.json、<scenario>.chart.svg、<scenario>.report.html、<scenario>.report.json を書き出し、表を公開する種別では <scenario>.table.csv も書き出します。これらはすべて、設計上 git の管理対象外です。
バージョニングとリリース
バージョニングとリリース#
Kshana はセマンティックバージョニングに従います。1.0 より前の間は、公開されているシナリオ/結果のスキーマが変わることがあり、互換性を損なう変更は CHANGELOG.md に明記します。すべての結果は scenario + seed + engine version から再現できます。
すべての vX.Y.Z タグが、すべてのチャネルへ自動的に、決まった順序で公開します。まずタグ付けされたコミットで完全なテストスイートを実行し、それに合格するまで何も公開せず、その後でパイプラインが各レジストリで新しいバージョンが実際に配信されていることを確認します(docs/RELEASING.md)。チャネルは次のとおりです。
| チャンネル | インストール/入手 | 目次 |
|---|---|---|
| crates.io | cargo install kshana · kshana = "0.35" |
Rust ライブラリ + CLI |
| crates.io | cargo install kshana-mcp |
MCP サーバー |
| PyPI(Python Package Index) | pip install kshana |
abi3 ホイール(Linux/macOS/Windows)+ sdist(ソース配布物) |
| npm | npm install kshana |
WebAssembly モジュール + JS ラッパー |
| ghcr.io | docker run -i ghcr.io/ashfordeou/kshana-mcp |
マルチアーキテクチャの OCI(Open Container Initiative)イメージ:ツールチェーン不要 |
| npm | npx -y kshana-mcp@0.40.0 |
ランチャー:リリースのバイナリをダウンロードし、SHA256SUMS を検証して実行します |
| PyPI | uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 |
Python 向けの同じランチャー |
| Homebrew · Scoop · winget | brew install ashfordeOU/tap/kshana-mcp · scoop install kshana-mcp · winget install AshfordeOU.KshanaMcp |
各リリースの SHA256SUMS から生成される kshana-mcp バイナリ |
| 公式 MCP レジストリ | MCP クライアントが自動検出 | io.github.ashfordeOU/kshana-mcp(OCI イメージ、npm と PyPI のパッケージ) |
| JetBrains Marketplace | IDE → Plugins → 「Kshana」で検索 | Kshana — PNT simulator IDE プラグイン |
| Zenodo | DOI | すべてのリリースを引用可能な形で保管するアーカイブ |
| kshana.dev | ブラウザーで開く | Kshana Studio。各リリースタグから再ビルドされるブラウザー内の WebAssembly アプリです(表示されるバージョンが、実行されるバージョンです) |
MCP サーバーのクレート/イメージ/レジストリのバージョンはエンジンに連動します(ライブラリを同梱しているため)。JetBrains プラグインは独立してバージョン管理されます(インストール済みの kshana バイナリを呼び出します)。
ロードマップ
ロードマップ#
段階的なロードマップは ROADMAP.md、リリース済みの履歴は CHANGELOG.md、機能ごとのロードマップは docs/CAPABILITY.md を参照してください。優先順位は次のとおりです。まず重要インフラ向けのタイミングとホールドオーバーの証拠(通信タイミングマスク、経年変化とフリッカーノイズを含むより長いホールドオーバー、測定した時計データの取り込み)、次に量子と古典を比較する中立的なトレードの手法(パートナーの測定データで格上げされるまで、結果には MODELLED と表示)、そして月・シスルナーと深宇宙の航法は維持し、主力としては拡大しません。ITRF 精密座標系変換は提供済みです。CIO ベースの IAU 2006/2000A GCRS↔ITRS 変換の全過程(極運動 + 秒角未満の章動)を備え、SOFA/ERFA とビット単位で一致することを検証し、さらに ANISE(純 Rust の SPICE)と GNSS 軌道で ≤ 3.6 m の範囲で独立に相互確認しています。近い将来の項目には、密結合の搬送波位相融合と、疎結合/密結合の GNSS/INS ナビゲーターをより多くのパックで利用できるようにすることがあります。深宇宙・火星の電波航法エンジンは v0.17.0 で追加されました(シミュレーションで検証済み)。量子物理レイヤーは P2 の項目です。CAI 加速度計は第一原理(マッハ・ツェンダー位相、射影ノイズ、コントラスト減衰、振動結合)からシミュレートされるようになりましたが、時計・時刻比較のセンサーは引き続き、公表されているアラン偏差/ノイズバジェットの係数で駆動しています。GMST ベースの TEME↔ECEF、IERS のうるう秒を含む時刻系(UTC/TAI/TT/UT1)、SGP4/SDP4 軌道伝搬(v0.7.0、AIAA 2006-6753 のベクトルと照合して検証)、実行可能な gnss-ins 融合パックは、すべて出荷済みで、慣性速度は下流で利用できます。能動的な確率論的時刻スプーフィング検出器(Monte-Carlo の P_fa/P_md と 1−P_md の Security FoM を備えた Neyman–Pearson / χ²₁ のエネルギー検定)、リンクバジェットによるジャミングモデル(J/S → 実効 C/N₀ → ロックロス)、マルチコンステレーションの可用性、単一軸(1 自由度)の IMU 誤差バジェット、二つの独立した(時計 + 位置)カルマン推定器を合成した FoM としての報告、TLE による実在のコンステレーションのジオメトリ、HTML スコアカードレポート、離心率と J2 ドリフトを含むケプラー軌道によるジオメトリ由来の GNSS 可用性と精度低下率の両方、モンテカルロの信頼帯、トレードスタディのパラメーター掃引、ブラウザー内の WebAssembly プレイグラウンド、オプションの Python(PyO3)と WebAssembly(wasm-bindgen)バインディングは、main に取り込まれています。
コントリビューション
コントリビューション#
CONTRIBUTING.md を参照してください。要点は、テストに合格すること(cargo test)、二つのガードスクリプトに合格すること、Conventional Commits を使うこと、ユーザーに見えるすべての変更について CHANGELOG.md の [Unreleased] に項目を追加することです。参加にあたっては行動規範が適用されます。セキュリティ上の問題を報告するにはセキュリティポリシーを参照してください。脆弱性については、公開の Issue を作成しないでください。
ドキュメント:すべての文書と、その対象読者
ドキュメント#
| 文書 | 対象 | 内容 |
|---|---|---|
| 基本概念の入門 | 全員、ここから開始 | Kshana が何をするか、なぜそうするか、ゼロから物理まで |
| Kshana Studio | 全員 | ブラウザー(WebAssembly)でエンジンを実行する。ビルドとデプロイの注意事項 |
| 用語集 | 全員 | すべての用語の平易な言葉による定義 |
| シナリオの種類 | 全員 | エンジンがディスパッチするすべての種別:その働き、フィールド、コマンド例、台帳の行、およびエンジンが書き出すグラフ |
| パートナーのデータ | 実測データを保有するラボとメーカー | 実測したクロックまたは IMU の記録によって、どの MODELLED の行を引き上げられるか、形式、提出物の確認方法(kshana partner check)、採点とクレジットの付け方 |
| アーキテクチャ | 開発者/レビュアー | モジュールマップ、エンジンのパイプライン、ディスパッチ、図 |
| 検証ステータス | レビュアー/引用者 | validated と not modeled の区別を、エビデンスとともに説明 |
| 検証マトリクス | レビュアー/引用者 | 機械で検証されるエビデンス台帳:すべての機能の行について、ステータス、モジュール、テスト、外部オラクルを記載し、src/verification.rs から生成 |
| モデル化の根拠 | レビュアー | モデル化の各行に外部オラクルがない理由を、行ごとに説明 |
| 来歴 | レビュアー/引用者 | すべてのセンサーパラメーター、モデル、データセットを、公表されている出典までたどれる、引用可能な 一つの表 |
| 再現性と来歴 | レビュアー/パッケージ作成者 | 決定性の保証、ゴールデンピン留め、SBOM(ソフトウェア部品表)、ビルドの来歴 |
| ホイールのプラットフォームタグ | パッケージ作成者 | abi3 Python ホイールの対応表:pip install kshana がどのプラットフォームタグに解決されるか |
| 測位 | 評価者 | RTKLIB/gLAB に対する Kshana の位置づけ(補完関係)と、インストール不要のブラウザー層 |
| Kshana Pro | 評価者/プログラムマネージャー | 同じエンジンに対して、プロプライエタリの Pro オーバーレイが追加するもの:設計オプティマイザー、不確かさと感度、ミッションドシエ、キャンペーンウォッチ、スペクトル共存、オンプレミスのジョブサービス、要求のトレーサビリティ。それぞれが何を生み出し、何を行わないか |
| 技術レポート · JOSS 論文 | レビュアー/引用者/評価者 | 拡張版の研究論文全文(アーキテクチャ、領域ごとのモデル、検証、ケーススタディ、制限事項)と、簡潔な JOSS(Journal of Open Source Software)投稿論文 |
| SGP4 の検証 | レビュアー/引用者 | AIAA 2006-6753 の参照値との一致(666 状態、約 4 mm)および独立した sgp4 クレートとの直接比較(サブミクロン/4.12 mm の範囲で一致) |
| 力モデルの検証 | レビュアー/引用者 | 機関のエフェメリスに当てはめたフルフォースエンジン(src/precise_od.rs):手法と、検証済みの残差 |
| 実 TLE ガイド | ユーザー | 同梱の合成 Walker 集合ではなく、Celestrak/Space-Track の実在コンステレーション TLE でシナリオを駆動する |
| インテグリティ FoM | 評価者 | integrity と security の数値の意味と、航空機向けの HPL/VPL とは異なる点 |
| ARAIM リファレンス | レビュアー/インテグレーター | オープンな MHSS ARAIM 保護レベルの実装:b_k の公称バイアス射影、σ_URA と σ_URE の違い、故障モードの事前確率 |
| 量子モデル · 詳細 | レビュアー | 冷却原子干渉計の物理レイヤーと、係数が今も参照テーブルから得られている箇所 |
| Compliance | 評価者 | DO-229E / DO-316 のアルゴリズムの範囲と、適合性の主張に当たらないもの |
| 海事の信頼性 | 船員/インテグレーター | 船舶の NMEA に対する 0~100 の GNSS 信頼スコア、そのモニター、その限界(助言のみ。型式承認を受けた航法装置ではありません) |
| NMEA 訓練ストリーム | 海事の訓練担当者 | スクリプト化したジャミングとスプーフィングおよび教官ログを備えた、合成のブリッジ NMEA。テキストのみで、実際の航法には使用しないこと |
| 干渉マップ | アナリスト/船員 | 航空機や船舶が劣化した航法データを報告した場所と、それが航路のどれだけに及ぶか |
| エビデンスパック | 運用者/保険会社 | 信頼イベントの署名付き技術記録と、その検証方法 |
| 信頼テレメトリ | 運用/セキュリティチーム | 信頼ストリームを Prometheus メトリクス、SIEM イベント、OpenTelemetry として扱う方法と、Grafana ダッシュボード |
| 船舶向けインテグレーション | ボートオーナー/インテグレーター | Signal K プラグイン、OpenCPN ゲートモード、リファレンスビルド |
| test bench | 受信機メーカー | エクスポートしたシナリオをラボ用シミュレーターで再生し、受信機のログを採点する |
| compliance のマッピング | 評価者 | 公開されているレジリエンスのフレームワークと Kshana の出力との対応付け(出典とギャップを明記)。kshana compliance-report |
| ノートブック | ユーザー | 実行可能なチュートリアルと、そのレンダリング済みテキスト |
| 標準と相互運用性 | インテグレーター | Kshana が読み書きする GNSS/飛行力学/機関間の交換フォーマット(RINEX、SP3、CCSDS OEM/OMM/TDM/Space-Packet など) |
| LEO PNT 融合 | ユーザー/評価者 | MEO + LEO を融合した測位・航法・時刻:ドップラー、結合疑似距離、PPP の収束、5G NTN、極域カバレッジ、任意のコンステレーションにわたる LEO 時刻比較。オプションのプリセットとその公開出典 |
| キャンペーン | ユーザー/評価者 | シナリオの組み合わせ:連結したミッションタイムライン、パラメーター掃引、モンテカルロのアンサンブル、共通条件での実行。テストで固定している組み合わせの恒等式を含む |
| シナリオカタログ | ユーザー/インテグレーター | ディスパッチ可能なすべての種別と、その必須およびオプションの TOML フィールド:api::list_scenario_kinds() から生成 |
| 結果のスキーマ | インテグレーター | 結果 JSON のすべてのフィールドを、単位と出典へのポインターとともに記載 |
| Python API | Python ユーザー | PyO3 バインディングの範囲:エンジンの呼び出し、シナリオ/結果の型、例 |
| 主張と実態 | レビュアー | 過大な主張の解消台帳と、それが解消済みの状態を保つ CI ガード(tests/no_overclaims.rs) |
| ロードマップ | 全員 | 段階的なロードマップ:提供済みのものと次の予定 |
| MCP サーバー · JetBrains プラグイン | エージェント/IDE ユーザー | AI アシスタントまたは JetBrains IDE から Kshana を実行する |
| エージェントガイド · サーフェス | エージェント/インテグレーター | どのツールがどの質問に答えるか、各回答とともに何を保存しておくか。各機能がどこから利用できるか(CLI、Rust、Python、WASM、MCP、プラグイン、JetBrains、ノートブック)と、セルが N/A である理由 |
| 変更履歴 | 全員 | リリース済みの履歴(Keep a Changelog + SemVer、セマンティックバージョニング) |
| コントリビューション | コントリビューター | ビルド、ガード、テストと引用の規律、DCO(Developer Certificate of Origin) |
| ガバナンス | コントリビューター/コミュニティ | Kshana のガバナンス:誰がどのように決めるか、オープンとクローズドの境界 |
| 行動規範 | コミュニティ | 期待される行動(Contributor Covenant) |
| セキュリティポリシー | 報告者 | 脆弱性の報告方法。デュアルユースに関する注記 |
主要な参考文献
主要な参考文献#
検証オラクルと標準:Kshana のチェックの拠り所となっている外部の権威
- Vallado、Crawford、Hujsak、Kelso — Revisiting Spacetrack Report #3(AIAA 2006-6753、テストデータ):Kshana が 4.12 mm まで一致させる SGP4/SDP4 の検証セットと、TEME→ITRF 変換の照合に用いる座標系の計算例。
- IAU SOFA / ERFA — IAU 2000A 章動と CIO ベースの GCRS↔ITRS 変換をビット単位で照合して検証している、基準となる時刻・座標系ルーチン。
- Petit & Luzum(編)— IERS Conventions (2010)、IERS TN(Technical Note)36(地球姿勢、極運動、座標系の標準)。
- Riley — Handbook of Frequency Stability Analysis、NIST SP 1065(アラン偏差の関係式と NBS14 基準系列。NBS は旧米国標準局)。
- Pedregosa et al. — scikit-learn: Machine Learning in Python、JMLR 12 (2011):RF 劣化評価テストベッドが厳密に一致させている、ROC/AUC、混同行列、適合率/再現率/F1 の基準実装(
tests/eval_metrics_reference.rs)。 - Virtanen et al. — SciPy 1.0、Nature Methods 17 (2020):
optimize.nnls、stats.chi2、linalg.expm。量子トレードの実測 ADEV の NNLS フィット、χ² 整合性帯域、van-Loan 法による時計プロセスノイズ共分散の検証に用いる基準ルーチン(tests/scipy_reference.rs)。 - Knowles, Kanhere, Neamati & Gao — gnss_lib_py、SoftwareX 27 (2024):オープンな先行事例(下の「Comparison & open prior art」を参照)としても、GDOP/PDOP/HDOP/VDOP/TDOP の計算を 1e-6 まで一致させている独立した DOP オラクル(
tests/dop_reference.rs)としても使用しています。 - Montenbruck & Gill — Satellite Orbits: Models, Methods and Applications(Springer):機関の精密エフェメリスに対するフォースモデルのフィットの基礎となる力学モデル。
- Howell — Three-dimensional, periodic, halo orbits、Celestial Mechanics 32(1) (1984)、doi:10.1007/BF01358403、および Zimovan-Spreen, Howell & Davis — Near rectilinear halo orbits and nearby higher-period dynamical structures、Astrodynamics 6 (2022)、doi:10.1007/s42064-021-0125-x(CR3BP の微分補正器が再現するハロー軌道/NRHO の軌道族)。
デバイスと手法の物理 — センサーモデルの基礎となる出典:
- Origlia, Schiller, Bongs et al. — arXiv:1503.08457(ストロンチウム光格子時計、宇宙搭載を目指した目標)。
- Oelker et al.、Nature Photonics (2019) — doi:10.1038/s41566-019-0493-4(実験室の Sr 時計、4.8×10⁻¹⁷)。
- Templier et al.、Science Advances (2022) — arXiv:2209.13209(ハイブリッド量子加速度計の三軸構成)。
- Groves、Principles of GNSS, Inertial, and Multisensor Integrated Navigation — IEEE AESS(Aerospace and Electronic Systems Society)チュートリアル(University College London Discovery リポジトリ)(推測航法の誤差増大)。
- Giorgetta et al.、Nature Photonics 7、434 (2013) — arXiv:1211.4902、Deschênes et al.、Phys. Rev. X 6、021016 (2016) — APS(American Physical Society)(光による双方向の時間・周波数伝送。光衛星間リンクは、これらに倣って非相反性のバジェットをモデル化しています)。
- Betz — Binary Offset Carrier Modulations for Radionavigation、NAVIGATION 48(4) (2001)、doi:10.1002/j.2161-4296.2001.tb00247.x(
src/navsignal.rsの基礎となる BOC 変調とスペクトル分離の理論)。 - Kaplan & Hegarty(編)— Understanding GPS/GNSS: Principles and Applications(第 3 版、Artech House、2017):航法信号モデルとジャミングモデルが使用する、アンチジャムの実効 C/N₀ の式と、早期・遅延 DLL のコード追尾の熱雑音ジッター。
比較とオープンな先行事例 — Kshana の位置づけを比較する対象となるツールと調査:
- Humphreys et al. — TEXBAT(Texas Spoofing Test Battery、ION — Institute of Navigation — GNSS 2012):多層検出器の特性評価に用いるスプーフィング試験バッテリーのパラメーター。
- González et al. — NaveGo (2017):古典的なベースラインとして用いる、オープンで検証済みの慣性航法の誤差プロファイル。
- Iiyama, Casadesús Vila & Gao — LuPNT(ION GNSS+ 2023、Stanford NavLab):オープンな月 PNT シミュレーター。
- Knowles, Kanhere, Neamati & Gao — gnss_lib_py、SoftwareX 27 (2024)、doi:10.1016/j.softx.2024.101811:オープンな GNSS データ解析。
- Li, Zaminpardaz, Kealy & Greentree — Quantum sensors for enhanced positioning and navigation: a comprehensive review、GPS Solutions 30(1):62 (2026)、doi:10.1007/s10291-026-02030-y。
- Bertone et al. — Earth and Space Science 8(6) (2021)、doi:10.1029/2020EA001454:GRAIL の簡約力学軌道決定。LRO のフィットが再現する経験加速度の下限。