机器翻译,未经母语人士审校。以英文版为准。

验证与证据在GitHub上编辑来源:docs/STANDARDS.md

标准与互操作

Kshana使用GNSS(全球导航卫星系统)、飞行动力学和授时社区的标准交换格式,使其能够与RTKLIB(开源实时动态定位库)、gLAB、Ginan、GMAT(通用任务分析工具)、Orekit以及IGS(国际GNSS服务)分析中心的工具并肩工作,而不是孤立于一座私有的孤岛。本页把引擎解析或输出的交换格式,对应到实现各格式的模块和权威规范。

范围限于格式,即有读写方向的对象。引擎实现而非解析的信号和算法标准(IS-GPS-200(IS:接口规范;GPS:全球定位系统)、IEEE(电气电子工程师学会)1139、RTCA(原为无线电技术委员会)DO-229E、IGRF-14(IGRF:国际地磁参考场)、ARAIM(先进接收机自主完好性监测)WG-C(WG:工作组)参考、CCSDS(空间数据系统咨询委员会)401/DSN(DSN:深空网))改在VERIFICATION-MATRIX.md中逐行给出证据。

引擎使用的格式#

标准 方向 模块 规范 / 权威来源 备注
CCSDS OEM(轨道星历消息) 可读也可写 src/oem.rs CCSDS 502.0-B轨道数据消息,KVN(关键字-值表示法)形式 由GMAT、Orekit、STK(Systems Tool Kit)摄入的列表式状态矢量星历。parse_oem将其读回;通过复现CCSDS 502.0-B-3图G-11蓝皮书的逐字示例得到核验(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(轨道平均根数消息) 写 src/omm.rs CCSDS 502.0-B-2,KVN形式 SGP4/TLE(SGP4:简化通用摄动4;TLE:两行根数集)平均根数(平均运动、e、i、Ω、ω、M、BSTAR(轨道传播器的阻力项))的标准轨道发布形式。在orbit场景上可经--export-omm <out.omm>或export_omm = true通过CLI(命令行界面)使用(每颗由TLE定义的卫星生成一条OMM,带有其真实的NORAD(北美防空司令部)编号、COSPAR(国际空间研究委员会)标识符和历元;tests/sp3_export_roundtrip.rs)。XML(可扩展标记语言)形式和读取器属于后续工作。
CCSDS TDM(跟踪数据消息) 可读也可写 src/ccsds_tdm.rs CCSDS 503.0-B跟踪数据消息,KVN形式 DSN/ESTRACK(ESTRACK:欧洲空间跟踪网)一次过境向OD(定轨)系统交付的距离 / 多普勒 / 角度跟踪记录。通过复现CCSDS 503.0-B-2图E-9蓝皮书的逐字示例得到核验(tests/ccsds_reference.rs)。
CCSDS空间包(133.0) 可读也可写 src/space_packet.rs CCSDS 133.0-B-2空间包协议 地面系统交换的6字节TM/TC(TM:遥测;TC:遥控)主头部封装。编码器复现了独立的spacepackets-py库所发布的字节级测试向量(src/space_packet.rs测试)。
SP3-c(SP3:标准产品3,精密轨道格式)/ SP3-d(精密星历) 可读也可写 src/sp3.rs IGS标准产品3(c/d) 地固系(ECEF)位置加钟差时间序列。在真实的gps-ops快照上,往返核验至< 0.5 m(tests/sp3_export_roundtrip.rs)。
RINEX(接收机独立交换格式)3(广播导航) 读 src/rinex.rs RINEX 3.x NAV(IS-GPS-200、Galileo ICD(接口控制文件)、北斗ICD、GLONASS(俄罗斯全球导航卫星系统)ICD) 多GNSS的NAV摄入(GPS LNAV(传统导航电文)、Galileo F/NAV、QZSS(日本准天顶卫星系统)、北斗MEO/IGSO(MEO:中地球轨道;IGSO:倾斜地球同步轨道)、GLONASS状态矢量);可作为一等的Propagator来源使用。
TLE / 3LE(两行 / 三行根数) 读 src/tle.rs NORAD / Celestrak,AIAA(美国航空航天学会)2006-6753 由经独立核验的SGP4/SDP4(SDP4:简化深空摄动4)核心传播(对666个官方AIAA向量为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(电离层图交换格式;全球TEC(总电子含量)图) 读 src/ionex.rs IONEX 1.x(IGS电离层产品) parse_ionex读取IGS全球总电子含量格网,这是广播Klobuchar改正的实测替代方案,带有双线性空间和时间插值以及到斜向延迟的倾斜因子映射。
IERS(国际地球自转与参考系服务)finals2000A / Bulletin B(地球定向) 读 src/eop.rs, src/frame_eop.rs IERS约定;IERS EOP(地球定向参数)14 C04 / finals2000A.all 来自官方产品的UT1(世界时1,地球自转时间)−UTC(协调世界时)和极移,包括预测行,因此坐标系归算可以实时运行,其预测误差的增长也可纳入预算(tests/operational_eop_predictor_reference.rs)。
KIF(Kshana交换格式) 可读也可写 src/interchange.rs 本仓库,见SCHEMA.md 中性、带版本的封装,每种产物都可以包装其中:format / schema_version / kind / engine_version / payload,并为使用方给出明确的主版本-次版本兼容性判定。不是外部标准;在此记录是因为外部工具必须能识别它。
LunaNet / IOAG(跨机构运行咨询组)月球交换 写(时间元数据也可读) 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语言) 写 src/interop/czml.rs CesiumJS CZML数据包格式 用于CesiumJS地球的带时间标签的数据包JSON(JavaScript对象表示法)流;运动物体以GCRS写出(INERTIAL)。适用于任何把物体放在地球上的类型,用--export czml。
KML(Keyhole标记语言) 写 src/interop/kml.rs OGC(开放地理空间联盟)KML 2.2 供Google Earth和GIS(地理信息系统)工具使用的地固系经度、纬度和高度。--export kml。
GeoJSON 可写也可读(路线) src/interop/geojson.rs IETF(互联网工程任务组)RFC 7946 供网络地图和GIS工具使用的地固系几何(--export geojson);LineString可被读回,作为沿直线航迹飞行的各类型的输入(--import-route <route.geojson>)。
STK星历(.e、EphemerisTimePosVel) 写 src/interop/stk.rs Ansys STK星历文件格式 供STK及读取其星历格式的工具使用的惯性(ICRF)位置和速度。--export stk。
SigMF(信号元数据格式) 可读也可写 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:天球中间零点)的IAU(国际天文学联合会)2006/2000A归算(src/cio.rs)和春分点/GMST(GMST:格林尼治平恒星时)的TEME(真赤道平春分点)归算(src/frames.rs、src/nutation.rs),已对照SOFA/ERFA(SOFA:基础天文学标准;ERFA:基础天文学核心例程)参考向量逐位核验(见VALIDATION.md)。

