Numery stacji w systemie MEVO
są pięciocyfrowe i zaczynają się od 10, 11 oraz 12.
Takich stacji jest 654 (albo 653 zależy jak liczył).
Oprócz tego jest stacja 999993
o współrzędnych w Wawie(52.261177495785/20.968099236488), która
zapewne omyłkowo jest wykazywana
w zestawie (https://rowermevo.pl/mapa-stacji/). Jak się naciśnie
guziczek Pobierz bieżące lokalizacje,
to się dostanie plik CSV
o nazwie locations_YYYY-MM-DD_HH-MM-SS.csv
.
Plik ten ma 704 stacje czyli o 50 więcej niż wykazywana na stronie.
Te pomijane stacje mają numer zero.
Z tych 654 stacji 363 jest w Gdańsku 55,56%; Gdynia 145 (22,17%); Tczew 28 (4,28%); Sopot 27 (4,13%); Rumia 23 (3,52%); Reda 17 (2,60%); Puck 14 (2,14%); Inni 18 (Władysławowo, Kartuzy, Sierakowice, Somonino, Stężyca, Żukowo.)
Te 50 coś stacji-niestacji wygląda jakoś tak:
uid;number;name;city;latlng;bikes;bike;spot;bikeSpot;terminal;address 13915356;0;BIKE 99127;Tczew;54.08056000 18.79086222;1;1;0;;;
Mają dziwną nazwę a w atrybucie bike mają true (albo jeden) a w atrybucie spot mają zero (czyli false). Z tego wychodzi, że te stacje to nie są stacje tylko jakieś luźne rowery pozasystemowe. Taką mam koncepcję...
Ze strony
https://rowermevo.pl/
co 120 sekund jest pobierany plik locations.js
który zawiera (jak mniemam) listę rowerów zaparkowanych
na stacjach w systemie roweru miejskiego Mevo. Jak rower zmienił
stację to znaczy, że ktoś
się nim przejechał (lub go przewieziono dla jakiś celów.)
Pobrane dane są dostępne
tutaj.
Konkretnie plik MEVO_bikes_ROKMIESIĄC.csv
to plik CSV, którego
każdy wiersz zawiera czas, idRoweru, stanBaterii
oraz współrzędne geograficzne. Rejestrowane są tylko przemieszczenia,
tj. na przykład jeżeli rower jest wykazywany przez 10 kolejnych pobrań
jako zaparkowany w tym samym miejscu, to tylko pierwszy wpis jest
zapisywany. Z kolei MEVO_tracks_ROKMIESIĄC.csv
zawiera idRoweru,
liczbę przemieszczeń
oraz kompletny ślad w postaci par współrzędnych.
Plik MEVO_bikes_201905.csv
(czyli za maj) zawiera 265 tys wierszy,
plik MEVO_tracks_201905.csv
zawiera 1550 wierszy (czyli zarejstrowanych
rowerów w systemie). Tutaj uwaga: część wpisów/rowerów jest
dziwna: są rowery jeżdżące po Warszawie,
po Bałtyku a nawet w księstwie Monako.
Szczegóły
tutaj.
Na podstawie pliku MEVO_tracks_ROKMIESIĄC.csv
obliczyłem łączny
i średni dystans pokonany przez rowery w maju, pomijając
„dziwne” wpisy. Za kryterium dziwności przyjęto punkt
znajdujący się na zewnątrz prostokąta 53.8--55.0/17.4--19.5
(długość/szerokość). W ten sposób zostało 1370 rowerów a odpadło 180
„dziwnych”. Konkretnie policzyłem poniższym skryptem:
#!/usr/bin/perl use Geo::Distance; my $geo = new Geo::Distance; my $distGrandTotal; my $distTotal; while (<>) { chomp(); ($bike, $nodes, $track) = split /;/, $_; $track =~ s/[ \t]+$//; @trkpts = split / /, $track; $distTotal=0; $skipBike = 0; foreach $t (@trkpts) { ($lon, $lat) = split /,/, $t; if ($lat < 53.8 || $lat > 55.0 || $lon < 17.4 || $lon > 19.5 ) {## $skipBike = 1; print STDERR "SKIPPED $bike: lat = '$lat' / lon = '$lon'\n"; } else { if ($latPrev > 54.0 ) { $dist = $geo->distance( "meter", $lonPrev, $latPrev => $lon, $lat ); $distTotal += $dist; } $lonPrev = $lon; $latPrev = $lat; } } unless ($skipBike) { $mean = $distTotal / 31; printf "%s;%.2f;%.2f\n", $bike, $distTotal, $mean; $distGrandTotal += $distTotal; $validBikes++; } } $grandMean = $distGrandTotal / (31 * $validBikes); print STDERR "Średnio: $grandMean ($validBikes)\n";
Minimum przejechane 0km, pierwszy kwartyl 12,8km, mediana 17,8km trzeci kwartyl 21,2km. Maksimum 30,7km. Przypominam, że są to średnie dzienne dla 31 dni maja. Oczywiście nie są to wielkości prawdziwe: po pierwsze dystans jest liczony jako proste pomiędzy punktami (rejestrowanymi co 120s); po drugie nie wszystkie przemieszczenia polegają na pedałowaniu--czasami rower jest wieziony. Arbitralnie przyjmijmy że prawdziwa wartość to 200% zarejestrowanej (to chyba dużo mimo wszystko). Dalej załóżmy że gdyby z roweru korzystało się 6 godzin na dobę (można by policzyć ile się korzysta ale tego jeszcze nie zrobiłem)--co dalej nie wydaje się czymś nadmiernie wyśrubowanym (połowa czasu od 8 rano do 20 wieczorem). Wreszcie przyjmijmy 12km/h jako prędkość przemieszczania się (jak na pojazd z silnikiem -- moim zdaniem -- już mniej się nie da). Wychodzi 6 x 12 = 72km. A jest 30km czyli nawet nie połowa...
Rozkład średnich przedstawia histogram poniżej