Brandýs-Boleslav
Začni psát pro vyhledávání...

Kalibrace dopravního modelu Brandýs n. L. – Stará Boleslav

Kalibrace dopravního modelu Brandýs n. L. – Stará Boleslav

Datum: 2026-08-01 (revize f) Zdrojová data: data/podklady_rsd.json, mapování: data/kalibrace.json, váhy poptávky: data/zony.json Poslední ověřovací běh: node tools/test_model.mjs

Tento dokument popisuje, jak je makroskopický model (MSA + BPR, špičková hodina, viz README.md) porovnáván se sčítáním dopravy ŘSD, jak vznikly kalibrační cíle, jak byla struktura poptávky nezávisle ověřena proti datům ČSÚ o dojížďce a jaký je aktuální stav shody. Neobsahuje popis samotného modelu (síť, poptávka, přidělení) – ten je v README.md a ve zdrojovém kódu js/graf.js, js/poptavka.js, js/assignment.js. Průběh a zdůvodnění jednotlivých kol kalibrace jsou v docs/denik-vyvoje.md.

1. Zdroje

  • CSD 2025 – předběžné výsledky. Celostátní sčítání dopravy 2025, soubor V2_CSD_2025.xlsx zveřejněný na rsd.cz. Předběžná data – ŘSD je bude v průběhu roku ještě revidovat. Interaktivní mapa profilů: https://scitani.rsd.cz/
  • CSD 2020 – finální výsledky. Poslední kompletní celostátní sčítání, https://scitani.rsd.cz/, resp. https://www.rsd.cz/ (sekce Celostátní sčítání dopravy). Používá se jako doplněk tam, kde CSD 2025 hodinový údaj neuvádí, a jako křížová kontrola věrohodnosti (viz bod 8).
  • ČSÚ SLDB 2021 a počty obyvatel. Použity ke kontrole vnitřní stavby poptávky (ne k mapování na sčítací profily) – zdroje a koeficienty jsou v bodě 7.

Staženo 23 sčítacích profilů ŘSD v okolí dvojměstí (D10, II/610, II/101, II/245, II/331, II/331H, II/244) – kompletní seznam s oběma ročníky je v data/podklady_rsd.json.

2. Odvození cílové hodnoty [voz/h]

Model počítá jedinou špičkovou hodinu, takže kalibračním cílem musí být špičková hodinová intenzita, ne denní (RPDI).

Pořadí zdrojů pro cilVozH u každého profilu:

  1. csd2025.spickova_sv_vozh (předběžné CSD 2025, součet obou směrů) – primární zdroj, použit u 20 z 23 profilů.
  2. csd2020.i50_sv_vozh (padesátirázová hodinová intenzita z finálního CSD 2020) – náhrada tam, kde CSD 2025 hodinový údaj chybí (null). Týká se výhradně tří profilů D10 (1-0516, 1-0517, 1-0518) – u dálnice ŘSD v předběžných datech 2025 hodinovou intenzitu zatím nepublikovalo.
  3. Přepočet rpdi_sv × 0,09 – záložní koeficient pro případ, že chybí obě hodinové hodnoty. Koeficient je uložen v data/kalibrace.json (koefSpickyZRpdi) a je změnitelný. U D10 by dal cca 4521 voz/h (profil 1-0516) – k použití nedošlo, protože CSD 2020 i50 byl k dispozici a je vykazatelnější než paušální koeficient; hodnota z přepočtu je jen poznamenaná v poznamka pro srovnání.

Zdroj cíle je u každého profilu zaznamenán v poli zdrojCile (data/kalibrace.json). Volitelné pole cilSmer navíc u šesti profilů nese směrový poměr ze sčítání (viz bod 7) – slouží jen k informativní kontrole, neovlivňuje cilVozH.

3. Mapování profilů na síť

Síť (data/sit.geojson) má stabilní klíč properties.osm ve tvaru "<OSM way id>#<id uzlu prvního bodu segmentu>". Každý profil ŘSD má v data/kalibrace.json pole osm s jedním nebo více takovými klíči.

