Masintõlge, mida emakeelne kõneleja pole üle vaadanud. Võrdlusallikaks on ingliskeelne versioon.

Vastuvõtja usaldus ja merendusMuuda GitHubisAllikas: docs/RECEIVER-TRUST.md

Vastuvõtja usaldus: reaalse GNSS-i vastuvõtja logi hindamine

kshana receiver-trust loeb logi reaalsest globaalsest satelliitnavigatsioonisüsteemi (GNSS) vastuvõtjast, käitab usalduse monitore selle kohal epohhi kaupa ja ütleb, millal ja miks vastuvõtja lahendus lakkas usaldusväärne olemast. See võib logi ka skoorida sündmuste ja ennustuste vastu, mille te esitate enne jooksu: kas iga sündmus tuvastati õigel ajal ja kas modelleeritud kandja ja müra tiheduse (C/N0) langus langeb kokku sellega, mida vastuvõtja mõõtis.

Vaatlussuurused on vastuvõtja omad; monitorid ja nende läved on mootori ja teie omad. Iga tulemus kannab seda silti, logi SHA-256 ja iga läve, millega see jooksis, nii et jooksu saab korrata ja auditeerida.

Käimasoleva laeva kohta, koos reaalajas skoori ja valikulise väravaga kaardisüsteemi ees, vt MARITIME-TRUST.md.

Vastuvõtja enda spuufimislipp Kshana häirete kõrval, mootori v0.40.0 tegelikust käitusest väljamõeldud UBX logil (200 epohhi sagedusega 1 Hz). C/N0 langeb 20 dB ajal 80 kuni 90 s ja 120 kuni 130 s; vastuvõtja märgib 120 kuni 130 s ja 160 kuni 165 s. Pärast kalibreerimist võrreldud 140 epohhist oli 11 puhul mõlemad märkinud, 6 puhul ainult vastuvõtja, 11 puhul ainult Kshana ja 112 puhul ei kumbki. Ükski pool ei ole tegelik tõde ja kokkulangevus ei ole valideerimine. Nõuandev: uurimis- ja inseneeriatööriista analüüsitulemus; mitte tüübikinnitust omav navigatsiooniseade ega inimelu ohutusega seotud teenus.Vastuvõtja enda spuufimislipp Kshana häirete kõrval, mootori v0.40.0 tegelikust käitusest väljamõeldud UBX logil (200 epohhi sagedusega 1 Hz). C/N0 langeb 20 dB ajal 80 kuni 90 s ja 120 kuni 130 s; vastuvõtja märgib 120 kuni 130 s ja 160 kuni 165 s. Pärast kalibreerimist võrreldud 140 epohhist oli 11 puhul mõlemad märkinud, 6 puhul ainult vastuvõtja, 11 puhul ainult Kshana ja 112 puhul ei kumbki. Ükski pool ei ole tegelik tõde ja kokkulangevus ei ole valideerimine. Nõuandev: uurimis- ja inseneeriatööriista analüüsitulemus; mitte tüübikinnitust omav navigatsiooniseade ega inimelu ohutusega seotud teenus.

Käivitamine#

kshana receiver-trust examples/receiver-trust/session.toml

See kirjutab session.result.json, session.trust.csv (üks rida epohhi kohta) ja session.trust.svg (keskmine C/N0 ajas koos usalduse olekuga all) stsenaariumi kõrvale ning prindib ühe rea verdikti. Näitelogi on sünteetiline, tehtud vormingu näitamiseks; suunake path oma vastuvõtja logile.

Usaldusskoor ühe sünteetilise reisi vältel, mootori v0.40.0 tegelikust käivitusest andmetel examples/maritime-trust (väljamõeldud NMEA logi praamist Tallinna–Helsingi liinil, 3001 epohhi sagedusel 1 Hz). Kolm rada jagavad ühte ajatelge. Ülal: kaugus vastuvõtja teatatud asukoha ja laeva tegeliku asukoha vahel, mis püsib mõne meetri piires kuni umbes 1576 s, kui logi stsenaariumipärane asukoha nihutamine selle eemale tõmbab, samal ajal kui vastuvõtja jätkab kehtiva lahendi teatamist. Keskel: usaldusskoor vahemikus 0 kuni 100, mida ei arvutata kalibreerimise esimese 300 s jooksul, nominal ribas (vähemalt 90) kuni nihutamiseni, seejärel langemas läbi degraded riba (vähemalt 55) untrusted ribasse. All: iga epohhi riba värvilise lindina koos selle nimega. Skoor on nõuandev. Nõuandev tarkvara, mitte tüübikinnitust omav navigatsiooniseade (IEC 61108, IEC 61162): laeva navigeerimise eest vastutab jätkuvalt operaator. Logi on välja mõeldud vormingu ja seirajate näitamiseks; see ei ole mõõtmine ega ütle midagi selle kohta, kuidas ükski vastuvõtja toimiks.Usaldusskoor ühe sünteetilise reisi vältel, mootori v0.40.0 tegelikust käivitusest andmetel examples/maritime-trust (väljamõeldud NMEA logi praamist Tallinna–Helsingi liinil, 3001 epohhi sagedusel 1 Hz). Kolm rada jagavad ühte ajatelge. Ülal: kaugus vastuvõtja teatatud asukoha ja laeva tegeliku asukoha vahel, mis püsib mõne meetri piires kuni umbes 1576 s, kui logi stsenaariumipärane asukoha nihutamine selle eemale tõmbab, samal ajal kui vastuvõtja jätkab kehtiva lahendi teatamist. Keskel: usaldusskoor vahemikus 0 kuni 100, mida ei arvutata kalibreerimise esimese 300 s jooksul, nominal ribas (vähemalt 90) kuni nihutamiseni, seejärel langemas läbi degraded riba (vähemalt 55) untrusted ribasse. All: iga epohhi riba värvilise lindina koos selle nimega. Skoor on nõuandev. Nõuandev tarkvara, mitte tüübikinnitust omav navigatsiooniseade (IEC 61108, IEC 61162): laeva navigeerimise eest vastutab jätkuvalt operaator. Logi on välja mõeldud vormingu ja seirajate näitamiseks; see ei ole mõõtmine ega ütle midagi selle kohta, kuidas ükski vastuvõtja toimiks.

