Clicky

Přejít k obsahu
Piráti a Nezávislí Brandýs nad Labem-Stará Boleslav
AktualityLávka a varianty mostu

12/2022 · aktualizace k 5. 9. 2026

Most Generála Lišky

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

Úplný text podkladu v čitelné webové podobě.

Na této stránce
  1. 1. Zdroje
  2. 2. Odvození cílové hodnoty [voz/h]
  3. 3. Mapování profilů na síť
  4. 4. Výsledky – GEH tabulka
  5. 5. Vyhodnocení kritéria
  6. 6. Křižovatkové penalizace a dělba mezi paralelními trasami
  7. 7. Strukturální validace proti ČSÚ (SLDB 2021)
  8. 7b. Doby jízdy referenčních cest (měřená pásma, TomTom)
  9. 7c. Křížová kontrola proti geolokačním datům (Kam dojíždíme, 2026-08-12)
  10. 8. Omezení
  11. 9. Výhledové stavby — porovnání s modelem IPR/TSK (2022)
  12. 10. Reprodukce
  13. 11. Uzlový model křižovatek (od 11. 8. 2026)
  14. 12. Směrově rozlišené špičky (od 11. 8. 2026)
  15. 13. Kvazidynamické přidělení — čas jako rozměr (od 11. 8. 2026)
  16. 14. Značky přednosti navázané na rameno (od 11. 8. 2026)

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/).

7c. Křížová kontrola proti geolokačním datům (Kam dojíždíme, 2026-08-12)

Sekce 7 porovnala poptávku se SLDB 2021. Ministerstvo vnitra mezitím zveřejnilo v projektu „Kam dojíždíme" (kamdojizdime.cz) geolokační data všech tří mobilních operátorů, sběr 28 dní v zimě 2022/2023. Proti SLDB mají dvě výhody: zachycují i jiné cesty než do zaměstnání a jsou jemnější — pro Brandýs udávají vazby na 769 obcí místo hrstky nejsilnějších proudů.

Kontrolu provádí tools/validace_dojizdka.mjs nad data/dojizdka.json a data/zony.json.

Co se smí porovnávat

Jen relativní podíly směrů, nikoli absolutní čísla: model počítá vozidla za špičkovou hodinu, dojížďka osoby za čtyři týdny, a mezi tím stojí neznámá obsazenost vozidla i podíl veřejné dopravy.

Srovnává se wA (atrakční váha v jednotkách zón), ne w. U brány je w kalibrovaný vjezd do sítě, ze kterého je průjezdná doprava vyvedena do pole pruchozi — u Mladé Boleslavi je w nízké právě proto, že doprava oblastí jen projíždí (nález H).

Past, do které se snadno spadne: Čelákovice, Lázně Toušeň, Zápy a Dřevčice jsou v modelu zóny uvnitř oblasti, ne obce za branou. Zařadit je pod bránu g-lysa je hrubá chyba (s Brandýsem je spojuje most přes Labe, ne II/331) a zkreslí podíly o jednotky procentních bodů. Skript proto míchá zóny i brány a hlídá, že žádná obec není ve dvou skupinách.

Výsledek

směr model wA podíl dojížďka podíl rozdíl
Praha 17 576 51,8 % 18 009 48,6 % +3,2 b.
Mělnicko a Neratovicko 5 060 14,9 % 7 413 20,0 % −5,1 b.
Čelákovicko (uvnitř oblasti) 4 675 13,8 % 5 611 15,1 % −1,4 b.
Mladoboleslavsko 4 327 12,7 % 2 168 5,9 % +6,9 b.
Lysá a Nymbursko 2 076 6,1 % 1 437 3,9 % +2,2 b.
Jirny a Úvaly 229 0,7 % 2 421 6,5 % −5,9 b.

Tři nejsilnější směry sedí v pořadí i řádu podílu. To je nezávislé potvrzení, že vnitřní stavba poptávky odpovídá skutečným vazbám města — model tedy nestojí jen na sčítání ŘSD.

Nález I: brána g-jirny je podhodnocená

