GPS logger to odbiornik GPS wyposażony w pamięć pozwalającą na rejestrację przebytej drogi (śladu). Ślad z GPSa jest mi potrzebny do dodania współrzędnych geograficznych do zdjęć. Do tej pory do tego celu wykorzystywałem odbiornik Geko 301 firmy Garmin. Geko jednakże jest urządzeniem starszego typu i generalnie nie działa jeżeli nie widzi ,,czystego nieba''. Nie działa w lesie, często są duże problemy w terenie mocno zabudowanym, itp.
Postanowiłem kupić lepszy odbiornik. Czytając fora i blogi poświęcone GPS najpierw dowiedziałem się, że jest coś takiego jak SIRF. Już chciałem takiego SIRFa kupić ale doczytałem o chipsecie MTK. Według niektórych doniesień jest on lepszy niż SIRF 3 (są też tacy co twierdzą, że tak nie jest; głosów w stylu X to syf a ja jestem wielkim znafcom nie biorę pod uwagę).
Ceny loggerów na allegro zaczynają się od 300 zł (styczeń 2008) a ja znalazłem coś chwalonego, podobno działającego z Linuksem co jest dla mnie bardzo ważne i (okazało się) tańszego pn. i-Blue 747 Dziwne, ale w Polsce nikt tego nie sprzedaje, przynajmniej w Internecie. Znalazłem i-Blue na ebay za mniej niż 200 zł przy czym 30% tej kwoty stanowiły koszty wysyłki.
BTW opis na e-bay był w języku włoskim, sklep w Niemczech, sklepowy (sądząc po imieniu i nazwisku, Turek) po angielsku słabo pisał, ale się dogadaliśmy i paczka doszła.
Do obsługi loggera jest dołączony CDrom z programem. Program jest
of course na system MSW,
ale podobno działa z wine. Dokładnie postępując według instrukcji
stąd dało się go uruchomić:
należy zainstalować wine
, uruchomić winecfg
,
a następnie:
cd ~/.wine/dosdevices ln -s /dev/ttyUSB0 com1
Teraz należy skopiować
plik instalacyjny
i uruchomić wine DataLog.exe
.
Program zostanie zaistalowany tyle, że u mnie nie działa.
Ściąga ślad całkiem dziarsko
ale nie do końca bo zwisa.
Próbowałem dwa razy raz zawisł gdy wskaźnik był na 49%
drugi raz na 89%.
W google znalazłem opinie użytkowników
Ubuntu utrzymujących, że w ich systemie wszystko
działa (like a charm).
BTW w MS Windows też były problemy, zarówno z instalacją,
jak i z uruchomieniem, ale jak w końcu poszło, ale
co z tego przecież nie będę go używał w systemie W.
Uwaga: Aby ściągnąć ślad albo zmienić konfigurację urządzenia przełącznik musi być w pozycji LOG. Po uruchomieniu programu pierwsze co trzeba zrobić to zatrzymać zapis śladu (można to zrobić tylko programowo), bo inaczej logger cały czas zapisuje dane.
Zainstalowałem też w bólach bt747 (aplikacja Javy).
Zresztą autor ostrzega, że dokumentacja jest niedoskonała. Po
rozpakowaniu zipa, zainstalowałem zawartość katalogu
rxtx-2.1-7-bins-r2
,
zgodnie z tym co jest napisane
w pliku INSTALL
, umieszczonym w tym katalogu. Następnie
uruchomiłem skrypt run_rxtx.sh
, zmieniając wartość
zmiennej MYROOTPATH=/usr/local/bt747
.
Żby użytkownik
miał dostęp do /dev/ttyUSB0
musi być w grupie
uucp
, to już ustaliłem wcześniej. Dalej jednak nie
działało (check_group_uucp(): error testing lock file creation
Error details: Permission denied check_lock_status:
No permission to create lock file.).
Kluczowa okazała się zmiana praw dostępu do
/var/log
:
chmod 777 /var/lock
Aplikacja, jak widać obok, wygląda okropnie, ale funkcjonalnie jest OK: ściąga
dane i kasuje LOG. Więcej nie potrzebuję. Żeby skrypt run_rxtx.sh
działał uruchamiany z dowolnego katalogu musiałem jeszcze zmienić wartości
zmiennej CLASSPATH
(albo wstawić zawartość CLASSPATH
jako wartość opcji -cp
przy uruchamianiu javy):
CLASSPATH=${RXTXJAR}:$MYROOTPATH/webstart/Waba_only.jar:\ $MYROOTPATH/dist/BT747_rxtx.jar:.:$CLASSPATH
Wreszcie jest też aplikacja pn. MTKbabel (skrypt Perla), działająca podobnie do programu GPSbabel, czyli z wiersza poleceń. Do działania wymaga zainstalowania modułu Device::SerialPort. Ten sposób działania podoba mi się najbardziej. Pobranie danych sprowadza się do wydania następującego polecenia:
mtkbabel -f nazwa-pliku-bez-rozszerzenia -t
Powstaną dwa pliki (dlatego nie podaje się rozszerzenia): jeden w formacie binarnym, drugi w fomacie GPX. Jedno wielkie ale -- transmisja jest bardzo wolna: plik binarny o wielkości ca 650 kB (czyli ca 30% pamięci) był ściągany z loggera 9 minut 47 sekund. Czyli cała pamięć byłaby ściągana 30 min. Hmm... Dla porównania obie wcześniej wymienione aplikacje ściągały te 650 kB w circa 2 minuty. Różnica jest.
Wykonałem już dwa eksperymenty porównujące iblue z moim Garminem 301. Pierwsza trasa to las, w wielu miejscach gęsty i wysoki. Do tego też w wielu miejscach jary o stromych zboczach. Trasa zapisana przez geko oraz trasa zapisana przez iblue. Nie ma porównania, bo geko w zasadzie w lesie nie działał.
Druga trasa to teren zabudowany, a konkretnie Sopot. Zabudowa w większości 3--4 kondygnacyjna. Dwa razy wszedłem do sklepu (Geko zgubił w pierwszym ślad, ale poczekałem po wyjściu aż znajdzie, a za drugim razem sam szybko się odnalazł). Oba ślady wyglądają nieźle (cf. geko iblue). Iblue pogubił się w okolicach skrzyżowania 1-go Maja z Aleją Niepodległości, gdzie wszedłem do sklepu (na dłużej). Nie zgubił satelity, tak jak geko, ale trasa w tym miejscu jest nieprawidłowa (wielki `tik' od 1-go Maja wzdłuż Al. Niepodległości w stronę Gdańska. Na mapie od szpilki oznaczonej jako `sklep' do szpilki `tik'. W rzeczywistości od sklepu poszedłem do szpilki oznaczonej `tunel' i dalej wzdłuż ul. Bohaterów Monte Cassino, co zresztą też jest zaznaczone). Nie ma różnicy pomiędzy śladami zredukowanymi do 500 punktów i dużo większym -- 2500 punktów.
Reasumując: wszystkie zdjęcia zrobione na obu trasach zostały (z zadowalającą precyzją) oznakowane współrzędnymi geograficznymi na podstawie śladu z Iblue, a po to go kupiłem.
Ślad iblue zredukowałem za pomocą gpsbabela, bo oryginalny ślad
składa się z tysięcy punktów. Iblue zapisuje ślad co sekundę, Garmin
w trybie auto (Iblue nie ma czegoś takiego jak auto).
Kiedyś eksperymentowałem z Garminem i też go przestawiłem
na zapis sekundowy, ale nie zaobserwowałem różnicy pomiędzy takim trybem
a trybem auto. Polecenie uproszczenia śladu wygląda
następująco (Log.nma
zawiera dane zapisane jako
NMEA):
gpsbabel -i nmea -f Log.nma -x simplify,count=450 \ -o gpx -F 2008-01-23BT_x.gpx
Poniżej bardziej zaawansowane polecenie: zapisz jako GPX, ślad od 2008-01-24T13:40
od 2008-01-24T14:50, następnie upraszczając go do 500 punktów.
Uwaga: opcje
-x
nie są przemienne, tj. ich zamiana skutkowałaby najpierw
uproszczeniem do 500 punktów, a potem wycięciem od-do, dając w rezultacie
ślad dużo bardziej uproszczony:
gpsbabel -i nmea -f GPSDATA-20080123.nmea \ -x track,start=200801241340,stop=200801241450 -x simplify,count=2500 \ -o gpx -F 20080124BT_x.gpx
Kończąc, trochę mnie zastanawia/niepokoi trwałość tego urządzenia, bo jakość wykonania jest taka sobie (100% chińszczyzna). Jakby mi, np. wypadł z ręki, to chyba byłby to jego ostatni lot. Nawet nie próbuję tego sprawdzać. Poza tym logger wydaje się całkiem, całkiem...
Dopisane 16 marca 2008: Dioda GPS: pomarańczowa -- szuka satelitów; pomarańczowa/miga -- nawiguje; niebieska/miga -- mało pamięci (mniej niż 20%); niebieska -- pamięć jest zapełniona, stop (cokolwiek to znaczy); trzykrotny błysk -- zarejestrowanie POI. Dioda baterii: czerwona -- bateria prawie wyczerpana; zielona -- ładowanie; zielona/miga -- naładowana. Dioda BT: niebieska -- BT włączone, ale nie połączony; wolno miga -- połączony w sleeping mode; szybko miga -- połączony i gotowy.
Dopisane 16 marca 2008: projekt formularzy
w aplikacji bt747
jest daleki od ergonomicznego, stąd
poniżej krótka rekapitulacja.
Aby usunąć plik: Fmt/Erase (albo Fmr/Set&erase).
Pobranie pliku i zapis na dysk: Log/Get Log i inne przyciski z tej karty.
Karta File: konfiguracja. Karta Con: połączenie z urządzeniem.
Innych kart w zasadzie nie używam.
Dopisane 19 marca 2008:
Poniżej skrypt do zamiany pliku NMEA pobranego z bt747
na
plik GPX. Skrypt upraszcza uruchomienie gpsbabela. Ponadto
uruchomiony z opcją -U
wycina niepotrzebne znaczniki (np. <ele>
, czyli
wysokość, która w moim przypadku zawsze wynosi zero. Dodatkowo
liczy długość wyciętego śladu. Pełny skrypt jest
tutaj.
# !/bin/bash # # Skrypt ułatwiający uruchomienie programu gpsbabel # Wycina fragment ścieżki + upraszcza ślad do zadanej liczby punktów # Na koniec plik podaje długość wyciętego śladu. # OUT='' FORMAT=nmea ROK=`date +"%Y"` XREDUCE="NO" while test $# -gt 0; do case "$1" in -help|--help) echo "$USAGE"; exit 0;; -od) shift; START="$1";; -od*) START="`echo :$1 | sed 's/^:-od//'`";; -do) shift; STOP="$1";; -do*) STOP="`echo :$1 | sed 's/^:-do//'`";; -max) shift; COUNT="$1";; -max*) COUNT="`echo :$1 | sed 's/^:-max//'`";; -rok) shift; ROK="$1";; -rok*) ROK="`echo :$1 | sed 's/^:-rok//'`";; -format) shift; FORMAT="$1";; -format*) FORMAT="`echo :$1 | sed 's/^:-format//'`";; -U) XREDUCE="YES";; -out) shift; OUT="$1";; -out*) OUT="`echo :$1 | sed 's/^:-out//'`";; -h) echo usage; exit;; -h*) echo usage; exit;; *) FILE="$1";; esac shift done if [ "$XREDUCE" = "YES" ] ; then echo "** Tracks will be simplified! (Option -U)" ; fi EXTENSION=${FILE##*.} BASE=`basename $FILE .$EXTENSION` if [ "$OUT" = "" ] ; then OUTFILE="$BASE.gpx" ; else OUTFILE="$OUT" ; fi if [ "$START" != "" -a "$STOP" != "" ] ; then PERIOD="-x track,start=$ROK$START,stop=$ROK$STOP" ; elif [ "$START" != "" ] ; then PERIOD="-x track,start=$ROK$START" ; elif [ "$STOP" != "" ] ; then PERIOD="-x track,stop=$ROK$STOP" ; fi if [ "$COUNT" != "" ] ; then SIMPLIFY="-x simplify,count=$COUNT" ; fi if [ -f "$BASE.$EXTENSION" ] ; then gpsbabel -i $FORMAT -f $BASE.$EXTENSION $PERIOD $SIMPLIFY -o gpx -F $OUTFILE if [ -f "$OUTFILE" -a "$XREDUCE" = "YES" ] ; then extension=${OUTFILE##*.} simname="`basename $OUTFILE .$extension`_s.$extension" echo "** File $OUTFILE simplified to $simname" ; # perl -e 'while ( <> ) { unless(/<ele|fix|course|speed>/) ... to błąd !! perl -e 'while ( <> ) { unless(/<(ele|fix|course|speed)>/) { print $_ }} ' $OUTFILE > $simname OUTFILE=$simname fi else echo "File $BASE.$EXTENSION found!" ; echo "$USAGE" fi if [ -f "$OUTFILE" ] ; then ## Oblicz dystans: echo "** Counting distance covered in: $OUTFILE " perl -e 'use Geo::Distance; my $geo = new Geo::Distance; my $qchars = "\042\047"; # znaki cytowania pojedynczy i podwojny while (<>) { if (/<trkpt\s+lat\s*=\s*([$qchars])([^$qchars]+)\1\s+lon\s*=\s*([$qchars])([^$qchars]+)\3/) { $lat=$2; $lon=$4; unless ($trkpt < 1) { $dist += $geo->distance( "meter", $plon, $plat => $lon, $lat ); } $trkpt++; $plat=$lat; $plon=$lon; } } print "** Distance covered (meters): $dist\n"; ' $OUTFILE fi
Fop w wersji 0.2* zniknął już dawno ze strony xmlgraphics.apache.org/fop/ co spowodowało m.in. że moja notka nt. polonizacji była nie tylko przestarzała ale także myląca. W szczególności fop 0.9* ma inną składnię pliku konfigurującego fonty, więc jeżeli ktoś próbował moich wskazówek, to mu raczej fop nie działał.
Uaktualniłem zatem notkę, poprawiłem ją także w paru miejscach bo była mętna a nawet błędna. Przetestowałem działanie z trzema zestawami fontów: MS Core Fonts, DejaVue. Całość jest tak sobie przydatna dla mnie -- fopa na co dzień nie używam, ale widzę z logów, że od czasu do czasu ktoś wpisuje do google fop+polskie+znaki no i ten dokument jest oglądany.
Do poprzednio zainstalowanych wtyczek: Attachment Extractor,
Display Mail User Agent,
Enigmail,
Quick Locale Switcher
oraz Virtual Identity doinstalowałem Sync Kolab,
dzięki któremu mam zsynchronizowaną książkę adresową.
Nie mogłem uruchomić tej wtyczki, z powodu błędu
pn. Mail account '...' not found!. Podpowiedź znalazłem
w dokumencie
Geek
to Live: Sync your address book via IMAP Giny Trapani.
Nie miałem foldera
na gmail.com
na moje kontakty,
po jego utworzeniu poszło gładko.
BTW Gina T. to chyba jakaś znana osoba. A tu link do jej projektu pn. lifehacker.com. Wygląda ciekawie.
Wczoraj na komputerze kupionym na Św. Mikołaja w zeszłym roku zainstalowałem Fedora Core 8. Wykorzystałem, że Elka wyjechała z Jasiem i Krzysiem na ferie do Habovki. Nie będę raczej z tego komputera korzystał, bo został kupiony dla dzieci -- chciałem sprawdzić jak mi pójdzie z instalacją.
Na dysku był już zainstalowany produkt MSC pn. Windows XP (dzieciom do gier potrzebny). Doinstalowanie FC8 poszło świetnie i zajęło circa 40 minut. Można sprawdzić na zdjęciach porównując wartości tagów Exif ze zdjęć obok. Jest Firefox, Pidgin, Thunderbird, OpenOffice. Czegóż więcej potrzeba 99% użytkowników PCtów? Pewnie będzie problem z aplikacjami do audio/wideo, no ale to już jest problem nie do przeskoczenia, bo natury prawnej.
Emacs pisze out-of-the-box w Unicode. Czas już sprawdzić, jak ten UTF działa w Linuksie.
Mój PCet się zepsuł. Co pewien czas się resetuje. Kol. Pacek przelutował kondensatory, ale to tym razem nie pomogło. Pomogło za to wyłączenie cache w BIOSie. Coś jest nie tak albo z procem albo z płytą. Teraz wprawdzie nie ma resetów, ale komfort pracy taki sobie. Już jestem umówiony z kol. Markiem na upgrade. Jak będzie nowy komputer, to wtedy pomyślę o upgrade do FC8.
Rozjechał mi się Firefox. Objawy są takie, że przy starcie okno się
od razu zamyka. Nie zawsze, ale bardzo często. Okno potrafi się
zamknąć także później. Zawsze bez żadnych komunikatów, ani
uruchamiania rozszerzenia Talkback
.
Uaktualniłem Firefoksa ze strony
www.firefox.pl/
do wersji 2.0.0.11. Nie pomogło. Wykonałem jeszcze kilka chaotycznych
prób, ale to też nic nie dało. Między innymi zaktualizowałem pakiet
nss.i386 3.11.5-0.5.1.fc5
.
Wreszcie radykalnie:
mv ~/.mozilla ~/.mozilla.kopia
Wygląda, że coś się poplątało w cache bo teraz wygląda,
że jest OK. Okno Firefoksa się nie zamyka.
BTW Firefoxa instaluję w katalogu /usr/local/firefox211
a potem dodaję następujące linki:
ln -s /usr/local/firefox/firefox /usr/local/bin/firefox ln -s /usr/local/firefox211 /usr/local/firefox
Do pisania skryptów w Perlu używam trybu cperl
. Aby
cperl
był domyślnym trybem (zamiast
perl-mode
) trzeba wpisać do .emacs
:
(defalias 'perl-mode 'cperl-mode)
Tryb cperl
ma użyteczną funkcję:
cperl-info-on-command
(C-c C-h F
). Wystarczy
ustawić kursor na nazwie funkcji/polecenia nacisnąć
C-c C-h F
aby została wyświetlona pomoc z podręcznika
Perla. Konkretnie jest wyświetlana strona w formacie
.info
. Dokumentację do Perla w tym formacie musiałem
ściągnąć samodzielnie i umieścić w katalogu, w którym system oczekuje
plików .info
(u mnie jest to
/usr/local/share/info/
). Podręcznik jest dostępny pod
adresem:
CPAN/doc/manual/info/perl5-old/perl5-info.tar.gz
Tyle, że stary (wersja 5.6 Perla). Ewentualnie można samemu
wygenerować strony nowego podręcznika w formacie .info
za pomocą
pod2texi
. Są one dostępne pod adresem:
CPAN/doc/manual/info/perl5/pod2texi-0.1.tar.gz
Tryb cperl
zwolnił dramatycznie w Emacsie 22 zainstalowanym
na laptopie. Po wpisaniu
w google emacs+22+cperl+slow dotarłem do dyskusji
na ten temat.
Podmiana oryginalnego cperl.el
z dystrybucji Emacsa
na wersję ściągniętą
z tej strony
pomogła.
W PC poprawnie działa oryginaly cperl
, problem
jest zatem z gatunku magicznych.
Magicznie też zmienił mi się program do sprawdzania pisowni. Ponieważ
aspell był wolny i nic nie wnosił za pomocą niewielkiego
haka
używałem dalej ispella. W Emacs 22 znowu zaczął być używany aspell.
Dopisałem zatem do .emacs
:
(setq-default ispell-program-name "ispell")
Ale to już chyba ostatni raz. Wprawdzie aspell dalej jest wolniejszy, ale już można z nim normalnie pracować. Przy następnej zamianie systemu już mi się nie będzie chciało kompilować ispella.
Zapisać się łatwo. Wypisać trudniej. Należy wybrać stronę your Groups, następnie wybrać grupę. Po prawej stronie wyszukać link Quit nazwa-grupy. Po kliknięciu znajdziemy się na stronie, na której będzie się można wypisać.
Emacs 22 nie współpracuje z pakietem session.el
, który
służy do zapisania do pliku na potrzeby następnej sesji iluś tam
ostatnio wykonanych poleceń, otwartych plików itp. Ćwicząc Emacs 23
już to przerabiałem i na taką okoliczność wstawiłem do plików
startowych tryb desktop-save
:
(if (< emacs-major-version 22) (progn (require 'session) (add-hook 'after-init-hook 'session-initialize)) (progn (desktop-save-mode 1) (setq history-length 250) (add-to-list 'desktop-globals-to-save 'file-name-history)))
O tych wszystkich nastawach zdążyłem już zapomnieć. A że Emacs na starcie czyta
kilkanaście plików to nie od razu doszedłem czemu
wraz z przejściem na Emacsa 22 przestał działać session.el
a włączyło się
coś innego.
(Ten blog jest w dużej części po to, aby takich sytuacji uniknąć w przyszłości:-)
Tryb desktop-save
nie podoba mi się: przy starcie Emacsa ładuje się kilkadziesiąt
plików, większość z nich zupełnie niepotrzebnie. Najgorzej wygląda sprawa z plikami
edytowanymi poprzez trampa. Emacs łączy się z odległą maszyną. Nie wiem czemu robi to
kilkakrotnie. Wszystko to trwa oczywiście a próba okiełznania desktop-save
nie
dała zadowalającego rezultatu.
W dokumentacji jest zresztą niewiele na ten temat.
Spróbowałem przykładowo ustawić zmienną
desktop-restore-eager
, ale to niewiele pomogło.
Faktycznie Emacs szybciej startował,
ale jak tylko chwilę nie dotykałem klawiatury zaczął otwierać resztę buforów.
Nie szło tego przerwać... Jednym słowem mulił,
tylko że nie na początku.
W ,,sprawie trampa'' wyczytałem w odpowiedzi
na żale jakiegoś użytkownika żeby dać sobie z nim spokój i działać
na maszynie odległej przez fuse-sshfs
.
Czy ja wiem? Jak
przed uruchomieniem nie zamontuję odległego katalogu, to co zrobi
desktop-save
? To chyba nie jest dobre rozwiązanie.
Ostatecznie przełączyłem się na standardowy tryb
savehist
. Działa z grubsza jak session.el. Czemu
ja w ogóle zacząłem używać tego ostatniego--nie pamiętam.
Tryb desktop-save
wyłączyłem.
W temacie AWK też pojawił się problemik. Dawno, dawno temu (ca 1994 mówiąc konkretnie) zrobiłem skrypcik do podliczania moich rocznych finansów. Działał. Aż w tym roku przestał (a może przestał wcześniej, tylko nie zwróciłem na to uwagi). Zaczęło się od komunikatu division by zero.
Miałem od dawna świadomość, że jakiś mądry tak przerobił gawka, iż przy ustawieniu lokali
na PL
traktuje on jako kropkę dziesiętną przecinek a nie kropkę.
Po co to zrobiono--nie wiem. Wydaje mi się, że zrobiono bez sensu. Ponieważ mój skrypt
był uruchamiany via skrypt basha, wystarczyło dopisać LANG=C
:
#!/bin/bash LANG=C exec gawk -f $AWKDIR/foo.awk $*
I działa znowu.
Dopisane 19 marca 2008:
fuse_sshfs
jest jednak świetnym rozwiązaniem. Ostatecznie
nie pracuję na dziesiątkach maszyn, tylko na dwóch. W razie potrzeby
montuję odległy katalog i już.
Super wygodnie, nie tylko w połączeniu z Emacsem. Pakietu
tramp już nie używam.
W okresie świątecznym i na przełomie roku wykonałem kilka eksperymentów weryfikujących jakość dodawania współrzędnych za pomocą synchronizacji czasu odbiornika GPS i aparatu. Dokładnie siedem prób (odpowiednio data: zdjęcia ogółem/zdjęcia oznaczone): 20071226: 61/61, 20071228: 11/11, 20071229: 29/29, 20071230: 71/71, 20071230: 48/48, 20080101: 30/30, 20080102: 8/22. Łącznie zdjęć było zatem 260 z czego 16 (6,1%) nie zostało zsynchronizowanych. Większość zdjęć została oznakowana z zadowalającą albo nawet dobrą dokładnością. Niektóre trasy były łatwe: płaski teren. Ale trasa z 31.12 prowadziła w sporej części przez gęsty las a GPS się nie pogubił. Dziś poszedłem jeszcze dalej do lasu, no i GPS tym razem odmówił kooperacji. A GPSa -- zgodnie z zaleceniem, żeby był jak najwyżej -- noszę pod czapką!
Przerobiłem swoje skrypty, oraz bibliotekę dla Emacsa. Aby odróżnić zdjęcia zawierające zdefiniowane tagi EXIF ze współrzędnymi geograficznymi od tych, które tej informacji nie zawierają, generowana miniatura zdjęcia zawiera czerwony prostokąt w lewym górnym rogu (jeżeli zdjęcie jest już geotagowane). No tak to sobie wymyśliłem.
Niektóre ślady GPS na mojej stronie zawierają teraz miniatury zdjęć. Publikuję też dane w formacie KML. Uaktualniony opis jest tutaj. Detaliczna instrukcja jak używać GPSphoto. jest zaś tutaj.
Dopisane 8 maja 2008/Zmodyfikowane 27 sierpnia 2008: Podsumowanie procedury pobrania śladu z urządzenia GPS i ich zamiany na ślad w formacie GPX/KML:
Ślad z urządzenia jest pobierany albo za pomocą gpsbabela albo programu bt747.
Skrypt nmea2gpx
zamienia dane w formacie NMEA na GPS w razie potrzeby
wycinając fragment śladu i upraszczając go (opcja -max liczba-punktów
).
Skrypt akceptuje także inne formaty danych wejściowych (opcja -format
):
nmea2gpx -od czas -do czas -max liczba [-format format ] [-U ] [-out plik.gpx] plik
Skrypt My-photo-sync.sh
(wykorzystujący gpsPhoto.pl
)
,,synchronizuje'' ślad ze zdjęciami i generuje plik w formacie KML:
My-photo-sync.sh -d katalog-zdjęć -f plik.gpx -t różnica-czasów
różnica czasów jest obliczana za pomocą skryptu exif_datetime.pl
exif_datetime -b czas_z_GPSa -f zdjęcie -o GMT_offset_in_seconds
gdzie: zdjęcie, to nazwa pliku ze zdjęciem ekranu GPSa;
czas_z_GPS, to czas wyświetlany przez GPSa na ww. zdjęciu;
GMT_offset_in_seconds, różnica między czasem lokalnym a GMT (niektóry GPSy to wyświetlają,
a jak nie to łatwo jest to obliczyć).
Ponieważ uruchamianie exif_datetime
w ww. sposób dla każdej sesji zdjęciowej
jest pracochłonne można też napisać:
exif_datetime
Powyższe wyświetli przesunięcia czasowe zapisywane w pliku ~/.time_offset
. Ponieważ
czas w aparatach rozsynchronizowuje się w miarę
wolno, wystarczy co kilka tygodni aktualizować ~/.time_offset
.
Można też napisać:
My-photo-sync.sh -d katalog-zdjęć -f plik.gpx -a
Przesunięcie zostanie pobrane automatycznie z pliku ~/.time_offset
. [Nie trzeba
uruchamiać exif_datetime
.]
W wyniku wykonania My-photo-sync.sh
powstaje także plik .kml
.
Skrypt perlowy kml-adjust-urls
zamienia linki do zdjęć
w pliku KML, tak aby wskazywały na zdjęcia umieszczone w serwisie
flickr.com (skrypt My-photo-sync.sh
oryginalnie wstawia linki lokalne). Przed wykonaniem kml-adjust-urls
należy wykonać flickr_update_kb
bo kml-adjust-urls
pobiera
informacje nt. zdjęć lokalnie z bazy utworzonej przez flickr_update_kb
.
kml-adjust-urls plik.kml
Ubocznym efektem działania kml-adjust-urls
jest plik plik.wpts
zawierający elementy <wpt>
określające linki do zdjęć umieszczonych na flickr.com.
Zawartość tego pliku można dodać do pliku plik.gpx
uzskanego w kroku #2.
Ślad -- wyświetlony w googlemaps
-- będzie wtedy zawierał ,,pinezki'' z minaturami zdjęć.
Niektóre zdjęcia z lokalnego katalogu nie są umieszczone na
flickr.com. Skrypt kml-skip-deadlinks
usuwa takie
zdjęcia z pliku KML. Mało eleganckie rozwiązanie -- jeden skrypt by wystarczył, ale
nie mam czasu w tej chwili poprawiać skryptu kml-adjust-urls
:
Skrypt kml-adjust-urls
usuwa takie zdjęcia z pliku .kml
.
A raczej gdzie jest zameldowany. Właśnie sobie uświadomiłem widząc w TV premiera w kuchni przed Wigilią bodajże, że nigdy nie widziałem go na ,,żywo'' mimo, że obaj mieszkamy w całkiem małym mieście. Nawet prezydenta Sopotu widziałem i to nago. On mnie zresztą też w tym stanie widział, bo spotkanie było w szatni basenu MOSiR:-). No więc wygląda na to, że Tusk to nie z mojej dzielni jest. A z jakiej? Wpisanie w google: Tusk+Sopot jest zbyt trywialne. Spróbowałem: Tusk+pozew. Na pozwie musi być adres a wielcy ludzie lubią się procesować albo na nich pozwy piszą. No i faktycznie jest (kopia). Skarżący wygląda wprawdzie na pieniacza a pozew hmm... Absurdalnie... A może nie... Media nawet niektórych takich promują. Widocznie jednak pan TB niewłaściwą osobę pozwał więc nie został sławny:-)
Ale adres jest i wygląda na prawdziwy.