Ülaltoodud joonis on dokumendi MARITIME-TRUST.md laevademo: väljamõeldud logi, nõuandev skoor.

Sama stsenaarium töötab Pythonist (kshana.receiver_trust(toml)), WebAssembly paketist (receiver_trust(toml), logi sisse kirjutatuna) ja Model Context Protocol (MCP) serveri tööriistast assess_receiver_log.

Logid, mida see loeb#

format Allikas Mida loetakse
ubx u-blox binaarne NAV-SAT satelliidi kohta C/N0, kõrgus ja asimuut, NAV-PVT asukoht, MON-RF automaatvõimenduse juhtimine (AGC) ja segamisnäitaja jamInd, NAV-TIMEGPS nädal ning vastuvõtja enda lipud: NAV-STATUS spoofDetState ja SEC-SIG (self_report, vt RECEIVER-PROTOCOLS.md)
rinex RINEX 3 vaatlusfail S koodid (C/N0) satelliidi ja signaali kohta; edastatud navigatsioonifailiga (nav) mootori enda lahenduse pseudovahemaad
android Androidi GnssLoggeri CSV Raw read: C/N0 ja AgcDb satelliidi kohta; Fix read: asukoht
nmea NMEA 0183 tekst GSV signaali ja müra suhe satelliidi kohta (dB-Hz, signaali ID-ga 4,10 või ilma) ja selle kõrgus ning asimuut, GSA täpsuse halvenemise tegur ja kasutatud satelliidid, GGA ja RMC aeg ning asukoht
sbf Septentrio binaarne (0,38, ainult lugemine) PVTGeodetic asukoht, MeasEpoch C/N0 satelliidi ja signaali kohta, RFStatus ribade arv; vt RECEIVER-PROTOCOLS.md
rtklib-pos RTKLIB lahendusfail (.pos) aeg, asukoht (laius/pikkus või ECEF, teisendatud) ja kasutatud satelliidid epohhi kohta; kraadi-minuti-sekundi failid lükatakse tagasi teatega
novatel NovAtel OEM7 ASCII- või binaarlogid BESTPOS asukoht (ainult arvutatud lahendus), RANGE C/No satelliidi ja signaali kohta; RXSTATUS segaja lipud muutuvad epohhi self_report-ks (segamise olek 2, kui vastuvõtja annab segaja lipu, 1, kui mitte; RXSTATUS-is spuufimise lippu ei ole), mida võrreldakse Kshana häiretega võrdlusega receiver-self-report
gnss-sdr GNSS-SDR Monitori ja PVT-monitori vood JSON-ridadena kanalipõhine C/N0, lahendus, kasutatud satelliidid, HDOP, asimuut ja kõrgus; teeb integrations/gnss-sdr/relay.py

Nende kolme üksikasjad, allikad ja piirangud: MACHINE-INPUTS.md.

Iga lugejate toodetud epohh kannab ka source_span, [start, end) baidinihkeid sisendis: väikseim ühtne vahemik, mis sisaldab selle andnud kirjeid, nii et täpse toore lõigu saab sündmuseakna jaoks räsida. NMEA: iga rida, mida loetakse, kuni epohh on jooksev (ülemhulk, kui sõnumite vahel on tähendusetu rida). UBX: epohhi kaadrid. RINEX 3: epohhikirjed igast > reast järgmiseni. Android: epohhi Raw read (Fix rida ainult epohhi jaoks, millel ei ole Raw ridu). Puudub reaalajavoo puhul ja kõikjal, kus see ei ole hästi defineeritud (RINEX 2).

Fail antakse kujul path (lahendatakse stsenaariumi enda kausta suhtes) või sisse kirjutatuna kujul text või base64 (ainsad valikud brauseris).