Rozdíl u Jiren a Úval není šum. Brána je podle vlastní poznámky v zony.json „okrajová brána na jihu; leží mimo sčítací profily, držena nízko" — kalibrace ji nemá čím ověřit, protože tam ŘSD neměří. Geolokační data ale ukazují, že za ní leží podstatné vazby: Jenštejn 512, Zeleneč 458, Nehvizdy 359, Jirny 265, Svémyslice 229 (obrat, tj. součet obou směrů).

Tohle je právě ta informace, kterou kalibrace na profilech poskytnout nemůže. Nález se zatím nepromítá do vah — zvýšení wA u g-jirny by změnilo dělbu dopravy na jihu města a muselo by projít celým kolem ladění s kontrolou, že se nerozbije GEH na 23 profilech. Je to kandidát na příští revizi kalibrace, ne úprava, která se dá udělat mimochodem.

Nález J: Mladoboleslavsko je nadhodnocené jen zdánlivě

Model dává směru 12,7 %, dojížďka 5,9 %. Vysvětlení je v poli pruchozi: mezi Prahou a Mladou Boleslaví po D10 projíždí oblastí 3 547 voz/h (2 037 + 1 510 v obou směrech). Tato doprava v modelu právem je, ale s Brandýsem nemá vazbu — a v dojížďce města se objevit nemůže. Rozdíl tedy potvrzuje, že model průjezd zachycuje, místo aby ho ukazoval jako chybu.

Omezení kontroly

Dojížďka nezahrnuje průjezdnou ani nákladní dopravu, nerozlišuje auto od vlaku (u Lysé a Milovic je silné železniční spojení, takže část vazby se na silnici neprojeví) a je to jeden zimní snímek bez trendu. Slouží jako kontrola řádu a pořadí, kalibračním cílem zůstává sčítání ŘSD. Zařazení obcí na rozhraní dvou směrů je úsudek; 13 obcí se 4,2 % obratu zůstává mimo skupiny.

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. ~~Paušál podle třídy komunikace.~~ Od 11. 8. 2026 je nahradil uzlový model (bod 11): zdržení patří pohybu, počítá se z konfliktního proudu a zná přednost, semafory, okružní křižovatky i přejezdy. Zbylá omezení uzlového modelu (neznámé radicí pruhy, neznámé signální plány, jednopruhové vjezdy do okružek) jsou vypsaná v bodě 11.
  • Doby jízdy. Pásma jsou dnes změřená (TomTom, viz bod 7b) a vynucovaná; v uzlovém modelu do nich spadají 4 ze 6 dvojic a obě zbývající mají doloženou známou odchylku (delší trasa u TomTomu, ne jiná rychlost). Historicky, s paušální penalizací a odhadnutými pásmy, do nich nespadaly tři z pěti dvojic. 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. Výhledové stavby — porovnání s modelem IPR/TSK (2022)

Plánované stavby (data/stavby.geojson, viz docs/formaty.md a PLAN.md Fáze 6) nejsou kalibrované — pro budoucí síť neexistují měřená data. Jedinou referencí je oficiální model IPR Praha / TSK HMP („Prezentace vlivů zprovoznění staveb Pražského okruhu a regionálních přeložek…", srpen 2022, PTV VISUM, v repu assets/img/download/DIP SOKP 520_2022_compressed.pdf). Srovnání je záměrně jen kvalitativní (znaménka a řády): TSK udává celodenní intenzity (RPDI) pro horizont 2050 včetně růstu poptávky a kompletního Pražského okruhu, náš model počítá dnešní špičkovou hodinu (orientační převod: špička ≈ 8–10 % RPDI) a SOKP nemodeluje.

Jev Kartogram IPR/TSK 2050 [voz/den] Náš model [voz/h, špička] Shoda
Nová stopa přeložky II/610 +14 500 +830 (≈ +9 000/den) znaménko i řád ✓; nižší hodnota bez růstu poptávky a bez napojení na D0
Stará II/610 přes Dřevčice a Podolanku −3 900 až −4 200 −830 (≈ −9 000/den) znaménko ✓; náš pokles je relativně hlubší — koridor v naší síti nemá tolik mezilehlých zdrojů, TSK nechává na staré stopě víc obsluhy
Vjezd do Brandýsa od západu +5 400 (přeskupení vjezdů) přeskupení přes napojení obchvatu a III/0109 (+170 až +330) znaménko ✓
Obchvat II/101 (v TSK jen v předpokladech sítě 2030, bez rozdílového kartogramu) +1 100 na obchvatu; centrum Brandýsa (Masarykovo nám., Kostelecká, P. Jilemnického) −670 bez přímé reference; směr efektu odpovídá účelu stavby
SOKP 520 na Brandýsku poklesy na radiálách v řádu −1 000 až −2 600 nemodelováno (mimo síť a strukturu bran) čtenářům prezentujeme z oficiálních kartogramů

Známá omezení výhledových scénářů (nad rámec bodu 8): trasy jsou orientační (u II/101 návrh z OSM, u II/610 ručně digitalizovaná trasa podle situace stavby: severně od Podolanky, mezi Brázdimem a Popovicemi, s úrovňovým křížením III/0109), kapacity a rychlosti odvozené z kategorie S 9,5/80, nové mimoúrovňové křižovatky nemají křižovatkovou penalizaci (stupeň uzlu počítá jen dnešní síť), poptávka je záměrně držena na dnešní úrovni — model ukazuje ČISTOU redistribuci, ne indukovanou dopravu ani růst. Západní konec přeložky II/610 je posunut k bráně g-pha-610 (vstup poptávky od Prahy do sítě); reálná stavba začíná na MÚK Vinoř (D0).

10. 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").


11. Uzlový model křižovatek (od 11. 8. 2026)

Bod 6 a bod 8 popisují, proč byla paušální křižovatková penalizace slepá ulička: stála stejně na světelné křižovatce dvou silnic II. třídy jako na vjezdu do dvora, takže se hustota uzlů pletla s hustotou zdržení, a kalibraci na profily nešlo splnit současně s měřenými dobami jízdy. Model proto počítá zdržení v křižovatkách jinak — po jednotlivých POHYBECH (model/js/krizovatky.js).

Co se změnilo v logice

hranový režim (do 10. 8. 2026) uzlový režim (dnes)
nositel zdržení hrana (úsek) pohyb (vjezd → výjezd)
velikost zdržení paušál podle třídy projížděné komunikace funkce konfliktního proudu a kapacity pohybu
přednost nerozlišuje podle tříd komunikací a průběžnosti tahu
řízení nezná semafor, okružní křižovatka, přejezd, stopka (data/uzly.json)
kapacita jen úseku (BPR) úseku (BPR) i pohybu v uzlu
hledání cesty nad uzly nad pohyby (stavem je hrana, ne uzel)
vzdutí fronty nezná fronta delší než úsek omezí kapacitu odbočení do něj

Hranový režim zůstal v kódu zapnutelný (sestavGraf(fc) bez uzlovyModel, HRANOVY=1 node tools/test_model.mjs), aby šel rozdíl změřit: node tools/test_krizovatky.mjs postaví oba nad stejnou sítí i poptávkou a vypíše je vedle sebe.

Vzorce a jejich původ

  • Přednost v jízdě — teorie kritických mezer: c = v_k · e^(−v_k·t_c/3600) / (1 − e^(−v_k·t_f/3600)), kritické mezery t_c a následné odstupy t_f podle HCM 6 (TWSC): odbočení vlevo z hlavní 4,1/2,2 s, z vedlejší vpravo 6,2/3,3 s, přímo 6,5/4,0 s, vlevo 7,1/3,5 s.
  • Okružní křižovatka — HCM 6: c = 1130 · e^(−0,001·v_k) na pruh vjezdu. Konfliktní proud je jen doprava, která kruhem POKRAČUJE; vozidlo vyjíždějící na témže rameni mine konfliktní bod dřív a do konfliktu se nepočítá.
  • Semafor — Websterův návrh cyklu z kritických poměrů (C = (1,5·L + 5)/(1 − Y), ztrátový čas 4 s na fázi, cyklus 40–100 s), fáze se skládají hladovým barvením vjezdů podle konfliktů, zdržení Webster + přírůstkový člen.
  • Zdržení z fronty — HCM: d = 3600/c + 900·T·[(x−1) + √((x−1)² + (3600/c)·x/(450·T))].
  • Železniční přejezd — typová trať: 3 vlaky/h, závory 80 s, tedy 6,7 % hodiny zavřeno; střední zdržení náhodně přijíždějícího vozidla 5,7 s a kapacita snížená o týž podíl.
  • Které pohyby se kříží — geometricky, protínáním tětiv na obvodu křižovatky. Vjezdové rameno vstupuje na obvod o kousek proti směru hodinových ručiček od osy ramene, výjezdové o kousek po směru (pravostranný provoz), takže test „protínají se tětivy?" sám vyrobí správné konflikty pro libovolný tvar křižovatky: protisměrné přímé směry se nekříží, odbočení vlevo přes protisměr ano.

Parametry, které nejsou měřené

Dva parametry nejsou převzaté z normy, ale nastavené tak, aby seděla kalibrace. Jsou to jediné volné hodnoty uzlového modelu a je potřeba je číst jako takové:

  1. GEOMETRICKE_S.primo = 7 s — zdržení přímého směru v uzlu, násobené GEOMETRICKE_PRIMO_NASOBEK = [1; 0,75; 0,5; 0,35] podle toho, o kolik tříd je vedlejší větev slabší než hlavní tah. Není to čistá geometrie: model jede po volných rychlostech z OSM (v obci 50 km/h), zatímco TomTom měří i ve volném provozu v centru 21–30 km/h. Rozdíl dělá to, co v síti není — přechody, parkovací manévry, zastávky, zúžení — a tenhle člen to nese. Mřížka přes hodnoty 4–8 s a čtyři varianty násobku (výpis v deníku vývoje) ukazuje, že v pásmu 6–8 s drží kalibrace 22–23 z 23 profilů, mimo něj se rychle rozpadá.
  2. OBDOBI_H = 0,5 h — délka období ve vzorcích pro zdržení z fronty. T = 1 by znamenalo, že špička drží svou intenzitu celou hodinu beze změny; HCM počítá s T = 0,25 h, ale nad patnáctiminutovou špičkovou intenzitou, kterou nemáme. Vliv je jen u pohybů blízko kapacity: při stupni vytížení 0,95 dává T = 1 zdržení kolem 60 s, T = 0,5 kolem 32 s a T = 0,25 kolem 18 s.

Výsledek kalibrace

GEH < 5 na všech 23 profilech a všech 23 do ±15 %; nejhorší GEH 3,25. (Ta čísla platí po doladění vah v kap. 12 — bezprostředně po přechodu na uzlový model to bylo 23/23 pod GEH 5, ale nejhorší 4,90 a dva profily do ±17 %.) Struktura poptávky drží: 34,5 % cest do pražských bran, 41,5 % vnitroměstských, bilance +405 voz/h.

Doby jízdy: 4 z 6 měřených dvojic v pásmu (hranový režim jich měl 4, ale jiné — uzlový model nově trefuje dvojici zámek → Mariánské náměstí, kterou hranový nesplňoval). Obě zbylé mají doloženou známou odchylku v data/mista.json: u obou je TomTom trasa o 13–21 % delší než modelová, takže srovnání není trasa na trasu.

První pokus o doladění vah jsme zahodili. tools/ladeni_vah.mjs (souřadnicový sestup) tehdy snížil ΣGEH² z 260 na 165, ale počet profilů pod GEH 5 nezvýšil a rozhodil kalibraci hranového režimu, se kterým se uzlový porovnává — čistě kosmetické zlepšení agregátu za cenu srovnatelnosti. Teprve když do účelové funkce přibyl SMĚROVÝ člen (kap. 12), začalo ladění zlepšovat obojí naráz a jeho výsledek jsme přijali.

Co uzlový model nově umí

  • Kvalita dopravy v uzlu: střední zdržení [s/voz], úroveň kvality (ÚKD/LOS A–F podle mezí HCM zvlášť pro světelné a neřízené křižovatky), stupeň vytížení, ztracené vozohodiny. V mapě jako vrstva koleček, v panelu jako žebříček.
  • Rozklad ztraceného času: v základním stavu vzniká 90 % veškerého zdržení v křižovatkách (322 z 356 vozohodin), ne na úsecích. Na konkrétní trase je to 30–40 % celkové doby jízdy. Číslo je nutné číst s výhradou: část toho, co model účtuje uzlu, je ve skutečnosti pomalejší jízda po úseku (viz GEOMETRICKE_S.primo výše). Ostrá je dělba mezi zdržením z čekání (fronta, přednost, zelená) a zbytkem — kolik z 322 vozohodin je čekání, model rozliší, ale rozdělení „úsek vs. uzel" je do té míry, do jaké je primo kalibrační konstanta, konvence.
  • Vzdutí: kde fronta přesáhne délku úseku, model omezí kapacitu odbočení, která do toho úseku vjíždějí — problém se tedy přenese na PŘEDCHOZÍ křižovatku. V základním stavu se to týká 9 úseků, po uzavření mostu jich přibude.
  • Dopad uzavírky na uzly: uzavření mostu zvedne zdržení v křižovatkách z 322 na 479 vozohodin a měřitelně (o víc než 5 s/voz) zhorší 10 uzlů.

Co uzlový model pořád neumí

  • Radicí pruhy neznáme. Model je odhaduje z počtu pruhů vjezdu: dokud je pruhů aspoň tolik, kolik je čekajících směrů, počítá každému vlastní řadicí pruh; teprve když je čekajících směrů víc, slévají se do společné fronty (vzorec pro sdílený pruh, c = ΣV / Σ(V/c)) a odbočení vlevo pak blokuje i přímý směr. V modelované síti se to týká 558 z 8 852 vjezdů (6,3 %). Skutečné dopravní značení to nenahradí — u vjezdu s vyhrazeným levým pruhem, který model odhadne jako jednopruhový, je výsledek pesimistický.
  • Signální plány neznáme. Model si dělí zelenou sám podle kritických poměrů, popisuje tedy DOBŘE seřízený semafor, ne ten, co na místě stojí.
  • Značení se páruje podle vzdálenosti, ne podle přesné souřadnice. OSM umisťuje highway=traffic_signals i stop/give_way na stopčáru jednotlivého vjezdu, ne do středu křižovatky, takže se každá značka přiřadí NEJBLIŽŠÍ křižovatce do 50 m. Značky přednosti se navíc vážou na konkrétní rameno (viz kap. 14); u světelných křižovatek se pořád zná jen uzel, ne který vjezd je signalizovaný.
  • Počty pruhů na vjezdu se odhadují z kapacity úseku, protože data/sit.geojson počty pruhů nenese. Všechny vjezdy do okružních křižovatek tak vycházejí jako jednopruhové.
  • Jízdní řády tratí neznáme. Všechny přejezdy dostanou stejnou typovou hodnotu (3 vlaky/h). V síti je 39 přejezdů.
  • Chodci, cyklisté a MHD do kapacity uzlu nevstupují.
  • Vzdutí je statický indikátor, ne časový průběh kolony. Model počítá jednu ustálenou hodinu, takže neřekne, kdy fronta vznikne a kdy se rozpustí; jen že v této hodině přesáhne délku úseku.
  • Pořadí uzavírání front (které vzdutí vznikne dřív) model neřeší, protože nemá čas jako rozměr.

12. Směrově rozlišené špičky (od 11. 8. 2026)

Co bylo špatně

Bod 8 přiznával, že model směrovou nerovnováhu systematicky podvažuje: na pěti ze šesti profilů s údajem pomer_smeru rozděloval dopravu mezi směry rovnoměrněji než sčítání, o 2 až 15 procentních bodů. Příčina byla v tom, že model počítal jednu „špičkovou hodinu" bez ohledu na to, že ranní a odpolední špička mají převažující směr obrácený.

Jak se to řeší

Matice se rozloží na SYMETRICKOU a SMĚROVOU složku a období se z nich složí:

S = (T + Tᵀ)/2        A = (T − Tᵀ)/2
odpoledne = S + κ·A        ráno = S − κ·A        průměr = S

Vlastnost, na které stojí důvěryhodnost změny: při κ = 1 a období „odpoledne" vyjde přesně původní matice T, takže se výchozí stav modelu nezměnil ani o vozidlo a všechna dosavadní kalibrace platí dál. Ověřuje to tools/test_model.mjs (shoda celkové poptávky i součtu obou směrů u každé vazby zvlášť).

Zesílení nerovnováhy (κ > 1) se ořezává na velikost symetrické části, ne až výsledek na nulu — jinak by dvojice 10 + 0 při κ = 2 dala 15 + 0, tedy o polovinu víc poptávky, než kolik jí do modelu vstoupilo. Součet obou směrů tak zůstává zachovaný pro libovolné κ a test to kontroluje i pro hodnoty, které dnešní data nepoužívají.

Které období je které — a jak to víme

Že je kalibrovaná matice ODPOLEDNÍ, tvrdí data/zony.json u vah zón. Ověřili jsme to nezávisle, protože na tom stojí výklad všech výsledků: obě období jsme prohnaly modelem a porovnaly se změřenými směrovými poměry ŘSD.

období průměrná odchylka směrového poměru
odpoledne (= dnešní matice T) 7,6 p.b.
ráno (= transpozice Tᵀ) 22,3 p.b.

Odpolední výklad tedy sedí a ranní je jeho zrcadlo. Zároveň z toho plyne předpoklad, který data ŘSD výslovně neuvádějí a my ho tedy přiznáváme jako předpoklad: pomer_smeru v CSD čteme jako poměr směrů ve špičkové hodině, a to v té odpolední.

Proč nestačilo zesílit nerovnováhu

První pokus byl zvýšit κ. Nefunguje to a stojí za to vědět proč: potřebná korekce není na všech profilech stejná ani stejného znaménka. Při κ = 2,5 se D10 u Prahy zlepší (49 → 57 proti cíli 64), ale navazující úseky přestřelí (59 → 66 proti cíli 63) a II/610 se zhorší o dalších 8 p.b. — tam totiž nerovnováhu nese jiná složka poptávky, než jakou κ zesiluje. Kalibrace na profily se přitom rozpadne z 23/23 na 9/23. κ proto zůstává 1 a směrovost se řeší tam, kde vzniká — ve vahách zón a bran.

Výsledek

Účelová funkce v tools/ladeni_vah.mjs dostala směrový člen a souřadnicový sestup (3 kola, 53 změn vah) zlepšil obojí najednou:

před po
ΣGEH² přes 23 profilů 166,5 84,9
nejhorší GEH 4,90 3,25
profilů s GEH < 5 23/23 23/23
profilů do ±15 % 21/23 23/23
průměrná odchylka směrového poměru 7,6 p.b. 5,2 p.b.

Kontrola směrovosti se od té doby vynucuje (mez: průměrná odchylka do 8 p.b.), ne jen vypisuje.

Co zůstává nedotažené

  • Zbytková odchylka na D10 u Prahy je −13,9 p.b. (model 50:50, ŘSD 64:36). Ten úsek nese hlavně průjezdnou dopravu Praha–Mladá Boleslav, jejíž směrová dělba je v data/zony.json zadaná odhadem a proti sčítání ověřená jen součtem obou směrů. Bez směrově rozlišeného měření na D10 to nejde poctivě dotáhnout.
  • Ranní špička nemá vlastní kalibraci. Model jí dává stejný celkový objem jako odpolední a liší se jen směrem. Skutečná ranní špička může být jinak velká i jinak složená (víc dojížďky, míň nákupů). Ověřit to půjde z dat workeru, který měří obě.
  • Uvnitř špičky se struktura nemění. Cesty se nedělí na účel (do práce, za nákupem, zbytná), takže model nemůže odpovědět na otázku, která část poptávky by na opatření reagovala.

13. Kvazidynamické přidělení — čas jako rozměr (od 11. 8. 2026)

Co bylo špatně

Statický výpočet zná jednu ustálenou hodinu. Vzdutí (kap. 11) proto uměl jen ohlásit: „tady fronta přesáhne délku úseku". Neuměl říct, kdy vznikne, jak daleko doroste a jestli se do konce špičky rozpustí — a to je právě ta otázka, kvůli které se dopravní modely dělají.

Jak to počítá

model/js/dynamika.js rozdělí špičku na časové řezy (výchozí 4 × 15 min) a fronta na každém pohybu se stane STAVOVOU VELIČINOU:

fronta(konec řezu) = max(0, fronta(začátek) + (poptávka − kapacita) · Δt)

Zdržení pohybu v řezu je pak součet dvou členů: (1) totéž, co počítá statický model, jen nad kratším obdobím, a (2) čekání na frontu, která tu stála už na začátku řezu. Při délce řezu rovné posuzovanému období a nulové frontě z toho vyjde přesně statický vzorec — nejsou to tedy dvě různé teorie zdržení, ale jedna, jednou použitá staticky a jednou po řezech.

Poptávka uvnitř hodiny se rozdělí profilem (výchozí 0,85 / 1,15 / 1,10 / 0,90), jehož průměr je 1, takže hodinový úhrn zůstává ten, na který je model kalibrovaný. Každý řez se řeší jako vlastní rovnováha, warm-startovaná z předchozího — a protože hledání cesty vidí aktuální zdržení včetně fronty, řidiči se v pozdějších řezech kolonám vyhýbají.

Ověření proti statickému výpočtu

Základní kontrola konzistence: s plochým profilem (všechny řezy stejné) musí kvazidynamika dát prakticky totéž co statický výpočet.

statický (12 iterací) kvazidynamický, plochý profil
vozokilometry 175 662 175 590
rozdíl 0,05 %

Se skutečným špičkovým profilem je hodinový úhrn vozokilometrů také do 0,1 % statického, ale rozložení v čase je úplně jiné — a o to jde.

Co model nově ukáže

  • Průběh fronty: v základním stavu 0 → 492 → 382 → 201 vozidel na konci jednotlivých čtvrthodin. Fronta tedy kulminuje ve druhé čtvrthodině a do konce špičky se z větší části rozpustí.
  • Zdržení v křižovatkách po čtvrthodinách: 226 / 339 / 410 / 261 vozohodin — statický výpočet by dal jedno číslo pro celou hodinu.
  • Kde se to zavaří a kdy: žebříček křižovatek podle nejdelší fronty a čas jejího vrcholu. V základním stavu je to řetěz uzlů na Maxe Švabinského (most a jeho přístupy), 86–95 vozidel, vrchol ve 2.–3. čtvrthodině.
  • Dopad uzavírky na frontu: uzavření mostu zvedne vrcholovou frontu z 492 na 1 181 vozidel.

Co to pořád není

  • Není to dynamické přidělení ani mikrosimulace. Každý řez se řeší jako vlastní rovnováha a vozidlo projede celou trasu „uvnitř" řezu; nepřenáší se mezi řezy po úsecích. Model tedy nezachytí, že vozidlo vyjelo v první čtvrthodině a do cíle dorazí ve druhé.
  • Fronta je bodová. Stojí u křižovatky a na metry se přepočítává až kvůli vzdutí, takže model neví o průběhu rázové vlny uvnitř úseku.
  • Profil špičky není změřený. Tvar 0,85 / 1,15 / 1,10 / 0,90 je běžný odhad, ne měření. Všechno, co je na frontách závislé, tuhle nejistotu nese — proto zůstávají publikovaným číslem výsledky statického výpočtu a průběh v čase je doplňkový pohled, který se zapíná zvlášť.
  • Fronta se nepřelévá do dalšího období. Co zbyde na konci hodiny (201 vozidel), model dál neřeší.

14. Značky přednosti navázané na rameno (od 11. 8. 2026)

Značka „stop" (P6) ani „dej přednost v jízdě" (P4) neplatí pro celou křižovatku, ale pro jeden VJEZD. Model je dosud znal jen na úrovni uzlu, takže se přirážka za rozjezd ze stopky uplatnila na všechna vedlejší ramena té křižovatky.

Jak se rameno určí

Značka se přiřadí k nejbližší křižovatce (do 50 m) a v ní k tomu VJEZDU, jehož rameno od uzlu míří směrem ke značce. Rozhoduje tedy azimut, ne vzdálenost od osy — a to je podstatné: značka na vedlejší ulici stojí pár metrů od křižovatky, kudy zároveň prochází hlavní tah, jehož osa k ní bývá blíž než osa ulice, ke které značka patří. Směr od středu křižovatky splést nejde, protože ramena se rozbíhají.

Bere se jen vjezdová hrana (do uzlu se přijíždí), čímž se rovnou vyřeší i směr na obousměrné ulici. Aby se přiřazení uznalo, musí platit tři podmínky — jinak značka spadne zpět na úroveň celé křižovatky, tedy na chování před touto změnou:

podmínka mez proč
vzdálenost značky od uzlu ≤ 30 m dál už azimut nerozliší, ke kterému vjezdu značka patří
odchylka od osy ramene ≤ 40° rameno musí ke značce opravdu mířit, ne jen být z ramen nejbližší
náskok před druhým ramenem ≥ 25° dvě ramena skoro stejným směrem nerozhodneme

Absolutní mez je potřeba vedle rozlišení: na křižovatce tvaru T může být nejbližší rameno odchýlené o 50° a druhé o 130°, takže rozdíl 80° podmínku rozlišení pohodlně splní, ačkoli ke značce nemíří ani jedno. Hodnota 40 ° vychází z toho, že značka stojí u kraje vozovky, tedy pár metrů stranou od osy — na vzdálenosti 5 m to dělá kolem 35°, dál míň. Sedí i empiricky: odchylky mají medián 0° a p90 9,2°, pak je v datech prázdné pásmo mezi 26,5° a 44,7°, takže mez neleží na hraně rozdělení a cokoli mezi 30° a 40° zahodí tatáž přiřazení.

Neuznané přiřazení se nikdy nezahazuje. Platnost na celou křižovatku je pořád lepší informace než žádná; zahodit se značka smí jen tehdy, když do 50 m není žádná modelovaná křižovatka (obvykle patří ulici, kterou model nemá).

Data se měnit nemusela. data/uzly.json zůstává klíčovaný jen souřadnicí a o síti nic neví; vazba na rameno se odvozuje z geometrie až v modelu. Soubor tak dál přežije regeneraci sítě a naopak.

Výsledek

před po
ramen s navázanou značkou 128 (44 stop, 84 dej přednost)
uzlů s nejednoznačným přiřazením 40
pohybů s přirážkou za stopku ~153 115

Z 454 značek stop/prednost v datech se 130 naváže na rameno, 42 platí pro celou křižovatku (na 40 uzlech) a 282 leží dál než 50 m od kterékoli modelované křižovatky — ty patří ulicím, které model nemá.

Kalibrace se nezměnila (GEH < 5 na 23/23 profilech, směrová odchylka 5,2 p.b.) — přirážka je malá a jde jen o to, aby se nedostávala tam, kam nepatří.

Negativní výsledek: značka NEURČUJE přednost

Nabízelo se použít značku i k tomu, které rameno je vedlejší — je to přesně ta informace, kterou jinak odhadujeme z tříd komunikací a průběžnosti názvu ulice. Zkusili jsme to a neobstálo to:

  • kalibrace klesla z 23/23 profilů na 20/23;
  • mezi 39 rameny, kterým značka změnila postavení, byly průběžné úseky II/610, II/101, II/244 i II/331 — tedy tahy, které v terénu přednost mají.

Vysvětlení je v datech, ne v modelu: OSM má značky přednosti zanesené neúplně a velká část jich patří komunikacím, které model vůbec nemá (účelové a obslužné sjezdy, cyklostezky, parkoviště). Přiřazení takovou značku připne k nejbližšímu rameni, které v síti je — a to bývá právě hlavní tah. Jedna špatně připnutá značka takhle obrátí přednost na průtahu.

Omezit to na rozhodování mezi rovnocennými rameny (obě téže třídy) nepomohlo: sporné případy jsou právě křižovatky dvou silnic II. třídy, takže kalibrace zůstala na 20/23.

Model proto ze značky bere jen to, co je doložitelné i při neúplném mapování: že se na tom rameni stojí. Kdo má přednost, se dál odvozuje z tříd a průběžnosti tahu. Přehodnotit to půjde, až budou značky ověřené proti pasportu dopravního značení města — ne proti OSM.