OpenStreetMap User's Diaries
Analiza spójności oznaczeń sieci (tag network) dla dróg w Polsce
Ostatnio zauważyłem, że styl OSM Americana nie wyświetla w szczególny sposób numerów dróg wojewódzkich, w przeciwieństwie do dróg krajowych, w tym dróg ekspresowych i autostrad, co zgadza się z definicją, a raczej jej brakiem. Na podstawie opisu jednego z pull requestów w repozytorium tego stylu wywnioskowałem, że generator opiera się na tagu network w celu wywnioskowania kategorii.
Ostatnio zauważyłem, że styl OSM Americana nie wyświetla w szczególny sposób numerów dróg wojewódzkich, w przeciwieństwie do dróg krajowych, w tym dróg ekspresowych i autostrad, co zgadza się z definicją, a raczej jej brakiem. Na podstawie opisu jednego z pull requestów w repozytorium tego stylu wywnioskowałem, że generator opiera się na tagu network w celu wywnioskowania kategorii.
Postanowiłem więc sprawdzić, jaka wartość tagu network jest wykorzystywana do oznaczania dróg wojewódzkich. Szybka kwerenda, wykonana przy użyciu głównej strony OSM, Overpass API i Taginfo doprowadziła mnie do wniosku, że drogi te oznacza się tagiem network=pl:regional.
Postanowiłem również sprawdzić, jak oznacza się drogi powiatowe i gminne. Jako że w artykule wiki o tagu network tego nie określono, postanowiłem dokonać samodzielnej analizy. W tym celu napisałem skrypt Pythona, który odpytuje server Overpass i wykorzystuje bibliotekę pandas w celu wygodnego przetwarzania tych danych.
Parametry wejściowe
Zapytanie do serwera Overpass miało następującą postać:
[out:csv(::id,name,ref,unsigned_ref,network)];
area(3600049715)->.pl;
rel(area.pl)[type=route][route=road][network~"pl:.*",i];
out geom;
Najistotniejszymi tagami branymi pod uwagę w tej analizie są network, ref i unsigned_ref (ostatni z nich wzięty pod uwagę ze względu na sposób użycia w relacjach analogiczny do tego na liniach). Numer relacji i tag name są wykorzystywane w celu ręcznej weryfikacji zarówno wyników analizy, jak i samych relacji, a ponadto numer relacji służy jako indeks dla tabel biblioteki pandas.
Wyrażenia regularne dla numerów poszczególnych dróg wyglądały następująco:
- autostrady:
^A[0-9]{1,2}$
- drogi ekspresowe:
^S[0-9]{1,2}$
- pozostałe drogi krajowe:
^[0-9]{1,2}$
- drogi wojewódzkie:
^[0-9]{3}$
- drogi powiatowe:
^[0-9]{4}[ ]?[BCDEFGKLNOPRSTWZ]$
- drogi gminne:
^[0-9]{6}[ ]?[BCDEFGKLNOPRSTWZ]$
Uwzględnienie potencjalnej spacji między częścią cyfrową a wyróżnikiem województwa numerów dróg powiatowych i gminnych wynika z tego, że część z tych numerów jest zapisana razem z tą spacją. Kwestia ta wymaga poprawy, jednak problem ten nie jest powiązany z przedmiotem tej analizy.
Wyniki analizy
Wstępne wyniki analizy prezentują się następująco:
autostrada
ekspresowa
krajowa
wojewódzka
powiatowa
gminna
pl:district
0
0
0
0
57
0
PL:expressway
0
21
0
0
0
0
pl:local
0
0
1
0
942
34
PL:motorway
6
0
0
0
0
0
pl:municipal
0
0
0
0
0
923
pl:national
0
0
97
0
0
0
pl:regional
0
0
0
808
261
0
PL:regional
0
0
0
1
0
0
Ponadto, skrypt zwrócił następujące drogi, których wartości tagów ref i unsigned_ref nie pasują do żadnych z wymienionych wcześniej wyrażeń regularnych:
@id
name
ref
unsigned_ref
network
11025887
360809W
nan
nan
pl:municipal
11025888
360817W
nan
nan
pl:municipal
11025889
360829W
nan
nan
pl:municipal
16238728
Docelowy układ obwodnicy miasta Kartuzy
nan
nan
pl:regional
17590139
Droga gminna nr 107425L
nan
nan
pl:local
3548166
Droga krajowa nr 11
nan
nan
pl:national
13195645
Droga powiatowa 1360W
1360
nan
pl:local
365245
Droga wojewódzka 527
nan
nan
pl:regional
13063807
Droga wojewódzka nr 238
nan
nan
pl:regional
5248552
Małoposki Szlak Solny
nan
nan
pl:regional
9978554
Obwodnica Miasta Kartuzy etap 2
nan
nan
pl:regional
16934605
Ring Miejski
nan
nan
pl:local
5245186
Szlak Solny
nan
nan
pl:regional
2703613
Zwardoń
Koniaków
nan
pl:regional
9231404
ulica Brzegi Andrychów
nan
nan
pl:local
6269007
ulica Metalowców Andrychów
nan
nan
pl:local
6796113
Świętego Jana Pawła II
nan
nan
pl:local
7903600
nan
15787
nan
pl:local
7903602
nan
15786
nan
pl:local
20157721
nan
nan
nan
pl:local
Dzięki ręcznej weryfikacji powyższych dróg liczby podane w 1. tabeli zwiększają się na potrzeby analizy:
- dla zwykłych dróg krajowych z tagiem
network=pl:national — o 1;
- dla dróg wojewódzkich z tagiem
network=pl:regional — o 2
- dla dróg gminnych z tagiem
network=pl:local — o 1;
- dla dróg gminnych z tagiem
network=pl:municipal — o 3.
Należy podkreślić, że nan oznacza brak wartości, a nie wartość o takim brzmieniu.
Wyniki ostateczne analizy prezentują się następująco:
autostrada
ekspresowa
krajowa
wojewódzka
powiatowa
gminna
pl:district
0
0
0
0
57
0
PL:expressway
0
21
0
0
0
0
pl:local
0
0
1
0
942
35
PL:motorway
6
0
0
0
0
0
pl:municipal
0
0
0
0
0
926
pl:national
0
0
98
0
0
0
pl:regional
0
0
0
810
261
0
PL:regional
0
0
0
1
0
0
Wnioski
Oznaczenie sieci dla dróg krajowych (w tym dróg ekspresowych i autostrad) i dróg wojewódzkich jest spójne. Wyjątkami są obwodnica Nowego Miasta Lubawskiego, która jest oznaczona tagami network=pl:local, gdyż obwodnica jako taka odciąża to miasto, i ref=15, jako że stanowi ona część drogi krajowej nr 15, oraz droga wojewódzka nr 864, która jest oznaczona tagiem network=PL:regional, zgodnie z zasadą ze wspomnianego wcześniej artykułu wiki, która stanowi, że kody krajów powinno zapisywać się wielkimi literami.
Niespójności występują w oznaczaniu dróg powiatowych i gminnych. Ponadto, stosowane są kolidujące schematy oznaczeń: tag network=pl:regional jest używany zarówno przez drogi wojewódzkie, jak i powiatowe, a tag network=pl:local — zarówno przez drogi powiatowe, jak i gminne.
Drogi powiatowe wykorzystują w zdecydowanej (74,8%) większości tag network=pl:local. Tag network=pl:regional jest stosowany przede wszystkim dla dróg w okolicy Rzeszowa, jak również w śląskiem i opolskiem. Z tagu network=pl:district korzystają drogi na obszarze między Gdynią a Lęborkiem.
Drogi gminne wykorzystują w przytłaczającej (96,4%) większości tag network=pl:municipal; są to drogi w części siedleckiej województwa mazowieckiego. Z tagu network=pl:local korzystają drogi w okolicach Wrocławia i Piotrkowa Trybunalskiego.
Analiza nie objęła dróg nieoznaczonych jakimkolwiek tagiem network=*, jako że problem spójności oznaczania sieci nie występuje dla nich obecnie, a ich oznaczenia można podjąć się później, jak również tych oznaczonych tagiem innym niż network=pl:*, jako że w ich przypadku problem jest głębszy niż tutaj analizowany.
Dalsze działania
Problem oznaczania sieci dla polskich dróg zostanie podniesiony na polskiej sekcji OSM Community w celu ustalenia nowych standardów, szczególnie dla dróg powiatowych i gminnych, oraz korekty obecnych oznaczeń w zgodzie z istniejącymi standardami.
Analiza zwróciła również uwagę na błędnie oznaczone relacje, m. in. drogę krajową nr 11 (brak tagu ref), Małoposki Szlak Solny (niepoprawna wartość tagu route) czy miejscowość Zwardoń (błędne wykorzystanie jako relacja szlaku turystycznego). Te, jak i inne relacje wskazane w 2. tabeli zostaną wskazane jako wymagające weryfikacji i naprawy.
Ostatnio zauważyłem, że styl OSM Americana nie wyświetla w szczególny sposób numerów dróg wojewódzkich, w przeciwieństwie do dróg krajowych, w tym dróg ekspresowych i autostrad, co zgadza się z definicją, a raczej jej brakiem. Na podstawie opisu jednego z pull requestów w repozytorium tego stylu wywnioskowałem, że generator opiera się na tagu network w celu wywnioskowania kategorii.
Ostatnio zauważyłem, że styl OSM Americana nie wyświetla w szczególny sposób numerów dróg wojewódzkich, w przeciwieństwie do dróg krajowych, w tym dróg ekspresowych i autostrad, co zgadza się z definicją, a raczej jej brakiem. Na podstawie opisu jednego z pull requestów w repozytorium tego stylu wywnioskowałem, że generator opiera się na tagu network w celu wywnioskowania kategorii.
Postanowiłem więc sprawdzić, jaka wartość tagu network jest wykorzystywana do oznaczania dróg wojewódzkich. Szybka kwerenda, wykonana przy użyciu głównej strony OSM, Overpass API i Taginfo doprowadziła mnie do wniosku, że drogi te oznacza się tagiem network=pl:regional.
Postanowiłem również sprawdzić, jak oznacza się drogi powiatowe i gminne. Jako że w artykule wiki o tagu network tego nie określono, postanowiłem dokonać samodzielnej analizy. W tym celu napisałem skrypt Pythona, który odpytuje server Overpass i wykorzystuje bibliotekę pandas w celu wygodnego przetwarzania tych danych.
Parametry wejściowe
Zapytanie do serwera Overpass miało następującą postać:
[out:csv(::id,name,ref,unsigned_ref,network)];
area(3600049715)->.pl;
rel(area.pl)[type=route][route=road][network~"pl:.*",i];
out geom;
Najistotniejszymi tagami branymi pod uwagę w tej analizie są network, ref i unsigned_ref (ostatni z nich wzięty pod uwagę ze względu na sposób użycia w relacjach analogiczny do tego na liniach). Numer relacji i tag name są wykorzystywane w celu ręcznej weryfikacji zarówno wyników analizy, jak i samych relacji, a ponadto numer relacji służy jako indeks dla tabel biblioteki pandas.
Wyrażenia regularne dla numerów poszczególnych dróg wyglądały następująco:
- autostrady:
^A[0-9]{1,2}$ - drogi ekspresowe:
^S[0-9]{1,2}$ - pozostałe drogi krajowe:
^[0-9]{1,2}$ - drogi wojewódzkie:
^[0-9]{3}$ - drogi powiatowe:
^[0-9]{4}[ ]?[BCDEFGKLNOPRSTWZ]$ - drogi gminne:
^[0-9]{6}[ ]?[BCDEFGKLNOPRSTWZ]$
Uwzględnienie potencjalnej spacji między częścią cyfrową a wyróżnikiem województwa numerów dróg powiatowych i gminnych wynika z tego, że część z tych numerów jest zapisana razem z tą spacją. Kwestia ta wymaga poprawy, jednak problem ten nie jest powiązany z przedmiotem tej analizy.
Wyniki analizy
Wstępne wyniki analizy prezentują się następująco:
| autostrada | ekspresowa | krajowa | wojewódzka | powiatowa | gminna | |
|---|---|---|---|---|---|---|
| pl:district | 0 | 0 | 0 | 0 | 57 | 0 |
| PL:expressway | 0 | 21 | 0 | 0 | 0 | 0 |
| pl:local | 0 | 0 | 1 | 0 | 942 | 34 |
| PL:motorway | 6 | 0 | 0 | 0 | 0 | 0 |
| pl:municipal | 0 | 0 | 0 | 0 | 0 | 923 |
| pl:national | 0 | 0 | 97 | 0 | 0 | 0 |
| pl:regional | 0 | 0 | 0 | 808 | 261 | 0 |
| PL:regional | 0 | 0 | 0 | 1 | 0 | 0 |
Ponadto, skrypt zwrócił następujące drogi, których wartości tagów ref i unsigned_ref nie pasują do żadnych z wymienionych wcześniej wyrażeń regularnych:
| @id | name | ref | unsigned_ref | network |
|---|---|---|---|---|
| 11025887 | 360809W | nan | nan | pl:municipal |
| 11025888 | 360817W | nan | nan | pl:municipal |
| 11025889 | 360829W | nan | nan | pl:municipal |
| 16238728 | Docelowy układ obwodnicy miasta Kartuzy | nan | nan | pl:regional |
| 17590139 | Droga gminna nr 107425L | nan | nan | pl:local |
| 3548166 | Droga krajowa nr 11 | nan | nan | pl:national |
| 13195645 | Droga powiatowa 1360W | 1360 | nan | pl:local |
| 365245 | Droga wojewódzka 527 | nan | nan | pl:regional |
| 13063807 | Droga wojewódzka nr 238 | nan | nan | pl:regional |
| 5248552 | Małoposki Szlak Solny | nan | nan | pl:regional |
| 9978554 | Obwodnica Miasta Kartuzy etap 2 | nan | nan | pl:regional |
| 16934605 | Ring Miejski | nan | nan | pl:local |
| 5245186 | Szlak Solny | nan | nan | pl:regional |
| 2703613 | Zwardoń | Koniaków | nan | pl:regional |
| 9231404 | ulica Brzegi Andrychów | nan | nan | pl:local |
| 6269007 | ulica Metalowców Andrychów | nan | nan | pl:local |
| 6796113 | Świętego Jana Pawła II | nan | nan | pl:local |
| 7903600 | nan | 15787 | nan | pl:local |
| 7903602 | nan | 15786 | nan | pl:local |
| 20157721 | nan | nan | nan | pl:local |
Dzięki ręcznej weryfikacji powyższych dróg liczby podane w 1. tabeli zwiększają się na potrzeby analizy:
- dla zwykłych dróg krajowych z tagiem
network=pl:national— o 1; - dla dróg wojewódzkich z tagiem
network=pl:regional— o 2 - dla dróg gminnych z tagiem
network=pl:local— o 1; - dla dróg gminnych z tagiem
network=pl:municipal— o 3.
Należy podkreślić, że nan oznacza brak wartości, a nie wartość o takim brzmieniu.
Wyniki ostateczne analizy prezentują się następująco:
| autostrada | ekspresowa | krajowa | wojewódzka | powiatowa | gminna | |
|---|---|---|---|---|---|---|
| pl:district | 0 | 0 | 0 | 0 | 57 | 0 |
| PL:expressway | 0 | 21 | 0 | 0 | 0 | 0 |
| pl:local | 0 | 0 | 1 | 0 | 942 | 35 |
| PL:motorway | 6 | 0 | 0 | 0 | 0 | 0 |
| pl:municipal | 0 | 0 | 0 | 0 | 0 | 926 |
| pl:national | 0 | 0 | 98 | 0 | 0 | 0 |
| pl:regional | 0 | 0 | 0 | 810 | 261 | 0 |
| PL:regional | 0 | 0 | 0 | 1 | 0 | 0 |
Wnioski
Oznaczenie sieci dla dróg krajowych (w tym dróg ekspresowych i autostrad) i dróg wojewódzkich jest spójne. Wyjątkami są obwodnica Nowego Miasta Lubawskiego, która jest oznaczona tagami network=pl:local, gdyż obwodnica jako taka odciąża to miasto, i ref=15, jako że stanowi ona część drogi krajowej nr 15, oraz droga wojewódzka nr 864, która jest oznaczona tagiem network=PL:regional, zgodnie z zasadą ze wspomnianego wcześniej artykułu wiki, która stanowi, że kody krajów powinno zapisywać się wielkimi literami.
Niespójności występują w oznaczaniu dróg powiatowych i gminnych. Ponadto, stosowane są kolidujące schematy oznaczeń: tag network=pl:regional jest używany zarówno przez drogi wojewódzkie, jak i powiatowe, a tag network=pl:local — zarówno przez drogi powiatowe, jak i gminne.
Drogi powiatowe wykorzystują w zdecydowanej (74,8%) większości tag network=pl:local. Tag network=pl:regional jest stosowany przede wszystkim dla dróg w okolicy Rzeszowa, jak również w śląskiem i opolskiem. Z tagu network=pl:district korzystają drogi na obszarze między Gdynią a Lęborkiem.
Drogi gminne wykorzystują w przytłaczającej (96,4%) większości tag network=pl:municipal; są to drogi w części siedleckiej województwa mazowieckiego. Z tagu network=pl:local korzystają drogi w okolicach Wrocławia i Piotrkowa Trybunalskiego.
Analiza nie objęła dróg nieoznaczonych jakimkolwiek tagiem network=*, jako że problem spójności oznaczania sieci nie występuje dla nich obecnie, a ich oznaczenia można podjąć się później, jak również tych oznaczonych tagiem innym niż network=pl:*, jako że w ich przypadku problem jest głębszy niż tutaj analizowany.
Dalsze działania
Problem oznaczania sieci dla polskich dróg zostanie podniesiony na polskiej sekcji OSM Community w celu ustalenia nowych standardów, szczególnie dla dróg powiatowych i gminnych, oraz korekty obecnych oznaczeń w zgodzie z istniejącymi standardami.
Analiza zwróciła również uwagę na błędnie oznaczone relacje, m. in. drogę krajową nr 11 (brak tagu ref), Małoposki Szlak Solny (niepoprawna wartość tagu route) czy miejscowość Zwardoń (błędne wykorzystanie jako relacja szlaku turystycznego). Te, jak i inne relacje wskazane w 2. tabeli zostaną wskazane jako wymagające weryfikacji i naprawy.
OpenStreetMap Blogs

















