Warszawa - komunikacja miejska

Mniej więcej tak (język nie ma znaczenia), z tym że ten skrypt tworzy tylko gołą tekstową listę odnośników (bez opisu), a mnie chodzi o przerobienie pliku tekstowego na taki sam plik, tylko HTML-owy z możliwością kliknięcia dla szybkiego sprawdzenia gdzie dany przystanek fizycznie leży.

Już uzupełniłem poprzedni post - niestety ‘dla szybkiego’ może być problemem - plik jest wielki :wink: Może to co pokazuje się na stronie może mieć mniejszą formę.
Mam rozumieć, że na stronie ma się pojawić nazwa itp., czyli wszystko z pliku tekstowego, co jest przed wsp.

@marimil: rzeczywiście, wielki… :slight_smile:

Wobec tego może wystarczy, żeby z tego wychodził plik z listą podlinkowanych numerów, w sensie:

<ul><link>xxxxxx</link></ul>

Ja to sobie mogę ręcznie podzielić na mniejsze porcje, bylem wiedział do czego dany link prowadzi.

Wersja tylko z numerami:

cat RA140428.TXT | grep 'Y= ' | perl -p -e 's/^\s*([0-9]+)\s+.*\s+Y= ([0-9.]+)\s+X= ([0-9.]+)\s*/<ul><a href=\"http:\/\/www.openstreetmap.org\/\?mlat=$2&mlon=$3&zoom=18\">$1<\/a><\/ul>\r\n/gi;'

Wersja dla całych opisów:

 cat RA140428.TXT | grep 'Y= ' | perl -p -e 's/\s*(.*)\s+Y= ([0-9.]+)\s+X= ([0-9.]+)\s*/<ul><a href=\"http:\/\/www.openstreetmap.org\/\?mlat=$2&mlon=$3&zoom=18\">$1<\/a><\/ul>\r\n/gi;'

Wyniki wydają się lżejsze dla przeglądarki i mam nadzieję, że działa dla innych plików :wink:

Ta dłuższa wersja jest fajna, tzn. dobrze gdyby zawierała też samą nazwę przystanku, ale to wymaga chyba większego parsowania, czyli sięgnięcia do jednego z wcześniejszych wierszy (tego, w którym podany jest numer i nazwa zespołu), więc na razie wystarczy - wielkie dzięki!

Niezła jazda z tymi plikami :wink: Dla autobusów chyba jeszcze jest znośnie ale tramwaje.

Jakiś skrypt wydłubałem. Testowałem tylko na jednym pliku i mam nadzieję, że działa na innych. Dla autobusów pokazuje to co chciałeś, z tramwajami nie walczyłem (o ile w ogóle tam coś na ten temat jest). Między linkami dla tramwajów pokazują się jakieś numery-śmieci.

EDIT. A nie, pomyliłem - tam się linki do przystanków powtarzają i nie ma rozdziału ze względu na środek lokomocji.

Mam pytanie w sprawie nieczynnych przystanków - np. ten autobusowy koło Budowlanej 03: http://www.openstreetmap.org/?mlat=52.281040&mlon=21.026620&zoom=18#map=19/52.28108/21.02662. Nie ma go w bieżącym spisie zespołu “Budowlana”, choć jego nazwa pozostała (bez numerka) i niewykluczone, że kiedyś będzie znów w użyciu, więc szkoda kasować. Niestety nie znalazłem w opisach tagów jak oznaczać takie nieczynne przystanki, ale może ktoś z was ma na to pomysł?

Poprawione.

@kocio
Czy dobrze rozumuję, że współrzędne są zdublowane?

Zastanawiam się w ogóle, czy nie lepiej zrobić jakiś parser do jakiegoś w miarę standardowego formatu pośredniego (np. jakaś odmiana XML), i dopiero tamten obrabiać?

Być może nawet nie warto się męczyć i na początek zasięgnąć w tej sprawie języka u samego ZTM, skoro sami zapraszają:

(Pewnie chodzi o ten formularz: https://secure.ztm.waw.pl/?c=115&l=1)

Chodzi ci o ten nieczynny? Użyłem współrzędnych istniejącego przystanku obok, bo nie chciało mi się kombinować, a leżą tuż koło siebie.

Nie, nie, spokojnie. Akurat takie linki kliknąłem i myślałem, że druga część (z rozkładami) dotyczy tramwajów. Nie przyjrzałem się dokładnie.
A to jest podzielone na sekcje z dodatkowymi szczegółami.

I nie chodzi mi o ten nieczynny, tylko o plik ogólnie.

Nowy skrypt jest jeszcze bardziej przydatny! Dałbym tylko w nagłówku HTML-a kodowanie Windows 1250, żeby tekst był w pełni czytelny.

Ale chyba nie rozumiem o co chodzi z tymi zdublowanymi położeniami przystanków - podaj przykład, ja w każdym razie takiego nie spotkałem.

Nie chodzi mi o zdublowanie przystanków, tylko powtarzają się wpisy dotyczące jednego przystanku.
Najpierw jest lista z czterocyfrowymi numerami. Dalej te numery i nazwy powtarzają się uzupełnione o wpisy z sześciocyfrowymi numerami i współrzędnymi przystanków. Dużo dalej między rozkładami z godzinami też pojawiają się wpisy z sześciocyfrowymi numerami (jednak nazwa tutaj jest z tej linii z numerem czterocyfrowym) i współrzędnymi przystanków. Trochę zamieszałem ale nie znam się na nazewnictwie tych wpisów w pliku.
Przykład dwóch linii “wyrwanych” z pliku z 5.05:


   7911   WARSZAWA RDMIECIE WKD,        --  WARSZAWA
         791101   1      Ul./Pl.: WARSZAWA,                         Kier.: WARSZAWA OCHOTA WKD,              Y= 52.227560     X= 20.999990  
               791101  WARSZAWA ŚRÓDMIECIE WKD,       --    Y= 52.227560     X= 20.999990  

Z tym, że (dla pliku z 5.05) zamiast 25536 linii z linkiem jest ich tylko 7911. Więc albo coś gubimy albo część wpisów jest wielokrotnych.

EDIT. Np. dla przystanku 100101 w pliku jest 10 wpisów z tymi samymi współrzędnymi.
Czyli możemy wnioskować, że ostateczny skrypt wybiera to co trzeba i plik jest 4x mniejszy.

Najwyraźniej chodzi o to, że plik składa się z kilku sekcji i te przystanki mogą się gdzieś powtarzać, pewnie w opisie linii. Trzeba ograniczyć działanie skryptu do sekcji “ZP” (tzn. między znacznikiem “*ZP” a “#ZP”) i dalej nie przetwarzać - opisy linii są w dalszej sekcji “LL”.

Tak też działa ostatnia wersja. Uzupełniłem o kodowanie.

Uff, na dziś dość, na razie stanąłem na zespole 1100. Dzięki temu skryptowi oznaczanie refów idzie stosunkowo sprawnie, a zdarzające się czasem korekty położenia albo dodawanie brakujących przystanków nie absorbują więcej uwagi niż powinny!

Widzę, że Javnik też ruszył z kopyta - czy jedziesz wedle numerków zespołów, czy po obszarach?

Oczywiście dużo lepszy byłby skrypt, który porównywałby plik z bazą i tworzył raport z danymi o obecności przystanku w jakimś promieniu, odległości od wsp. oraz jego tagowaniu. To już jednak nie moja liga. Na pewno byłby lepszy na przyszłość do wyłapywania nowych/usuniętych przystanków.

I ja dziękuje, przyda się :slight_smile:

Na razie lecę po Białołęce, potem zobaczymy jak…

Trzeba robić, bo wg. moich danych w aglomeracji jest ~2250 zespołów przystankowych i ~5500 przystanków. W osm w obszarze na oko aglomeracji jest ~4300 przystanków, z tego ~4000 nazwanych…a tych z tagiem ref wprowadziliśmy dotychczas ~350 :wink:

Hm, lecisz raczej po Tarchominie jak dotąd - Białołęka jest prawie nietknięta. Link na Overpass pokazuje tylko przystanki autobusowe i to w starym stylu (nowe to te z podziałem na miejsce oczekiwania i postoju), a tramwajowych w ogóle nie uwzględnia, więc trochę więcej. Ale oczywiście w zależności od tempa pracy to i tak pracy na tygodnie lub miesiące.

Nom…to taki czas przyszły w domyśle miał być :slight_smile: Ale już cała Białołęka zrobiona. Parę rzeczy wyszło: np. taki przystanek mamy w bazie osm: Okrągła 01 i 02 po drugiej stronie. Przystanków nie ma w bazie ztmu, co pewnie oznacza, że chwilowo nie są one używane…ale nie mamy do nich numerów. Znalazłem też trochę tymczasowych z numerami 5x, ale zostawiłem je w spokoju :slight_smile:

Widzę, że Alkomat zaczął po lewej stronie Wisły grzebać, ale i tak przydałaby się pomoc…

Edit: Będę wybierał przystanki spoza Warszawy :slight_smile: Zaczynam od Legionowa…
Edit2: Trochę się pobawiłem tym skryptem i zrobiłem gpx’a z tymi przystankami…niestety nie ma tam ich nazw, ale są przynajmniej te nieszczęsne numery zgeolokalizowane :slight_smile: Może się przyda komuś

Tak więc, wygląda to mniej więcej tak: