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

API与集成在GitHub上编辑来源:docs/SURFACES.md

各项能力在何处可用

每项能力都在有意义的界面上提供;某个界面无法承载某项能力时,对应单元格写明N/A及原因。同一个引擎在每个界面背后运行:0.35各项能力的Python、WebAssembly和MCP入口,都是对kshana::surface的薄封装,而它调用的是命令行所运行的代码。

此处略去了一段提及第三方AI客户端的文字;它在GitHub上的docs/SURFACES.md中。

能力 CLI Rust Python WASM MCP 插件 JetBrains 笔记本 Studio
船舶接收机信任度,批量日志(0-100分,含原因) receiver-trust receiver_trust::assess::assess_vessel_log receiver_trust, assess_vessel_log receiver_trust, assess_vessel_log assess_receiver_log, assess_vessel_log /kshana-assess-receiver,技能vessel-receiver-trust 评估接收机信任度 vessel-trust-and-training 船舶信任度页面
对有界流片段的接收机信任度(评分、状态、原因;无门禁) receiver-trust live receiver_trust::assess::assess_stream_excerpt receiver_trust_replay receiver_trust_replay assess_vessel_stream 相同 评估接收机数据流(已存储的日志) vessel-trust-and-training 船舶信任度页面
卫星几何和推断类别(0.36:geometry为good/degraded/unknown并附原因和DOP,label总会报告good/fair/poor,geometry监测器(除非几何较差否则什么都不做,较差时最多15个点;当它起了决定作用时列在monitors_run的最后,因此判定中的监测器数量包含几何),每个推断上的class,geometry_model、geometry_summary) receiver-trust、receiver-trust live(在结果JSON和每一行JSON中;CSV、SVG、单行结论和$PKSHT与其他项一样带有几何扣减,其余不变) receiver_trust::geometry,位于EpochTrust、Deduction和EpochReport上 receiver_trust、assess_vessel_log、receiver_trust_replay(在返回的字典中) 同样的三项(在返回的JSON中) assess_receiver_log、assess_vessel_log、assess_vessel_stream(在回复中;船舶日志的回复保留geometry_model和geometry_summary);trust_telemetry负责呈现 同上,技能vessel-receiver-trust、trust-telemetry 上述操作会打印携带该内容的CLI输出 vessel-trust-and-training(在其加载的结果中) 待办:海事信任页面尚未显示(字段列于docs/MARITIME-TRUST.md,Studio视图条目6)
receiver-trust live作为运行中的进程(stdin、被跟踪的文件、TCP、UDP、--gate、--listen) receiver-trust live receiver_trust::live::LiveEngine N/A N/A N/A N/A N/A N/A 工具:命令行卡片(要运行的命令;浏览器不是数据通路中的进程)
证据包:创建(已签名,日志的一个窗口;0.38:可选的lab-attestation,即操作人员对实验室设置的声明,记录在已签名的清单中,从不核实) receiver-trust evidence (--lab-attestation <file.toml>) evidence::create_bundle, evidence::create_bundle_attested, surface::evidence_create, surface::evidence_create_attested evidence_create (lab_attestation) N/A(签名密钥) create_evidence_pack (lab_attestation_toml) /kshana-evidence-pack,技能evidence-pack 创建证据包(0.38中对话框内没有证明字段:待办;命令行支持该字段) vessel-trust-and-training N/A(签名密钥不应出现在网页中);工具:命令行卡片
Jammertest作为裁判(0.38):已发布的NPRA目录和发射计划被视为预定的真值(import),接收机日志按每次测试对照其评分(score:检测延迟、漏检、虚警、恢复时间;MODELLED) jammertest import, jammertest score jammertest::plan, jammertest::score, surface::jammertest_import_json, surface::jammertest_score_json jammertest_import, jammertest_score jammertest_import, jammertest_score jammertest_import, jammertest_score /kshana-jammertest,技能jammertest N/A(需要磁盘上的计划文件和日志;请在终端中运行) N/A(尚无notebook) 待办:命令行的工具卡片(Studio的条带和视图归WS-A)
已签名的Jammertest评分包(jammertest score --key:含评分卡和config.json内时间表的接收机信任度证据包) jammertest score --key <keyfile> --out <dir> jammertest::score_pack N/A(签名密钥) N/A(签名密钥) N/A(签名密钥:对窗口使用create_evidence_pack,或使用命令行) N/A N/A N/A N/A(签名密钥不应出现在网页中);工具:命令行卡片
接收机自报告(0.38):每个历元将UBX-NAV-STATUS的spoofDetState和UBX-SEC-SIG读入self_report,结果中给出receiver_self_report比较(两者皆有 / 仅接收机 / 仅Kshana / 两者皆无);不触发任何告警,也不改变任何评分 receiver-trust(在结果JSON中;jammertest score) receiver_trust::ReceiverSelfReport, monitors::SelfReportEpoch, monitors::SelfReportSummary receiver_trust、assess_receiver_log(在返回的字典中) receiver_trust(在返回的JSON中) assess_receiver_log(在回复中) /kshana-assess-receiver 上述操作会打印携带该内容的CLI输出 N/A 待办:信任度页面的条带(WS-A;字段为epochs[].self_report)
Septentrio SBF日志格式(0.38,只读:PVTGeodetic、MeasEpoch、RFStatus) receiver-trust配合[log] format = "sbf" receiver_trust::ingest::read_sbf, LogFormat::Sbf receiver_trust、assess_receiver_log(format = "sbf",日志以base64形式提供) 同上 assess_receiver_log (base64) /kshana-assess-receiver 上述操作 N/A N/A(0.38中信任度页面不提供二进制日志上传)
receiver-trust live --serial <device> [--baud n]:串口或USB的NMEA数据源,只读(打开设备仅用于读取,从不向接收机写入;--configure会被拒绝) receiver-trust live --serial N/A(需要设备和进程) N/A N/A N/A N/A N/A N/A 工具:命令行卡片(要运行的命令;浏览器不是数据通路中的进程)
证据包:创建(已签名,日志的一个窗口) receiver-trust evidence evidence::create_bundle, surface::evidence_create evidence_create N/A(签名密钥) create_evidence_pack /kshana-evidence-pack,技能evidence-pack 创建证据包 vessel-trust-and-training N/A(签名密钥不应出现在网页中);工具:命令行卡片
实验室往返证据包(场景、测试条件、接收机日志和评分通过哈希关联) evidence round-trip evidence::build_round_trip_pack, surface::evidence_round_trip evidence_round_trip N/A(签名密钥) create_round_trip_pack /kshana-evidence-pack N/A(JetBrains操作绑定到一个选定的文件;证据包需要场景、条件、日志和密钥:请在IDE终端中运行) N/A(签名密钥不应出现在网页中);工具:命令行卡片
证据包:验证 evidence verify evidence::verify_bundle evidence_verify evidence_verify verify_evidence_pack 相同 验证证据包(仅限已固定的密钥) vessel-trust-and-training 工具:证据包(验证、附加时间戳)
信任度遥测(Prometheus、syslog CEF/LEEF、OTLP;0.38:format = "mqtt"、Home Assistant发现和状态行;--mqtt-tcp从CLI发布) trust-telemetry telemetry trust_telemetry trust_telemetry(输出文本;无套接字) trust_telemetry /kshana-trust-telemetry,技能trust-telemetry 渲染信任度遥测(已存储的结果) vessel-trust-and-training 工具:遥测卡片(命令行标签页;仅提供格式,无套接字)
机器与传感器输入(0.38):receiver-trust的格式rtklib-pos、novatel、gnss-sdr,以及[log.imu](csv、euroc) receiver-trust(场景[log] format) receiver_trust::machines receiver_trust、assess_receiver_log(内联) receiver_trust(内联) assess_receiver_log(内联文本/base64;path会被拒绝) /kshana-assess-receiver 评估接收机信任度 vessel-trust-and-training N/A(Studio的信任度页面读取其列出的格式;新格式随其下一次移植加入)
由IMU日志得到混合/融合传感器参数(来自静止日志的[accel_classical]表,Allan拟合) imu-fit surface::imu_fit, receiver_trust::machines::imu_fit imu_fit imu_fit fit_imu_log /kshana-fit-imu N/A(暂无IDE操作) N/A N/A(Studio的场景编辑器接受粘贴的表)
ROS 2节点、GNSS-SDR UDP中继、trust-telemetry --mqtt-tcp(integrations/ros2、integrations/gnss-sdr) 进程 N/A N/A N/A N/A N/A N/A N/A N/A(长时间运行的进程和套接字;文本形式:trust_telemetry配合mqtt)
对I/NAV页面或UBX数据流进行Galileo OSNMA验证(docs/OSNMA.md) osnma verify osnma::cli::verify_report, surface::osnma_verify osnma_verify osnma_verify N/A(较长的原始接收机数据流适合CLI和Python;代理工具会增加大输入面而无益处) N/A(插件命令经MCP服务器运行,而MCP服务器没有OSNMA工具,原因见MCP单元格;请运行kshana osnma verify) N/A(如果没有通过其他途径从ICD获得的可信默克尔根或公钥,并且就新鲜度而言没有独立的参考时间,结果就没有意义;右键操作无处获取这些内容,而未固定的默认值会被当作验证;请运行kshana osnma verify) N/A(数据流输入,JSON报告输出;无notebook) 工具:OSNMA
使用教员日志的训练NMEA nmea-scenario nmea_synth::generate_from_toml nmea_training nmea_training generate_training_nmea /kshana-training-scenario,技能training-nmea-scenario 生成训练NMEA vessel-trust-and-training 训练复盘页面
流式发送到TCP或UDP地址的训练NMEA nmea-scenario --tcp/--udp nmea_synth::stream N/A N/A N/A N/A N/A N/A 工具:命令行卡片(流式发送到某个地址)
干扰地图(ADS-B、AIS) interference-map adsb|ais interference_map::api interference_map interference_map build_interference_map /kshana-interference-map,技能interference-map-route-exposure 构建干扰地图 interference-map-route-exposure 干扰地图页面
发射源区域(ADS-B、AIS;MODELLED) interference-map locate interference_map::api::emitter_regions_from_adsb_csv, emitter_regions_from_readsb_traces, emitter_regions_from_ais_csv interference_emitter_regions interference_emitter_regions 不适用(尚未提供;Rust、Python和WASM界面已涵盖) N/A N/A 不适用(是否在公开观测站发布发射源区域是另一项由所有者作出的决定,目前关闭)
航线暴露 route-exposure interference_map::api::route_exposure route_exposure route_exposure route_exposure 相同 航线暴露 interference-map-route-exposure 干扰地图页面
Signal K插件和OpenCPN门控数据源(docs/MARINE-INTEGRATIONS.md) integrations/, receiver-trust live --gate --listen N/A(进程) N/A N/A N/A 仅提供操作指南:/kshana-marine-integrations,技能marine-integrations N/A N/A 工具:命令行卡片(操作指南;属于部署)
Test-bench导出(供实验室模拟器使用的运动CSV、NMEA、航点、事件) bench-export interop::testbench::export_with_notes, surface::bench_export bench_export bench_export export_test_bench /kshana-bench-export,技能test-bench-export 导出Test-bench文件 compliance-and-test-bench 工具:Test-bench导出
由运行结果得到的compliance映射(这些运行为公开框架的哪些行提供证据支持) compliance-report compliance::assess_texts, surface::compliance_report compliance_report compliance_report compliance_report /kshana-compliance-report,技能compliance-mapping 构建compliance报告 compliance-and-test-bench 工具:compliance映射
compliance映射表及其来源 compliance-report --mapping, --sources compliance::mapping, surface::compliance_mapping compliance_mapping compliance_mapping compliance_mapping 相同 显示compliance映射 N/A 工具:compliance映射
标准包(带有运行前已声明判据的评分场景集:DHS RPCF测试档案、IMO MSC.1/Circ.1575、ICAO Doc 9849附录F) standards-pack standards_pack, surface::standards_pack_list, surface::standards_pack_run standards_pack_list, standards_pack_run standards_pack_list, standards_pack_run list_standards_packs, run_standards_pack /kshana-standards-pack N/A(JetBrains操作绑定到选定的文件;标准包是内嵌的,不需要文件:请在IDE终端中运行kshana standards-pack) N/A(针对标准包的Studio工具卡片属于Studio工作流;CLI或任何界面的输出都可输入compliance映射卡片)
数据合作方提交检查(对实测数据提交的格式和元数据检查,kshana.partner-submission/1;不做任何评分) partner check partner::check_file, partner::check 不适用(该检查读取本地文件及其SHA-256;Rust API是库界面,CLI是工具) 不适用(浏览器构建没有文件系统) 不适用(MCP按设计拒绝文件来源(仅限内联文本)) 不适用(斜杠命令调用MCP工具,而此检查需要磁盘上的文件) 不适用(JetBrains操作绑定到一个选中的文件;一次提交是一个文件夹) N/A(尚无notebook) 不适用(Studio没有文件系统访问权限;请运行命令)
LunaNet增强前向信号:码、SB1/CRC/交织器,以及对照LSIS-AFS V1.0的检查(docs/LUNANET-AFS.md) lunanet-afs-check;信号lunanet-afs-i、lunanet-afs-q,位于iq scene/acquire/track/sweep iq::signals::lunanet, iq::lunanet_afs, surface::lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate lunanet_afs_check_spec、lunanet_afs_check_symbols、lunanet_afs_generate;iq_scene等,使用这两个信号名称 lunanet_afs_check_spec、lunanet_afs_check_symbols、lunanet_afs_generate;iq_scene等,通过简短的内存内运行 lunanet_afs_check /kshana-lunanet-afs-check N/A(JetBrains操作绑定到选定的文件;请在IDE终端中运行kshana lunanet-afs-check) N/A(Studio卡片属于Studio工作流的条目;CLI和其他所有界面均提供该功能)
天际线下的天空几何:可见与被遮蔽的卫星、DOP、ENU协方差、误差椭圆(docs/SKYLINE.md) sky geometry::sky_geometry, surface::sky_geometry sky_geometry sky_geometry sky_geometry /kshana-run(指向该工具) N/A(交互式天空图是浏览器视图;kshana sky提供数值) notebooks/geometry.ipynb —(Studio几何视图在0.36中另行添加)
天空蒙特卡罗点云(带随机种子的最小二乘误差、RMS、95 % 包含率) sky --monte-carlo <n> --seed <s> geometry::sky_monte_carlo sky_monte_carlo sky_monte_carlo N/A(大批量样本应由代理汇总,而不是由其携带) N/A(无MCP工具) N/A(同上) N/A —(同上)
天际线预设与档案(docs/SKYLINE.md) skyline --preset <name>, --presets, --profile <file> geometry::skyline_presets, geometry::skyline_profile skyline_presets, skyline_profile skyline_presets, skyline_profile sky_geometry (skyline_preset) 相同 N/A(同上) N/A —(同上)
SVG格式的天空图 sky --svg geometry::skyplot_svg skyplot_svg skyplot_svg N/A(代理从sky_geometry读取数值) N/A N/A(同上) N/A —(同上)
场景中的天际线部分([skyline]:带有user_site的轨道与完好性、gnss-sim、jamming、leo-pvt、leo-pass、nmea-scenario) 场景文件 skyline::SkylineCfg run, nmea_training run, nmea_training run_scenario, generate_training_nmea /kshana-run 运行Kshana场景 N/A —
穿过大气层的光学授时链路:各站点的可用性、站点分集、增强技术、中断到守时(holdover)的耦合(场景类型optical-atmosphere;docs/OPTICAL-ATMOSPHERE.md;MODELLED,ILLUSTRATIVE站点,仅供参考) kshana scenarios/optical-atmosphere-network.toml, scenarios/optical-atmosphere-techniques.toml optical_atmosphere, optical_weather, optical_sitediv, optical_techniques, optical_outage_holdover run, run_typed run run_scenario /kshana-run 运行Kshana场景 optical-atmosphere 待办:尚无Studio视图;该场景在Studio场景运行器和工具的命令行卡片中运行
依据操作人员提供的钟差记录评分的守时(holdover)测试:基线、由操作人员移除GNSS、守时、恢复,按ITU-T模板衡量(场景类型holdover-test;docs/TIMING-HIL.md;MODELLED,仅供参考;Kshana不发射任何信号,也不驱动任何设备) kshana scenarios/holdover-test-example.toml, scenarios/holdover-test-ptp4l.toml holdover_test, telecom_timing run, run_typed run(内联samples或clock_log.text;文件键会被拒绝) run_scenario(仅限内联) /kshana-run 运行Kshana场景 N/A(0.38中无notebook;示例场景可在任何notebook中通过run运行) 待办:尚无Studio视图;该场景在Studio场景运行器和工具的命令行卡片中运行
从发射到再入的一串任务阶段的导航和授时误差预算:八种阶段类型、交接规则、坐标系和时间尺度转换、地面网络叠加层、相对所述需求的裕度以及最薄弱环节(场景类型mission-thread;docs/MISSION-THREAD.md;MODELLED,ILLUSTRATIVE输入,仅供参考;仅用公开来源,无背书) kshana scenarios/mission-thread-artemis-class.toml(从检出的源码运行:它读取已提交的月球内核截取文件) mission_thread run, run_typed run(moon_kernel_path是文件键,会被拒绝;没有内核时,月球采用解析级数,且转换行对此有说明) run_scenario(仅限内联;内核键会被拒绝) /kshana-run 运行Kshana场景 不适用(没有笔记本;该示例从检出的源码出发,可通过run在任何笔记本中运行) 待办:尚无Studio视图;该场景在Studio场景运行器和工具的命令行卡片中运行
星座之外的GNSS:GPS、GLONASS、Galileo、BDS、QZSS和NavIC信号对位于壳层或LEO至月球转移轨迹上的用户的可用性(手册、参数化或实测的发射方向图、临边射线介质、弱信号接收机设计)、面向高轨和月球转移航天器的星载GNSS EKF,以及编队相对导航(场景类型gnss-ssv;docs/SSV.md;MODELLED,仅供参考;在预先登记下与ICG SSV手册作比较,xval/gnss-ssv/RESULTS.md) kshana scenarios/gnss-ssv-shell.toml, gnss-ssv-heo.toml, gnss-ssv-lunar-weak.toml, gnss-ssv-nav-lunar.toml, gnss-ssv-formation-heo.toml ssv run, run_typed run(内联;transmit.pattern_text以内联方式携带实测方向图) run_scenario(仅限内联;transmit.pattern_csv会被拒绝) /kshana-run 运行Kshana场景 N/A(0.38中无notebook;这些场景可在任何notebook中通过run运行) 待办:尚无Studio视图;该场景在Studio场景运行器和工具的命令行卡片中运行
作为导航与大地测量基础设施的月球轨道与月面:定轨一致性、载波相位整周模糊度解算、坐标系联合估计、空间联结与勒夫数敏感度(场景类型lunar-infrastructure、study = ...;docs/LUNAR-INFRASTRUCTURE.md;MODELLED,ILLUSTRATIVE输入,仅供参考) kshana scenarios/lunar-infrastructure-od-consistency.toml(以及另外五个同类示例) lunar_infra run, run_typed run run_scenario /kshana-run 运行Kshana场景 N/A(无notebook;这些示例可在任何notebook中通过run运行) 待办:尚无Studio视图;这些场景在Studio场景运行器和工具的命令行卡片中运行
读入相位序列的实测时钟日志:linuxptp的ptp4l、phc2sys、ts2phc,chrony的tracking和statistics,以及RINEX钟差、TimeLab和TICC([clock_log] / [series.clock_log];docs/CLOCK-LOG-FORMATS.md;MODELLED,没有参考基准(oracle)将一次解析与另一个读取器作比较) 带有[clock_log]的场景 clock_log::read_input run run(text仅限内联;浏览器中不读取文件) run_scenario(text仅限内联;path会被拒绝) /kshana-run 运行Kshana场景 N/A(无notebook;日志是用户提供的文件) 待办:尚无Studio视图;Studio场景运行器接受场景文本
穿过大气层的光学授时链路:各站点的可用性、站点分集、增强技术、中断到守时(holdover)的耦合(场景类型optical-atmosphere;docs/OPTICAL-ATMOSPHERE.md;MODELLED,ILLUSTRATIVE站点,仅供参考) kshana scenarios/optical-atmosphere-network.toml, scenarios/optical-atmosphere-techniques.toml optical_atmosphere, optical_weather, optical_sitediv, optical_techniques, optical_outage_holdover run, run_typed run run_scenario /kshana-run 运行Kshana场景 optical-atmosphere Studio的光学PNT视图(/studio/optical/,0.38)绘制两个内置场景的已记录结果,包括带随机种子的时间序列;该场景也在Studio场景运行器和工具的命令行卡片中运行
陆地多边形下载(interference-map fetch-land) --allow-network CLI代码 N/A N/A N/A N/A N/A N/A 工具:命令行卡片(需要--allow-network)
基准测试(kshana-bench v1:对照真值文件为提交结果评分,排行榜页面;docs/BENCH.md,MODELLED,仅供参考) bench score, bench leaderboard bench::score, bench::site::leaderboard_html, surface::bench_score, surface::bench_leaderboard bench_score, bench_leaderboard bench_score, bench_leaderboard score_benchmark, render_leaderboard N/A(两个MCP工具已提供该功能;针对两个JSON文件的斜杠命令没有增加任何价值) N/A(不是IDE操作) N/A(教学notebook属于单独的工作流) N/A(排行榜是静态页面bench/site/,原样移植到网站;Studio不做任何计算)
基准测试数据与保留集工具(bench truth|cases|baseline|seal|reveal-check|manifest|verify-manifest|validate) 同上 bench::tasks, bench::seal N/A N/A N/A N/A N/A N/A N/A(CLI读取数据集目录和时钟文件,对于seal还读取秘密种子文件;种子不得经过代理或网页)
观测站每日产品与敏感度研究(interference-map daily|sensitivity;docs/observatory/METHOD.md) interference-map daily, interference-map sensitivity interference_map::observatory N/A N/A N/A N/A N/A N/A N/A(这些命令读取含数十万个文件的归档目录,写出包括一个PNG在内的四个文件,并按发布所在机器的时钟强制执行24小时的发布延迟;CSV地图在上一行的所有界面中都有)