Dvě zvláštnosti mapování:

  • D10 = dva jednosměrné featury. V síti je dálnice reprezentována jako dva samostatné jednosměrné useky (ow=1), takže objem jednoho featu odpovídá jednomu jízdnímu pásu, kdežto ŘSD udává součet obou směrů. Proto mají profily 1-0516/1-0517/1-0518 v poli osm pole se dvěma klíči (oba pásy ve stejném staničení) a model jejich objemy sčítá.
  • Poloha profilů ověřena topologicky. Popisky ŘSD („zaús.101“, „vyús.245“ apod.) samy o sobě neurčují přesnou hranu v síti. Průběh tahů byl rekonstruován podle názvů ulic a ověřen bilancí intenzit v uzlech, např. okružní křižovatka Pražská × Průmyslová (858 + 1021 = 1098 + …), křižovatka Královická × Zápská (946 = 574 + 435) a součet 1021 + 435 = 1456 na profilu 1-2236. Při první verzi mapování (viz revizeMapovani v data/kalibrace.json) byl exit 14 D10 mylně umístěn u křižovatky s III/24424 (14,754 E / 50,245 N), zatímco skutečná mimoúrovňová křižovatka D10 × II/610 je na souběhu silnic 610;331 severovýchodně od Staré Boleslavi (14,6940 E / 50,2045 N). Tato a navazující opravy se týkaly profilů 1-0512, 1-0517, 1-0521, 1-0522, 1-0523, 1-2136, 1-2221, 1-2222, 1-2233, 1-2330, 1-2331 a 1-2528 – podrobnosti a souřadnice u každého profilu jsou v poli poznamka v data/kalibrace.json.

Jistota mapování je u každého profilu klasifikovaná (jistotaMapovani: vysoká / střední / nízká). Nízká jistota je u dvou profilů II/244 (1-2129, 1-2136), které leží na severozápadním okraji modelované sítě, kde model nemá podrobné zóny.

4. Výsledky – GEH tabulka

GEH statistika: GEH = sqrt(2·(M − C)² / (M + C)), kde M = model, C = cíl [voz/h]. Běžně používaná prahová hodnota v dopravním modelování je GEH < 5 (přijatelná shoda pro jeden úsek).

Tabulka je výstup posledního běhu node tools/test_model.mjs (základní scénář bez uzavírek):

Úsek ŘSD Profil Cíl [voz/h] Model [voz/h] Odchylka GEH < 5
1-0516 D10: Praha → exit 10 (× II/101) 5224 5235 +0,2 % 0,15 OK
1-0517 D10: exit 10 → exit 14 (× II/610) 4928 4923 −0,1 % 0,07 OK
1-0518 D10: exit 14 → Ml. Boleslav 4177 4177 −0,0 % 0,01 OK
1-0510 II/610: hr. Prahy (Zápy) → začátek Brandýsa 858 957 +11,6 % 3,29 OK
1-0515 II/610: začátek Brandýsa → křiž. s II/101 858 869 +1,3 % 0,38 OK
1-0511 II/610: souběh s II/101 (Pražská) 1098 977 −11,0 % 3,75 OK
1-0512 II/610: průtah centrem (Masarykovo nám.) 1406 1358 −3,4 % 1,29 OK
1-0521 II/610: MOST přes Labe 1394 1482 +6,3 % 2,32 OK
1-0523 II/610: St. Boleslav, Komenského → zaús. 331H 1171 1279 +9,2 % 3,09 OK
1-0522 II/610: zaús. 331H → exit 14 D10 1013 916 −9,5 % 3,11 OK
1-0528 II/610: za D10 → Ml. Boleslav 384 338 −11,9 % 2,40 OK
1-2229 II/101: od Kostelce → začátek Brandýsa 613 653 +6,5 % 1,58 OK
1-2221 II/101: začátek Brandýsa → vyús. 10159 741 654 −11,7 % 3,28 OK
1-2232 II/101: průtah západ (Kostelecká) 1439 1358 −5,6 % 2,16 OK
1-2233 II/101: od II/610 → zaús. Zápská 1021 930 −8,9 % 2,92 OK
1-2236 II/101: Zápská → exit 10 D10 1456 1559 +7,1 % 2,65 OK
1-2222 II/245: od II/610 → vyús. Zápská 946 989 +4,5 % 1,38 OK
1-2331 II/245: vyús. Zápská → konec Brandýsa 574 520 −9,4 % 2,31 OK
1-2330 II/245: Brandýs → Lázně Toušeň → Čelákovice 742 697 −6,1 % 1,68 OK
1-3012 II/331H: St. Boleslav → zaús. II/610 254 254 +0,1 % 0,01 OK
1-3218 II/331: od II/610 → Lysá n. L. 383 436 +13,8 % 2,61 OK
1-2129 II/244: od Mělníka → Kostelec n. L. 618 704 +14,0 % 3,35 OK
1-2136 II/244: Kostelec n. L. → x II/331 727 704 −3,1 % 0,85 OK