IMU logi teise andurina#

[log.imu] lisab inertsiaalse logi samale kellale:

[log.imu]
format = "csv"          # or "euroc"
path = "imu.csv"        # or text / base64
heading0_deg = 90.0     # heading at the first IMU sample
yaw_axis_down = true    # body z down (NED/FRD); false for z up (ENU/FLU)
time_offset_s = 0.0     # added to the IMU clock to reach the log's t_s

Pöördekiirus integreeritakse väljast heading0_deg ja see täidab suuna kõikjal, kus vastuvõtja logi seda ei kanna, nii et monitor heading-course (mis vajab platvormil heading_sensor = true) võrdleb güroskoobi suunda kursiga maapinna suhtes. Güroskoop triivib: suund on nii hea kui integreerimisaken ja hdg_cog_tol_deg otsustab, mida loetakse lahknevuseks. Paigutus csv on dokumenteeritud failis MACHINE-INPUTS.md. IMU baidid on osa stsenaariumi räsist ja tõendipaketi stsenaariumi räsist. Sisse kirjutatud (text/base64) töötab igal pinnal; path lükatakse tagasi seal, kus faile ei loeta.

Platvorm: staatiline või laev#

Ülaltoodud monitorid eeldavad fikseeritud antenni. Stsenaarium esitab platvormi enne jooksu ülemise taseme tabelis [platform]; ilma selleta on platvorm static ja midagi ei muutu.

[platform]
kind = "vessel"            # "static" (default) or "vessel"
max_speed_kn = 30.0        # default 30
max_accel_mps2 = 0.5       # default 0.5
max_turn_rate_dps = 6.0    # default 6
antenna_height_m = 18.0    # no default: without it the sea-level monitor does not run
heading_sensor = false     # true: the stream carries a gyro heading (HDT or THS)
Võti Vaikeväärtus Miks see väärtus
max_speed_kn 30 Üle kaubalaevade ja enamiku reisilaevade teenduskiiruse, nii et reaalne laev ei saavuta seda kunagi; kaugelt alla kiiruse, mida asukoha äravedamine eeldab. Aeglasem laev peaks esitama madalama piiri: mida madalam piir, seda varem äravedamine tabatakse.
max_accel_mps2 0.5 Suur laev muudab kiirust palju vähem kui 0,1 m/s²; väike kiire alus saavutab kõva gaasimuutuse korral mõne kümnendiku.
max_turn_rate_dps 6 Suur laev pöörab palju aeglasemalt kui 1 kraadi/s ja väike alus kõvas pöördes mõne kraadi/s.
antenna_height_m puudub Paigalduse omadus; oletus oleks peidetud lävi.
heading_sensor false Deklareeritud true ja logis puuduv on viga, seega ei saa puuduv andur läbida puhta kontrollina.

Laevavõtmed lükatakse tagasi tingimusel kind = "static". Laeva jaoks monitor position-jump ei tööta, sest see mõõdab kaugust kalibreerimiskeskmisest, mis on liikuval antennil vale; tulemuse monitor_config salvestab platvormi ja kasutatud piirid.

Dokumendi kshana nmea-scenario sünteetilised NMEA-vood, mis on tehtud meeskonna koolituseks, aktsepteerib NMEA lugeja ja neid saab sellest liigist käitada nagu mis tahes NMEA logi.

Monitorid#

Iga monitor vajab oma andmeid; monitori, mille andmeid logis ei ole, ei käitata ja seda ei loetleta väljal monitors_run. Esimesed calibration_s sekundit (vaikeväärtus 60) määravad lähtetaseme ega anna kunagi häiret.

Seire Annab häire, kui Vajab
cn0-drop keskmine C/N0 lähtetasemega ühiste satelliitide üle langeb cn0_drop_db või rohkem (vaikeväärtus 6 dB) C/N0
loss-of-lock jälgitavad satelliidid langevad lähtetaseme mediaanist sats_lost või rohkem allapoole (vaikeväärtus 4) C/N0
agc AGC näit erineb lähtetasemest rohkem kui agc_k_sigma standardhälbe võrra (vaikeväärtus 5) UBX MON-RF või Android AgcDb
jam-ind u-blox jamInd ületab väärtust jam_ind_threshold (vaikeväärtus 80 väärtusest 255) UBX MON-RF
position-jump vastuvõtja enda lahendus on kalibreerimiskeskmisest kaugemal kui position_jump_m (vaikeväärtus 50 m) teatatud asukoht
raim pariteedi-vastuvõtja autonoomne terviklikkuse monitooring (RAIM) mootori enda üksikpunkti lahendusel lükkab mõõtmiskomplekti tagasi RINEX-i logi koos nav
solve-failure mootori üksikpunkti lahendus ebaõnnestub viie või enama satelliidiga RINEX-i logi koos nav
clock vastuvõtja kell erineb oma prognoositud sirgest rohkem kui selle kalibreerimismüra vähim tuvastatav nihe RINEX-i logi koos nav

