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

Vastuvõtja usaldus ja merendusMuuda GitHubisAllikas: docs/SKYLINE.md

Horisondimaskid ja taevageomeetria

Kuni 0,36 oli iga Maa nähtavuse test mootoris üks kõrgusnurga piir, mask_deg: satelliit loeti arvesse, kui see oli sellel numbril või kõrgemal, olenemata suunast. Tänav, kai, fjord või kraana varjab osa taevast ja jätab ülejäänu lahtiseks. Horisondijoon on kõrguspiir, mis sõltub asimuudist; taevageomeetria funktsioonid muudavad asukoha, aja, konstellatsioonid ja horisondijoone nähtavaks hulgaks, täpsuse halvenemise teguriks (DOP), geomeetria kovariatsiooniks, horisontaalseks veaellipsiks, Monte Carlo pilveks ja taevakaardiks. Kavand on docs/design/2026-10-12-geometry-and-skyline-design.md (punktid 1 ja 2).

Tõendid: maskeeritud nähtavusotsus (geodeetilised vaatenurgad, tabelmask, nähtav hulk ja selle DOP) on VALIDATED Orekit 12,2 ja gnss_lib_py 1.0.4 vastu eelregistreeritud võrdluses, nagu ka veaellips ja süsteemipõhine kofaktor (numpy, eelregistreeritud); kanjoni-, sektori- ja maastikukärped, eelseaded ja ülejäänud taevageomeetria funktsioonid on MODELLED (Tõendid). Horisondijoon eemaldab nähtavuse sirgel olevad satelliidid ja mitte midagi enamat. Eelseaded on REPRESENTATIVE geomeetriad, mitte mõõdistused.

Horisondijoon#

Horisondijoon on nelja kirelduse punktiviisiline maksimum. Asimuut on kraadid päripäeva tõelisest põhjast asukoha lokaalses ida-põhja-üles teljestikus; kõrgused on ühikus [0, 90).

Kirjeldus TOML Mis see on
Tabel table = [[az, el], ...] Kõrgused on asimuudi suhtes lineaarselt interpoleeritud ja ümber keeratud kohal 360°. Asimuudid on rangelt kasvavad väljal [0, 360); kuni 3600 rida.
Tänavakanjon street_az_deg, width_m, height_left_m, height_right_m, antenna_m, length_m Kaks sirget paralleelset seina (allpool).
Sektorid sectors = [{ az_from, az_to, el_deg }] Teravate servadega vahemikud päripäeva alates az_from (kaasa arvatud) kuni az_to (välja arvatud), mis võivad põhja kaudu ümber keerata; kuni 360.
Maastik terrain = [{ az, distance_m, height_m }] Punktid taandatud tabeliks: kõrgusnurk atan((height_m − d²/(2 R_eff)) / d), koos kõveruse languga väärtuse R_eff = 4/3 × 6371 km jaoks (valitud, esitatud konstant). height_m on antenni kohal.

preset = "<name>" algab nimetatud geomeetriast; kanjoni väljad alistavad seejärel eelseade kanjoni välja väljahaaval ning table, sectors ja terrain lisavad sellele.

Vastuvõtja mask_deg säilitab oma tähenduse: see on tasane horisondijoon. Efektiivne piir asimuudil az on max(mask_deg, skyline(az)) ja satelliit on nähtav, kui selle kõrgusnurk on sellega võrdne või suurem: sama >=, mida tasane mask alati kasutas. Satelliit, mis on kohal mask_deg, kuid horisondijoonest allpool, on horisondijoone poolt maskeeritud.

Tänavakanjon#

Tänav kulgeb piki asimuuti s, seinte vahel w meetrit, antenn a meetri kõrgusel keskjoonel. Piki asimuuti az, väärtusega θ = az − s, jõuab kiir seinani pärast d(az) = (w/2) / |sin θ|, nii et kõrgusega h sein lõikab piiri

