Zadání: sběr dat o kvalitě dopravy na D10 v úseku Brandýsko - Praha
Zadání: sběr dat o kvalitě dopravy na D10 v úseku Brandýsko - Praha
Verze 1.0, 1. srpna 2026 Zadavatel: město Brandýs nad Labem-Stará Boleslav Zpracoval: podklad pro dopravní strategii
1. Proč to děláme
Město nemá žádné vlastní měření kvality dopravy. Všechny argumenty o zhoršující se dostupnosti Prahy, o vlivu D10 na provoz ve městě a o efektu budoucího obchvatu se dnes opírají o dojmy nebo o cizí modely s výhledovými roky, které už neplatí.
Sběr má tři konkrétní cíle:
- Popsat současný stav. Kdy přesně a kde se doprava na D10 mezi Starou Boleslaví a Prahou zpomaluje, jak dlouho to trvá a jak moc.
- Otestovat hypotézu o odklonu. Když se D10 zpomalí nebo uzavře, projeví se to na profilech ve městě? Pokud ano, je město náhradní trasou dálnice a nese za to náklady.
- Vytvořit výchozí měření před obchvatem. V roce 2028 se stejným postupem změří stav po zprovoznění a vznikne nezpochybnitelné srovnání před a po. Tohle je z dlouhodobého hlediska nejcennější výstup.
2. Co se měří
Zdroj dat: TomTom Traffic Flow API (flowSegmentData) a Traffic Incidents API (incidentDetails), verze 4 a 5.
Pro každý měřicí bod se ukládá:
| Veličina | Popis |
|---|---|
rychlost_akt |
aktuální rychlost v km/h |
rychlost_volna |
rychlost volného provozu na tomtéž úseku |
pomer |
podíl aktuální a volné rychlosti, hlavní ukazatel |
cas_akt_s, cas_volny_s |
doba průjezdu úsekem |
zdrzeni_s |
rozdíl obou časů |
confidence |
spolehlivost hodnoty, 0 až 1 |
uzavreno |
příznak uzavírky |
frc |
třída komunikace, kontrola že bod sedí na správné silnici |
Nesbírá se počet vozidel. Flow API intenzity neposkytuje. Pokud je potřebujete, je to samostatný úkol se sčítači.
3. Kde se měří
3.1 Dálnice D10, 14 bodů
Úsek od exitu u Staré Boleslavi po napojení na D0 u Satalic, délka zhruba 16 km, body po přibližně jednom kilometru. Všech 14 bodů bylo 1. 8. 2026 ověřeno, všechny se snapují na FRC0, tedy dálnici, se spolehlivostí 1,00.
| ID | Souřadnice | Volný provoz |
|---|---|---|
| D10_00_StBoleslav_exit | 50.19667, 14.69159 | 125 km/h |
| D10_02 | 50.20261, 14.69212 | 121 |
| D10_03 | 50.19280, 14.69425 | 121 |
| D10_04 | 50.18371, 14.69516 | 121 |
| D10_05_Zapy | 50.17567, 14.68406 | 121 |
| D10_06 | 50.16939, 14.67350 | 121 |
| D10_07 | 50.16148, 14.66540 | 121 |
| D10_08_Drevcice | 50.15092, 14.65706 | 121 |
| D10_09 | 50.14201, 14.64857 | 121 |
| D10_10 | 50.13494, 14.63869 | 121 |
| D10_11_Radonice | 50.12923, 14.62689 | 121 |
| D10_12 | 50.12511, 14.61377 | 107 |
| D10_13 | 50.12206, 14.59980 | 103 |
| D10_14_Satalice_D0 | 50.11855, 14.58558 | 97 |
Ověřit: severní krajní bod byl zvolen jako předpokládaný exit 14. Než se sběr rozjede naostro, potvrďte na mapě, že sedí. Pokud ne, posuňte souřadnici a znovu ověřte, že vrací FRC0.
3.2 Kontrolní profily ve městě, 6 bodů
Slouží k testu hypotézy o odklonu. Bez nich je měření D10 jen popis dálnice.
Revize 1. 8. 2026: původní souřadnice čtyř bodů neležely na deklarovaných ulicích (TomTom je přichytával k jiným komunikacím — např. „Pražská” měřila ulici Vrábskou, „křižovatka Zápy” byla v polích). Opraveno proti OSM síti, všechny body ověřeny přes flowSegmentData se snapem do 11 m.
| ID | Souřadnice | Volný provoz | Umístění |
|---|---|---|---|
| MOST_Labe | 50.19391, 14.67143 | 43 km/h | most M. Švabinského |
| CENTRUM_Masarykovo | 50.18535, 14.65976 | 36 | průtah u Masarykova nám. |
| PRAZSKA_vyjezd | 50.17373, 14.64680 | 67 | II/610 směr Dřevčice/Praha |
| BOLESLAVSKA_Melnicka | 50.19640, 14.67515 | 44 | Mělnická, Stará Boleslav |
| ZAPY_krizovatka | 50.17004, 14.70766 | 57 | Hlavní (II/101), Zápy |
| KRALOVICKA_ZAPSKA | 50.18476, 14.66564 | 34 | křižovatka Královická × Zápská |
Bod BRANDYS_nadrazi (50.18357, 14.65528) byl 1. 8. 2026 odstaven:
kontrola snapu ukázala, že leží 171 m od segmentu, na který ho
flowSegmentData přichytávalo, takže neměřil zamýšlenou komunikaci.
Nahradil ho uzel Královická × Zápská ze sit.geojson (snap 4 m). Bod
vrací rameno Královické (II/101) směrem k centru, FRC3. Zápská
(FRC4, jižní rameno) ani Královická od Zápů se tímto bodem neměří.
3.2b Doplňkové profily okolních tahů, 4 body (přidáno 1. 8. 2026)
Rozšíření nad rámec původního zadání — hlavní tahy v okolí, kudy se doprava odklání nebo přivádí k D10.
| ID | Souřadnice | Volný provoz | Umístění |
|---|---|---|---|
| KOSTELECKA_101 | 50.19098, 14.64719 | 79 km/h | II/101 směr Kostelec n. L. |
| KRALOVICKA_101 | 50.17778, 14.68881 | 61 | II/101 Brandýs → Zápy/D10 |
| TOUSENSKA_245 | 50.15788, 14.74023 | 51 | II/245 Zápy → Lázně Toušeň |
| STBOLESLAV_610_D10 | 50.20378, 14.68889 | 48 | II/610 u exitu 14 |
3.3 Incidenty
Bounding box 14.55, 50.09, 14.80, 50.25, tedy Brandýsko včetně celého sledovaného úseku D10 a napojení na D0. Ukládá se úplný seznam aktivních událostí s typem, popisem, časem začátku, délkou a zpožděním.
4. Jak často a jak dlouho
Interval: každých 15 minut v čase 05:00 až 22:00, každou hodinu v noci. Incidenty jednou za hodinu, mění se pomalu.
Důvod tohoto rozvržení je limit volání. Free tier bývá 2 500 požadavků denně. Navržený režim spotřebuje zhruba 1 700 za den, takže se vejde s rezervou. Před spuštěním ověřte skutečný limit svého klíče. Pokud máte vyšší, zahustěte na 10 nebo 5 minut, zvlášť u profilů ve městě.
Doba sběru: minimálně do voleb, ale záměr je nechat to běžet trvale. Cena je nulová, přínos roste s délkou řady.
Milníky:
| Termín | Co z toho bude |
|---|---|
| po 2 týdnech | denní a týdenní profil, kontrola kvality dat |
| do voleb (2 měsíce) | popis současného stavu, první vyhodnocení hypotézy o odklonu |
| konec 2027 | roční řada, výchozí měření před obchvatem |
| 2028 a dál | srovnání před a po zprovoznění obchvatu |
5. Technické zajištění
Skript: sber_flow_d10.py, čistý Python 3 bez externích knihoven.
Nasazení: jakýkoli server nebo virtuální stroj s Pythonem a připojením k internetu. Náročnost je zanedbatelná.
*/15 * * * * cd /opt/doprava && TOMTOM_API_KEY=xxx /usr/bin/python3 sber_flow_d10.py >> log.txt 2>&1
Výstup: jeden CSV soubor na den (data/flow_RRRR-MM-DD.csv, oddělovač středník) a jeden JSONL se snímky incidentů. Objem řádově jednotky megabajtů za měsíc.
Zálohování: adresář data/ zálohovat denně. Data se nedají doplnit zpětně, ztráta je nevratná.
Klíč: samostatný API klíč jen pro tento účel, ne sdílený s ničím jiným, aby se dal kdykoli zneplatnit bez dopadu na ostatní systémy.
Pozor na zimní čas. Skript má časové pásmo napevno na UTC+2. Na konci října je nutné přepnout na +1, nebo skript upravit tak, aby pásmo bral ze systému.
6. Jak se to bude vyhodnocovat
Popisná část: medián poměru aktuální ku volné rychlosti po hodinách a dnech v týdnu, pro každý bod. Výstupem je heatmapa, kde je hned vidět, kdy a kde se to drhne.
Test hypotézy o odklonu: pro každý úsek, kdy na D10 poměr klesl pod stanovenou mez (návrh: pod 0,7 po dobu aspoň 30 minut), se porovná souběžný stav na městských profilech proti kontrolnímu vzorku, tedy stejný den v týdnu a stejná hodina bez události na D10. Ptáme se, jestli se ve městě zpomalí, o kolik a s jakým zpožděním.
Vazba na incidenty: každá zjištěná epizoda se spáruje se seznamem aktivních incidentů, aby se vědělo, jestli za tím byla nehoda, uzavírka nebo běžná špička.
7. Co už první měření ukázalo
Testovací běh 1. 8. 2026 ve 14:39 (sobota, mimo špičku):
- Celý úsek D10 od Staré Boleslavi po km 13 jel plnou rychlostí, poměr 1,00 ve všech bodech.
- Jediné zdržení bylo na posledním bodě u napojení na D0 u Satalic: 61 km/h proti 98 km/h volného provozu, poměr 0,62, zdržení 44 sekund.
- Ve městě bylo všude 1,00.
Jedno měření nic nedokazuje, ale naznačuje, kde stojí za to hledat: úzké hrdlo není na vaší části D10, ale na vjezdu do Prahy. Pokud se to potvrdí na delší řadě, má to přímý důsledek pro strategii. Zkapacitnění D10 směrem k Brandýsu by dostupnost Prahy nezlepšilo, protože se stojí až za Satalicemi. Argumentace by se pak měla přesunout k dostavbě pražského okruhu a k železnici.
Souběžně bylo v oblasti 48 aktivních dopravních událostí, z toho 39 uzavírek silnic, některé běžící od června 2025. To je mimochodem konkrétní číslo do kapitoly o koordinaci rozkopávek.
8. Omezení, která je nutné znát
Nedostanete počty vozidel ani podíl nákladní dopravy. Flow API měří rychlosti. Kolik aut a kolik z nich kamionů je samostatná úloha se sčítači.
Nedostanete historii zpětně. Incidents API vrací jen aktuální a plánované události. Řada začíná dnem, kdy sběr spustíte. Zpětný pohled by vyžadoval placený produkt TomTom Traffic Stats.
Plánované uzavírky TomTom pro tuto oblast nehlásí. Filtr future vrátil při testu nula záznamů. Pro dopředné informace o uzavírkách je nutné použít Národní registr dopravních informací.
Data jsou komerčně licencovaná. Před publikací grafů ve volebních materiálech ověřte licenční podmínky pro zveřejňování odvozených výstupů.
Poměr rychlostí není totéž co zdržení v minutách. Pokles poměru na krátkém úseku s nízkou volnou rychlostí znamená v absolutním čase málo. Při interpretaci vždy uvádět i zdrzeni_s.
9. Akceptační kritéria
Sběr je považován za funkční, když:
- běží nepřetržitě aspoň 14 dní bez výpadku delšího než 2 hodiny
- podíl řádků s chybou je pod 1 %
confidenceje u aspoň 90 % záznamů rovna 1,00- všech 14 bodů na D10 vrací trvale FRC0
- denní počet volání se drží pod limitem klíče
- existuje funkční zálohování adresáře
data/
10. Odpovědnost
| Role | Kdo | Co |
|---|---|---|
| Zadavatel | město | rozhodnutí o rozsahu, převzetí výstupů |
| Provoz | IT / dodavatel | nasazení, cron, zálohy, dohled |
| Vyhodnocení | zpracovatel strategie | měsíční zpráva, analýza odklonu |
| Klíč a licence | město | správa API klíče, kontrola licenčních podmínek |
Doporučená kontrola: týdně první měsíc, pak měsíčně.
Changelog
1. 8. 2026 — realizace (odchylky od zadání v1.0):
- Sběr běží jako Cloudflare Worker
doprava-sber(doprava/worker/), ne Python skript na serveru; úložiště R2 (doprava-data), živý endpointhttps://doprava-sber.zandl.workers.dev/livepro mapu/doprava/. - Limity TomTom jsou měsíční, ne denní (Flow 20 000, Incidenty 2 500, dlaždice 200 000 zdarma/měsíc). Režim upraven: plný sběr à 30 min ve dne (05–22) a à 1 h v noci; navíc vektorové flow dlaždice (celoplošně, à 15 min ve dne). Odhad nákladů: doplatek jednotky USD měsíčně za Flow.
- Časové pásmo řeší
Intl(Europe/Prague) — problém s přechodem na zimní čas ze zadání odpadá. - Revize souřadnic městských profilů a 4 doplňkové body (viz 3.2, 3.2b).
- Bbox incidentů zúžen na 14.50,50.08,14.90,50.32 (bez centra Prahy, viz
komentář v
worker/src/konfigurace.ts). - Směr měření: flowSegmentData vrací data pro jeden jízdní pás (ten bližší
souřadnici bodu). Audit 1. 8.: 13 ze 14 bodů D10 měří směr Praha, výjimka
D10_00 (směr Ml. Boleslav). Od 1. 8. večer se ke každému záznamu ukládá
sloupec
azimut(směr měřeného pásu ve stupních, 0 = sever); mapa směr zobrazuje šipkou. Protisměrné body zatím nepřidány (zdvojnásobily by cenu). - Dojezdy (nad rámec zadání): Routing API měří 7 tras (Dřevčická/Erbenova/
Michalovická → P+R Letňany, P+R Černý Most, Zlatnická 12, průjezd městem)
v obou směrech à 30 min v denní době (~14,5 k volání/měs, v limitu 20 k
zdarma). Archiv
dojezdy/dojezdy_RRRR-MM-DD.csv, sloupce: čas, trasa, směr, délka, čas s provozem / bez provozu / historický, zdržení.