czwartek, 30 sierpnia 2018

Rysowanie profilu wysokości w R

Ze śladu GPX prostym skryptem wyciągam co trzeba tworząc plik CSV o następującej zawartości (nazwy kolumn: data-czas,wysokość,prędkość,dystans przebyty):

daytime;ele;speed;dist  

Teraz poniższym skryptem rysuję profile wysokości (wysokość/prędkość vs czas oraz wysokość/prędkość vs dystans)

library(reshape)
require(ggplot2)

graphWd <- 6
graphHt <- 5

args = commandArgs(trailingOnly = TRUE);

if (length(args)==0) { stop("Podaj nazwę pliku CSV", call.=FALSE) }

fileBase <- gsub(".csv", "", args[1]);
outFile1 <- paste (fileBase, "_1.pdf", sep = "");
outFile2 <- paste (fileBase, "_2.pdf", sep = "");

what <- args[2];

# http://stackoverflow.com/questions/7381455/filtering-a-data-frame-by-values-in-a-column
d <- read.csv(args[1], sep = ';',  header=T, na.string="NA");
coeff <- median(d$ele)/median(d$speed)
d$speed <- d$speed * coeff


p1 <- ggplot(d, aes(x = as.POSIXct(daytime, format="%Y-%m-%dT%H:%M:%SZ"))) +
  geom_line(aes(y = ele, colour = 'wysokość', group = 1), size=1.5) +
  geom_line(aes(y = speed, colour = 'prędkość', group = 1), size=.5) +
  stat_smooth(aes(y=speed, x=as.POSIXct(daytime, format="%Y-%m-%dT%H:%M:%SZ"), colour ='prędkość wygładzona')) +
  ylab(label="Wysokość [mnpm]") +
  xlab(label="czas") +
  scale_y_continuous( sec.axis = sec_axis(name="Prędkość [kmh]",  ~./ coeff)) +
  labs(colour = paste( what )) +
  theme(legend.position="top") +
  theme(legend.text=element_text(size=12));
p1
ggsave(file=outFile1, width=graphWd, height=graphHt )

p2 <- ggplot(d, aes(x = dist)) +
  geom_line(aes(y = ele, colour = 'wysokość', group = 1), size=1.5) +
  geom_line(aes(y = speed, colour = 'prędkość', group = 1), size=.5) +
  ##geom_smooth() +
  stat_smooth(aes(y=speed, x=dist, colour ='prędkość wygładzona')) +
  ylab(label="Wysokość [mnpm]") +
  xlab(label="dystans") +
  scale_y_continuous( sec.axis = sec_axis(name="Prędkość [kmh]",  ~./ coeff)) +
  labs(colour = paste( what )) +
  theme(legend.position="top") +
  theme(legend.text=element_text(size=12));
p2

ps <- stat_smooth(aes(y=speed, x=dist));

ggsave(file=outFile2, width=graphWd, height=graphHt )

Teraz na koniec ciekawostka. Mój smartfon produkuje pliki GPX z superdokładnym stemplem czasu np. 2018-08-23T04:52:43.168Z, na czym wysypuje się R. Po prostu usuwam część po kropce dziesiętnej oraz samą kropkę (tj. .168Z) i działa.

Wycieczka do Gruzji #4

Pierwszy raport (może będzie później bardziej szczegółowy)...

Dojazd 18--19.08

Wyjazd 8:20 z Sopotu na Lotnisko Katowice-Pyrzowice. Po drodze przystanek w Częstochowie w lokalu Bistro-Setka (polecamy). Samochód został na parkingu Wczasowicz (też polecamy).

Start krótko po 17:00 Lądowanie w Kutaisi około 22:00 (różnica czasu). Od razu lecimy po gruzińską kartę SIM. Mamy wprawdzie gruzińskie SIMy z poprzedniej wycieczki, ale akurat nie ma tej konkretnej firmy w Kutaisi na lotnisku (karta była kupowana w Tbilisi). Ponieważ jest jedenasta w nocy, ponieważ rano pojedziemy na zadupie gdzie w ogóle nic przypuszczalnie nie załatwimy i ponieważ karta kosztuje zaledwie kilka lari kupujemy nowe. Procedura jest szybka i sprawna tyle, że moja karta nie działa. Nie było czasu na reklamacje, ważniejsze było dostanie się do Kutaisi więc problem odpuściłem. Kupiliśmy bilety na marszrutkę i pojechaliśmy do miasta. Po drodze dołączyliśmy do dwójki dziewczyn z PL, które miały rezerwację w hostelu. One miały, my nie ale też nas przenocowali za 15 GEL/osobę. Do tego zamówili taksówkę na rano na dworzec autobusowy skąd odchodzą marszrutki do Mestii. Bilet do Mestii kosztuje 25 lari. Odjazd o 8:00.

Po dotarciu do Mestii spotykamy się z naszym przewodnikiem, który wiezie nas na kwaterę. Mówiąc całkiem szczerze to kupiliśmy kota w worku. Zabrałem się bowiem za organizowanie naszego trekingu na tyle późno, że przewodnika wynajeliśmy w klasycznej strategii rozpoznania walką. Po wpisaniu w google trekking Mestia Ushguli, wysłałem mejla do firmy, której strona/opis mi się spodobała. Firma odpisała że jak najbardziej a nawet w terminie 20--23 będzie przewodnik mówiący po polsku. OK, wchodzimy w to. Teraz w Mestii poznajemy w co...

Więc polskojęzyczny przewodnik nazywa się Agnieszka i Lasza, polsko-gruzińskie małżeństwo prowadzące firmę pn. GeoPol travel (są na FB). Nas poprowadzi Agnieszka (pierwszy dzień z mężem). W kontrakcie mamy też wyżywienie, co w praktyce oznacza, że każdy guesthouse serwuje nam śniadanie i kolację oraz wręcza launchbox do zjedzenia na trasie. Jedzenie nieprzetworzone: chleb, ser, warzywa... Samo zdrowie...

Rozpakowujemy się. Popołudnie czas wolny, trekking rozpoczynamy jutro. Zwiedzamy Mestię, w tym muzeum oraz wieżę do której można wejść. Po powrocie z miasta okazuje się, że mamy towarzystwo w hostelu: dokwaterowała się wycieczka z Izraela (ok 10 os osób--nie liczyliśmy dokładnie)

dzień #1: 20.08 Mestia-Zabeshi (17,0 km na moim GPS)

Rano śniadanie o 8:00. Wycieczka z Izraela je wcześniej i wcześniej wychodzi na tą samą trasę co my (wkrótce ich miniemy bo wolno chodzą). Ponieważ wynajęliśmy przewodnika trekking przebiega bezstresowo. Idziemy tam gdzie każą i podziwimy widoki po drodze. Atrakcją są noclegi, będące okazją do poznania ludzi dosłownie z całego świata. Pierwszy nocleg mamy w guesthausie Beqa Naveriani (Beka to popularne imię męskie tutaj). Na kwaterze jesteśmy my i 6 Niemców + ich przewodnik (których nb. już poznaliśmy na trasie). Niemcy (starsi od nas) idą bez bagaży, które wiezie wynajęty koń powożony przez wynajętego człowieka. Można wynająć samochód, bo do wiosek idzie dojechać drogą, ale podobno koń jest tańszy. Wspólną kolację zakłóca wyłączenie prądu (do rana). Trochę siedzimy przy świecach, ale w końcu idziemy spać. Wstaję rano i prądu dalej nie ma. Nie ma też w związku z tym wody w kranach i nie tylko (jak u Kazika S.: wszystkie deski zasikane/wszystkie kible zasrane/Mars napada) Rano podczas śniadania włączają prąd.

dzień #2: 21.08 Zabeshi-Adishi (11,6 km)

Śniadanie o 8:00. Po drodze zbieramy grzyby, które Agnieszka przygotuje na kolację. Nocujemy (guesthouse Bedo&Tamila jeżeli dobrze odczytałem nazwę) w składzie: 2 Hindusów, Hiszpan (wszyscy Cambridge/fizyka) Węgierka + Francuz mieszkający w Budapeszcie, Żydówka z Izraela (polskie korzenie) oraz dwóch Niemców z Monachium, pokonujących szlak na rowerach downhillowych (jeden z Polskim nazwiskiem, ale nic poza tym). Z tym downhillem to dziwaczny pomysł, ja bym nie rekomendował...

dzień #3: 22.08 Adishi-Iprali (18,5 km)

Dzień najdłuższy na całej wycieczce. Urozmaiceniem jest przejazd przez rzekę na koniu (z braku mostu). Można przejść, ale wtedy trzeba mieć jakieś inne obuwie no i zdejmować buty. Po drodze do Iprali mijamy pozostałości wioski Khalde Nocujemy w Ucha guesthouse, w którym nocuje chyba połowa tych co idą szlakiem do Iprali i nie chcą spać w namiotach:-)

dzień #4: 23.08 Iprali-Ushguli (16,1 km)