Souhrn: GEH < 5 u 23 / 23 profilů (nejhorší 3,75), všech 23 uvnitř ±15 % (největší odchylka 14,0 %).

5. Vyhodnocení kritéria

Kritérium fáze 1 (viz PLAN.md): GEH < 5 na ≥ 2/3 profilů (tj. ≥ 16/23) a klíčové úseky (most, průtahy městem) do ±20 % vůči měření.

  • GEH < 5 na 23/23 profilů → kritérium splněno s rezervou (požadavek byl ≥ 16/23).
  • Klíčové úseky pro posouzení věrohodnosti scénářů uzavírek jsou uvnitř ±10 %, tedy hluboko pod požadovaných ±20 %:
    • most Maxe Švabinského (1-0521): +6,3 %
    • II/610 průtah centrem (1-0512): −3,4 %
    • II/610 průtah Starou Boleslaví (1-0523): +9,2 %
    • II/101 průtah západ (1-2232): −5,6 %

Cesta k tomuto stavu měla tři kroky a v každém se zlepšení vzalo odjinud:

  1. Oprava mapování profilů na síť (bod 3). Před laděním bylo splněno jen 3 z 23 profilů – hlavní zdroj chyby nebylo rozložení poptávky, ale chybné přiřazení sčítacích profilů na konkrétní hrany sítě (záměna polohy exitů a průtahů centrem).
  2. Strukturální oprava poptávky (bod 7) po kontrole proti ČSÚ – oddělená atrakční váha wA a doplnění průjezdných vazeb mezi branami. Most a průtah Starou Boleslaví se zlepšily nejvýrazněji (most z 773 na 1390 voz/h proti cíli 1394, průtah Starou Boleslaví z 579 na 1189 proti cíli 1171).
  3. Křižovatkové penalizace a doladění vah (bod 6). Poslední tři kola odstranila chvost odlehlých profilů: nejhorší GEH klesl z 8,33 (revize b) přes 4,27 (revize e) na 3,75 a počet profilů uvnitř ±15 % stoupl na všech 23.

Cena posledního kola je zaznamenaná v data/zony.json (pole kalibrace): průměrný GEH stoupl z 1,72 na 1,94 a bilance vjezd − výjezd z +228 na +309 voz/h. Je to vědomá výměna – rovnoměrnější chyba bez odlehlých profilů proti nižšímu průměru s chvostem.

6. Křižovatkové penalizace a dělba mezi paralelními trasami

V revizích b–d ležely mimo GEH < 5 tři profily na jižním přístupu k městu (1-2233 Průmyslová −24 %, 1-2222 Královická +35 %, 1-2236 Zápská +14 %). Model tehdy vedl dopravu od exitu 10 do centra kratší trasou Zápská → Královická → Komenského náměstí, zatímco silničně značená trasa II/101 vede jižně obchvatem přes Průmyslovou. Součet obou paralelních úseků model trefoval téměř přesně (+4,0 %), takže nešlo o chybu v poptávce mezi zónami, ale o dělbu mezi dvěma trasami – tedy o odpor sítě.