cut(az) = atan( (h − a) / d(az) )          (the right wall for sin θ > 0, the side at s + 90°)

Avatud riba on tänava suunas. Väärtusega length_m = L (antenn keskel) väljub kiir läbi avatud otsa ja sein ei lõika midagi, kui d(az) · |cos θ| > L/2. Sein, mis pole antennist kõrgem, ei lõika midagi. antenna_m vaikeväärtus on 1,5 m (auto katus või käeshoitav vastuvõtja, esitatud valik); uus kanjon vajab width_m.

Eelseadistused#

Valitud ja esitatud mõõtmed (kavandimärkuse omad), mitte ühegi tegeliku koha mõõdistused. kshana skyline --preset <name> trükib ühe koos selle päritolu ja iga kraadi piiriga.

Eelseade Geomeetria Päritolu
city-street Kanjon: tänav 0°, laius 20 m, seinad 30 m ja 30 m, antenn 1,5 m. 70,7° risti tänavaga, tänava suunas avatud. Kõrguse ja laiuse suhe 1,5, tänavakanjonite kujusuhete vahemikus 0,5–2 allikas Oke (1988), Street design and urban canopy layer climate, Energy and Buildings 11, 103–113.
harbour-approach Sektorid: mere poole avatud üle 090–270 (180°); kaihooned 8° üle 315–045 (90°); lainemurd ja selle tuli 3° üle 045–090 ja 270–315. Esitatud valikud (näiteks 40 m laohooned umbes 285 m kaugusel).
fjord Maastik: seinad 600 m antenni kohal 1500 m kaugusel põhja-lõuna suunalise kanali mõlemal küljel, üks punkt kraadi kohta (väärtusel 1500/|sin az| m), kõveruse langus rakendatud. 21,8° risti, alla 1° piki telge. Sügavate Lääne-Norra fjordide laiuse ja reljeefi suurusjärk (Holtedahl (1967), Notes on the formation of fjords and fjord-valleys, Geografiska Annaler 49A, 193–203).
container-terminal Sektorid: konteinerivirnad 12° maa poole jääval poolel 000–180; kraanade noolad 35° üle 245–255 ja 25° üle 285–295; mujal veele avatud. Viis ISO 668 high-cube konteinerit (14,5 m) umbes 60 m kaugusel antennist, mis on 2 m kõrgusel; nool umbes 50 m kai kohal kaugustel 70 m ja 100 m, post-Panamax kraana suurusjärk. Kraanasektor on läbipaistmatu.

Stsenaariumis#

Valikuline jaotis [skyline], liigi enda piiri kohal:

Liik Mida horisondijoon muudab Valimi kohta
orbit (koos väljaga user_site) Nähtavuse ajajoon (GNSS kättesaadavus) ja DOP kokkuvõte. —
integrity (koos väljaga user_site) Satelliidid, mida RAIM ja ARAIM (araim_dual) kasutavad. epochs[].masked_by_skyline
gnss-sim Satelliidid, mille pseudovahemaad simuleeritakse ja mida RAIM kasutab. gnss_measurements[].masked_by_skyline
jamming Satelliidid, mida vastuvõtja suudab jälgida, enne segajat. epochs[].masked_by_skyline
leo-pvt Iga režiimi nähtavushulk iga süsteemi enda maski kohal, polaarlaotus kaasa arvatud (sama horisondijoon igal asukohal). Doppleri režiimi mähisjoon ja kavandatud üksikläbilend on piirid sellele, mida vastuvõtja peab käsitlema, ning säilitavad iga süsteemi maski. joint.epochs[].masked_by_skyline
leo-pass Millised epohhid loetakse maski kohal olevaks, maski kohal oldud aeg, GNSS võrdluse satelliidid. satellites[].pass.epochs_masked_by_skyline
nmea-scenario (õppe-NMEA) Satelliidid väljal GSV ja lahendis. Asimuudid on tõelised suunad, mis on maapinna külge kinnitatud, mitte laeva kurss. —

