Warszawa - komunikacja miejska

Dlatego od razu na początku wspomniałem o problemie częstych zmian - lepiej najpierw przemyśleć sprawę niż się narobić, zniechęcić i zostawić rozgrzebane. Skądinąd rozgrzebane w Warszawie mamy już teraz (zresztą dlatego przecież się zainteresowałem tematem), więc i tak trzeba będzie zdecydować jak to posprzątać. Mam nadzieję, że ten wątek to rozstrzygnie, bo odezwało się kilka zainteresowanych osób, z czego ogromnie się cieszę! :slight_smile:

Ja bym się tym nie przejmował zbytnio: sam dokładny przebieg trasy nie jest ważny, bo i tak wsiada się i wysiada tylko na przystankach, a ulice na trasie przejazdu służą moim zdaniem tylko jako informacja lokalizacyjna gdzie się dany przystanek znajduje. Jeśli np. źle poprowadzimy trasę, ale nie pomylimy się z przystankami, to i tak będzie do większości zastosowań w pełni użyteczne (chyba, że ktoś chce sprawdzić, czy mu nie będzie hałasował autobus pod oknem na nowym mieszkaniu :slight_smile: ). Tak więc pozostaje tylko istotny problem z częstymi zmianami tras.


Spróbuję zebrać wszystkie dane do analizy co zrobić z warszawskim zbiorkomem na OSM. Widzę trzy elementy przepływu danych:

  1. Szybkość, legalność i łatwość przetwarzania danych od strony ZTM - lub może z innych źródeł, jeśli to główne źródło ma jakieś istotne felery
  2. Szybkość docierania danych z OSM do końcowego użytkownika, czyli renderowanie map i aktualizacja danych w systemach trasowania
  3. Możliwości przerobowe w ramach OSM, w tym szybkość i kompletność

Ad. 1. W komunikacji miejskiej są linie, które zmieniają się rzadko i takie, które częściej, oraz kategorie wąskie (np. metro czy linie nocne) i szerokie (np. linie autobusowe zwykłe, tzn. 1xx-2xx). Osobnym problemem jest tu kwestia dostępu do danych i tzw. re-use (powtórnego wykorzystania) danych - nie wiem jak z warszawskim ZTM-em, ale z MPK Kraków sprawa była w sądzie (vide http://transportoid.com/category/mpk-krakow/ i http://prawo.vagla.pl/node/9890). Nie interesowałem się tym głębiej, ale chodziło chyba o maksymalną szybkość udostępniania danych z rozkładów. Pytanie oczywiście, czy chodzi tylko o godziny odjazdów, czy także o trasy i czy ktoś (np. ZTM) może mieć do nas pretensje, że takie dane wykorzystujemy nie tylko jako podróżni, ale także do ponownego wykorzystania.

Ad. 2. Druga istotna sprawa to szybkość dotarcia wprowadzonych przez nas informacji do “konsumpcji” przez odbiorców, czyli szybkość odświeżania map (chyba tylko warstwa “transport publiczny” na OSM - czy jeszcze gdzieś się to wyświetla?) oraz synchronizacji z systemami wyznaczania tras - mówię abstrakcyjnie, bo nie planujemy systemu na dziś, tylko na kilka lat. Najgorzej jest z OsmAndem - to popularne narzędzie, więc warto o nim pamiętać, skoro ma wprowadzić trasowanie po zbiorkomie. Tam dane są pobierane lokalnie i odświeżane tylko gdy ktoś sam to zrobi, a domyślne bazy są odświeżane powiedzmy raz na tydzień, czyli i tak rzadko. Mogą też powstać zewnętrzne serwisy, które będą korzystać z danych OSM (a może już są gdzieś), wtedy będzie ważne jak często one będą synchronizować bazę - raz dziennie byłoby już nieźle, choć ideałem byłoby reagowanie natychmiast po ogłoszeniu ZTM. Tak czy owak OsmAnd musiałby zmienić koncepcję, żeby opóźnienie było znośne, zewnętrzne serwisy trasujące, choć nie podlegają naszej kontroli, powinny dawać radę, natomiast warstwa zbiorkomu odświeża się chyba co dobę (tak się mniej więcej pojawiały moje zmiany), ale można by zawnioskować, żeby działo się to częściej, najlepiej tak, jak Mapnik po niedawnej wymianie serwerów, czyli praktycznie od razu.

Ad. 3. Teraz kwestia pośrednika między zarządcą transportu miejskiego a systemami wyświetlania i trasowania, czyli nas - mapowiczów.

Od strony rozkładów można sobie uprościć życie i korzystać z automatów, które - jak widać - już są i ew. można je dostosować. Zmiany w trasach mogą wystąpić zawsze, tylko pytanie jak je traktujemy i jak szybko możemy je ogarniać. Przecież nawet zamknięcie kilku stacji metra jest możliwe, ale pytanie czy wtedy z torów metra mamy usuwać przebieg jego trasy? Jeśli tak, to na jak długo - na dzień, na tydzień, na weekendy podczas wakacji?

Najłatwiej chyba ogarnąć pojazdy szynowe - metro, SKM i tramwaje - bo jest ich mało, a sieć torów jest mniejsza niż sieć dróg. W drugiej kolejności autobusy “specjalne” - np. podmiejskie L-ki i nocne N-ki. Na końcu spektrum mamy autobusy dzienne linii 1xx-2xx.

I teraz pytanie - które dane z tych kategorii w ogóle chcemy mieć na OSM? Wszystkie? (To tak jak teraz - w praktyce akceptujemy liczne niedokładności, np. w czasie wprowadzania, ale może też i w kompletności, bo może nie będzie komu pilnować wszystkiego na bieżąco.) Tylko szynowe? Szynowe i autobusy specjalne? A może żadne - są tylko szyny i przystanki, ale nie informujemy co się na nich zatrzymuje?

Dodatkowe pytanie - czy podnosimy Transiki (kto? na jakich zasadach?)? Steve porzucił to z braku czasu (tak napisał w uzasadnieniu zamknięcia projektu) i nikt tego nie chciał od niego przejąć, wiec nie wiadomo, czy warto. Jak wtedy miałaby wyglądać współpraca między OSM w obrębie aglomeracji warszawskiej a Transiki.

Wydaje mi się, że na dziś jedynym pewnym celem jest aktualizacja wszystkich przystanków miejskich i podmiejskich. Jest ich dużo i oczywiście też się mogą zmieniać (np. koło mnie są przystanki istniejące, ale czasowo nieczynne, tzn. zakryte tabliczki i warto to oznaczać), ale to element trwałej infrastruktury, z której trasy korzystają (tzn. da się wyznaczyć trasę tylko relacjami do drogi, ale jest to z pewnością niekompletne).

Warto też w ogóle śledzić ogłoszenia o zmianach w ZTM - zamknięcia mostów, ulic i remonty torów są cenną informacją wykraczającą nieco poza temat komunikacji publicznej, a przydatnej do aktualizowania mapy.

Jasne, że w projekcie woluntarystycznym nikt nie wyznaczy nikomu stałej roboty, ale skoro jest nas kilka osób chętnych, to warto koordynować nasze działania, żeby było na bieżąco wiadomo, co jest do zrobienia, i żeby ktoś nie robił pracy o której wiadomo, że jest bardzo niekompletna.

A jakie są wasze wnioski?

Slusznie.

Zapros moze zainteresowanych na jakies spotkanie, pogadacie, pomyslicie wspólnie nad tematem.

@marek kleciak: Jeśli będzie taka potrzeba, to bardzo proszę, ale sądzę, że to forum nam wystarczy - moje długie doświadczenia z Wikipedii wskazują, że w kwestiach roboczych narzędzia on-line są w pełni efektywne, a potrzeba spotkań zachodzi dopiero, gdy są duże niejasności strategiczne i dla wzmacniania społeczności. Sieć pisana ma tę zaletę, że można to śledzić z zewnątrz, czyli nie zamykamy się na innych potencjalnie chętnych lub krytycznych, no i wnioski nie giną, bo na spotkaniach część rzeczy się zapomina zapisać potem.

To wszystko prawda, i tak dzieje sie tez w spolecznosci niemieckiej. Doswiadczeie stamtad jest jednak takie, ze latwiej sie niektórym osobom czegos nauczyc czy przedyskutowac niejasnosci. W kazdym razie jak spojrzycie na strone glówna, to prawie wszystkie spolecznosci z Europy zachodniej spotyka sie ze soba regularnie. U Niemców jest to np. tzw. “Stammtisch” gdzie ludzie z co wiekszych miast spotykaja sie regularnie raz w miesiacu.

A, rozumiem. Z tym że ja akurat (mimo swoich 40 lat) czuję się tzw. cyfrowym tubylcem i rzadko mam potrzebę oraz ochotę na spotkania, nawet swoich ulubionych projektów, więc słabo się nadaję na organizatora lokalnych imprez. :slight_smile: Ale gdyby to miało być obgadanie jakiejś interesującej mnie sprawy, np. zbiorkomu na OSM, to czemu nie!

Przyszło mi jeszcze do głowy w temacie zbiorkomu, żeby pamiętać o kontekście globalnym, np. jest sąsiedni wątek o Krakowie ( http://forum.openstreetmap.org/viewtopic.php?id=22236 ), a aglomeracja warszawska i tak nie jest izolowana - np. jeśli oznaczymy na torach SKM, to i tak będzie niekompletne, bo po tych samych torach jeżdżą też inne pociągi. Plus pytanie co się dzieje na świecie w tej kwestii - renderowanie warstwy komunikacja publiczna na głównej stronie OSM też poniekąd w to wchodzi, bo przecież wykracza poza warszawskość.

Dlatego ludzie sobie robia krajowe “State of the map”.
u nas byl o spotkanie stowarzyszenia OSM Polska ale nie bylo spotkania poswieceonego mapowaniu sensu stricte.
Moze to bylby pomysl - bo w sumie masz racje - sa rzeczy otwarte, nie tylko komunikacja miejska.
Spory w nieskonczonosc do niczego nie prowadza, umiejetnosc osiagania konsensusu - lepiej po polsku - zgodnosci - jest miara skutecznosci danej spolecznosci. Mnie to korci dlatego, ze jestesmy coraz lepsi w spolecznosci miedzynarodowej. No a moja chora ambicja ciagnie mne do tego zebysmy dogonili sasiadów za miedza. :wink:

Btw: Kocio - super, nie jestem jedyny powyzej 40-tki na polskim forum yes, yes, yes :stuck_out_tongue:

fajnie. spróbuję w tym pogrzebać i zobaczyć co da się wykorzystać.

marek: na State Of The Map dowiedzialem sie, ze srednia wieku uczestnikow projektu zostala ustalona na ~36 lat na podstawie tegorocznej ankiety.

masti: daloby sie, ale trzeba przyznac ze komentarzy i innych ozdobnikow tam nie ma.

Po tygodniu od próby uporządkowania tematu (http://forum.openstreetmap.org/viewtopic.php?pid=360740#p360740) rozumiem, że temat nie zażarł, czyli nie podejmujemy żadnych nowych ustaleń i robimy na piechotę, jak dotąd. A może coś się zmieni, np. może zaczął działać jakiś bot ułatwiający aktualizacje?

Oj…coś czuje, że raczej nikt nic :slight_smile: ale może

Przydałoby się coś taki skrypt(?) żeby sprawdzał przystanki wprowadzone do osm po nazwach i porównywał ją z bazą danych z ztm. A swoją drogą ta lista tu ([url]http://wiki.openstreetmap.org/wiki/WikiProject_Poland/Warsaw/Przystanki_ZTM[/url]) to trochę jej brakuje…tak myślę? Czy da się w jakiś normalny sposób wyciągnąć skądś listę wszystkich przystanków bez zarzynania się (wchodząc po kolei w każdy [stąd [url]http://www.ztm.waw.pl/rozklad_nowy.php?c=183&l=1[/url] ] ctrl+c i ctrl+v do pliku), bądź bez proszenia się ztm-u? Ciekawe jak to zrobił kolega Rogal wcześniej na wiki. Czy może jest coś o czym nie wiem? :stuck_out_tongue:

A jak będziemy robić jak dotąd to i tak przyda się dyskusja nt. update’u tagowania…bo przystanki są oznaczane w chyba 5 różnych sposobów.

Mógłbym wyciągnąć mój stary skrypt do pobierania i parsowania tras, ale nie bardzo mam gdzie wrzucić do pokazania przykładowe efekty jego pracy (dużo małych pliczków).
Nie bardzo mam czas, żeby oprogramować pobieranie danych z OSM i konfrontowanie ich z wynikami z tego skryptu, ale gdyby ktoś zrobił pobieranie z OSM, to może coś by dało radę z tym zrobić.

Niestety nie pisuję skryptów, zwłaszcza z parsowaniem HTML-a, ale schemat jest banalny - jest na tej stronie jeden długaśny wiersz, który wygląda tak (dla uproszczenia połamałem go na wiersze i skróciłem do istoty):


<div id="TwoColContent"><div id="RozkladyJazdy">

<div class="PrzystanekList"><h4>1</h4><div class="PrzystanekListColumn"></div>
<div class="PrzystanekListColumn">
<a href="http://ztm.waw.pl/rozklad_nowy.php?c=183&l=1&a=4009" title="1 Sierpnia - Warszawa">1 Sierpnia <em>(Warszawa)</em></a>
<a href="http://ztm.waw.pl/rozklad_nowy.php?c=183&l=1&a=2293" title="1. Praskiego Pułku - Warszawa">1. Praskiego Pułku <em>(Warszawa)</em></a>

<a href="http://ztm.waw.pl/rozklad_nowy.php?c=183&l=1&a=4237" title="Żywiecka - Warszawa">Żywiecka <em>(Warszawa)</em></a></div>
<div class="cb"></div></div><div class="cb"></div></div>
</div></div>

Wystarczy brać każdy

i w jego ramach obrabiać każdy link - między znacznikami mamy nazwę przystanku (pewnie trzeba jeszcze pominąć znaczniki , bo one są tylko dla wyróżnienia miejscowości, a te są i tak w nawiasach), a pod href jest link do bazy ZTM (który MSZ warto zachować, żeby móc ręcznie sprawdzać zmiany w przyszłości). To się powinno dać prosto porównać, tylko trzeba jeszcze wyciągnąć listę przystanków z bazy OSM.

Przydało by się to nieco scentralizować/uspołecznić: skrypty trzymać na jakimś githubie, a uruchamiać na jakimś wspólnym (stowarzyszenia?) serwerze, żeby nie było problemu, że wszystko działa, ale tylko dopóki jedna osoba chce i ma czas, bo trzyma wszystko na domowym pececie i nikt inny tego nie dotyka.

Nie pamietam jak pobieralem rozklady dla tego automatu do relacji tramwajowych ale to bylo w miare proste, chyba komenda wget z wildcards w adresie.

Moze latwiej byloby posluzyc sie API jakdojade.pl. Na ostatnim hackatonie otwartych danych w Warszawie (http://centrumcyfrowe.pl/hakaton-otwartych-danych-2013/) tez bylo cos robione w kierunku udostepniania tych rozkladow w rozsadnych formatach, ale z tego co wiedze wiecej udalo sie zrobic dla Krakowa.

Witam,

Ja pewnie specjalnie zaangażować się w “obsługę” komunikacji miejskiej nie będę w stanie, jednak cieszę się, że są osoby tym zainteresowane i jakieś zasady mają szansę zostać ustalone. Podczas swoich edycji wielokrotnie miałem wątpliwości, czy czegoś we wprowadzonych przez innych relacjach nie psuję, i nawet zastanawiałem się czy nie podjąć jakiejś dyskusji na ten temat (o istnieniu tego forum nawet nie wiedziałem aż do dzisiejszego wpisu na stronie wiki). Zatem mnie by najbardziej zależało na ustaleniu jednolitego sposobu mapowania przystanków i oznakowywania relacji tras i przedstawienie go w jakiejś przystępnej formie, bo teraz nie do końca pojmuję jak poprawnie wprowadzona relacja linii powinna wyglądać.

Jeśli chodzi o przedstawianie graficzne tras na mapie, to ja znam stronę http://öpnvkarte.de/?zoom=13&lat=52.24&lon=21 która pokazuje poza liniami autobusowymi również relacje tramwajowe i kolei (aktualizacja dużego przybliżenia następuje chyba codziennie, ale w oddaleniu 16 i mniejszych nie ma elementów wprowadzonych przed paroma tygodniami), natomiast na stronie OSM Polska http://osmapa.pl/ jest nakładka “Transport publiczny” (niestety są tam tylko jakieś bardzo wybrane linie autobusowe, które w dodatku wyświetlają się tylko przy większym oddaleniu - zoom nie większy niż 15).

Bez względu na swój wkład, dyskusję pewnie będę śledzić z zainteresowaniem.
pozdrawiam,
Tomek

Odpaliłem mój dawno nieużywany skrypcik na najnowszych danych i on wyprodukował dla każdej linii i schematu (dla większości linii tożsamy z kierunkiem, ale w liniach z wariantami jest ich więcej niż 2) pliki typu:
(tu dla linii 33)


METRO MŁOCINY               15&0&0& &605915&0&p&p&
METRO MŁOCINY               08&1&1& &605908&0&n&&
METRO MŁOCINY               06&2&2& &605906&0&n&&
NOCZNICKIEGO                01&1&1& &605801&0&n&&
POPIELA                     03&1&1& &602703&0&n&&
BOGUSŁAWSKIEGO              03&2&2& &602603&0&n&&
CM.WAWRZYSZEWSKI            03&1&1& &602503&0&n&&
ASPEKT                      03&1&1& &602403&0&n&&
AL.REYMONTA                 03&1&2& &604603&0&n&&
PIASKI                      03&2&2& &604503&0&n&&
DURACZA                     03&2&2& &604303&0&n&&
[..]
DW.CENTRALNY                09&2&2& &700209&0&n&&
KOSZYKOWA                   03&1&1& &708903&0&n&&
NOWOWIEJSKA                 03&1&2& &709003&0&n&&
GUS                         03&2&2& &709303&0&n&&
BIBLIOTEKA NARODOWA         03&1&1& &709403&0&n&&
METRO POLE MOKOTOWSKIE      03&2&2& &322803&0&n&&
KIELECKA                    01&1&1& &&0&k&k&

To jest lista przystanków - każdy zespół przystanków ma swój numer, niestety w OSM one chyba nie istnieją.
Dla każdego schematu powstaje jednocześnie lista ulic:


WARSZAWA & NOCZNICKIEGO                     
WARSZAWA & KASPROWICZA                      
WARSZAWA & NOCZNICKIEGO                     
WARSZAWA & WÓLCZYŃSKA                       
WARSZAWA & BRONIEWSKIEGO                    
WARSZAWA & AL.JANA PAWŁA II                 
WARSZAWA & CHAŁUBIŃSKIEGO                   
WARSZAWA & AL.NIEPODLEGŁOŒCI                
WARSZAWA & RAKOWIECKA                       

Na bazie tego można by próbować pokusić się o jakiś odpowiednik osmonitora dla poszczególnych linii.

Do tego mam nadzieję dojdziemy :slight_smile: Może na początek jakieś dogadanie tagowania, bo nasze automatyzowanie pewnie trochę potrwa?

O jakie pobieranie danych chodzi? Takie zwykłe [(:P) via np. overpass?] czy jakieś zaawansowane?

Ok, ale trzeba pamiętać, że jest więcej niż 1 przystanek do danej nazwy. Np. zarzucony przystanek 1 sierpnia to tak naprawdę 3 przystanki bo tagujemy je jako “1 sierpnia 01”…02…03…itd.

Oooo…super! Dzieje się :wink:

METRO MŁOCINY               15&0&0& &605915&0&p&p&

Te cyferki to co oznaczają?
15-numer przystanku jak myślę? Tzn. ‘Metro Młociny 15’
605915 to ten ID zespoły przyst., a reszta? Czy jakieś nieważne coś?

Też zauważyłem ten numer i może warto go zacząć wprowadzać? Może ułatwiło by to automatyzację, np dla numeru zespołu przystankowego xxx mamy n przystanków i potem byłoby sprawdzenie z osm?

Wygląda na to, że ten Kraków też jest bardzo ograniczony (“Tylko jedna linia, Rozkład jedynie dla dni powszednich, Tylko jeden kierunek”):

https://github.com/dex4er/gtfs-feed-poland

i w dodatku od 7 miesięcy nie ruszane, ale jest jeden zasadniczy plus tego skryptu - przerabia dane na format GTFS (https://en.wikipedia.org/wiki/General_Transit_Feed_Specification), który jest chyba bardzo uniwersalny. Idealny grunt pod Transiki jakby co.

A w ogóle można Dextera podpytać albo wciągnąć do zabawy - może go zmotywuje, że ktoś chce z tego realnie korzystać, a nie tylko uwalnianie dla uwalniania? A jak będzie mechanizm, to można też zastosować do Krakowa, bo jest ekipa która o tamtejszej komunikacji przecież dyskutuje na tym forum.

METRO MŁOCINY - nazwa “oficjalna” zespołu przystanków,
6059 - numer zespołu przystanków,
15 - numer przystanku (konkretnego “peronu”)
605915 w typ wypadku jednoznacznie identyfikuje “peron” (oficjalnie - przystanek) w aglomeracji warszawskiej.
Zespół przystanków to mogą być 2 przystanki naprzeciw siebie po 2 stronach ulicy, może być kilka przy wlotach skrzyżowania, może być kilkanaście w dużym węźle, czasem rozciągnięte na pareset metrów.
Sieć tramwajowa i autobusowa zasadniczo ma odrębne perony (wolę tej nazwy używać, choć nie jest oficjalna), ale w paru miejscach miasta przynajmniej kiedyś było parę wspólnych peronów.

Ech, żeby tak w 2000 roku był ten GFTS… nie musiałbym wtedy wymyślać własnych schematów danych…

METRO MŁOCINY 15 - to numer przystanku
6059 - ID zespołu
15 numer przystanku znowu

jak najbardziej można.
Przystanki w Warszawie wymagają i tak uporządkowania. Na razie robię linie ale potem trzeba będzie ujednolicić schemat przystanków. Wtedy będzie dobry moment na dopisanie hurtowo

To wymaga zrobienia drugiego kroku - z podanych linków wchodzimy na stronę danego przystanka i tam znów taki długaśny wiersz (obrobiony tu dla celów poglądowych jak wyżej):


<div id="TwoColContent"><div id="RozkladyJazdy"><h2 id="h2b64"><span>rozkłady jazdy</span></h2>
<div id="RozkladyJazdyTop"><p>Rozkłady jazdy ważne w dniu: 17.09.2013 (wtorek)</p></div>

<div id="RozkladContent"><div id="RozkladHeader"><h4>1 Sierpnia (<em>Warszawa</em>)</h4></div>
<div class="PrzystanekKierunek"><p>ulica: <strong>Al.Krakowska</strong></p><p>przystanek: 
<a href="http://ztm.waw.pl/rozklad_nowy.php?c=182&l=1&n=4009&o=01">
<strong>1 Sierpnia 01</strong></a> &raquo; <strong>Korotyńskiego</strong></p>
<div class="PrzystanekLineList">
<div class="cb"></div>
<p>stały:</p>
<a href="http://ztm.waw.pl/rozklad_nowy.php?c=182&l=1&a=154&n=4009&o=01">154</a>
<a href="http://ztm.waw.pl/rozklad_nowy.php?c=182&l=1&a=306&n=4009&o=01">306</a>
<div class="cb"></div>
<p>na żądanie:</p>
<a href="http://ztm.waw.pl/rozklad_nowy.php?c=182&l=1&a=N38&n=4009&o=01">N38</a>
<a href="http://ztm.waw.pl/rozklad_nowy.php?c=182&l=1&a=N88&n=4009&o=01">N88</a>
</div></div>

Zwróćcie uwagę, że mamy tu od razu podane na jaki dzień to jest ważne (warto zapisywać u nas w bazie dla porównania!) oraz że jest rozpiska na poszczególne numery (np. tu jest “1 Sierpnia 01”) z podziałem na stałe i na żądanie - mimo braku prawdziwego ustrukturalizowania maszynowego to jest to mocno przewidywalne i szablonowe (włącznie z konstrukcją linków!), co ułatwi nam życie. W dodatku numery przystanków mają napisane w jakim to kierunku, co w połączeniu z opisem trasy pozwoli lokalizować ich położenie na mapie.

Zdecydowanie warto. Jeśli dobrze zgaduję, to ciąg “n=4009&o=01” zawarty w tych linkach oznacza “przystanek 4009 numer 01”, czyli unikalny identyfikator przystanku “1 Sierpnia 01” to 400901.