標準と相互運用性
Kshana は、GNSS(全球測位衛星システム)、飛行力学、時刻の各コミュニティの標準的な交換フォーマットを扱うため、RTKLIB(オープンソースのリアルタイムキネマティック測位ライブラリ)、gLAB、Ginan、GMAT(General Mission Analysis Tool)、Orekit、IGS(国際 GNSS 事業)の解析センターのツール群と、独自の孤島ではなく並んで使えます。このページは、エンジンが解析または出力する交換フォーマットを、それぞれを実装するモジュールと権威ある仕様に対応づけます。
対象はフォーマット、つまり読み書きの方向があるものに限られます。エンジンが解析するのではなく実装する信号とアルゴリズムの規格(IS-GPS-200(IS:Interface Specification、GPS:Global Positioning System)、IEEE(米国電気電子学会)1139、RTCA(旧 Radio Technical Commission for Aeronautics)DO-229E、IGRF-14(IGRF:International Geomagnetic Reference Field)、ARAIM(高度な受信機自律インテグリティ監視)WG-C(WG:Working Group)リファレンス、CCSDS(宇宙データシステム諮問委員会)401/DSN(DSN:Deep Space Network))は、代わりに VERIFICATION-MATRIX.md で行ごとに裏付けられています。
エンジンが扱うフォーマット#
| 規格 | 方向 | モジュール | 仕様・発行元 | 備考 |
|---|---|---|---|---|
| CCSDS OEM(Orbit Ephemeris Message) | 読み込みと書き出しの両方 | src/oem.rs |
CCSDS 502.0-B Orbit Data Messages、KVN(キーワード・値表記)形式 | GMAT、Orekit、STK(Systems Tool Kit)が取り込む、表形式の状態ベクトル暦。parse_oem が読み戻します。CCSDS 502.0-B-3 の図 G-11 の Blue Book の例を原文どおりに復元することで確認済み(tests/ccsds_reference.rs)。任意の 6×6 位置・速度の共分散ブロック(COVARIANCE_START … COVARIANCE_STOP、21 要素の下三角 KVN シリアライズで、任意の COV_REF_FRAME を伴う)は、書き出し(covariance_block_kvn)と読み込み(parse_covariance_block)の両方に対応し、ラウンドトリップで対称です(src/oem.rs のテスト)。 |
| CCSDS OMM(Orbit Mean-Elements Message) | 書き込み | src/omm.rs |
CCSDS 502.0-B-2、KVN 形式 | SGP4/TLE(SGP4:Simplified General Perturbations 4、TLE:two-line element set(二行軌道要素))の平均軌道要素(平均運動、e、i、Ω、ω、M、BSTAR(軌道伝播器の抗力項))の標準化トラックでの公表形式。orbit シナリオでは、--export-omm <out.omm> または export_omm = true により CLI(コマンドラインインターフェース)から利用できます(TLE で定義された衛星ごとに 一つの OMM で、実際の NORAD(北米航空宇宙防衛司令部)ID、COSPAR(国際宇宙空間研究委員会)識別符号、エポックを持ちます。tests/sp3_export_roundtrip.rs)。XML(Extensible Markup Language)形式と読み込み機能は今後の課題です。 |
| CCSDS TDM(Tracking Data Message) | 読み込みと書き出しの両方 | src/ccsds_tdm.rs |
CCSDS 503.0-B Tracking Data Message、KVN 形式 | DSN/ESTRACK(ESTRACK:European Space Tracking network)のパスが OD(軌道決定)システムに届ける、距離・ドップラー・角度の追尾レコード。CCSDS 503.0-B-2 の図 E-9 の Blue Book の例を原文どおりに復元することで確認済み(tests/ccsds_reference.rs)。 |
| CCSDS Space Packet(133.0) | 読み込みと書き出しの両方 | src/space_packet.rs |
CCSDS 133.0-B-2 Space Packet Protocol | 地上システムがやり取りする、6 オクテットの TM/TC(TM:テレメトリ、TC:テレコマンド)プライマリヘッダーのフレーミング。エンコーダーは、独立した spacepackets-py ライブラリが公表しているバイトレベルのテストベクトルを再現します(src/space_packet.rs のテスト)。 |
| SP3-c(SP3:Standard Product 3、精密軌道フォーマット)/ SP3-d(精密暦) | 読み込みと書き出しの両方 | src/sp3.rs |
IGS Standard Product 3(c/d) | 地球固定(ECEF)の位置と時計の時系列。実際の gps-ops スナップショットで、ラウンドトリップが 0.5 m 未満で確認されています(tests/sp3_export_roundtrip.rs)。 |
| RINEX(Receiver Independent Exchange Format)3(放送航法) | 読み取り | src/rinex.rs |
RINEX 3.x NAV(IS-GPS-200、Galileo ICD(インターフェース制御文書)、BeiDou ICD、GLONASS(ロシアの全球航法衛星システム)ICD) | マルチ GNSS の NAV 取り込み(GPS LNAV(レガシー航法メッセージ)、Galileo F/NAV、QZSS(日本の準天頂衛星システム)、BeiDou MEO/IGSO(MEO:中軌道、IGSO:傾斜静止軌道)、GLONASS の状態ベクトル)。第一級の Propagator ソースとして使えます。 |
| TLE / 3LE(二行・三行軌道要素) | 読み取り | src/tle.rs |
NORAD / Celestrak、AIAA(米国航空宇宙学会)2006-6753 | 確認済みの SGP4/SDP4(SDP4:Simplified Deep-space Perturbations 4)コアで伝播します(公式の AIAA ベクトル 666 件に対して 4.12 mm)。 |
| RINEX 3.0x(観測) | 読み取り | src/rinex_obs.rs |
RINEX 3.0x OBS(4.00 は解析できる想定ですが、4.00 のファイルで実行したことはありません) | RINEX のもう一方の半分:受信機自身のコード・搬送波・ドップラー・SNR(SNR:信号対雑音比)の記録(parse_obs)。これは、pvt の単独測位ソルバーが放送航法ファイルとともに消費する入力です(tests/pvt_abmf.rs、実際の IGS 観測局 ABMF)。 |
| IONEX(IONosphere map EXchange format、全球 TEC(全電子数)マップ) | 読み取り | src/ionex.rs |
IONEX 1.x(IGS の電離圏プロダクト) | parse_ionex は、IGS の全球全電子数グリッドを読み込みます。これは放送される Klobuchar 補正に代わる実測の選択肢で、空間と時間の双一次補間と、斜め遅延への傾斜マッピングを伴います。 |
IERS(国際地球回転・基準座標系事業)finals2000A / Bulletin B(地球姿勢) |
読み取り | src/eop.rs, src/frame_eop.rs |
IERS Conventions、IERS EOP(地球姿勢パラメーター)14 C04 / finals2000A.all |
公式プロダクトによる UT1(Universal Time 1、地球自転時刻)−UTC(協定世界時)と極運動。予測の行も含むため、座標系の変換をリアルタイムで実行でき、その予測誤差の増大を見積もれます(tests/operational_eop_predictor_reference.rs)。 |
| KIF(Kshana Interchange Format) | 読み込みと書き出しの両方 | src/interchange.rs |
このリポジトリ:SCHEMA.md を参照 |
あらゆる成果物を包める、中立でバージョン付きのエンベロープ:format / schema_version / kind / engine_version / payload。利用側に対して、メジャー・マイナーの互換性の判定を明示します。外部の標準ではありません。外部のツールが認識する必要があるため、ここに文書化しています。 |
| LunaNet / IOAG(Interagency Operations Advisory Group)の月面向け交換 | 書き出し(時刻メタデータは読み込みも可) | src/lunar_interop.rs |
LunaNet 相互運用仕様 / IOAG 月面通信アーキテクチャ、CCSDS 502.0 上 | LunaNet/IOAG に沿った CCSDS 形式で出力される月面座標系、月の時間系、月の暦(export_lunar_oem、export_kif_lunar、export_lunar_time_metadata)。出力された OEM に対するフィールド検査を伴います(tests/lunar_interoperability_export_reference.rs)。 |
| CZML(Cesium Language) | 書き込み | src/interop/czml.rs |
CesiumJS の CZML パケット形式 | CesiumJS の地球儀向けの、時刻付きパケットによる JSON(JavaScript Object Notation)ストリーム。移動する物体は GCRS(INERTIAL)で書き出します。地球上に物体を置くあらゆる種別で --export czml が使えます。 |
| KML(Keyhole Markup Language) | 書き込み | src/interop/kml.rs |
OGC(Open Geospatial Consortium)KML 2.2 | Google Earth と GIS(地理情報システム)ツール向けの、地球固定の経度、緯度、高さ。--export kml。 |
| GeoJSON | 書き出しと読み込みの両方(経路) | src/interop/geojson.rs |
IETF(Internet Engineering Task Force)RFC 7946 | Web 地図と GIS ツール向けの地球固定ジオメトリ(--export geojson)。LineString は、それを飛行させる種別の直線航跡の入力として読み戻されます(--import-route <route.geojson>)。 |
STK エフェメリス(.e、EphemerisTimePosVel) |
書き込み | src/interop/stk.rs |
Ansys STK のエフェメリスファイル形式 | STK と、そのエフェメリス形式を読むツール向けの慣性系(ICRF)の位置と速度。--export stk。 |
| SigMF(Signal Metadata Format) | 読み込みと書き出しの両方 | src/sigmf.rs |
SigMF 仕様 | 複素ベースバンドの記録と JSON メタデータ:spectrum 種別は合成した同相・直交(IQ)サンプルを書き出し(--export sigmf)、[recording] ブロックを通じて記録を読み込みます。 |
| LEO 航法メッセージのテキスト(RINEX-4 形式と CSV(カンマ区切り値)) | 読み込みと書き出しの両方 | src/leo_navmsg/text.rs |
RINEX 4 の航法レイアウトを適応したもの | leo-navmsg 種別が低軌道(LEO)衛星について出す放送暦と時計を、書き出して再び取り込みます。文書化された適応であり、登録済みの RINEX メッセージ種別ではありません(検証マトリクスでは MODELLED)。 |
座標系と時刻#
エンジンが出力する座標系は、暗黙ではなく明示されています。CIO ベース(CIO:Celestial Intermediate Origin)の IAU(国際天文学連合)2006/2000A 変換(src/cio.rs)と、春分点/GMST(GMST:グリニッジ平均恒星時)の TEME(真赤道・平均春分点)変換(src/frames.rs、src/nutation.rs)は、SOFA/ERFA(SOFA:Standards of Fundamental Astronomy、ERFA:Essential Routines for Fundamental Astronomy)の参照ベクトルに対してビット単位で一致することを確認しています(VALIDATION.md を参照)。
| フレーム | 実現 | 備考 |
|---|---|---|
| TEME | SGP4 ネイティブ | 真赤道・平均春分点。SGP4/SDP4 の出力座標系。 |
| GCRS(Geocentric Celestial Reference System)/ J2000 | IAU 2006 歳差 + IAU 2000A/2000B 章動 | teme_to_gcrs(春分点チェーン)。 |
| CIRS(Celestial Intermediate Reference System) | IAU 2006/2000A CIO(X、Y、s) | gcrs_to_cirs_matrix (eraC2ixys). |
| ITRS(International Terrestrial Reference System)/ ECEF | ERA(地球回転角)+ IERS 極運動(CIO)、または GMST + 極運動(春分点) | gcrs_to_itrs_matrix(CIO、eraC2tcio)/ teme_to_itrf(春分点)。 |
| WGS-84(WGS:World Geodetic System)測地 | 厳密 + 反復による逆変換 | ecef_to_geodetic / geodetic_to_ecef. |
| 時間系 | 用途 |
|---|---|
| TT(地球時) | 歳差・章動・CIO の引数の評価(jd_tt)。 |
| UT1 | 地球回転角 / GMST(jd_ut1)。 |
| 二部構成の JD(ユリウス日) | src/jd2.rs Jd2。µs 未満のエポック分解能のため。 |
出力フィールドと規格の対応(CCSDS 502.0)#
二つの軌道メッセージ書き出し機能が、CCSDS ODM(Orbit Data Messages、502.0)の各フィールドに何を入れるか。scenarios/orbit-sgp4-gps.toml を --export-oem と --export-omm で実行した結果から読み取ったものです。
| Kshana の出力 | CCSDS ODM のフィールド | 値・単位 |
|---|---|---|
| OEM セグメントのメタデータ | CENTER_NAME / REF_FRAME / TIME_SYSTEM |
EARTH / TEME / GPS。伝播器が積分する座標系と、エポックグリッドの時間系であり、付け替えはしていません |
| OEM 状態エポック | 各データ行の最初の列 | ISO-8601(ISO:国際標準化機構)の暦時刻、GPS 時間系 |
| OEM 位置、速度 | X Y Z X_DOT Y_DOT Z_DOT のデータ列 |
km、km/s |
| OMM メタデータ | REF_FRAME / TIME_SYSTEM / MEAN_ELEMENT_THEORY |
TEME / UTC / SGP4 |
| OMM エポック | EPOCH |
ISO-8601 の年通日形式(TLE のエポック) |
| OMM 平均軌道要素 | MEAN_MOTION / ECCENTRICITY / INCLINATION / RA_OF_ASC_NODE / ARG_OF_PERICENTER / MEAN_ANOMALY / BSTAR |
rev/day、–、deg、1/Earth radii |
ephemeris 種別の結果 JSON(JavaScript Object Notation)は、サンプルごとに同じ状態を SI(国際単位系)単位で持ちます:jd_utc、teme_r_m / teme_v_m_s、gcrs_r_m / gcrs_v_m_s、ecef_r_m(m、m/s)、および lat_deg、lon_deg、alt_km。
正直な適用範囲#
- OEM、TDM、Space Packet、KIF、SigMF、LEO 航法メッセージのテキストは読み込みと書き出しの両方に対応します。OMM、CZML、KML、STK エフェメリスは書き出しのみです(OMM の読み込みと XML シリアライズは今後の課題です)。GeoJSON は書き出され、経路として読み戻されます。RINEX NAV、RINEX OBS、IONEX、IERS EOP プロダクト、TLE は読み込みのみです。LunaNet/IOAG の月面向け書き出しは書き出しのみで、その時刻メタデータはラウンドトリップします。どの書き出しが各同梱シナリオに当てはまるかは、
INTEROP.mdに一覧があります。 - 上記の CCSDS/IGS のフィールド対応は文書であり、いずれかの標準が満たされているという主張ではありません。これらの標準に対する正式な評価(および ESA(欧州宇宙機関)の ESSR(European Space Software Repository)/ NASA(米国航空宇宙局)のオープンカタログへの登録)は別途管理されており、審査待ちです。
- 独立した SPICE/ANISE(SPICE:Spacecraft, Planet, Instrument, C-matrix, Events、ANISE:Attitude, Navigation, Instrument, Spacecraft, Ephemeris。純 Rust の惑星ジオメトリのツールキット)による座標系変換の数値的クロスチェックは、ワークスペースから除外された独立クレート
xval/anise-frames/で提供されています。gcrs_to_itrs_matrixを ANISE の GCRF(Geocentric Celestial Reference Frame)→ ITRF93(International Terrestrial Reference Frame 1993)の回転と 2020–2023 年の八つのエポックで比較すると、地上で ≤ 0.86 m、GNSS 軌道で ≤ 3.6 m の範囲で一致します(VALIDATION.mdを参照)。SPICE カーネルを必要とするため、既定の継続的インテグレーション(CI)のゲートではありません。