Kalibreeritud profiil (valikuline). [monitors] profile = "jammertest-2024-calibrated" asendab kolm häirelävendit väärtustega, mis on kalibreeritud avalikul andmekogul JammerTest 2024 (üks u-blox ZED-F9P stsenaariumi kohta; Zenodo 15911589): cn0_drop_db = 1.5, agc_k_sigma = 3.5, jam_ind_threshold = 29. Kalibreerimine oli eelregistreeritud (xval/jammertest-trust/PREREGISTRATION.md) ja profiil on MODELLED, sobitatud ühel avalikul kampaanial: selle cn0_drop_db lävi jättis täitmata eelregistreeritud suletud komplekti valehäire läve (0,0231 võrreldes väärtusega 0,02); AGC ja segamisnäitaja lävendid ning ühendi lävi (valehäired 0,033, tuvastamine 0,81) said täidetud (xval/jammertest-trust/RESULTS.md). See kehtib selle vastuvõtjatüübi kohta sellel sündmusel, planeeritud ründeakende vastu, ja kalibreeriti andmekogu CSV-logidel (selle UBX-logid annavad kahes kaustas rohkem valehäireid). Profiiliga käitatud tulemus kordab rakendatud lävendeid ja kannab märget profile_note, mis ütleb seda kõike. Ilma profiilita kehtivad ülaltoodud vaikeväärtused ja iga väljund jääb muutumatuks.

vessel platvormi puhul käitatakse ka liikuva platvormi monitore (läved ülemise taseme tabelis [maritime], iga vaikeväärtus dokumenteeritud failis src/receiver_trust/maritime.rs); igaüks vajab oma andmeid ja see loetletakse väljal monitors_run ainult siis, kui see otsustas:

Seire Annab häire, kui Vajab
kinematic asukoha muutus ei kattu teatatud kiiruse ja kursiga või eeldab kiirust, kiirendust või pöörlemiskiirust, mis on üle laeva piiride lahendused; kiirus ja kurss (RMC või VTG) surnud lugemi (dead-reckoning) osa jaoks
heading-course güroskoobi suund ja kurss maapinna suhtes erinevad rohkem kui hdg_cog_tol_deg (kiirus üle min_speed_kn) HDT, THS või VHW suund, heading_sensor = true
speed-log kiirus vee suhtes ja kiirus maapinna suhtes erinevad rohkem kui stw_sog_tol_kn VHW või VBW ja kiirus maapinna suhtes
sea-level GGA kõrgus erineb väärtusest antenna_height_m rohkem kui sea_level_tol_m GGA kõrgus, antenna_height_m
cn0-spread C/N0 hajuvus satelliitide vahel langeb tasemele cn0_spread_frac selle kalibreerimismediaanist GSV
cn0-rise ühiste satelliitide C/N0 tõusis keskmiselt cn0_rise_db ja cn0_rise_frac neist tõusis GSV
time-consistency järjestikused epohhi ajad astuvad ebaregulaarselt, jooksevad tagurpidi või lahkuvad hostikellast NMEA aeg; viimase osa jaoks hostikell
osnma vastuvõtja teatab OSNMA autentimise ebaõnnestumisest (loetakse teatatud olekut; midagi ei kontrollita; OSNMA kontrollimiseks I/NAV-lehtedest endist vt docs/OSNMA.md) $PKSOS olekulause

Epohh on usaldamatu, kui RAIM, kellamonitor, lahendamise ebaõnnestumine või asukohahüpe annab häire või kui C/N0 langus jõuab oma läve kahekordsele väärtusele; halvenenud mis tahes muu häire korral; ja nominaalne muul juhul.

Mootori rada (raim, solve-failure, clock) on sama arvutus mis JammerTest 2024 spuufimise sõltumatul etalonil failis tests/jammertest_spoof_oracle_support: tests/receiver_trust_jammertest.rs kontrollib, et kõigil kaheksal avaldatud algushetkel langeb esimene häire samale epohhile ja on samat liiki.

Usaldusskoor (laeva platvorm)#

Laeva puhul saab iga epohh pärast kalibreerimist ka skoori vahemikus 0 kuni 100 ja põhjused, miks see ei ole 100. Kujutis on deterministlik ja fikseeritud enne mis tahes logi skoorimist: ei mingit õppimist, midagi ei sobitata sündmustele. Iga monitor taandab oma tõendid suhtarvule statistic / threshold (häire väärtusel 1 või enam); suhtarv maksab skoorile

points = weight * clamp((ratio - onset_ratio) / (full_ratio - onset_ratio), 0, 1)
score  = round_to_0.1( clamp(100 - sum of points, 0, 100) )

seega ei maksa monitor midagi, kuni see on alla onset_ratio oma läve (vaikeväärtus 0,5), maksab poole oma kaalust oma läve juures ja kogu kaalu full_ratio korda läve juures (vaikeväärtus 1,5); skoor ei kasva ühegi statistiku korral. Allikas, mis epohhil ei teata, hoiab oma viimast statistikut evidence_hold_s (vaikeväärtus 10 s: kaks tsüklit C/N0 lausest, mida saadetakse iga 5 s järel), nii häirena kui mahaarvamisena.

