wakacjach temat, lekki, łatwy i.. użyteczny. Czy MATLAB może służyć do analizy
danych z urządzeń GPS? Jak wczytać i wyświetlić przebytą trasę? Czy można
analizować treningi zarejestrowane za pomocą Endomondo lub Garmina? Tak! W tym
wpisie pokażę, jak użyć MATLABA do tego celu.
Witajcie po wakacjach! Czas powrócić do regularnego
publikowania postów na naszym blogu. Na początek temat nawiązujący do minionych
wakacji, podczas których mieliśmy więcej czasu na aktywność fizyczną. Na pewno
część z Was do rejestracji swoich treningów biegowych, wycieczek rowerowych czy
nawet spacerów używa urządzeń umożliwiających rejestrację przebiegu takich
aktywności. Do najpopularniejszych gadżetów tego typu należą smartfony, które
za pomocą GPS i dedykowanych aplikacji (choćby Endomondo) dają możliwość
rejestracji trasy danej aktywności. Na tej podstawie program oblicza wielkości
pochodne jak prędkość, pokonane przewyższenia, liczba spalonych kalorii, etc.
Bardziej zaawansowane urządzenia jak zegarki sportowe wyposażone w pulsometry
umożliwiają dodatkowo rejestracje bieżącego tętna.
Daje to niespotykane wcześniej i dostępne dla wszystkich
narzędzie umożliwiające analizę aktywności fizycznej. Dostępnych jest wiele
serwisów internetowych do których można wczytać swoje treningi i poddać je
analizie. Ale dlaczego nie zrobić tego w MATLABie? Po „swojemu” mając pełną
kontrolę nad tym co chcemy osiągnąć analizując dane.
Zacznijmy jednak od podstaw. Urządzenie wyposażone w GPS
zapisuje swoje położenie z określoną częstością. W przypadku mojego zegarka
biegowego Garmin Forerunner 920XT średnio jest to raz na sekundę. Macierz
takich współrzędnych (długość i szerokość geograficzna) jest numerycznym
obrazem przebytej przez nas trasy. Jeżeli urządzenie jest wyposażone w
dodatkowe czujniki (czujnik tętna, kadencji, etc.), to dane te są zapisywane razem
z próbką współrzędnych geograficznych.
W zależności od urządzenia i dostępnych danych, przebieg
treningu jest zapisywany w plikach o określonym formacie. Do zapisu
współrzędnych geograficznych wystarczy najpopularniejszy i najbardziej
uniwersalny format GPX. Jeżeli występują dane dodatkowe, wtedy producenci
sprzętu stosują inne formaty, na przykład TCX, który jest autorskim
rozwiązaniem Garmina i umożliwia zapis tętna, kadencji czy liczby spalonych
kalorii.
W tym wpisie zajmę się wczytaniem i zobrazowaniem na mapie trasy
treningu, który został zarejestrowany za pośrednictwem ww. zegarka biegowego w
formacie GPX.
W zależności od urządzenia, plik GPX może być zapisywany
bezpośrednio w jego pamięci lub trzeba go pobrać z serwisu internetowego do
którego dane są eksportowane. W przypadku Garmina, dane pobrałem z serwisu Garmin
Connect, po uprzedniej synchronizacji zegarka z serwerem.
Przykładowy plik z jednym z moich treningów można pobrać
TUTAJ
. Jest to bieg (32.2km) z małą prędkością (tempo 5:38 min/Km) wykonany w ramach przygotowania do maratonu krakowskiego. Aby wczytać dane do MATLABA należy użyć funkcji:
trasa = gpxread('dane_trening.gpx');
[latlim, lonlim] = geoquadline(trasa.Latitude, trasa.Longitude);
figure;
worldmap(latlim, lonlim);
geoshow(trasa.Latitude, trasa.Longitude)
Pierwsza funkcja
geoquadline
zwraca granice najwęższego czworokąta geograficznego, który ogranicza wierzchołki o współrzędnych geograficznych określonych przez długość i szerokość. Innymi słowy funkcja ta tworzy minimalny obszar obejmujący zarejestrowaną trasę, który następnie zostanie wyświetlony na mapie. Funkcja
worldmap
wyświetla obszar zdefiniowany przez
geoquadline
a
geoshow
rysuje przebieg trasy.