S čím pracujeme
U GPS navigací se setkáme s třemi hlavními druhy dat. Se všemi umí GPSBabel pracovat, ale ne všechny jsou podporovány všemi formáty. Některé navigace mají i jiné možnosti (obrázky, hudba, ..), ale s těmi už nemá navigování nic společného. U všech tří druhů dat je možné najít různé termíny. Já se budu držet těch co mám v navigaci sám.
Čtěte také článek GPS Garmin v Linuxu.
Stopa
Některé navigace umí ukládat tzv. stopu. Jedná se o „shluk“ bodů, kterými jsme prošli. Často jde i nastavit jak často se mají body ukládat, nebo po jaké vzdálenosti. Pomocí těchto bodů lze pak vytvořit přibližnou podobu prošlé cesty. Pokud jde o auto, tak je přesnost dostatečná, zvlášť pokud si navigace dokáže pamatovat velké množství bodů. Výsledek nazveme stopou.
Body zájmu
Naše cesta má většinou začátek a cíl, případně zastávky. Začátek třeba může být náš domov, konec dejme tomu dům kde bydlí babička a zastávka třeba restaurace. Všem takovýmto bodům můžeme říkat body zájmu. Většinou jich je hodně již nahráno v navigaci, ale naši babičku tam asi výrobce nedá. Proto si body zájmu můžeme vytvářet a nebo rovnou stahovat z internetu.
Trasy
Nejdůležitější funkcí GPS navigace je navigování. Máme na výběr buď automatickou, kdy pouze zadáme cíl a GPSka se pokusí spočítat trasu, která je pro nás nejvhodnější a nebo přesnější způsob, kdy si naklikáme body, kterými chceme projet a navedeme tak navigaci k mnohem spolehlivějším výsledkům.
Podpora formátů a zařízení
Jak jsem již napsal. Každý z formátů má podporu pro všechny nebo jen nějaký typ dat. GPSBabel podporuje pomalu všechno co má v sobě položku se souřadnicemi. Výjimkou není ani podpora HTML. Nás budu zajímat především tyto:
- GPX
- KML
- Garmin
Případně ještě:
- LOC
- gdb
- html
- text
- csv
S první skupinou formátů se budeme setkávat v Google Earthu, při hledání cachí, stahování dat z navigace. GPX/KML v sobě umí udržet všechny tři druhy dat, se kterými budeme pracovat a garmin je v tomto smyslu chápáno jako protokol, se kterým se komunikuje s navigací.
Druhá skupina formátů se hodí například pokud nemáme premium účet na geocaching.com (LOC) nebo potřebujeme naimportovat data do Google Maps (google). V případě dalšího zpracovávání pomocí skriptů se bude hodit html, text nebo csv formát.
Jak se formáty vybírají si ukážeme níže.
Výstup
Formát dat je jedna věc a kam data pošleme je druhá. GPSBabel nám umožňuje uložit vše buď do souboru, nebo poslat do USB zařízení či na sériový port.
USB
V dnešní době populární sběrnice, o které minulý týden vyšel na rootu článek. Data na ni pošlete zadáním „-F usb:“.
Soubor a sériový port
Sériový port a soubor mají z pohledu uživatele mnoho společného. Za parametr -F, který označuje výstup, můžeme uvést oba. Výsledek vypadá třeba takto:
-F /dev/ttyUSB0
-F /tmp/data.gpx
Filtry
K převodům mezi formáty patří samozřejmě i filtrování záznamů. GPSBabel má 14 filtrů. Ty můžeme použít pro:
- Odstranění duplicitních záznamů
- Prokládání bodů
- Odstranění konkrétního typu dat
- Vyfiltrování dat uvnitř polygonu
- Vyfiltrování dat mimo rádius
- Vyfiltrování dat v rádiusu
- Zjednodušení tras
- Seřazení záznamů
- Otočení seznamu záznamů
- Převedení bodů a tras na stopy
Jak na to
Pracovat s GPSBabel můžeme dvěma způsoby:
gpsbabel [volby] -i TYPVSTUPU -f VSTUPNISOUBOR [filter] -o VYSTUPNITYP -F VYSTUPNISOUBOR
gpsbabel [volby] -i TYPVSTUPU -o VYSTUPNITYP VSTUPNISOUBOR [filter] VYSTUPNISOUBOR
Osobně preferuji ten první, protože je přehlednější, ale vy si určitě najdete ten tvůj. Pokud místo výstupního souboru použijeme -, tak se data vypíšou na standardní výstup. Podobně to funguje také u vstupu, kdy se data vezmou ze standardního vstupu. To ocení fandové rour.
Jako volby můžeme uvést:
-p Soubor s nastavením
-s Použít krátká jména bodů
-r Zpracovat data cest
-t Zpracovat data tras
-T Zpracovat data stop
-w Zpracovat data s body
-b Zpracovat soubor s příkazy
-c Nastavit kódování
-N Bez ikon
-x filtername Použít filtr
-D level Zapnout ladící režim
-l Vypsat podporovaná kódování
-h, -? Vypsat tuto nápovědu
-V Vypsat verzi GPSBabelu
Příklady
Použití nápovědy se asi v budoucnu nevyhneme. To nám ale nebraní ukázat si dva příklady, které se třeba v budoucnu budou hodit.
Jak vybrat body do 5km seřazené podle názvu
Vybrat body do pěti kilometrů od dané pozice můžeme provést třeba takto:
gpsbabel -i gpx -f a.gpx -x radius,lar=49.9604,lon=16.410033,distance=5000m -o gpx -F out.gpx
Přidáme ještě filtr na seřazení:
gpsbabel -i gpx -f a.gpx -x radius,lar=49.9604,lon=16.410033,distance=5000m -x sort,shortname -o gpx -F out.gpx
A nebo výstup rovnou pošleme do našeho Garmina:
gpsbabel -i gpx -f a.gpx -x radius,lar=49.9604,lon=16.410033,distance=5000m -x sort,shortname -o garmin -F usb:
Souřadnice je asi nejjednodušší vzít z některého bodu v gpx souboru. Nebo použít postup popsaný níže, ale pouze s jedním bodem.
Jak vybrat body v polygonu z několika souborů
Druhá často požadovaná operace je třeba výběr bodů v rámci oblasti. To bývá kraj nebo okres.
Začneme tím, že si vytvoříme soubor se souřadnicemi našeho polygonu. K tomu můžeme použít třeba Google Earth. Tam si naklikáme polygon přes souřadnice, které požadujeme, poté tento polygon uložíme do nějakého souboru a převedeme ho pomocí gpsbabel na požadovaný tvar.
gpsbabel -i kml -f pardubicky.kml -o arc -F pardubicky.arc
Pak použijeme souřadnice kraje na ve filtru polygon na dvou vstupních souborech:
gpsbabel -i gpx -f a.gpx -f b.gpx -x polygon,file=pardubicky.arc -o gpx -F -
Podíváme se na výsledek a nakonec můžeme vše poslat do navigace.
Závěr
Filtry jsou v GPSBabelu opravdu mocné. Osobně jich tolik zase nevyužiji, ale někomu se mohou hodit. Pokud hledáte co by šlo udělat s GPSBabel dál, tak na stránkách projektu je ke každé verzi napsáno co se změnilo případně přidalo včetně příkladů použití.