帧 实现 备注
TEME SGP4原生 真赤道平春分点,即SGP4/SDP4的输出坐标系。
GCRS(地心天球参考系)/ J2000 IAU 2006岁差加IAU 2000A/2000B章动 teme_to_gcrs(春分点链)。
CIRS(天球中间参考系) IAU 2006/2000A CIO(X, Y, s) gcrs_to_cirs_matrix (eraC2ixys).
ITRS(国际地球参考系)/ ECEF ERA(地球自转角)加IERS极移(CIO),或GMST加极移(春分点) gcrs_to_itrs_matrix(CIO,eraC2tcio)/ teme_to_itrf(春分点)。
WGS-84(WGS:世界大地测量系统)大地坐标 精确正解加迭代反解 ecef_to_geodetic / geodetic_to_ecef.
时标 用途
TT(地球时) 岁差/章动/CIO参数的求值(jd_tt)。
UT1 地球自转角 / GMST(jd_ut1)。
两段式JD(儒略日) src/jd2.rs Jd2,用于亚微秒的历元分辨率。

输出字段 → 标准的对应关系(CCSDS 502.0)#

两个轨道消息写出器在每个CCSDS ODM(轨道数据消息,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 圈/天、–、度、1/地球半径

ephemeris类型的结果JSON(JavaScript对象表示法)按每个采样以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、空间包、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(欧洲空间软件库)/ NASA(美国国家航空航天局)开放目录中的登记)另行跟踪,目前尚待审查。
  • 对坐标系归算的独立SPICE/ANISE(SPICE:Spacecraft, Planet, Instrument, C-matrix, Events;ANISE:Attitude, Navigation, Instrument, Spacecraft, Ephemeris,一个纯Rust的行星几何工具包)数值交叉检验,由独立的、不在工作区内的crate xval/anise-frames/提供:gcrs_to_itrs_matrix与ANISE的GCRF(地心天球参考架)→ ITRF93(国际地球参考架1993)旋转,在2020–2023年间八个历元上比较,地面上吻合至 ≤ 0.86 m,在GNSS轨道上吻合至 ≤ 3.6 m(见VALIDATION.md)。它需要SPICE内核,因此不是默认的持续集成(CI)门禁。