Příčinou bylo, že model neznal žádné zdržení na křižovatkách: BPR funkce zohledňuje jen zatížení hrany vůči její kapacitě. Ve fázi 3 se ukázalo, že tentýž nedostatek podhodnocuje absolutní doby jízdy zhruba dvojnásobně – model jezdil přes náměstí průměrem 48–50 km/h. Zavedena byla proto paušální penalizace za průjezd křižovatkou (uzel stupně ≥ 3), odstupňovaná podle třídy komunikace; parametry jsou v KALIBRACE_KRIZOVATKY (js/graf.js), dnes 4 s na dálnici a hlavních tazích až 11 s na obytných ulicích. Penalizace vstupuje do volného času hrany, takže se konzistentně propisuje do gravitačního modelu, přidělení i panelu typických cest. Po jejím zavedení a následné rekalibraci vah dělba mezi Zápskou/Královickou a Průmyslovou sedí (1-2233 −8,9 %, 1-2222 +4,5 %, 1-2236 +7,1 %) a městské průměrné rychlosti vycházejí 25–33 km/h.

Odvození hodnot penalizací i důkaz, proč je nelze zvýšit, jsou v komentáři u KALIBRACE_KRIZOVATKY v js/graf.js – viz také bod 8, „Doby jízdy”.

Zbytková nejistota u 1-3012 (II/331H). Profil je dnes trefen přesně (GEH 0,01), ale zdrojová data zůstávají nejistá: předběžné CSD 2025 zde uvádí 254 voz/h, zatímco finální CSD 2020 uvádí 893 voz/h. Ověřit půjde až po zveřejnění finálních dat CSD 2025.

7. Strukturální validace proti ČSÚ (SLDB 2021)

GEH kalibrace v bodech 4–6 ověřuje jen to, že model trefuje naměřené objemy na hlavních tazích. To nezaručuje, že je správná i vnitřní stavba poptávky (kdo jede odkud kam) – různé OD matice mohou dát na sčítacích profilech podobný součet. Proto byla poptávka (js/poptavka.js, data/zony.json) navíc nezávisle porovnána s daty ČSÚ o dojížďce (SLDB 2021) a s počty obyvatel. Kontrola odhalila dvě strukturální chyby.

Co kontrola našla

A. Jednotková nekonzistence atrakce bran. Gravitační model dělí produkci zóny mezi cíle podle jejich atraktivity. U běžné zóny je váha w v jednotkách „vazby“ (produkce = w × tripRate [voz/h]); u brány ale w odpovídá rovnou naměřené špičkové intenzitě vjezdu, tedy je už v jednotkách voz/h. Model obě hodnoty dřív dosazoval do stejného gravitačního vzorce bez přepočtu, takže brána jako cíl vycházela systematicky podhodnocená 1/tripRate-krát – s tehdejším tripRate 0,0755 šlo o cca 13×, s dnešním 0,137 (viz níže) by šlo o cca 7,3×. Efekt: poptávka vyprodukovaná ve městě neměla kudy „odtéct“ ven, a spolu s podhodnoceným tripRate to vedlo k fyzikálně nemožné bilanci – v prvním kole ladění model počítal jen 1442 voz/h vlastní produkce města proti 2722 voz/h vjezdů, tedy přebytek +1865 voz/h (do města nemůže za hodinu přijet o tisíce aut víc, než z něj odjede).

B. Obrácený směr Praha. SLDB 2021 popisuje dojížďku do zaměstnání – ranní špičku, kde dominuje odliv Brandýs → Praha (3886 osob/den, 4. nejsilnější vyjížďkový proud v ČR). Sčítací profily ŘSD, na které je model kalibrován, ale měří jinou (odpolední) špičkovou hodinu, kde na týchž komunikacích dominuje opačný směr – návrat Praha → Brandýs. Přímé srovnání směrového poměru ČSÚ (ranní odliv) se směrovým poměrem modelu (odpolední příliv) by proto vypadalo, jako by měl model směr „obrácený“, ačkoliv jde jen o dvě různé denní doby téhož dojížďkového vzorce. Riziko se potvrdilo prakticky: vynucení ČSÚ poměru cca 63:37 na pražskou vazbu model zhoršilo – profily 1-0510 a 1-0515 (II/610 od hranice Prahy) vyskočily o víc než 20 % a počet profilů s GEH < 5 znatelně klesl (test proveden v revizi b, kdy jich vyhovovalo 20 z 23, a poměr klesl na 17; zaznamenáno v data/zony.json, pole znameNapeti).

Jak bylo opraveno

  • wA. Do data/zony.json přibylo u zón i bran explicitní pole wA (atrakční váha vždy v jednotkách zóny). V js/poptavka.js je spočtena funkcí vahaAtrakce(): použije wA, je-li zadané, jinak u brány w / tripRate, jinak w. Měřítko wA je zvolené tak, aby součet wA zón města (21 235) zhruba odpovídal součtu jejich w (21 552) – atrakce města jako celku je tak v rovnováze s jeho produkcí.
  • Vazby (průjezdná doprava mezi branami). Kordón města podle cílů ŘSD nese cca 4770 voz/h obousměrně, ale město samo vyprodukuje jen cca 1741 výjezdů – rozdíl musí oblastí projet, gravitačně to vzniknout nemůže, protože gravitační model bránu s bránou nikdy nespojí přímo. Do data/zony.json (pole pruchozi) byly doplněny vazby brána→brána, každá ověřená trasováním po zatížené síti (že skutečně protíná kalibrační profily). Objemy platné pro revizi f; směry jsou záměrně nesouměrné, protože špičková hodina ŘSD je odpolední:
    • g-pha-d10 ↔ g-mb-d10 (2037/1510 voz/h) – tranzit Praha ↔ Mladá Boleslav po D10, největší položka; sytí profily 1-0516 až 1-0518 a města se nedotkne.
    • g-mb-d10 ↔ g-ner (175/44 voz/h) – Mladoboleslavsko ↔ Neratovicko přes Brandýs a most; protíná profily 1-0521, 1-0522, 1-0523, 1-2232 – hlavní důvod, proč most a průtah Starou Boleslaví sedí.
    • g-pha-610 ↔ g-mel (195/24) a g-pha-610 ↔ g-mb-d10 (61/15) – z Vinoře na sever a na D10 přes Průmyslovou a Zápskou; protíná 1-0510, 1-0515, 1-2233, 1-2236.
    • g-mel ↔ g-ner (84/145 voz/h) – Mělník ↔ Neratovice po levém břehu Labe, trasa se Brandýsa nedotkne, kalibruje jen 1-2129 a 1-2136.
    • g-pha-d10 ↔ g-d11 (180/190) a g-pha-d10 ↔ g-lysa (94/15) – okrajové vazby na jihovýchodě oblasti.

    Naopak vazba g-ner ↔ g-pha-hp (80/80), uvažovaná dřív, byla vypuštěna – model ji vede mimo všechny sčítací profily, takže pro ni nejsou žádná data. Aktuální seznam je vždy v poli pruchozi a jeho zdůvodnění v poli pruchozi_zduvodneni (data/zony.json).

  • Směrové cíle (cilSmer). Místo aby se na kalibraci vynucoval ČSÚ poměr (který popisuje jinou denní dobu), přibylo do data/kalibrace.json u šesti profilů pole cilSmer se směrovým poměrem přímo ze sčítání ŘSD (csd2025.pomer_smeru) – vyhodnocuje se informativně v tools/test_model.mjs (sekce „Směrový poměr“) a kontroluje, že model nerozprostírá výrazně přílivový/odlivový tah na plochých 50:50, přestože trefí součet obou směrů. Data ČSÚ se v modelu nadále používají jen pro celkovou SÍLU pražské vazby, ne pro její směr: z města do tří pražských bran míří 1035 voz/h, což řádově odpovídá přepočtu ČSÚ (viz koeficienty níže) na cca 560 voz/h jen za dojížďku do zaměstnání – model dává víc, protože zahrnuje i cesty jiného účelu.

Finální čísla (běh node tools/test_model.mjs)

GEH tabulka je v bodě 4 (23/23 pod GEH 5). Doplňkové kontroly z téhož běhu:

Struktura poptávky (výstup sekce „STRUKTURA poptávky“):

Veličina Hodnota Cíl / poznámka
Produkce města celkem 2953 voz/h  
– z toho do pražských bran 1035 voz/h (35,1 %) cíl 35–40 %
– z toho vnitroměstské cesty 1212 voz/h (41,0 %) cíl 40–45 %
Výjezd z města (do okolí + brány) 1741 voz/h  
Vjezd do města (z okolí + bran) 2050 voz/h  
Bilance města (vjezd − výjezd) +309 voz/h cíl: blízko nule (dřív +1865)
Průjezdná doprava mezi branami 4769 voz/h  

Oba podíly odvozené z ČSÚ jsou po revizi f uvnitř očekávaných pásem (35,1 % do Prahy proti pásmu 35–40 %, 41,0 % vnitroměstských cest proti 40–45 %) – v revizi b ležely oba těsně pod nimi. Bilance +309 voz/h je zbytková nepřesnost dělení vjezd/výjezd mezi skutečnou produkcí a průjezdem u okrajových bran, řádově menší než původní fyzikálně nemožný přebytek +1865 voz/h.

Směrový poměr (výstup sekce „Směrový poměr“, cíl = ŘSD pomer_smeru):

Profil Směr 1 Cíl Model Rozdíl [p.b.]
D10: Praha → exit 10 Praha → exit 10 (po směru na Ml. Boleslav) 64:36 49:51 −14,8
D10: exit 10 → exit 14 exit 10 → exit 14 (po směru na Ml. Boleslav) 63:37 59:41 −4,0
D10: exit 14 → Ml. Boleslav exit 14 → Ml. Boleslav 60:40 58:42 −2,4
II/610: hranice Prahy → Brandýs od hranice Prahy do Brandýsa 72:28 63:37 −9,2
II/610: začátek Brandýsa → křiž. s II/101 od hranice Prahy do Brandýsa 72:28 63:37 −9,2
II/101: Zápská → exit 10 D10 ze Zápské k exitu 10 D10 56:44 56:44 +0,5

Model trefí součet obou směrů (viz GEH tabulka), ale u pěti ze šesti profilů je jeho rozložení mezi směry plošší, než co udává ŘSD (rozdíly jsou záporné, tj. model dominantní směr podvažuje o 2–15 procentních bodů). Nejhorší je první úsek D10 od Prahy, kde model dává prakticky vyrovnaný poměr 49:51 proti měřeným 64:36; naopak II/101 u exitu 10 sedí přesně. Kontrola je čistě informativní a do GEH výsledku nevstupuje – je to potvrzený, dosud neopravený zbytkový rozdíl (viz bod 8, „Poměr směrů“).

Zdroje ČSÚ

  • SLDB 2021 – dojížďka do zaměstnání a škol, obec Brandýs nad Labem-Stará Boleslav (kód obce 538094, okres Praha-východ, CZ0209). Veřejná databáze ČSÚ: https://vdb.czso.cz (sekce Sčítání lidu, domů a bytů → Dojížďka do zaměstnání a škol). Použité proudy:
    • Brandýs n. L.-St. Boleslav → Praha: 3886 osob/den (4. nejsilnější vyjížďkový proud v ČR).
    • Čelákovice → Brandýs: 438 osob/den.
    • Kostelec n. L. → Brandýs: 213 osob/den.
    • Brandýs → Zápy: 156 osob/den.
  • Počet obyvatel v obcích ČR, k 1. 1. 2025. ČSÚ, https://www.czso.cz (sekce Počet obyvatel v obcích). Brandýs n. L.-St. Boleslav celkem 20 896 (z toho části Brandýs n. L. 12 992, Stará Boleslav 5899 + Popovice 138); Čelákovice 12 474; Kostelec n. L. 4462; Nehvizdy 4404; Zeleneč cca 3200; Lázně Toušeň cca 1500; Zápy 947; Dřevčice 756.

