Geotagging v praxi - GPS, fotografia a linux. Krajinársky koktejl.

Geotagging v praxi - GPS, fotografia a linux. Krajinársky koktejl.

Vydáno: 27. 9. 2010
Autor: zadow

 V predchádzajúcom článku ste spolu so mnou putovali po bulharskom mestečku Nesebar. Počas celého výletu som mal na svojom mobile zapnuté GPS a zaznamenával som si ujdenú trasu do súboru. Poďme sa dnes pozrieť, ako dať dokopy veci, ktoré na prvý pohľad spolu vôbec nesúvisia - GPS súradnice a fotografiu.

Fotím v prevažnej miere krajinky a tak som pri triedení fotiek veľmi rýchlo narazil na problém - kde som toto vlastne fotil? Riešenie prišlo v podobe geotaggingu - vkladaniu GPS súradníc do EXIF informácií fotografie. Hej, ale ako ich tam dostať? Môj aparát GPS nemá a ani nepoznám jednoduchý a lacný spôsob ako nejakú GPS k telu aparátu pripojiť.

Existujú GPS do bleskových sánok, ale toto zariadenie nie je kompatibilné s každým telom a už vôbec nie je lacné. Šiel som sa teda opýtať strýčka Googla, ako to riešia podobne postihnutí fotografi. Odpoveďou mi bolo jednoduché a elegantné riešenie. Stačí mať GPS zariadenie, ktoré dokáže v pravidelných intervaloch ukladať - vzorkovať - GPS pozíciu. Mnohé GPS zariadenia, určené na pešiu turistiku, toto robia automaticky.

Ja som vybavený len mobilným telefónom s GPS a s operačným systémom Android, a tak som si musel pomôcť nejakým dodatočným softvérom. Po chvíľke hľadania, som už mal v telefóne nainštalovaný veľmi jednoduchý program, ktorý robí presne to, čo potrebujem. Nič viac a nič menej. Program sa volá Offline logger a nájdete ho na Android Markete. Stačí ho spustiť a v nastaveniach zadať frekvenciu, ako často má ukladať GPS polohu. Program ukladá dáta do súboru vo formáte gpx. Ten budeme potrebovať pri samotnom geotaggovaní fotografií. Spomeniem ešte, že je veľmi vhodné skontrolovať čas a dátum na fotoaparáte a na GPS prístroji. V prípade potreby ich zosynchronizovať, aby odchýlka medzi nimi bola, podľa možností, minimálna. Ušetrí nám to čas a prácu v závere.

Ak som to ešte nespomenul, poviem vám to teraz a dúfam, že vás moc nesklamem. Som totiž linux pozitívny. Postupy a nástroje, ktoré popisujem nižšie, sú určené pre linux a neskúmal som ich použitelnosť pod inými operačnými systémami. Ak bude záujem, v budúcnosti sa tomu môžeme venovať v inom, samostatnom článku.

Prípravu mám úspešne za sebou. GPS prístroj zapnutý, svoju pozíciu logujem a ukladám do súboru, časy zosynchronizované. Môžem ísť fotiť.

Po návrate z fotovýpravy, mám celú kopu nových, úžasných fotiek. K tomu záznam svojho putovania v podobe GPS súradníc, uložených v gpx súbore. Ako to ale dať dohromady?  

Opäť som musel chvíľku pátrať po internete, až som našiel veľmi jednoduchý a účelný skriptík gpsPhoto. V aktuálnej verzií, môžete pomocou tohoto skriptíku vkladať GPS súradnice do EXIFu fotografií, v nasledovných formátoch:
  • jpeg
  • nef (Nikon)
  • cr2 (Canon RAW formát)
  • crw (Canon RAW formát)

Skript je napísaný v Perle a aby správne fungoval, je potrebné mať nainštalovaný nástroj exiftool. Určite ho nájdete aj v repozitároch pre vašu distribúciu linuxu.