Ümardamine on pool üles (floor(x * 10 + 0.5) / 10), riba on ümardatud skoori oma ja piiramine tuleb enne ümardamist. Mahaarvamistes loetletakse ainult monitorid, mille punktid on üle nulli, koos nende suhtarvu ja ümardamata punktidega, suurimad punktid ees; võrdsete punktidega mahaarvamised loetletakse monitorinimede järjekorras cn0-drop, agc, jam-ind, loss-of-lock, position-jump, raim, clock, solve-failure, kinematic, heading-course, speed-log, sea-level, cn0-spread, cn0-rise, time-consistency, osnma, geometry. Monitorile, mille test on läbitud või läbikukkunud (ebaõnnestunud lahendamine, ebaõnnestunud autentimine), antakse suhtarv 1,5, täiskaal. Loetletud punktid on need enne piiramist tasemele 0.

[score]
nominal_min = 90.0         # score >= 90: nominal
degraded_min = 55.0        # 55 <= score < 90: degraded; below 55: untrusted
onset_ratio = 0.5
full_ratio = 1.5
evidence_hold_s = 10.0
[score.weights]            # overrides; a monitor not listed keeps its default
sea-level = 30.0
Kaal (punktid) Monitorid Miks
70 osnma autentimise ebaõnnestumine on väide, mitte statistik
60 kinematic, raim, clock, position-jump, time-consistency võltsasukoht peab olema vastuolus füüsikaga või vastuvõtja enda kontrollidega ja aeg ei saa joosta tagurpidi; üks rikkumine täisjõul (1,5 korda selle lävi: 60 punkti, skoor 40) on usaldamatu ja oma läve juures (30 punkti, skoor 70) halvenenud
40 heading-course, speed-log, solve-failure üks sõltumatu andur, mis ei nõustu, on halvenenud; kaks täisjõul on usaldamatud
30 sea-level, cn0-spread, cn0-rise, cn0-drop signaalikeskkond või nõrgalt informatiivne kontroll
25 loss-of-lock, agc, jam-ind keskkond on vaenulik; see üksi ei näita, et lahendus on vale
kuni 15, [geometry] geometry (0.36) ei ole kaal sellel kallakul: mitte midagi, kui taevas ei ole kehv, siis kuni cap_points (15); ainuüksi geomeetria jõuab halvenenud tasemele, mitte kunagi usaldamatule, ega anna häiret (vt allpool „Geomeetria“)

Riba servad tulenevad kaaludest: kergeim häiret andev monitor maksab oma läve juures 12,5 punkti, seega jätab iga häire nominaalse riba; ükski üksik monitor alla 60 punkti ei saa üksi usaldamatu ribani jõuda (mitu koos võivad). Tulemus salvestab skoorimudeli (score_model) ja iga epohh kannab score.deductions: millised monitorid arvasid maha, nende suhtarvud ja nende punktid. Laeva puhul on epohhi olek tema skoori riba.

Geomeetria: loomulik halvenemine ründetaolisest vastuolust eraldi#

Vastuvõtja kai kraana kõrval, lüüsis või kõrge kere all kaotab satelliite ja selle lahendus halveneb põhjusel, mis ei ole rünnak. Alates versioonist 0,36, järgides geomeetria disainimärget (docs/design/2026-10-12-geometry-and-skyline-design.md, jaotis 4), kannab iga epohh oma satelliidigeomeetriat, laeva skooril on geomeetriamonitor ja iga mahaarvamine kannab klassi: geometry (taevas), environment (signaalikeskkond) või inconsistency (ründetaoline tõend).

Kust geomeetria tuleb. Iga jälgitava satelliidi kõrgus ja asimuut (NMEA GSV, UBX NAV-SAT), millest tuletatakse täpsuse halvenemise tegur (DOP) mootori ainsa DOP-tuumaga (orbit::dop, VALIDATED gnss_lib_py vastu): source = derived. Selle puudumisel DOP ja kasutatud satelliidid, mida vastuvõtja esitab (NMEA GSA): source = reported. Taevapositsioonid ja GSA kehtivad skoori evidence_hold_s jooksul (vaikeväärtus 10 s), sest paljud siinid saadavad GSV-d iga mõne sekundi järel; epohhil mittetäielikku GSV komplekti (väljavõtte lõpp, kaotatud lause) ei kasutata. Logi, millel ei ole kumbagi, näiteks NMEA ainult GGA ja RMC-ga või Androidi ja RINEX-i logid täna, saab oleku unknown märkusega „geomeetria teadmata“: mootor ei oleta geomeetriat, mida talle ei antud, ja geomeetriamonitor ei tööta.

geometry.status Tähendus
good piisavalt satelliite ja DOP läve piires
degraded üks või mitu põhjust: few-satellites, high-pdop, high-hdop ja (informatiivne, skooris mitte) sky-blocked, kui iga jälgitav satelliit asub horisondi ühes pooles
unknown logi ei anna sellele epohhile satelliidigeomeetriat