Převodní koeficienty

  • tripRate = 0,137 voz/h na obyvatele ve špičkové hodině, odvozeno jako 2,8 cesty/os/den (obvyklý řád denní mobility) × 0,10 (podíl špičkové hodiny na denním objemu cest) × 0,49 (podíl cest realizovaných jako řidič osobního auta) ≈ 0,137. Dřívější hodnota 0,0755 dávala městu s 21 tisíci obyvatel méně cest, než kolik jich ŘSD naměří na jediném průtahu – jedna ze dvou příčin nálezu A.
  • Přepočet dojížďkového proudu ČSÚ na voz/h (jen orientační křížová kontrola síly vazby, nevstupuje přímo do kalibrace): osob/den × 0,45 (podíl řidič osobního auta u dojížďky do zaměstnání) × 0,32 (podíl špičkové hodiny na dojížďkovém dni – užší okno než celodenní tripRate, protože dojížďka se soustředí do 1–2 hodin). Pro 3886 osob/den do Prahy dává cca 560 voz/h za dojížďku samotnou; model počítá 1035 voz/h včetně cest jiného účelu.
  • koefSpickyZRpdi = 0,09 – beze změny, týká se přepočtu RPDI ŘSD (bod 2), s daty ČSÚ nesouvisí.

7b. Doby jízdy referenčních cest (měřená pásma, TomTom)

Pásma dob jízdy pro panel „Typické cesty” byla původně odhadnutá z terénu bez doložené provenience. Dne 1. 8. 2026 byla nahrazena měřenou referencí: TomTom Routing API (calculateRoute, computeTravelTimeFor=all) vrací pro zadaný den a čas odjezdu volný tok i historický profil provozu postavený na dlouhodobých měřeních. Dotazováno pro úterý 7:30 a 17:00; pásmo = [0,9 × volný tok; 1,25 × horší špičkový historický čas]. Měření provádí skript tools/zmer_pasma.mjs, výsledky včetně surových hodnot jsou v data/mista.json (pole pasma, pasmaProvenience); test tools/test_model.mjs je od té doby vynucuje (pád testu při vybočení).

dvojice délka (TomTom) volný tok [min] historicky 7:30 historicky 17:00 pásmo [min] model
sb-namesti → br-namesti 1,7 km 2,5 4,0 3,3 2,2–5,0 3,1 ✓
vrabi → poliklinika 1,9 km 5,4 7,8 7,9 4,8–9,9 4,2 ⚠
sb-namesti → d10-exit14 2,3 km 3,0 3,5 3,5 2,7–4,4 3,1 ✓
br-namesti → d10-exit10 2,6 km 4,0 5,5 5,0 3,6–6,9 4,7 ✓
br-zapad → zapska 2,9 km 6,1 7,3 6,8 5,5–9,1 5,5 ✓
zamek → sb-namesti 1,4 km 2,7 2,9 3,0 2,4–3,7 2,3 ⚠

Známé odchylky (⚠, dokumentované v mista.json, test je hlásí jako WARN): u dvojic vrabi→poliklinika a zamek→sb-namesti volí TomTom jinou (delší) trasu než model, takže srovnání není trasa-na-trasu; u koridoru Brázdimské navíc TomTom měří reálné rychlosti pod legálním limitem (volný tok 21 km/h). Rozdíly (−0,6 min a −0,1 min pod dolní mezí) nejdou odstranit laděním parametrů, aniž by se rozbila shoda s profily ŘSD — vědomě proto zůstávají přiznané místo ohnuté. Další krok (backlog): porovnání geometrie tras a případná korekce rychlostí z vlastního sběru TomTom flow dat (doprava/worker/).