Princíp fungovania geotaggingu je v podstate veľmi jednoduchý. Nech už použijete akýkoľvek nástroj, postup je vždy rovnaký. V EXIFe každej fotografie je čas a dátum, kedy bola fotka vyfotená. V gpx súbore je zase uložená vaša pozícia a čas. Program na geotaggovanie, v súbore so súradnicami vyhľadá čas, ktorý sa najviac približuje času vyfotenia fotky. Keď ho nájde, prečíta GPS súradnice priradené tomuto času a jednoducho ich vloží do EXIFu fotky. Znie to celkom jednoducho, však?

Princíp fungovania geotaggingu je v podstate veľmi jednoduchý. Nech už použijete akýkoľvek nástroj, postup je vždy rovnaký. V EXIFe každej fotografie je čas a dátum, kedy bola fotka vyfotená. V gpx súbore je zase uložená vaša pozícia a čas. Program na geotaggovanie, v súbore so súradnicami vyhľadá čas, ktorý sa najviac približuje času vyfotenia fotky. Keď ho nájde, prečíta GPS súradnice priradené tomuto času a jednoducho ich vloží do EXIFu fotky. Znie to celkom jednoducho, však?

Ako som už písal, gpsPhoto je perlovský skript, a preto sa používa z príkazovej riadky. Je ľahko možné, že sa v krátkej dobe objaví nejaké grafické klikátko. Vzhľadom na jednoduchosť použitia, som však po ňom nepátral. Ak o niečom viete, alebo sa vám podarí niečo nájsť, dajte vedieť, určite tým niekomu pomôžete. Ale nazad k programu samotnému.

Toto je postup, aký som použil ja. Fotky, do ktorých chcem vložiť geotag, si uložím do jedného adresára. Už som spomínal, že gpsPhoto podporuje, okrem štandardného JPEG formátu, aj fotografie v RAW formáte. Je teda úplne jedno, či sa chystáme geotagovať fotografie pred, alebo až po vyvolaní z RAWu. Mnoho fotografov fotí priamo do JPEG-u, takže túto otázku nemusia riešiť vôbec.

Z GPS zariadenia (alebo telefónu) si stiahnem gpx súbor s GPS súradnicami, uložím ho na disk a hurá na geotagovanie.

Syntax príkazu vyzerá nasledovne:

./gpsPhoto --gpsfile <vas_subor_s_GPS_suradnicami.gpx> --timeoffset <počet sekúnd> --maxtimediff <počet sekúnd> --dir </cesta/ku/vasim/fotkam/>

Prepínač --timeoffset upravuje časový posun medzi GPS prístrojom a fotoaparátom. Ak som zabudol na začiatku trasy zosynchronizovať časy, toto je miesto, kde svoju zábudlivosť napravím. Môže sa mi napríklad tiež stať, že GPS prístroj ukazuje čas a dátum podľa iného časového pásma, ako fotoaparát, ale ja si to všimnem až po návrate z výletu. Časový posun sa zadáva v sekundách. Pri posune napríklad o dve hodiny, zadám hodnotu 2x3600, teda 7200. Ja som mal na začiatku obidva prístroje zosynchonizované, môžem sem teda smelo napísať nulu. Prepínač nie je možné vynechať a vždy musí mať zadaný parameter. Teda aj napríklad spomínanú nulu v prípade, keď nechcem posúvať čas.

Druhým zaujímavým prepínačom je --maxtimediff. Situácia: pri fotení som sa dostal na miesto, kde mi je jasné, že sa zdržím dlhšiu dobu. Aby som ušetril batériu, vypnem GPS modul. Zostanem na tomto mieste, dajme tomu hodinu, ale počas tejto hodiny urobím niekoľko ďalších záberov. Pred odchodom, opätovne zapnem GPS a pohnem sa ďalej. Ďalší možný prípad je, že sa dostanem na miesto bez GPS signálu. Týmto prepínačom, teda určím akýsi časový rozptyl pre fotografie, ku ktorým sa v gpx súbore nepodarilo nájsť ekvivalentný čas. Fotografia sa potom namapuje na súradnice s najbližším časom, v rámci zadaného intervalu. Na mojom výlete po Nesebare som vzorkoval GPS súradnice každé dve minúty a celý čas som mal veľmi dobrý signál. Rozptyl som nastavil na 5 minút a výsledky boli presné. Aj tento parameter sa zadáva v sekundách. 5 minút teda zadám ako 5x60=300 sekúnd. Ani tento prepínač nie je možné vynechať. Odporúčam rozptyl nastaviť minimálne na 1.5 násobok vzorkovacej frekvencie. Pri vzorkovaní každých 120 sekúnd, teda nastaviť maxtimediff minimálne na 180 sekúnd.