W zasadzie koniec wielkiego trekkingu. Rano jedziemy do Uszguli samochodem. Tam idziemy oglądać lodowiec, po powrocie zwiedzamy Uszguli. Około 16:00 powrót samochodem do Uszguli (2 godziny, bo droga jest w budowie) W Uszguli/Mestii jest masa rowerzystów na rowerach MTB. NB: byłem już 3 razy w Gruzji i praktycznie nie widziałem rowerzystów, a teraz całe stada--miejscowi (głównie dzieci), turyści. Widziałem nawet porządny sklep w Kutaisi i masę rowerów na targu (tureckim) tamże. Nie wiem czy to ,,efekt Swanetii'' czy też rowery stały się bardziej popularne w całej Gruzji.

dzień #5: 24.08 Mestia (ok. 20km)

Zostajemy jeden dzień dłużej w Mestii i idziemy oficjalnym szlakiem na punkt widokowy Zuruldi. Trasa taka sobie, bo połowa wiedzie wzdłuż drogi asfaltowej. Nie dochodzimy do Zuruldi tylko do Heshkili huts. Tam spotykamy wycieczkę młodych Gruzinek. Jedna przyznaje się do Polskiego pochodzenia (babka Różycka). To już trzecia osoba przyznająca się do Polskiego przodka BTW (Żydówka/Adishi, Angielka/Iprali). Wracamy tą samą drogą.

Powrót

Sumując przeszliśmy ok 63,0km + 20km ostatniego dnia idąc na Zuruldi (ale nie dochodząc tam)...

Odjazd z Mestii teoretycznie 8.00 Teoretycznie bo przez circa 30 minut busik krążył po mieście w poszukiwaniu pasażerów, których ciągle brakowało do kompletu. W końcu zdesperowany kierowca zajechał na stację benzynową na rogatkach miasta, gdzie zarządził przesiadkę do innego busa. Teraz już był prawie komplet, tyle że to nie był koniec kombinacji. Po jakieś pół godzinie zjeżdżania serpentynami z Mesti do Zugdidi pojawił się nieoczekiwanie pierwszy bus z jednym pasażerem w środku--który później okazał się zmiennikiem kierowcy a z pobliskiej chałupy wyłonił się tłum 9 Gruzinów, ewidentnie kandydatów na wakujące 5 miejsc. Kurcze co teraz...

Szczęśliwie z tej dziewiątki, troje było żegnających, więc nie było aż tak wielkich problemów z upchaniem reszty. Papierosek, buzi-buzi i jedziemy. Nawet nam idzie i doganiamy całe stado marszrutek, które robią sobie przerwę w no-name miejscu przed Zugdidi. Niestety nasi kierowcy też tu śniadaniują potem palą, co w rezultacie skutkuje następnymi 30 minutami w plecy. Jest 10:30, jechaliśmy może 1,5 godziny reszta to przerwy. No ale teraz bus rwie w dół i jest nadzieja. Całkiem sprawnie mijamy Zugdidi, zjeżdżamy do stacji benzynowej. Przerwa. Idziemy do sklepu, wracamy a samochód właśnie odjechał chuj-wi-gdzie. Współpasażer z Ukrainy oznajmia, że celem wymiany koła. Siedzimy czekamy. Bus wraca po 20min. Jedziemy dalej ale nie za długo bo bus zjeżdża do pierwszej przydrożnej wulkanizacji. Coś jednak nie gra, ale widać nie mają tego co trzeba bo stoimy zaledwie 5 minut i jedziemy do następnej przydrożnej wulkanizatorni, a potem do jeszcze następnej. Tam chyba mają. Chyba bo nie jedziemy dalej, ale też nic się nie dzieje. Kierowcy poszli do kanciapy wulkanizatora i widocznie na coś czekają. Po 20 minutach wreszcie pojawia się podnośnik i nowe (pardon nowsze koło). 2 minuty roboty i możemy jechać dalej... Ciekawe czemu służyły te 20 minut przygotowań... Jesteśmy zdrowo spóźnieni docierając około 15:00 do Kutaisi. Wysiadamy życząc współpasażerom bezawaryjnej dalszej jazdy do Tbilisi, do której dotrą -- w razie spełnienia się naszych życzeń -- po następnych 4h czyli około 19:00 (11 godzin w busie celem przejechania około 450km)

Różne rzeczy

Olympus OMD/EM10 + Sony RX100M3. GDP pocket się sprawdził i warto go zabierać. Powerbanki okazały się niepotrzebne, ale chyba jednak warto je zabierać. Pogoda Była rewelacyjna. W szczególności zero opadów.

Do pobrania ślad ze zdjęciami; ślad ze wszystkimi zdjęciami; zdjęcia; ślady gpx/kml.