Liikide orbit ja integrity maapealne asukoht. Mõlemad liigid modelleerivad orbiidil olevat kasutajat geotsentrilise kõrgusnurga ja Maa suhtes fikseeritud asimuudita, seega võtavad nad horisondijoone vastu ainult kavandimärkuse maapealse asukoha režiimiga: user_site = { lat_deg, lon_deg, height_m } väljade user asemel (täpselt üks kahest). Iga valim on üks absoluutne ajahetk, epoch + t: iga satelliit levitatakse selleni (elemendikomplekti, edastatud efemeriidi või SP3 faili edasiliigutamine toimub selle enda epohhist, Walkeri satelliit loeb t alates epoch) ja pööratakse selle hetkel Maa suhtes fikseerituks, nii et asukoht näeb üht kooskõlalist taevast. epoch on orbiidi stsenaariumi enda; selle puudumisel (ja alati liigi integrity puhul, millel seda pole) on see uusim epohh nende satelliitide seas, millel see on, või ainult Walkeri mustrite puhul J2000. Kõrgusnurk ja asimuut on geodeetilised (WGS-84). Terviklikkuse liigi ARAIM kaitsetasemete ning Stanfordi vertikaalvea horisontaalne ja vertikaalne jaotus kasutab sama geodeetilist ülesuunda (WGS-84 ellipsoidi normaal, umbes 0,19° geotsentrilisest radiaalist 45° laiuskraadil); hetktõmmise RAIM kasutas seda juba. Liik user_site ilma horisondijooneta on tavaline maapealne kasutaja; orbiidil oleva user tee jääb muutmata.

kind = "integrity"
mask_deg = 5.0
# ...
[user_site]
lat_deg = 59.45
lon_deg = 24.75
height_m = 15.0

[skyline]
preset = "harbour-approach"

Tagasiühilduvus. Ilma jaotiseta [skyline] on stsenaarium bait baidi haaval identne sellega, mida sama mootor andis enne horisondijoone koodi olemasolu: tests/skyline_scenarios.rs kontrollib iga tarnitud stsenaariumi, mis neid liike käivitab, JSON-i, graafikut ja kokkuvõtet ning iga õppestsenaariumi NMEA teksti „0,36 portable“ baasjoone SHA-256 räsite vastu (0.35.0 väljalaskekommiti räsid, uuesti baseeritud, kui mootor läks üle portatiivsele matemaatikale, ja hoitud testis kirjena: docs/revisions/STUDIO15-portable-math-rebaseline.md). Tühi jaotis [skyline] ei lõika midagi; tulemus on siis võrdne käivitusega ilma selleta, välja arvatud lisatud plokk skyline ja nullist masked_by_skyline arvud.

Mida tagasi lükatakse, põhjusega teates: horisondijoon orbiidil olevale user; user ja user_site koos; tundmatu eelseade; kanjon ilma väljata width_m; tabel, mis ei ole väljal [0, 360) rangelt kasvav; kõrgusnurk väljaspool [0, 90); tühi sektor; mittepositiivne maastikukaugus; sisend üle piirmäärade; mis tahes tundmatu võti.

Tulemus saab välja skyline: { source, open_fraction, provenance }, kui jaotis on olemas: source on preset:<name>, preset:<name>+overrides või custom; open_fraction on ülemise poolsfääri ruuminurga osa kõrgusel max(mask_deg, skyline) (väärtuse 1 − sin(cut) keskmine asimuudi üle: 1 nullmaski korral, 0,5 tasase 30° piiri korral); provenance on eelseade rida või stsenaariumi enda. Ühikud ja päritoluklassid on blokis units.

Kaasasolevad näited (kshana example <name>):

Näide Mida see näitab (võrdlemiseks eemalda jaotis [skyline])
orbit-urban-canyon-skyline GPS + Galileo väljaku city-street põhjas: 17 valimist 289 säilitab lahendi, mediaan-PDOP 70,5 (1,14 lahtise taeva all).
integrity-harbour-approach Kahe konstellatsiooni ARAIM sadamasse sisenemisel: 70 satelliidi-epohhi peidetud, kättesaadavus muutumatu (145 / 145).
gnss-sim-container-terminal-skyline Pseudovahemaad ja RAIM kail: 44 satelliidi-epohhi peidetud; RAIM kättesaadavus 0,59 (0,85 lahtise taeva all).
jamming-harbour-approach-skyline 2 W segaja sadamas: 83 satelliidi-epohhi peidetud, jälgimine muutumatu (segaja oli need juba võtnud).
leo-pvt-fjord-skyline GPS + Galileo + LEO kiht fjordis: liidetud PDOP mediaan 1,14 (0,93 lahtise taeva all).
leo-vertical-autonomous-vehicle-skyline Kanjon leo-vertical-autonomous-vehicle tasase 35° piirina ja kui city-street pööratud auto kursi suunas: 8 versus 4 kuni 5 GPS ja Galileo satelliiti; liidetud keskmine viga 2,1 m mõlemal juhul; 1,5 m häire 51 % ja 59 % epohhidest.

Taeva geomeetria#

Viis mootori funktsiooni (src/geometry.rs), kõigil pindadel samad:

Funktsioon Sisend → väljund
sky_geometry(request) satelliidi kohta id, system, az_deg, el_deg, cut_deg, visible, masked; n_visible, n_masked, open_fraction; dop (GDOP, PDOP, HDOP, VDOP, TDOP, tdop_by_clock); states, cofactor_enu (ühikuline dispersioon), covariance_enu_m2; ellipse_1sigma ja ellipse nõutud usaldusnivool; label, statement, advisory
sky_monte_carlo(request, seed, n) n (kuni 5000, sisendi piirmäär) vähimruutude viga sõltumatute Gaussi kaugusvigade korral väärtusega σ_UERE ChaCha8 vooust, mille algväärtus (seed) on seed: samples_enu_m, empiiriline kovariatsioon, horisontaalne ja 3-D RMS koos σ_UERE × HDOP ja σ_UERE × PDOP, 95 % ellipsi sisse jääv osa
skyline_presets() eelseaded koos sildi, kirjelduse, päritolu, iga kraadi piiri ja open_fraction
skyline_profile(skyline) horisondijoone jaotis, taandatud mootori kasutatavaks 360-kirjeliseks tabeliks, koos source, provenance, open_fraction
skyplot_svg(request) taevakaart staatilise SVG-na (ilma skriptita, ilma välise viiteta, iga sisendsõne on paojadastatud)

Päring:

{
  "site": {"lat_deg": 59.91, "lon_deg": 10.75, "height_m": 5},
  "time_s": 3600,
  "systems": ["gps-baseline", "galileo", "beidou-meo", "xona-pulsar"],
  "mask_deg": 5,
  "skyline": {"preset": "fjord"},
  "clock": "per-system",
  "sigma_uere_m": 1.5,
  "confidence": 0.95
}

systems on mootori konstellatsiooni eelseaded (väljad constellation-design gps-baseline, galileo, beidou-meo, glonass, ...; LEO eelseaded xona-pulsar, iridium-stl, ...) või täielik leo-pvt [[system]] tabel, levitatud kuni time_s (Kepleri, sekulaarse J2-ga, leo-pvt ühisrežiimi orbiidid). Nende suhtelised faasid tulevad erinevatest etalonepohhidest, seega on taevas representatiivne geomeetria, mitte selle kuupäeva taevas sellel kohal. Satelliidid võib anda ka otse (või lisaks): "satellites": [{"id": "G05", "system": "GPS", "az_deg": 120, "el_deg": 35}, ...], või väljadega "ecef_m": [x, y, z] ja site või user_ecef_m. Vaikeväärtused: iga süsteemi enda mask (5° GNSS, 10° LEO; 5° otse antud satelliitidele), üks vastuvõtja kell süsteemi kohta ("common" ühe jagatud kella jaoks), σ_UERE 1 m (representatiivne kahe sagedusega eelarverida), usaldusnivoo 0,95. Sisendi piirmäärad: kuni 2000 satelliiti horisondi kohal (rohkema nõudev süsteemitabel lükatakse tagasi enne ehitamist) ja 16 vastuvõtja kella.