A ako teda vyzerala celá tá veda v mojom konkrétnom prípade? Takto:

./gpsPhoto --gpsfile 20100826063336-20100826091258.gpx --timeoffset 0 --maxtimediff 300 --dir /home/radovan/private/Pictures/canonklub_nesebar/

Pomocou nástroja exiftool, môžem nazrieť do upraveného EXIFu, niektorej z práve geotagovaných fotiek:

#exiftool IMG_7891_CR2.JPG | grep -i gps

GPS Version ID                  : 2.3.0.0

GPS Latitude Ref                : North

GPS Longitude Ref               : East

GPS Altitude Ref                : Above Sea Level

GPS Time Stamp                  : 09:05:29

GPS Img Direction Ref           : True North

GPS Img Direction               : 0

GPS Map Datum                   : WGS-84

GPS Date Stamp                  : 2010:08:26

GPS Altitude                    : 48 m Above Sea Level

GPS Date/Time                   : 2010:08:26 09:05:29Z

GPS Latitude                    : 42 deg 39' 29.02" N

GPS Longitude                   : 27 deg 44' 10.06" E

S fotkou, ktorá má v EXIFe tých pár riadkov navyše, riadkov s GPS súradnicami, sa otvára úplne nový svet. Keď opomeniem príjemnú drobnosť, kedy pri uploadovaní fotiek do Picasa alebo Panoramio, je takáto fotka automaticky lokalizovaná na mape,  odpadá teda hra “Spomeň, kde si fotil”. Je tu tiež možnosť vytvárania vlastných máp. Myslím, že táto téma by vydala na samostatný článok. Jeden zaujímavý projekt, v ktorom si môžete vytvoriť vlastnú mapu so zobrazením trasy vášho tripu a zároveń aj fotografií, nájdete na týchto stránkach.

Google EarthMedzi mimoriadne známe a veľmi obľúbené projekty, patrí aj Google Earth, kam svojimi fotografiami prispievajú fotografi z celého sveta prostredníctvom portálu www.panoramio.com. Ak chcete v Google Earth zobraziť len svoje fotografie, do ktorých ste tak pracne dostali geotag, zistíte, že je to veľmi jednoduché. Jeden z možných postupov, je geotagované fotografie nahrať Google Mapsdo albumu na Picasa, ako som to napríklad urobil ja, s fotkami pre článok o Nesebare. V pravej spodnej časti je náhľad mapy, kde je vyznačená poloha každej fotky. Pod mapkou sú dva linky. View map zobrazí fotky na maps.google.com a View in Google Earth otvorí aplikáciu Google Earth, ak ju máte nainštalovanú a zobrazí vaše fotky priamo v tejto vynikajúcej aplikácii. Nezabudnite zrušiť voľbu Panoramio Photos v časti Layers, aby sa tie vaše, nestratili v záplave fotiek ostatných fotografov.

Používate iné postupy, metódy alebo nástroje? Jednoduchšie a lepšie? Boli ste na zaujímavých miestach, ktoré stoja za zmienku? Podeľte sa s nami. Či už v diskusii pod článkom, alebo najlepšie samostaným článkom.

Fotografom prajem dobré svetlo, geokešerom dobrý signál a všetkým dokopy, happy geotaging ;-)

Radovan “zadow” Čihák

Fotobazar se zobrazí pouze přihlášeným

Na tomto místě se registrovaným a přihlášeným fotografům zobrazuje fotobazar.