Doplnění GPS pozice do EXIFu fotografie

Existuje několik digitálních fotoaparátů, které obsahují GPS přijímač a do EXIFu fotografie ukládají aktuální pozici fotoaparátu. Tuto informaci lze využít jednak při následné katalogizaci snímků (kde jsem to jen mohl vyfotit?) či k prezentaci na webu (ve spojení se servery mapy.cz, maps.google.com, Google Earth).

Pokud vlastníte GPS přijímač, který ukládá tzv. track log, pak máte možnost doplnit GPS tagy do EXIFu dodatečně. Následující postup se týká GPS přijímače Garmin eTrex Vista Cx.

Nastavení track logu

Track log lze z GPS přístroje získat buď přímo z jeho paměti (tzv. Active Log – maximálně 10 000 bodů) nebo z uloženého track logu (Saved Tracks – ty jsou však bez časového údaje, takže pro naše účely nepoužitelné). Existuje ještě jedna možnost, vhodná především pro delší cesty: xTrex Vista umí ukládat track log přímo na paměťovou kartu ve formátu GPX:

  • hlavní Menu / Tracks / Setup – zde zaškrtnout Wrap When Full (po zaplnění paměti začne přepisovat nejstarší body), vybrat způsob záznamu (preferuji dle vzdálenosti, každých 50 metrů);
  • dále v tomtéž okně zvolit Data Card Setup a zaškrtnout Log Track To Data Card;

Na paměťovou kartu budou ukládány gpx soubory – za každý den jeden. Po připojení k počítači lze eTrex přepnout do režimu USB Mass Storage a zkopírovat soubory na hard disk počítače, alternativně lze samozřejmě využít čtečku MicroSD karet.

Protože fotografie ukládám obvykle dle data a názvu „akce“ či výletu, spojuji jednotlivé soubory do jednoho velkého pokrývajícího celou akci. Výsledný soubor trip_track.gpx ukládám do stejného adresáře jako snímky.
$ gpsbabel -t -i gpx -f 20061224.gpx -f 20061225.gpx -x track,merge -o gpx -F trip_track.gpx
(Případně je možné použít navíc parametr -x track,start=2006122410000,end=20061225150000, který vybere body v zadaném časovém intervalu YYYYMMDDHHMMSS.)

Pokud by nevyhovalo, že dojde ke spojení do jednoho velkého track logu, je nutné editovat GPX soubory vytvořené Garminem ručně v textovém editoru – struktura je jednoduchý XML soubor.

Doplnění GPS tagu do EXIFu

Doplnění z 12. června 2007: Náhodou jsem narazil na jednoduchý GUI program GPS Photo Correlate. Obsahuje jak skript pro příkazovou řádku s podobnou funkčností jako gpsPhoto.pl, tak i GUI program. Jeho nevýhodou je nemožnost definice časového rozdílu mezi GPS přístrojem a fotoaparátem na jednotlivé vteřiny, umožňuje pouze minuty (což při jízdě na kole hraje roli).

Doplnění z 29. dubna 2009: Aktuální verze GPS Photo Correlate už umožňuje nastavit rozdíl mezi časem GPS přístroje a fotoaparátu ve vteřinách.

Možností je opět více, zvolil jsem program (či spíše skript) gpsPhoto.pl:
$ gpsPhoto.pl --dir . --gpsfile trip_track.gpx --timeoffset "-3600" --track-color 80000099 --kml google_earth.kml \
--overwrite-geotagged --interpolate

Skript vyhledá informace z trip_track.gpx dle času uvedeného v EXIFu snímků (JPEG, CRW, CR2, NEF) v aktuálním adresáři. Vzhledem k tomu, že eTrex ukládá čas dle UMT a ve fotoaparátu mám nastaven místní čas, je třeba vzít v úvahu i vzájemný časový posun – v mém případě 1 hodina = -3600 vteřin.

Skript současně vytvoří KML soubor pro Google Earth – ten zobrazí na satelitních snímcích Země trasu, kudy jsem se pohyboval, a body, kde jsem fotografoval (včetně možnosti náhledu snímku).

Poznámky

  • Pro přesnější lokaci je vhodné nastavit GPS přijímač na častější ukládání informace o aktuální pozici.
  • Pro přesnější zjištění rozdílu mezi časem GPS přijímače a fotopřístroje je dobré vyfotit displej GPS přístroje – rozdíl spočteme z času dle EXIFu a informace na snímku.
  • KML soubor pro Google Earth lze vytvořit přímo pomocí gpsbabel (ovšem bez bodů označujících místa, kde jsme fotografovali):
    gpsbabel -t -i gpx -f trip_track.gpx -o kml,points=0,units=m,line_color=70FF0000,line_width=3 -F google.kml
  • Ještě malý skript pro zobrazení místa, kde jsme fotografovali, na serveru mapy.cz – má podrobnější mapy Česka než Google:

    #!/bin/bash
    search_term="http://www.mapy.cz/?query=Loc:%20"
    for i in `exiftool -s -s -s -c "%d°%d'%.2f"\" -GPSLatitude -GPSLongitude "${1}"`; do
     tmp=`echo ${i} | sed 's/°/%C2%B0/' | sed 's/\"/%22/'`
     search_term="${search_term}${tmp}"
    done
    # mm parametr může nabývat různých hodnot; FP značí fotomapa
    exec konqueror ${search_term}@mm=FP
    exit

    Používám jej v Konqueroru – kliknutím pravým tlačítkem na JPEG soubor a výběrem v Actions menu – a spouštím jej přímo z MaPiVi při popisování fotografií (MaPiVi má v menu Options možnost nastavit název programu, který nastaví fotku na plochu monitoru – tuto funkci nepoužívám, tak jsem jako externí program nastavil tento svůj skript).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..