Olek on kirjeldav ja skoori jaoks on tähtis silt (allpool): degraded hõlmab informatiivset juhtu sky-blocked, mis võib tulla koos hea või rahuldava DOP-iga, ja skoorile läheb ainult silt poor.

Silt (alati teatatud, mitte kunagi skooris). Iga epohhi geometry.label on good (HDOP kuni hdop_good 2, PDOP kuni pdop_good 3 ja vähemalt used_good 6 satelliiti), poor (HDOP üle hdop_max 4, PDOP üle pdop_max 6 või vähem kui min_used 5 satelliiti), fair nende kahe vahel või unknown. Epohhi märkus algab alati sildi ja arvudega, näiteks „geomeetria rahuldav: HDOP 1,105, PDOP 1,831, VDOP 1,410, 8 satelliiti; skooris mitte (skoor arvab maha ainult üle HDOP 4, PDOP 6 või alla 5 satelliidi)“, ja lisab „, signaalikadu“, kui see kehtib.

Geomeetriamonitor (laeva skoor). See arvab maha midagi, kui geomeetria ei ole kehv: selle suhtarv on max(hdop / hdop_max, pdop / pdop_max, min_used / n_used) ja kuni see on kuni 1 (hea või rahuldav geomeetria, kaasa arvatud GPS-i ainult avatud taevas 8 satelliidiga) ei maksa see midagi, seega skooritakse selline logi täpselt nagu versioonis 0,35. Üle 1 kasvab mahaarvamine lineaarselt väärtuseni cap_points (15) tasemel full_ratio (1,5 korda läve: HDOP 6, PDOP 9, 3 satelliiti): 7,5 punkti suhtarvul 1,25 (HDOP 5 või 4 satelliiti), 15 alates 1,5 (skoor 85, halvenenud). Üksi ei saa see skoori kunagi viia alla taseme floor (vaikeväärtus: skoori degraded_min, 55), seega jõuab ainuüksi geomeetria halvenenud ribale ja mitte kunagi usaldamatule: kehtiv piir on min(cap_points, 100 - floor), nii et tabel [score], mis tõstab degraded_min (näiteks 0,35 oma degraded_min 90), langetab piiri väärtusele 100 - degraded_min, mitte ei lükata tagasi, ja floor, mis on seatud alla degraded_min, lükatakse tagasi. Monitor ei anna häiret; see loetletakse väljal monitors_run viimasena, kui see otsustas mis tahes epohhil (laev, mille logi annab geomeetria), ja seda ei arvata versiooni 0,35 identsusse; see ei ole [score.weights] kirje (selle seadmine lükatakse tagasi) ning kehtiv piir ja alampiir salvestatakse väljadele geometry_model.cap_in_force ja geometry_model.floor_in_force. Kehva epohhi märkus ütleb miks, näiteks „geomeetria kehv: HDOP 5,200, PDOP 7,900, VDOP 4,100, 7 satelliiti; halvenenud geomeetria tõttu: HDOP 5,200 üle 4 (tuletatud 7 logitud satelliidist); mitte vastuolu“.

Klassid. Iga mahaarvamine (score.deductions[].class):

Klass Monitorid
geometry geometry (kehv geomeetria); loss-of-lock, kui iga kalibreerimislähtetasemega võrreldes kaotatud satelliit oli viimasel teatamisel alla low_elev_deg
environment cn0-drop, cn0-spread, cn0-rise, agc, jam-ind, loss-of-lock muul juhul; geometry signaalikao ajal (allpool)
inconsistency kinematic, heading-course, speed-log, sea-level, time-consistency, clock, raim, position-jump, osnma, solve-failure; ja geometry, kui geomeetria on kehv ja esitatud HDOP ei lange kokku esitatud taevaga (allpool)