8. Omezení

  • Předběžnost dat CSD 2025. Většina cílů (20/23) vychází z nezrevidovaných dat. ŘSD sčítání v průběhu roku doplňuje a opravuje; hodnoty se mohou po finalizaci posunout (viz případ 1-3012 v bodě 6, kde je rozdíl mezi předběžnými a finálními daty přes trojnásobek).
  • Jednohodinový model. Model počítá jednu (ranní/odpolední) špičkovou hodinu s ustáleným přidělením (MSA). Nezachycuje vývoj kongesce v čase, nasycení křižovatek na začátku/konci špičky ani rozdíl ranní/odpolední špičky (cíle ŘSD jsou souhrnná „špičková hodina”, ne konkrétní vyjmenovaná hodina dne).
  • Boční ulice bez měření. Kalibrace pokrývá jen úseky se sčítacím profilem ŘSD – hlavní silniční tahy (D10, II/610, II/101, II/245, II/331, II/244). Obslužné a místní ulice ve městě nemají žádné nezávislé měření a jejich objemy z modelu jsou tedy orientační.
  • Křižovatkové odpory jen paušálně. Model od fáze 3 zdržení na křižovatkách zná (bod 6), ale jako paušál podle třídy komunikace, ne podle skutečného uspořádání konkrétní křižovatky: nerozlišuje odbočení vlevo od jízdy přímo, neumí signální plány semaforů ani kapacitu okružních křižovatek a nezná zdržení závislé na intenzitě příčného proudu. Hodnoty penalizací jsou kvalifikovaný odhad doladěný proti sčítání ŘSD, ne měření.
  • Doby jízdy. Absolutní doby jízdy nemají doloženou referenci. Pásma v tools/test_model.mjs jsou odhad z terénu, tři z pěti dvojic do nich nespadají a test je proto vypisuje jen jako INFO (naostro PRISNE_CASY=1). Komentář u KALIBRACE_KRIZOVATKY v js/graf.js navíc spojitým důkazem ukazuje, že tato pásma a shodu se sčítáním ŘSD nelze splnit současně při zachované hierarchii tříd – pásma by musela předpokládat, že obytná ulice je na křižovatce levnější než hlavní tah. Model proto drží měřené profily ŘSD a odhadnutá pásma nikoli. Relativní změny (o kolik uzavírka cestu prodlouží) jsou tím dotčeny méně než absolutní časy. Nahradit odhad měřením umožní data z Routing API sbíraná Workerem v doprava/worker/.
  • Vynucené meze jsou volnější než aktuální stav. tools/test_model.mjs od 1. 8. 2026 shodí exit kód, když kalibrace klesne pod přejímací mez: GEH < 5 na méně než 20 z 23 profilů, podíl pražských bran mimo 30–45 %, vnitroměstské cesty mimo 35–50 % nebo bilance města nad 500 voz/h. Meze jsou záměrně volnější než dnešní hodnoty (23/23, 35,1 %, 41,0 %, +309 voz/h), aby model přežil aktualizaci dat ŘSD nebo regeneraci sítě – zhoršení uvnitř tolerance tedy test nezachytí a výsledky je pořád nutné číst. Směrový poměr zůstává čistě informativní a pásma dob jízdy se počítají do exit kódu jen s PRISNE_CASY=1.
  • Okraj modelované oblasti. Profily II/244 (1-2129, 1-2136) leží na severozápadním okraji sítě, kde model nemá podrobné zóny poptávky; shoda je zde spíš náhodná než výsledek kalibrace.
  • Poměr směrů den/špička. Cíle jsou součet obou směrů za špičkovou hodinu a i po zavedení informativní kontroly cilSmer (bod 7) model směrovou nerovnováhu systematicky podvažuje o cca 2–12 procentních bodů – rozdíl je zdokumentovaný, ale neopravený, protože oprava by vyžadovala směrově rozlišenou poptávku (dnes je OD matice u zón symetrická) a zasahovala by do kódu, ne jen do parametrů. Pro scénáře uzavírek jednotlivých pruhů (ne celého úseku) by to bylo potřeba doplnit.

9. Reprodukce

node doprava/tools/test_model.mjs

Kalibrační sekce (GEH tabulka, směrový poměr, struktura poptávky) běží automaticky, pokud existuje data/kalibrace.json; bez něj se přeskočí a ostatní testy běží beze změny. Úprava cílů/mapování/směrových cílů: data/kalibrace.json. Úprava vah poptávky (zóny, brány, wA, pruchozi, tripRate, tau): data/zony.json (viz README.md, sekce „Ladění modelu”).