Kuupäevastatud taevas elemendikomplektidest. "tle" võtab kaherealise elemendikomplekti teksti (nimerida iga komplekti ees on valikuline; kuni 4 MiB, sisendi piirmäär), levitatud mootori SGP4-ga (WGS-72, levitaja, mida orbit-real-tle kasutab) hetkeni "epoch" pluss time_s, pööratud Maa suhtes fikseerituks, UT1 võetuna UTC-ks ja ilma poolusliikumiseta, ning vaadatuna kohast site. "epoch" on UTC ISO 8601 (2026-06-07T12:00:00Z) ja kuupäevastab ainult elemendikomplektid (eelseadetel kuupäeva pole, seega lükatakse epoch ilma tle tagasi); "tle_system" sildistab need süsteemipõhise kella jaoks (vaikimisi TLE). Iga tulemus ütleb, millist taevast ta kujutab, väljades sky_source ja sky_statement:

sky_source Taevas
presets mootori konstellatsiooni eelseaded: representatiivne geomeetria
tle-at-epoch elemendikomplektid, mis on levitatud esitatud epohhini: taevas, mille need elemendikomplektid sel epohhil annavad, mitte selle mõõtmine (nende enda täpsus on SGP4 oma ja komplektide vanus)
tle-at-element-epoch ilma väljata epoch: elemendikomplektid, mis on levitatud uusima komplekti enda epohhini pluss time_s, representatiivne taevas
satellites otse antud satelliidid, nagu esitatud

Segu ühendab need väljaga +. epoch_utc on ajahetk, milleni elemendikomplektid levitati, ja tle_skipped nimetab, millist osa tekstist ei kasutatud, koos põhjusega: valesti vormistatud või orvuks jäänud elemendikomplekti read (koos nende reanumbritega), komplektid, mille parser tagasi lükkas, ja komplektid, mida SGP4 ei suutnud sellesse ajahetke levitada (lagunenud või oma piiridest väljas); kokku kuni 100 kirjet, seejärel üks viimane kirje, mis loendab ülejäänud. Tühi loend systems ei lisa eelseadeid. Taevakaart esitab aluse oma jaluses.

Üks tuum. Kofaktormaatriks on orbit::cofactor_from_los, kujundusmaatriksi koostamine ja Gauss-Jordani pöördmaatriks väljade orbit::dop taga. orbit::dop_cov avab kovariatsiooni ja orbit::dop on selle taandus, nii et VALIDATED skalaarid on muutumatud ja neid kinnitab endiselt tests/dop_reference.rs. Teist DOP realisatsiooni ei ole.

Ellips. Pooltelg k σ √λ ida-põhja bloki omaväärtustele λ, koos k = √(−2 ln(1 − p)) (√5.991 = 2.448 95 % juures, 1 39,35 % juures) ning peatelje asimuut ½ atan2(2 Q_EN, Q_NN − Q_EE) väljal [0, 180) põhjast.

Pind Sisenemispunktid
CLI kshana sky <request.json|toml> või kshana sky --site <lat,lon[,h]> (--systems <a,b> | --tle <file>) [--epoch] [--tle-system] [--time] [--mask] [--skyline-preset] [--uere] [--clock], koos --monte-carlo <n> --seed <s> või --svg; kshana skyline --preset <name> | --presets | --profile <file>
Rust kshana::geometry::{sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg}, samanimelised kshana::surface::*
Python kshana.sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg
WASM sky_geometry(request_json), sky_monte_carlo(request_json, seed, n), skyline_presets(), skyline_profile(skyline_json), skyplot_svg(request_json)
MCP sky_geometry (request või skyline_preset); MCP kaudu Monte Carlot ei tehta (massvalimid, mida agent peaks kokku võtma, mitte kandma)