Kaitse võltsitud kehva taeva vastu. Spuufer võiks saata hõreda GSV või teatada kõrge HDOP-i, et osta tolerantsi. Mootor sildistab ega anna andeks: ükski teine kontroll ei laiene kehva geomeetria tõttu ja vastuvõtja esitatud HDOP (GSA hoidmise jooksul, muidu GGA) võrreldakse esitatud taevast tuletatud HDOP-iga. Kui need erinevad rohkem kui max(reported_vs_derived_tol, reported_vs_derived_rel × derived HDOP) (1,0 või 25 % tuletatud HDOP-ist, olenevalt sellest, kumb on suurem), kannab epohh reported_derived_mismatch: true ja kui geomeetria on kehv, klassifitseeritakse selle mahaarvamine inconsistency. Hea või rahuldava geomeetria korral lahknevust teatatakse ja ei skooritud: midagi ei arvata maha, kui geomeetria ei ole kehv. See on teadlik valik (0,36): „null, kui ei ole kehv“ kehtib iga epohhi kohta, nii et hea ja rahuldav geomeetria skooritakse täpselt nagu versioonis 0,35 ja võltsitud HDOP ei ole kunagi vaikne. Lipp (reported_derived_mismatch) on tulemuse igal epohhil ja igal reaalajarea real, märkus ütleb „…tolerantsist väljaspool: teatatud, skooris mitte (geomeetria ei ole kehv)“ või „…: geomeetria mahaarvamine klassifitseeritakse vastuoluks“, geometry_summary.hdop_mismatch loendab epohhe ja tõendite kokkuvõtte leht näitab arvu, null kaasa arvatud. 25 % on REPRESENTATIVE inseneriotsus, mitte mõõdetud ega standardne arv: vastuvõtja, mis lahendab ühe kella konstellatsiooni kohta või osaga satelliitidest, mida see jälgib (kõrgusmask, C/N0 piir, RAIM-i välistus), esitab HDOP-i, mis erineb iga jälgitava satelliidi ühe kella HDOP-ist summa võrra, mis kasvab HDOP-iga, seega loeks fikseeritud tolerants üksi loomulikku kehva geomeetriat vastuoluks. Suurem erinevus loetakse endiselt vastuoluks. Mahaarvamine, mis on klassifitseeritud geometry, on väide taeva kohta, mitte järeldus, et rünnakut ei toimunud.

Signaalikadu ei ole taevas. Kui satelliite, mida vastuvõtja loetleb nähtavana (üle low_elev_deg), ei jälgita, tuletab mootor ka kõigi nähtavate satelliitide DOP-i. Kui see nähtavate satelliitide DOP on läve piires ja kas midagi ei jälgita või jälgimata satelliidid on jaotunud mööda horisonti (mitte piiratud selle ühe poolega), siis taevas oli olemas ja signaal mitte: epohh kannab signal_loss: true, märkust „satelliidid nähtavad, kuid jälgimata: signaalikeskkond, mitte geomeetria“ ja geomeetria mahaarvamine klassifitseeritakse environment. Jälgimata satelliidid, mis on piiratud horisondi ühe poolega, loetakse endiselt blokeeritud taevaks (sein, kaljuserv, kai). Kahepoolne takistus (kanjon või kitsas fjord) loetakse signaalikaoks, kuni horisondijoon on seadistatud. Vastuvõtja puuduva lahenduse märgid ei ole DOP: esitatud HDOP või PDOP 99 või enam, GGA kvaliteet 0 ja GSA režiim 1 ei anna esitatud DOP-i.

Võti [geometry] Vaikeväärtus Päritolu
hdop_max 4 valitud (disainimärge 4,2): tasemel sigma_uere_m 1,5 m on HDOP 4 2drms väärtusega 12 m, kinemaatilise kontrolli kin_pos_tol_m. IEC 61108-1 puhul tsiteeritakse sageli, et see esitab oma täpsusnõuded HDOP ≤ 4 (või PDOP ≤ 6) jaoks: meenutatud GNSS-vastuvõtjate sekundaarkirjandusest, konkreetset sekundaarset allikat ei konsulteeritud ja standardit ei loetud; kontrollida standardi tekstiga
pdop_max 6 PDOP kättesaadavuse lävi scenarios/polar-arctic-leo-coverage.toml; GPS SPS Performance Standard, 5. väljaanne (2020), PDOP ≤ 6, nagu tsiteeritud failis tests/constellation_availability_published_spec_oracle.rs; kontrollida standardi tekstiga
min_used 5 üks rohkem kui lahendus vajab, nii et üksik kadu ei lõpeta lahendust; vähim arv, millel on RAIM-i jaoks üks liigne mõõtmine
sigma_uere_m 1.5 esitatud sisend lüli 2drms jaoks hdop_max; seadke vastuvõtja enda arv
reported_vs_derived_tol 1,0 HDOP valitud (disainimärge 4,2): tolerantsi absoluutne osa; lahknevus üle tolerantsi ei ole geomeetria
reported_vs_derived_rel 0.25 REPRESENTATIVE inseneriotsus: suhteline osa, vastuvõtjatele, millel on konstellatsioonipõhised kellad või alamhulga lahendused
low_elev_deg 15 disainimärge 4,3: sellest allapoole kaotatud satelliidid on taevale kaotatud; horisondijoon (0,36 punkt 1) laiendab seda
azimuth_gap_deg 180 geomeetriline, informatiivne: iga satelliit horisondi ühes pooles
cap_points 15 disainimärge 4,2: ainuüksi geomeetria viib skoori nominaalsest halvenenuks ja mitte kunagi usaldamatuks; maha arvatakse ainult siis, kui geomeetria on kehv (asutaja otsus B1, 0,36)
full_ratio 1.5 skoori enda full_ratio: kallak jõuab väärtuseni cap_points tasemel 1,5 korda kehvad läved
floor skoori degraded_min (55) ainuüksi geomeetria ei jõua kunagi usaldamatu ribani; kehtiv piir on min(cap_points, 100 - floor); alla degraded_min alampiir lükatakse tagasi
hdop_good 2 REPRESENTATIVE, ainult silt: pool väärtusest hdop_max (skoori 0,35 algussuhtarv)
pdop_good 3 REPRESENTATIVE, ainult silt: pool väärtusest pdop_max
used_good 6 REPRESENTATIVE, ainult silt: üks rohkem kui min_used, nii et üksik kadu jätab endiselt liigse mõõtmise