Studio#

Kshana Studio是基于WebAssembly构建的网页应用,因此凡WASM列有入口之处就存在Studio视图,没有入口之处,该单元格指向命令行卡片(要运行的命令及其参数),绝不指向Studio计算出的结果。页面(kshana.dev/studio/,客户端运行):海事信任度(trust/)、训练复盘(training/)、干扰地图(interference/)、几何(geometry/:来自引擎的代表性天空图、天际线、DOP、误差椭圆和蒙特卡罗点云;0.36)、月球站(lunar/:根据lunar-station-coverage类型得到的月球参考站建模覆盖;0.36)以及工具页面,其各部分为OSNMA(#osnma)、证据包(#evidence)、Test-bench导出(#bench)、compliance映射(#compliance)、命令行标签页(遥测卡片、IQ、船舶集成:要运行的命令)和在你的AI助手中使用(#ai)。子命令表Studio列中的—表示该命令不属于Studio所呈现的0.35项能力。

N/A单元格为何是N/A#

  • Signal K与OpenCPN。它们是运行中的实时进程及其TCP门控的使用方,因此属于命令行部署;插件带有指向docs/MARINE-INTEGRATIONS.md的操作指南命令和技能,不调用任何工具。

  • 运行中的进程。 receiver-trust live保持数据流打开,可向任意数量的TCP客户端提供经门控的数据流,并持续运行直至被停止。Python调用、浏览器调用、MCP工具调用和IDE操作各自在完成时返回,不会为他人保持套接字打开。Python、WASM和MCP改为提供有界形式:由同一引擎评分的一段摘录,采用实时模式(JSON行1.3:每个历元有position、一条advisory声明和卫星geometry,每次扣减有一个class),没有套接字,也没有门控(门控在实时流上将定位解标记为无效,这只有位于数据通路中的进程才能做到)。有两种行为属于该进程,不在摘录工具中:未使用--replay而通过receiver-trust live以快于实时的速度回放的数据流,会被评为不可信(其时间与主机时钟不符;读取摘录时没有主机时钟),而--udp <port>和--listen tcp:<port>在未给出地址时绑定回环地址。

  • 信任度遥测。WASM提供trust_telemetry(input, format, host, input_kind, options_json):同样的编码器,针对数据流或批量结果返回Prometheus文本、CEF或LEEF syslog行,或OTLP JSON载荷,没有时钟(syslog行携带RFC 5424的空时间戳),也不发送任何内容。Python(trust_telemetry)和MCP(trust_telemetry,插件命令为/kshana-trust-telemetry)同样提供。trust-telemetry的其余部分从运行中的数据流提供Prometheus指标、发送syslog并导出OpenTelemetry,因此本质上是进程。操作方法:将实时命令的输出通过管道传给它,或回放结果文件(kshana trust-telemetry --result session.result.json --print-metrics);参见TRUST-TELEMETRY.md。需要逐历元评分的代理或notebook应改为调用批量或摘录函数。

  • 在浏览器中创建证据包。签名需要私钥,而私钥不应经过网页;浏览器版本验证证据包(evidence_verify),其他界面创建证据包。MCP工具从不返回或记录签名种子,没有种子时使用一次性密钥签名(保证完整性,而非身份);对于重要的密钥,请使用CLI。将训练NMEA流式发送到某个地址同样如此:Python、WASM和MCP返回生成的文本,由CLI负责发送。

  • 研究套件。 --study <suite.toml>运行一份指明磁盘上同级场景文件的清单。内存内界面接受场景文本,而不是文件夹,因此改为将每个成员作为场景运行(run、run_scenario、run_all)。

  • 浏览器中的GNSS IQ,以及被改写的记录。一份记录有数GB的采样,网页无法容纳,MCP协议也不得承载,因此WASM没有IQ函数,MCP工具只读写一个工作目录(KSHANA_MCP_IQ_DIR,每次调用有采样预算)。iq extract、convert和decimate用于改写磁盘上的记录,仍仅限命令行。iq labfit和iq conditions承载文本,因此MCP以内联方式接受它们(指明某个文件的日志会被拒绝)。

  • 陆地下载。它是唯一会打开网络连接的命令,需要系统的curl和显式的--allow-network,并核对固定的SHA-256。浏览器没有curl,AI代理也不应代用户获取数据;其他界面改为以文本形式接受陆地文件(land_geojson)。

  • 轨迹归档与目录。 对readsb轨迹目录执行interference-map adsb会从磁盘读取文件,仅限命令行;内存内界面接受CSV文本。

每个命令行子命令及其覆盖情况#

kshana --help的每个子命令或模式占一行。是表示给出了入口;否是有原因说明的缺口;N/A表示该界面因上文或最后一列所述的原因而无法提供。JetBrains操作运行命令行,因此那里的N/A说明了为何不存在IDE操作。

子命令 Python WASM MCP 插件 JetBrains 笔记本 Studio 备注
kshana <scenario.toml>(运行、图表、表格) run, run_full, run_typed run, chart_svg, summary, table_csv, run_all run_scenario, report_scenario, export_table_csv /kshana-run 运行Kshana场景 quantum-vs-classical-gdop —
--validate <scenario.toml> validate_toml error_kind(对无效场景,运行会抛出异常) validate_scenario /kshana-run 验证场景 —
--study <suite.toml> N/A N/A N/A N/A N/A(指明磁盘上的同级文件) — 套件指明磁盘上的同级场景文件(上文为N/A);将每个成员作为场景运行
--export-sp3/-omm/-oem export_sp3, export_omm, export_oem export_sp3, export_omm, export_oem export_sp3, export_omm, export_oem /kshana-run 导出场景 —
--export <czml,kml,geojson,stk,sigmf> export_scenario, export_formats export_scenario, export_formats export_interop, list_export_formats /kshana-run 导出场景 — 文件以文本(utf-8)或base64(SigMF采样)形式返回
--import-route import_route import_route import_route /kshana-import-route 导入航线 —
--animate <svg,html,frames> animate_scenario animate_scenario animate_scenario /kshana-run 场景动画 — 每次调用最多120帧;更长的序列请使用CLI
sky <request>(或使用标志)、--monte-carlo、--svg sky_geometry, sky_monte_carlo, skyplot_svg sky_geometry, sky_monte_carlo, skyplot_svg sky_geometry(无蒙特卡罗,无SVG) /kshana-run N/A(见能力行) — MODELLED几何;输出JSON或SVG
skyline --preset, --presets, --profile skyline_presets, skyline_profile skyline_presets, skyline_profile sky_geometry (skyline_preset) /kshana-run N/A(见能力行) — 带来源说明的REPRESENTATIVE预设
kinds [--json] scenario_kinds, list_kinds list_kinds list_scenario_kinds /kshana-run 列出场景类型 —
example [<name>] list_examples, get_example list_examples, get_example list_example_scenarios, get_example_scenario /kshana-run 插入示例场景 — python和wasm功能将示例文本编译进去(约0.7 MB)
receiver-trust <scenario.toml>(批量) receiver_trust, assess_vessel_log receiver_trust, assess_vessel_log assess_receiver_log, assess_vessel_log /kshana-assess-receiver 评估接收机信任度 vessel-trust-and-training 船舶信任度页面
receiver-trust live 摘录:receiver_trust_replay 摘录:receiver_trust_replay 摘录:assess_vessel_stream 摘录 评估接收机数据流(已存储的日志,--file) 海事信任度页面(摘录);进程使用命令行卡片 运行中的进程;摘录没有套接字,也没有门控(上文为N/A)
trust-telemetry trust_telemetry trust_telemetry trust_telemetry /kshana-trust-telemetry 渲染信任度遥测(已存储的结果) vessel-trust-and-training 工具:遥测卡片(命令行标签页;仅提供格式,无套接字) 所有界面都只有文本,没有套接字;运行中的导出器属于进程(见上文)
imu-fit <imu.csv> imu_fit imu_fit fit_imu_log /kshana-fit-imu N/A — 输入文本,输出JSON;MODELLED
osnma verify <pages|vectors.csv|stream.ubx> osnma_verify osnma_verify N/A(见上文) N/A(见上文) N/A(见上文) 工具:OSNMA 与--json的JSON相同,其advisory字段中带有咨询性声明;读取的文件变为内存中的字节。仅为认证状态:不是导航完好性服务,也不声称具备任何抗欺骗性能
receiver-trust evidence(创建证据包) evidence_create N/A create_evidence_pack /kshana-evidence-pack 创建证据包 vessel-trust-and-training 工具:命令行卡片(网页中没有签名密钥) 浏览器中没有签名密钥
jammertest import, jammertest score jammertest_import, jammertest_score jammertest_import, jammertest_score jammertest_import, jammertest_score /kshana-jammertest N/A(终端;需要文件) 待办:工具:命令行卡片 计划和目录以文本形式给出;已签名的证据包(--key)仅限命令行(签名密钥)
evidence round-trip evidence_round_trip N/A create_round_trip_pack /kshana-evidence-pack N/A(同上) 工具:命令行卡片(网页中没有签名密钥) 浏览器中没有签名密钥;不写出也不回放任何信号
evidence verify evidence_verify evidence_verify verify_evidence_pack /kshana-evidence-pack 验证证据包(仅限已固定的密钥) vessel-trust-and-training 工具:证据包(验证、附加时间戳)
evidence keygen evidence_keygen N/A N/A N/A N/A(插件从不生成或读取私钥) 工具:命令行卡片 Python在内存中返回密钥并给出警告;私钥不应经过对话或网页
evidence attach-timestamp evidence_attach_timestamp evidence_attach_timestamp attach_evidence_timestamp /kshana-evidence-pack 附加时间戳 工具:证据包(验证、附加时间戳) 令牌以字节或base64形式提供,更新后的证据包在内存中返回;不核对授权机构的签名(openssl ts -verify)
nmea-scenario <scenario.toml> nmea_training nmea_training generate_training_nmea /kshana-training-scenario 生成训练NMEA vessel-trust-and-training 训练复盘页面
nmea-scenario --tcp/--udp N/A N/A N/A N/A N/A(见注) 工具:命令行卡片 发送到某个地址(上文为N/A)
interference-map adsb|ais(CSV) interference_map interference_map build_interference_map /kshana-interference-map 构建干扰地图 interference-map-route-exposure 干扰地图页面
interference-map adsb(轨迹目录) N/A N/A N/A N/A N/A(见注) 工具:命令行卡片 读取目录(上文为N/A)
interference-map locate(CSV) interference_emitter_regions interference_emitter_regions 不适用(尚未提供) N/A N/A — 估计的发射源区域,MODELLED;轨迹目录和--tdoa仅限命令行
interference-map fetch-land N/A N/A N/A N/A N/A(见注) 工具:命令行卡片 网络访问(上文为N/A)
interference-map daily, sensitivity N/A N/A N/A N/A N/A(见注) — 读取归档目录并写出文件;发布延迟在发布所在的机器上强制执行(上文为N/A)
bench score bench_score bench_score score_benchmark N/A(MCP工具已提供) N/A — 输入文本,输出文本;不读取也不写入任何内容
bench leaderboard bench_leaderboard bench_leaderboard render_leaderboard N/A(MCP工具已提供) N/A 静态页面bench/site/ HTML文本
bench truth|cases|baseline|seal|reveal-check|manifest|verify-manifest|validate N/A N/A N/A N/A N/A — 数据集文件和秘密种子(上文为N/A)
route-exposure route_exposure route_exposure route_exposure /kshana-interference-map 航线暴露 interference-map-route-exposure 干扰地图页面
bench-export bench_export bench_export export_test_bench /kshana-bench-export 导出Test-bench文件 工具:Test-bench导出 返回文本,不写入任何内容;无信号
compliance-report compliance_report compliance_report compliance_report /kshana-compliance-report 构建compliance报告 工具:compliance映射
compliance-report --mapping, --sources compliance_mapping compliance_mapping compliance_mapping /kshana-compliance-report 显示compliance映射 —
iq scene iq_scene, iq_scene_broadcast N/A iq_scene /kshana-iq N/A(记录是数GB的文件;见注) — 采样是文件。--format sdrx[:ci16_le](或以.sdrx结尾的输出路径)在采样旁写出ION GNSS SDR元数据:CLI和MCP(format: "sdrx")会写出;Python在内存中返回采样而不写文件,因此该元数据没有Python形式(N/A)
standards-pack list, run, rows, tests standards_pack_list, standards_pack_run standards_pack_list, standards_pack_run list_standards_packs, run_standards_pack /kshana-standards-pack N/A(同上) 工具:命令行卡片 场景是内嵌的;没有文件系统;rows和tests打印已提交的文档表格,仅限CLI
partner check <submission.toml> N/A N/A N/A N/A N/A — 读取磁盘上的提交文件及其数据文件并验证SHA-256;这些界面都没有该文件夹。仅限格式和元数据,不做任何评分;见docs/PARTNER-DATA.md
lunanet-afs-check spec, symbols, generate lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate lunanet_afs_check /kshana-lunanet-afs-check N/A(同上) — 符号流是由0和1组成的文本,每次调用最多4 MiB(MCP)或生成100帧;不验证子帧2至4的LDPC和CRC-24Q;不写出任何信号
iq scene iq_scene, iq_scene_broadcast N/A iq_scene /kshana-iq N/A(记录是数GB的文件;见注) — 采样是文件
iq acquire iq_acquire, iq_acq_surface N/A iq_acquire /kshana-iq N/A(记录是数GB的文件;见注) —
iq track iq_track, iq_loop_designs N/A iq_track /kshana-iq N/A(记录是数GB的文件;见注) —
iq sweep iq_sweep N/A iq_sweep /kshana-iq N/A(记录是数GB的文件;见注) —
iq labfit iq_labfit N/A iq_labfit(日志内联,无文件) /kshana-iq N/A(记录是数GB的文件;见注) —
iq frontend iq_frontend N/A iq_frontend /kshana-iq N/A(记录是数GB的文件;见注) —
iq monitor iq_monitor N/A iq_monitor /kshana-iq N/A(记录是数GB的文件;见注) — --follow [--idle-timeout <s>]读取仍在写入的SigMF记录,仅接收(Rust中为iq::io::follow::open_sigmf_follow):对Python和MCP为N/A,因为等待文件增长的调用在工作完成时并不返回,这也是receiver-trust live仅限命令行的原因;按当前长度的记录通过iq_monitor运行
iq campaign, iq campaign report iq_campaign, iq_campaign_report N/A iq_campaign, iq_campaign_status /kshana-iq N/A(记录是数GB的文件;见注) —
iq conditions iq_test_conditions N/A iq_test_conditions(文本,内联) /kshana-iq N/A(记录是数GB的文件;见注) —
iq inventory, info iq_inventory, iq_info N/A iq_info /kshana-iq N/A(记录是数GB的文件;见注) — 文件夹清单由Python和CLI提供;MCP服务器读取一个工作目录
iq extract, convert, decimate N/A N/A N/A N/A N/A(见注) — 它们改写磁盘上的记录(上文为N/A)
信号列表(iq --help) iq_signals N/A iq_signals /kshana-iq N/A(列表;请运行kshana iq --help) —

实用函数#

不属于能力行的小型入口,以及各自所在之处:

函数 界面 它是什么
version Python(kshana.version()、kshana.__version__)、WASM(version)、CLI(--version)、MCP(服务器信息) 引擎版本
iq_read_epochs Python 读取由kshana iq track --epochs写出的kshana.track-epoch/1二进制文件。其他界面为N/A:它从磁盘读取文件(WASM没有文件系统,MCP仅通过iq_*工具读取一个工作目录)
encode_permalink, decode_permalink WASM 浏览器演示环境的?s=分享链接编解码器(场景TOML与URL安全令牌互相转换)。其他界面为N/A:指向网页的链接对命令行、Python调用或代理没有意义

因界面而异的限制#

界面 输入限制 文件
MCP 每个文本输入4 MiB(数据流摘录为2 MiB和20,000个历元);回复最多携带2000行NMEA、200行非标称历元行,以及4 MiB的GeoJSON或证据包文件 仅限内联内容:指明文件的场景字段会被拒绝;iq_*工具使用一个需主动启用的工作目录,所有路径都限制在其中
基于HTTP的MCP(--http,自行托管) 与MCP相同,默认请求体为5 MiB,每个请求120秒,同时处理8个请求 无:iq_*文件工具已关闭;其他所有工具都接受内联内容
Python、Rust 每个文本输入64 MiB receiver_trust可以指明进程可读取的path
WASM 每个文本输入64 MiB,在浏览器自身的内存之内 无:浏览器没有文件系统,不上传任何内容

每个界面上的证据等级与注意事项#

  • 证据包是引擎在所述设置下根据日志计算内容的技术记录,附有每个哈希以及对这些哈希的签名。它不是法律意见,不是对任何事件的事实认定,也不是批准。验证通过表示记录未被改动;没有可信公钥时,它只能证明相对于证据包自己指明的密钥而言的完整性。
  • 接收机信任度监测器和信任度评分为MODELLED:阈值是明确给出的输入,没有任何内容断言它们在真实干扰下的表现。输出为仅供参考;Kshana不是经型式认可的导航设备(IEC 61108、IEC 61162),操作人员仍承担责任。高分并不证明定位解是真实的。
  • 干扰地图为MODELLED(预先登记的阈值,未对照地面真值测量进行独立核对)。降级的单元格并不表明干扰就是原因;未被观测的单元格不是航线畅通的证据;它描述的是过去的报告,不是预报。它仅为汇总数据:不返回任何标识符。
  • 训练NMEA 仅为文本:不合成任何射频、IQ或波形,不发射任何内容,也绝不用于船舶的实时导航系统。

证据标签,以及不带标签的输出#

一次运行写出的每个图表和表格,在每个运行场景的界面上,都带有其证据等级(VALIDATED、MODELLED或PARTNER,取其背后台账行中最弱的)以及这些行的编号:结果JSON(evidence键)、图表SVG(元数据元素和绘图下方的一行文字)和CSV表格(# evidence:注释行)。同一标签还出现在接收机信任输出(CLI、MCP、Python)、jammertest score --json、iq acquire、iq sweep、iq track --summary、iq monitor --json、干扰地图路由报告中,以及每个证据包(已签名;kshana evidence verify会报告它)的config.json内。行编号是稳定的(VM-加八位十六进制数字,即docs/VERIFICATION-MATRIX.md的ID列)。

这些输出不带标签,每项各有所述理由(清单为tests/evidence_labels_doc_sync.rs中的UNLABELLED_WRITERS,若有写入器既没有标签又不在清单中,该测试就会失败):

输出 为何不带标签
kshana-bench结果文件 固定的模式,由封存数据的承诺固定;每个文件自带label(MODELLED或实测)
干扰观测站的每日产品(GeoJSON、PNG、事件JSON) 已冻结并发布的模式;方法说明中的注意事项随之附带
IQ测评活动的单元、评分卡和报告文件 以摘要值固定;每个文件都说明它所复述的测评活动评分卡
IQ采样、SigMF和SDR元数据、场景真值、跟踪历元和事件流、实时会话日志 受格式约束的文件和记录流,由其他工具读取
SP3、OMM、OEM、CZML、KML、GeoJSON、STK、试验台运动和NMEA导出文件;NMEA训练流 受格式约束的文件,由第三方工具读取
遥测线路格式(Prometheus、OTLP、CEF、LEEF) 由其线路格式规定
生成的文档(台账本身、已提交的研究和数据表) 不是一次运行的输出