Iga tulemus kannab label (MODELLED), väljavõtet statement (geomeetria esitatud veamudeli all: sõltumatud, võrdsed, nullkeskmisega Gaussi kaugusvead; mitte vastuvõtja tegeliku vea ennustus, millel on ka kallutused, mitmeteelevi ja otsenähtavuseta vead; mitte terviklikkuse piir) ja nõuannet: Nõuandev tarkvara, mitte tüübikinnitust omav navigatsiooniseade (IEC 61108, IEC 61162): laeva navigeerimise eest vastutab jätkuvalt operaator.

Tõendid#

Viis registri (ledger) rida (docs/VERIFICATION-MATRIX.md), nagu kavandimärkus neid piirab:

Rida Staatus Sõltumatu etalon
Asimuudist sõltuv skyline'i mask: nähtav hulk, asimuut ja tõusunurk ning DOP maski all VALIDATED Orekit 12,2 (TopocentricFrame vaatenurgad, ElevationMask) koos gnss_lib_py 1.0.4 (get_dop ja DOP maatriks), eelregistreeritud failis xval/orekit-skyline/PREREGISTRATION.md (commit e4b9d912) enne kummagi käivitamist: 1173 vaatenurka kuuel asukohal ja neljal epohhil, kuus tabelit, 142 nähtavat hulka; halvim kõrgusnurk 1.3e-13°, asimuut 2.3e-13°, mask 1.1e-12° versus 1e-9°; identsed nähtavad hulgad, ükski pole piiririba sees; DOP 3.3e-13 suhteline ja kofaktor 6.6e-13 maatriksi skaalast versus 1e-9. Ulatus: tabelmaskid, geodeetilised vaatenurgad, maskeeritud hulk ning selle ühiskella DOP ja kofaktor.
Tänavakanjoni, sektori ja maastiku taandamine tabeliks MODELLED käsitsi arvutatud väärtused; ülaltoodud võrdlus loeb nende tabeleid sisenditena ega kontrolli neid
Horisondijoone eelseaded MODELLED puudub: valitud, esitatud mõõtmed (kontrollitud ainult iseenda vastu)
Horisontaalne veaellips ja süsteemikohane kofaktor geomeetria kovariatsioonist VALIDATED numpy 2.5.4 linalg.inv ja linalg.eigh (standardne P2) 142 sisse kirjutatud nähtaval hulgal, ühine kell ja üks kell süsteemi kohta, eelregistreeritud failis xval/numpy-ellipse/PREREGISTRATION.md (commit 0bbeeaee): 270 juhtu, teljed 5.1e-13 suhteline, orientatsioon 5.3e-12°, kofaktor 1.0e-12 maatriksi skaalast, versus 1e-9 ja 1e-6°
Taevageomeetria funktsioonid MODELLED koostis: eelseade levitamine representatiivse taevani, Monte Carlo pilv (kontrollitud geomeetria vastu, mida see valimina võtab), pinnad

Jaotise [skyline] puudumist kontrollitakse bait baidi haaval väljundite 0.35.0 vastu, mis näitab tagasiühilduvust ega kinnita midagi. gnss_lib_py rakendab ainult ühte kõrgusnurga maski, seega on see siin DOP-i sõltumatu etalon, mitte maski sõltumatu etalon.

Mida horisondijoon ei modelleeri: difraktsioon seina serva kohal, peegeldused ja otsenähtavuseta signaalid, mida tegelik vastuvõtja võib siiski jälgida (need jäetakse välja, mitte ei halvendata), osaline läbipaistvus (võrkkraana on kogu oma sektoris läbipaistmatu), antud punktidest kaugemal olev maastik ning Maa kõverus kanjoni- ja sektorivormides.