Mis väljundites muutus ja mis mitte. Ükski skoor ei muutu, kui geomeetria ei ole kehv; silt teatatakse alati. Lisatud võtmed: epochs[].geometry (status, reasons, source, n_used, hdop, pdop, vdop ümardatud väärtuseni 0,001, open_fraction (null, kuni horisondijoon on seadistatud), max_azimuth_gap_deg, age_s, reported_hdop, reported_derived_mismatch, note, in_view (satelliidid, mis on loetletud üle low_elev_deg), signal_loss, label), class igal mahaarvamisel ja lõpus geometry_model (läved, hoidmine, kehtiv piir ja alampiir, päritolu, klassireeglid) ning geometry_summary (epohhid oleku, sildi ja mahaarvamise klassi järgi ning epohhid esitatud HDOP lahknevusega); score_model.weights on nagu versioonis 0,35. Kaks testi hoiavad seda „0,36 portable“ lähtetaseme baitideni, kui need võtmed on eemaldatud (versiooni 0.35.0 räsid, mis on ümber lähtestatud, kui mootor läks üle portatiivsele matemaatikale, ja mida hoitakse testides kirjena sellest, mida 0.35.0 välja andis: docs/revisions/STUDIO15-portable-math-rebaseline.md). tests/geometry_trust_no_change.rs hoiab mõlema näidissessiooni kõiki väljundeid (tulemuse JSON, CSV, SVG, verdikt, taasesitatud reaalajaread, $PKSHT, Prometheus, CEF, LEEF). tests/geometry_corpus_identity.rs hoiab iga kinnitatud laeva NMEA korpuse partii tulemust, kokkuvõtet, reaalajaridu ja $PKSHT (demo ja mereviite fikstuurid, igaüks ka GPS-i ainult avatud taevana 8 satelliidiga, ja meeskonnakoolituse stsenaariumid, mis on genereeritud nende algväärtustest); kahes koolitusstsenaariumis, kus segamine teeb geomeetria kehvaks, on iga epohh, mis ei ole kehv, identne ja iga kehv erineb ainuüksi geomeetria mahaarvamise võrra. Logi, mille geomeetria on kehv, kaotab kuni 15 punkti, mida see versioonis 0,35 ei kaotanud; see on ettenähtud muutus. Demol loetakse äravedamine inconsistency; tests/geometry_trust.rs muudab logi nii, et maskeerib lääne taeva (rahuldav: sildistatud, skooris mitte), maskeerib selle ja kaks idapoolset satelliiti (kehv: geomeetria mahaarvamised, lukustuse kadu environment, sest ka kõrged satelliidid läksid), kaotab ainult alla 15° satelliidid (lukustuse kadu geometry) ja esitab HDOP-i, mida taevas ei seleta (kehva geomeetria mahaarvamine muutub inconsistency). Läved on MODELLED: valitud, mitte ühelegi logile sobitatud; siin ei väideta midagi selle kohta, kui sageli loomulikku halvenemist ja rünnakuid päris andmetel eristatakse.

Sündmuste ja ennustuste esitamine#

[[events]]
label = "jammer on"
kind = "jamming"            # jamming, spoofing or other
onset_s = 120.0             # seconds since the first epoch of the log
end_s = 240.0               # optional; otherwise onset_s + compare.horizon_s
predicted_cn0_drop_db = 12.0  # optional, e.g. from a `jamming` scenario's link budget

[compare]
detect_tol_s = 10.0         # an alarm this soon after onset counts as a detection
cn0_tol_db = 3.0            # predicted and observed drops agree within this

Iga sündmuse kohta annab tulemus valehäired kalibreerimise ja algushetke vahel, esimese häire ja selle monitorid, latentsuse, tulemuse (detected, late, missed või not-evaluable) ning vaadeldud C/N0 languse mediaani ennustuse vastu (agree, disagree, no-prediction või not-evaluable). Lahknevust teatatakse, mitte kunagi ei häälestata ära: tolerantsid on stsenaariumis ja stsenaarium on tulemuse räsis.

Mida see ei väida#

Usalduse monitorid on MODELLED: nende läved on sisendid ja nende tuvastamise toimivus reaalse häire korral on see, mida sündmuste skoorimine mõõdab, mitte midagi, mida see liik väidab. JammerTest 2024 spuufimise sessioonidel tabavad mootori raja monitorid mõne algushetke 10 s jooksul ja on teiste puhul hilised; arvude jaoks vt rida „Clock-aided χ², RAIM, AGC, SQM fused per-epoch security FoM“ failis VERIFICATION-MATRIX.md. Ennustus, mis ühe logiga kokku langeb, on üks andmepunkt, mitte valideerimine.