MATLAB I DANE GPS

Po 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');

W efekcie w przestrzeni roboczej MATLABa powstanie obiekt trasa zawierający w zmiennych Latitude i Longitude współrzędne geograficzne, a w strukturze Metadata, dane dodatkowe opisujące trening (nazwa treningu, jego rodzaj, opis).

Aby wyświetlić trasę można posłużyć się następującym zestawem komend:

[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.

Jak widać na rysunku, brak na mapie topologii terenu czy zabudowań – trudno więc umiejscowić przebieg trasy w konkretnym obszarze. To można uzyskać w następujący sposób:

webmap('openstreetmap')
wmline(trasa, 'Color', 'red')

Powyższy program nie wymaga chyba tłumaczenia. Z prawej strony mapy można wybrać jej rodzaj, ze zdjęciami satelitarnymi włącznie.

Treść dzisiejszego posta to jedynie wstęp do analizy danych pochodzących z urządzeń GPS, a w szczególności z aplikacji rejestrujących przebieg aktywności fizycznej. W kolejnym wpisie zajmę się tym tematem bardziej szczegółowo omawiając narzędzia do bardziej wnikliwej analizy.

(Visited 50 times, 1 visits today)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *