Pokazywanie postów oznaczonych etykietą garmin. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą garmin. Pokaż wszystkie posty

poniedziałek, 7 grudnia 2020

Clone Garmin settings to another unit

Copy settings from #1 unit

Connect unit via USB. Copy the files from the Settings, Elevations, and Sports folders. Copy the Device.fit file from the Garmin folder.

Copy settings to #2 unit

Connect unit via GPS and copy the backup files into the same folders on it. Put Device.fit into Garmin, Settings.fit into the Settings folder, Elevations.fit into the Elevations folder, and Cycling.fit into the Sports folder.

All settings and menu configurations will now be available in #2 unit, saving you lots of time recreating them from scratch. Probably works with all Garmin Edge units (tested on 500 series).

sobota, 4 czerwca 2016

Zamiana MOV na MP4

W sobotę nagrałem na rowerze ponad 1,5 godziny filmu, który jest podzielony na 3 kawałki -- każdy po 4Gb. Teraz chciałem dodać do niego nakładki z danymi typu prędkość, dystans itp używając Garmin Virb Edit, ale ponieważ Virb Edit nie przetwarza plików większych od 4Gb, to trzeba najpierw połączyć wszystko w jeden plik, jednocześnie zmniejszając rozmiar (można też synchronizować każdy kawałek osobno w VE a potem połączyć, ale ja wolę prościej):

### zamiana na 720p, z redukcją jakości do 23 (domyślnie 20)
HandBrakeCLI -w 1280 -l 720 -q 23 -i Plik.mov -o Plik.mp4 --preset="Normal"

Pliki po konwersji jak wyżej mają circa nieco ponad 1Gb każdy.

Teraz trzeba połączyć je do kupy:

MP4Box -cat plik1.mp4 -cat plik2.mp4 -cat plik3.mp4 -new ALL.mp4

Ostatni etap to dodanie nakładek w VE, niestety w tym celu trzeba się przełączyć na MS Windows. Shame...

środa, 11 maja 2016

Garmin Virb Edit

Według producenta program: łączy nagrania wideo z kamery sportowej VIRB z danymi GPS i innymi informacjami pochodzącymi ze zgodnych urządzeń firmy Garmin. Faktycznie łączy dane zapisane w formacie FIT/GPX z dowolnym plikiem wideo zapisanym w formacie MP4.

VIRB Edit można ściągnąć za darmo ze strony Garmina (dostępne są wersje dla systemów MS Windows/Mac).

Moja niegarminowska kamera zapisuje obraz w formacie MOV (Dane GPS są faktycznie z urządzenia firmy Garmin, ale równie dobrze mogłyby być ze smartfonu albo chińskiego loggera.) Zamieniam plik MOV do formatu MP4 za pomocą aplikacji HandBrakeCLI. Poniższe polecenie wykonuje konwersję, a wynikowy plik.mp4 będzie około 50% mniejszy niż plik MOV:

time HandBrakeCLI -i PLIK.MOV -o PLIK.mp4 -w 1280 -l 720 --preset="Normal"

Trzydziestominutowy plik MOV, zamieniany jest przez około pół godziny (Linux IntelNuc/i5/8Gb pamięci).

Uparłem się zainstalować HandBrakeCLI w systemie Fedora21, a ponieważ nie ma stosownych pakietów .rpm musiałem go skompilować:

yum install yasm zlib-devel bzip2-devel libogg-devel libtheora-devel \
libvorbis-devel libsamplerate-devel libxml2-devel fribidi-devel \
freetype-devel fontconfig-devel libass-devel dbus-glib-devel \
libgudev1-devel webkitgtk-devel libnotify-devel \
gstreamer-devel gstreamer-plugins-base-devel

sudo yum groupinstall "Development Tools" "Development Libraries" \
"X Software Development" "GNOME Software Development"

yum install lame-libs lame-devel x264-devel intltool

tar -xvzf HandBrake-0.10.3.tar.bz2
cd HandBrake-0.10.3
./configure
cd build
make
make install

W sumie mogłem sobie darować powyższe, bo i tak w końcu muszę używać MS Windows, no ale może ten HandBrake przyda się do czegoś innego.

Na mojej stronie na youtube można obejrzeć wygenerowane za pomocą VIRB filmiki z dodanymi danymi GPS.

piątek, 25 czerwca 2010

Gmap-pedometer i ograniczenia Legenda

Intensywne używanie http://www.gmap-pedometer.com/ spowodowało, iż dotarłem do granic możliwości Legenda, o których NB. do niedawna nie miałem pojęcia. Otóż Legend może przechować do 1000 punktów (waypoints), 20 śladów (tracks) oraz do 50 tras (routes), każda o długości do 250 punktów... Ponieważ punkty trasy liczą się do puli punktów, 5 tras 200 punktowych zawala pamięć ,,na amen''. Co zresztą niedawno miało miejsce...

Usunięcie wszystkich punktów i wszystkich tras z Garmina jest bardzo łatwe. Tyle, że chciałbym niektóre zachować... Można wprawdzie usuwać punkty według związanych z nimi symboli, ale to by wymagało porządku przy ich definiowaniu. A ja, póki co, mam w tym względzie bałagan. Zatem:

  1. Zgrałem zawartość pamięci Garmina do pliku. Wywaliłem wszystkie trasy i ślady oraz związane z nimi punkty (są one łatwo rozpoznawalne po nic nie mówiącej nazwie typu Turn 233 albo GRTP-202). Pozostawiłem pozostałe punkty. (Wywalając trasy trzeba usunąć wszystkie, bo nie wiadomo jaki punkt należy do jakiej trasy -- tak jest szybciej i prościej.)

  2. Wyczyściłem pamięć urządzenia. W tym celu w menu głównym należy wybrać ikonę Waypoints→przycisk menu/find→Delete. Teraz wybrać All Symbols i potwierdzić. Uwaga: przycisk menu/find jest po lewej na dole pod przyciskami góra/dół.

  3. Załadowałem z powrotem plik GPX (nazwałem go LEGEND_MEM.gpx):


    gpsbabel -r -w -t -i gpx -f LEGEND_MEM.gpx -o garmin -F /dev/ttyUSB0

Plik LEGEND_MEM.gpx zawiera moją bazę podstawowych punktów i tras (jeżeli takowe są)... Resztę będę ładował w miarę potrzeby, a jak się znowu zapełni pamięć Legenda, to powtórzę opisaną wyżej procedurę... Przy okazji 225 jako górny limit punktów na trasie wygląda na zbyt dużo. Spróbuję 100 punktów, wtedy zmieści się więcej tras....

środa, 11 listopada 2009

Ikony punktów nawigacyjnych w Garminie

W opisie tzw. waypointa (punkt nawigacyjny), w formacie GPX jest m.in. znacznik <sym>, którego zawartością jest napis określający symbol punktu. Do tej pory zawsze wstawiałem tam Flag, a Legend oznaczał taki punkt ikoną niebieskiej flagi. Wprawdzie teoretycznie to (chyba) może być dowolny napis, ale lepiej ograniczyć się do tych kilkanastu--kilkudziesięciu, które Garmin zna i ,,reaguje'' na nie podstawiając odpowiednią ikonę. Zestaw tychże znalazłem tutaj. Na stronach Garmina zaś trudno się doszukać stosownej informacji.

Przykładowo pierwszy z punktów (poniżej) to cmentarz a drugi Miejsce Polowania wybrany na oznaczanie ,,grzybowych miejscówek'' -- ponieważ w zestawie symboli nie ma takiego, który by się lepiej nadawał na oznaczenie miejsca ,,gdzie rosną grzyby''


<wpt lat="54.0704694444" lon="18.9803833333">
<name>Stogi k/M Cment</name>
<cmt>Stogi k/M Cment</cmt>
<desc>Stogi k/Malborka Cmentarz Mennonitów</desc>
<sym>Cemetery</sym>
</wpt>
<wpt lat='54.84425261' lon='18.000581109'>
<name>Boczniak1</name>
<cmt>Boczniak Ostrygowaty</cmt>
<desc>Boczniak Ostrygowaty na pniu buka</desc>
<sym>Hunting Area</sym>
</wpt>

Jak już opisałem kiedyś bazę moich punktów trzymam w pliku (konkretnie w ~/.gps/local.wpts) co ułatwia jej modyfikowanie. Jeżeli baza się zmieni, to przesyłam plik (synchronizuję) do urządzenia wykorzystując program gpsbabel.

piątek, 16 października 2009

Naprawa garmina

W Garminie odlepiła się gumowa taśma ochronna -- częsty przypadek sądząc z tego co na ww. temat zawiera google. Naprawiłem w sposób szczegółowo opisany przez Mieszko Zagańczyka. W sumie sposób nie sprawdzony tak do końca, ale lepszego nie znalazłem.

Na wypadek gdyby wpis na ww. blogu zniknął podaję skrótowo co należy zrobić. Potrzebne są: silikon akwarystyczny (do akwariów) i benzyna ekstrakcyjna. Benzyną należy oczyścić gumę i odbiornik z resztek kleju. Posmarować silikonem (jedna tubka 8 ml, za 2 PLN) wystarczy. Nałożyć gumę. Owinąć bandażem elastycznym i zostawić owinięte na 24 godziny żeby silikon związał.

środa, 20 sierpnia 2008

Przewyższenie i profil śladu

Etrex mimo, że nie ma barometru dość sensownie podaje wysokość npm. Jakoś do tej pory umknęło to mojej uwadze.

Poniżej skrypt wyznaczający długość trasy, łączną sumę wysokości podjazdów (przewyższenie, aka cumulative elevation gain) oraz rysujący profil w postaci pliku PNG. To ostatnie niekoniecznie jest sensowne, bo GD::Graph::lines traktuje dane z osi OX jako napisy a nie liczby i w związku z tym odstępy między poszczególnymi punktami na tej osi są równe. Zamiast GD::Graph::lines trzeba użyć czegoś innego, np. Chart::Graph::Gnuplot.


#!/usr/bin/perl
#
# Tworzy plik PNG przedstawiający profil śladu (wysokość mnpm)
# z danych podanych (jako argument skryptu) w pliku GPX
# tprzechlewski[_at_]gmail.com sierpień/2008
#
use XML::LibXML;
use Geo::Distance;
use Getopt::Long;

GetOptions( 'log' => \$print_log, 'pic' => \$print_pic, );

$usage = "Usage: $0 [-p | -l] plik.gpx ;; -p generate PNG file ; -l show log.\n";

my $geo = new Geo::Distance;

my $file = shift || die "$usage";

my $parser = XML::LibXML->new;

open my $fh, $file || die "problems...";

$doc = $parser->parse_fh($fh);

my @tracks = $doc->getElementsByTagName('trk');
my $ptnum=0;

for $tx (@tracks) {

@segments = $tx->getChildrenByTagName('trkseg');
if ( $name = $tx->getChildrenByTagName('name')->[0] ) { # pierwszy element to nazwa śladu
if ($print_log) { print "<!-- track:: ", $name->textContent(), " -->\n"; }
}

for $sx (@segments) {

@points = $sx->getChildrenByTagName('trkpt');

for $px (@points) {
@data = $px->getChildrenByTagName('*');
@attrs = $px->attributes();

if ($print_log) { print "-> " ; }

for $dx (@data) {
if ($print_log) { print $dx->nodeName, " = ", $dx->textContent(), " ; " ; }
if ($dx->nodeName eq 'ele') { $ele = $dx->textContent();
push @Elevations, $ele;
}
}

for $ax (@attrs) {
if ($print_log) { print " ", $ax->nodeName, " = ", $ax->getValue() ; }
if ($ax->nodeName eq 'lon') { $lon = $ax->textContent() }
elsif ($ax->nodeName eq 'lat') { $lat = $ax->textContent() }
}

if ($print_log) { print " ;;\n"; }

if ( $ptnum > 0 ) {
$curr_dist = $geo->distance( "meter", $plon, $plat => $lon, $lat );
$dist += $curr_dist ;
push @Distances, $curr_dist;
if (($ele_diff = $ele - $pele ) > 0) { $totalEleGain += $ele_diff ; }

} else {
push @Distances, 0;
}

$plon = $lon; $plat = $lat ; $pele = $ele ; $ptnum++;
}
}
}

# http://en.wikipedia.org/wiki/Cumulative_elevation_gain (przewyższenie):
printf "*** Dist: %.1f meters *** EleGain: $totalEleGain ***\n", $dist;

## Drukowanie profilu trasy

unless ( $print_pic ) { exit 0 }

use GD::Graph::lines;
use POSIX; # floor

my $img_file = "${file}.png" ;

my @data = (\@Distances, \@Elevations, );

my $mygraph = GD::Graph::lines->new(400, 300);

# skip some dates to avoid label overlapping on X-axis:
my $x_factor = floor (($#Distances + 1) / 10 ) + 2;
print "$#Distances observations. X-axis labels printed evey ${x_factor}th one!\n";

$mygraph->set_text_clr('black');
$mygraph->set(
x_label => 'Dist',
y_label => '#',
title => "# Elev",
# Draw datasets in 'solid', 'dashed' and 'dotted-dashed' lines
line_types => [1, 1, ],
# Set the thickness of line
line_width => 2,
# Set colors for datasets
dclrs => ['blue', 'red', 'cyan'],
#x_tick_number => 'auto',
x_label_skip => $x_factor,
transparent => 0, ## non-transparent
bgclr => 'white',
fgclr => 'black',
borderclrs => 'black',
boxclr => '#ede7e7',
labelclr => 'black',
#axislabelclr,
legendclr => 'black',
) or warn $mygraph->error;

$mygraph->set_legend_font(GD::gdMediumBoldFont);
$mygraph->set_legend('ele', 'ele2', '???');

my $myimage = $mygraph->plot(\@data) or die $mygraph->error;

## for cgi script uncomment:
##print "Content-type: image/png\n\n";

open ( IMG, ">$img_file") or die " *** Problems opening: $img_file ***" ;

print IMG $myimage->png;

close (IMG);

##print "@Distances\n"; ## debug

##

Wykorzystuję od jakiegoś czasu XML::LibXML. W skryptach do obsługi flickr.com korzystałem z XML::Simple ale do parsowania plików GPX ten pakiet się nie nadaje -- nie zachowuje porządku elementów (bo je czyta do hasza). W oczywisty sposób porządek punktów na śladzie nie może być dowolny.

A tutaj ktoś zrobił coś podobnego tyle, że używając Pythona.

sobota, 9 lutego 2008

Garmin Etrex H

Dokupiłem najtańszy odbiornik Garmina pn. Etrex h. Urządzenie to ma monochromatyczny wyświetlacz i nie obsługuje map. Nie ma wysokościomierza jak geko, nie ma też kompasu elektronicznego. Wysokościomierz barometryczny geko wskazywał pi-razy-drzwi a kompas jest niepotrzebny. Etrex pokazuje kierunek bez kompasu, wystarczy się poruszać.

Etrex h (z literą H) ma chipset firmy MTK, tej samej co zrobiła Iblue747. Wyświetlacz tego urządzenia jest duży, litery wyraźne. Łatwiej też wyświetlić bieżący czas na ekranie; w geko wymagało to extra ekwilibrystyki. Z drugiej strony, podgumowane guziki są bardziej toporne niż w geko i trochę trudniej nimi operować.

Wygląda, że urządzenie ma wadę polegającą na błędnym wyliczaniu średniej i przebytej drogi (widać to na zdjęciu obok). Jeżeli podczas wędrówki wyłączę Etrexa a następnie włączę -- przy ograniczonej widoczności nieba -- na ekranie pojawiają się wyniki typu 2000 km/h. Na szczęście zapisany ślad jest OK, nie ma na nim punktów z Afryki czy Hondurasu. Niby nie jest to wada z gatunku mocno uciążliwych, ale denerwuje. No co tu dużo mówić: bubel.

Porównanie śladów iblue, etrexa oraz geko jest tutaj (czerwony ślad to etrex, niebieski iblue, turkusowy geko 301). Etrex wyłączył się nie wiedzieć czemu w pewnym momencie.

Ślady w różnych kolorach wymagały drobnych zmian w bibliotece gpx-viewer Kaza Okudy. Oryginalna biblioteka rysuje tylko na czerwono a moja modyfikacja zmienia kolor dla każdego elementu <trk> zawierającego <cmt> (por. GPX 1.1). Zmiana koloru dla każego elementu trk nie byłaby dobrym pomysłem, bo ślad pobrany z GPSa często jest dzielony na wiele elementów trk. Dodanie cmt ma wymusić zmianę koloru na żądanie. GPSbabel nie wstawia cmt do śladu pobieranego z urządzenia.

niedziela, 19 sierpnia 2007

Problemów z Garminem ciąg dalszy

Okazało się, że w sobotę (28 lipca) mój Garmin Geko 301 nie tylko przestawił magicznie częstotliwość zapisu śladu, ale także cofnął się w czasie. W rezultacie kilka wpisów ,,zachodzi'' chronologicznie na siebie. Wyszło to dzisiaj, gdy usiłując wyciąć kawałek śladu przy pomocy programu gpsbabel uruchomionego w następujący sposób (por. Data Filters):


gpsbabel -t -i gpx -f plik-we.gpx -x track,start=2007081907,stop=2007081915 -o gpx -F plik-wy.gpx

otrzymałem:


trackfilter-init: Track points badly ordered (timestamp)!

Nie wiem czemu tak się stało. Mniejsza z tym. Zamiast ręcznie poprawiać błędne wpisy można spróbować dodać opcję merge, która łączy wszystkie ślady w jeden usuwając ,,części wspólne'' (jeżeli ślady nie zachodzą na siebie można zamiast merge, użyć pack)


gpsbabel -t -i gpx -f plik-we.gpx -x track,merge,start=2007081907,stop=2007081915 \
-o gpx -F plik-wy.gpx

Powyższe wytnie ślad utworzony od siódmej do piętnastej, 19 sierpnia 2007 r. BTW: do ściągnięcia zawartości Geko na dysk użyłem następującego skryptu:


#!/bin/bash
# http://wiki.openstreetmap.org/index.php/How_to_get_data_from_a_Geko_201
filename="`date +%y%m%d-%H%M`"
echo "creating $filename-waypoints.gpx"
gpsbabel -i garmin -f /dev/ttyS0 -o gpx -F $filename-waypoints.gpx
sleep 2
echo "creating $filename-tracklog.gpx"
gpsbabel -t -i garmin -f /dev/ttyS0 -o gpx -F $filename-tracklog.gpx

Do tej pory używałem okienkowego programu gpsman; gpsbabel jest wygodniejszy bo nie trzeba klikać, tyle że gpsman potrafi wyświetlić ślad, co czasami się może przydać, więc nie skreślam go ostatecznie.

niedziela, 29 lipca 2007

Problem ze zbyt gęstym śladem GPSa

W sobotę (28 lipca) mój Garmin Geko 301 na chwilę się przestawił magicznie i rejestrował --przez dłuższy czas--położenie co sekundę. Powstały w rezultacie ślad (trace) miał ca 0,5Mb, znacząco więcej niż normalnie. Ponieważ stało się to po raz pierwszy byłem nieco zaskoczony, co z tym fantem począć. Wysyłanie tego do mojego repozytorium tras rowerowych nie miało sensu. Po krótkiej interakcji z Google znalazłem sposób na rozwiązanie mojego problemu na stronie wiki.openstreetmap.org:


gpsbabel -i gpx -f plik-we.gpx -x simplify,count=500 -o gpx -F plik-wy.gpx