ˇ ´I TECHNICKE ´ V BRNE ˇ VYSOKE´ UCEN BRNO UNIVERSITY OF TECHNOLOGY
ˇ ´ICH TECHNOLOGI´I FAKULTA INFORMACN ˇ ´ITACOV ˇ ´ ´ GRAFIKY A MULTIMEDI ´ ´I USTAV POC E FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA
APLIKACE PRO GEOTAGGING FOTOGRAFI´I PHOTOGRAPHY GEOTAGGING APPLICATION
´ RSK ˇ ´ PRACE ´ BAKALA A BACHELOR’S THESIS
´ AUTOR PRACE
´ ALENA PAVELKOVA
AUTHOR
´ VEDOUC´I PRACE SUPERVISOR
BRNO 2011
ˇ Ing. RADEK KUB´ICEK
Abstrakt Tato pr´ ace se zab´ yv´ a geotaggingem fotografi´ı, tedy urˇcov´an´ım a zaznamen´av´an´ım jejich pozice. Jsou zde pops´ any r˚ uzn´e zp˚ usoby geotaggingu a vysvˇetleny souvisej´ıc´ı pojmy a technologie k nˇemu potˇrebn´e. Je zde uvedeno nˇekolik existuj´ıc´ıch program˚ u pro geotagging a pops´ an n´ avrh a vybran´e implementaˇcn´ı probl´emy vlastn´ı grafick´e aplikace umoˇzn ˇuj´ıc´ı geotagging fotografi´ı synchronizac´ı s trasou ve form´atu GPX nebo pomoc´ı mapy. Je zde pops´ano uˇzivatelsk´e rozhran´ı, jeho jednotliv´e ˇc´asti a jejich propojen´ı, pouˇzit´e n´astroje a ˇreˇsen´ı nˇekter´ ych probl´em˚ u.
Abstract This bachelor’s thesis describes photography geotagging – finding and storing their position. There are mentioned several differed ways to geotag photos and explained related terms and needed technologies. Furthermore, there are introduced some existing applications for photography geotagging and described design and selected implementation problems of application created as part of this thesis. This application enables to geotag photos as a result of synchronization with route in GPX format or using map. There is described GUI, its parts and connections between them, used tools, and solutions to some problems.
Kl´ıˇ cov´ a slova geotagging, gps, exif, fotografie, mapa, Qt, exiv2, google maps API, GPX, UTC
Keywords geotagging, gps, exif, photography, map, Qt, exiv2 , google maps API, GPX, UTC
Citace Alena Pavelkov´ a: Aplikace pro geotagging fotografi´ı, bakal´aˇrsk´a pr´ace, Brno, FIT VUT v Brnˇe, 2011
Aplikace pro geotagging fotografi´ı Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem tuto bakal´ aˇrskou pr´aci vypracovala samostatnˇe pod veden´ım Ing. Radka Kub´ıˇcka ....................... Alena Pavelkov´ a 17. kvˇetna 2011
Podˇ ekov´ an´ı Chtˇela bych podˇekovat vedouc´ımu pr´ace Ing. Radkovi Kub´ıˇckovi za cenn´e rady a pomoc pˇri ˇreˇsen´ı pr´ ace.
c Alena Pavelkov´
a, 2011. Tato pr´ ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe informaˇcn´ıch technologi´ı. Pr´ ace je chr´ anˇena autorsk´ym z´ akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´ avnˇen´ı autorem je nez´ akonn´e, s v´yjimkou z´ akonem definovan´ych pˇr´ıpad˚ u.
´ Uvod C´ılem t´eto pr´ ace je vytvoˇrit aplikaci umoˇzn ˇuj´ıc´ı geotagging fotografi´ı. Bˇehem posledn´ıch let byly fotoapar´ aty pouˇz´ıvaj´ıc´ı fotografick´ y film t´emˇeˇr nahrazeny tˇemi digit´aln´ımi. Tyto fotoapar´ aty zaznamen´ avaj´ı zachycen´e fotografie na digit´aln´ı m´edia a mohou k nim ukl´adat nˇekter´ a metadata. Nejˇcastˇeji se jedn´a o datum a ˇcas poˇr´ızen´ı fotografie a informace o nastaven´ı fotoapar´ atu. Nˇekter´e fotoapar´aty obsahuj´ıc´ı GPS pˇrij´ımaˇc mohou k fotografi´ım zaznamen´avat tak´e zemˇepisnou polohu poˇr´ızen´ı sn´ımku. D´ıky tomu lze i po p´ar letech zjistit, kde byla konkr´etn´ı fotografie vyfocena, coˇz m˚ uˇze m´ıt neoceniteln´ y dokument´arn´ı v´ yznam. Tak´e nˇekter´e GPS pˇr´ıstroje jiˇz v dneˇsn´ı dobˇe dok´aˇz´ı metadata ve fotografi´ıch zpracovat a lze potom velmi snadno navigovat pˇresnˇe na c´ıl naˇseho z´ajmu, kter´ y je na fotografii zobrazen. Protoˇze ale GPS pˇrij´ımaˇc nen´ı bˇeˇznou souˇc´ast´ı digit´aln´ıch fotoapar´at˚ u, m˚ uˇze b´ yt ˇz´adouc´ı pˇriˇradit fotografi´ım jejich pozici dodateˇcnˇe. Pr´avˇe to by mˇela umoˇznit vytv´aˇren´a aplikace. Kapitola 2 rozeb´ır´ a teoretick´e aspekty pr´ace. Pozornost je vˇenov´ana zejm´ena technologii GPS (sekce 2.1) a s n´ı souvisej´ıc´ı problematice UTC, urˇcov´an´ı pozice na Zemi, zemˇepisn´ ych souˇradnic, zjiˇstˇen´ı vzd´alenosti bod˚ u a zaznamen´av´an´ı GPS trasy. D´ale je vysvˇetlen zp˚ usob vkl´ ad´ an´ı metadat do fotografie (sekce 2.2). V sekci 2.3 jsou uvedeny r˚ uzn´e zp˚ usoby pˇriˇrazov´ an´ı souˇradnic fotografii a vysvˇetleny r˚ uzn´e metody aproximace pozice fotografie pˇri synchronizaci s GPS trasou. D´ale je v t´eto kapitole ˇreˇsena problematika ˇcasov´ ych p´asem a letn´ıho ˇcasu (sekce 2.4) a vysvˇetlen pojem kartografie 2.5. Na z´avˇer kapitoly (sekce 2.6) jsou pops´ any nˇekter´e existuj´ıc´ı programy umoˇzn ˇuj´ıc´ı geotagging fotografi´ı. Kapitola 3 se zab´ yv´ a n´ avrhem vytv´aˇren´e aplikace. Jsou zde diskutov´any moˇzn´e metody ˇreˇsen´ı r˚ uzn´ ych probl´em˚ u, pops´any pouˇzit´e n´astroje, jednotliv´e grafick´e prvky a jejich propojen´ı a vysvˇetleny nˇekter´e pouˇzit´e postupy. V kapitole 4 jsou pops´ any nˇekter´e vybran´e implementaˇcn´ımi probl´emy a jejich ˇreˇsen´ı a v kapitole 5 jsou shrnuty v´ ysledky pr´ace a pops´ana moˇzn´a rozˇs´ıˇren´ı aplikace.
3
Kapitola 2
Teoretick´ aˇ c´ ast 2.1
GPS
Pro urˇcen´ı pˇresn´e polohy na zemˇekouli se pouˇz´ıvaj´ı GPS souˇradnice. GPS je zkratka Global Positioning System. Tento syst´em umoˇzn ˇuje urˇcit polohu jak´ehokoli bodu na Zemi. Pro lokalizaci se pouˇz´ıv´ a sada satelit˚ u. Cel´ y syst´em byl spuˇstˇen v roce 1994 a p˚ uvodnˇe byl projektov´ an pro 24 satelit˚ u, v souˇcasnosti se na orbitˇe nach´az´ı 31 aktivn´ıch satelit˚ ua3 aˇz 4 vyˇrazen´e, kter´e mohou b´ yt v pˇr´ıpadˇe potˇreby aktivov´any [7]. Tyto satelity ob´ıhaj´ı Zemi po stˇredn´ı orbitˇe Zemˇe v nadmoˇrsk´e v´ yˇsce pˇribliˇznˇe 20 200 km. 24 prim´arn´ıch satelit˚ u je rozdˇeleno do ˇsesti skupin po ˇctyˇrech, z nichˇz kaˇzd´a skupina m´a svoji obˇeˇznou dr´ahu. Jejich uspoˇr´ad´ an´ı zaruˇcuje, ˇze v kter´emkoli okamˇziku jsou z jak´ehokoli m´ısta na Zemi viditeln´e minim´ alnˇe ˇctyˇri satelity. Vˇsechny satelity znaj´ı svoji pˇresnou polohu a maj´ı nastaven´ y ˇcas UTC.
2.1.1
UTC
UTC [1] (Coordinated Universal Time – koordinovan´ y svˇetov´ y ˇcas) je ˇcas atomov´ ych hodin a je nez´ avisl´ y na rotaci Zemˇe. T´ım se liˇs´ı od GMT (Greenwich Mean Time), kter´ y je historicky starˇs´ı a ud´ av´ a ˇcas v ˇcasov´em p´asmu nult´eho poledn´ıku. Protoˇze se rotace Zemˇe zpomaluje, GMT a UTC nejsou totoˇzn´e, ale GMT se m´ırnˇe opoˇzd’uje. Proto je nutn´e UTC korigovat. Pokud se UTC odch´ yl´ı od UT11 o v´ıce neˇz ±0,9 sekundy, je o p˚ ulnoci n´ asleduj´ıc´ıho 30. ˇcervna nebo 31. prosince provedena korekce o ±1 sekundu.
2.1.2
Urˇ cen´ı polohy
GPS pˇrij´ımaˇce maj´ı tak´e nastaven´ y UTC ˇcas (i kdyˇz ne zcela pˇresn´ y) [11]. Kaˇzd´ y satelit neust´ale vys´ıl´ a rychlost´ı svˇetla sign´al informuj´ıc´ı o jeho poloze a ˇcase a GPS pˇrij´ımaˇce na Zemi zachyt´ avaj´ı tyto sign´ aly. Pˇri sign´alu z prvn´ıho satelitu porovn´a GPS pˇrij´ımaˇc jeho ˇcas se sv´ ym ˇcasem a urˇc´ı svoji pˇribliˇznou vzd´alenost od satelitu. GPS pˇrij´ımaˇc se tedy nach´az´ı na povrchu pomysln´e koule o polomˇeru t´eto vzd´alenosti, v jej´ımˇz stˇredu se nach´ az´ı satelit vys´ılaj´ıc´ı sign´ al. Pˇri pˇrijmut´ı druh´eho sign´alu zjist´ı GPS pˇrij´ımaˇc svoji vzd´alenost od druh´eho satelitu a dost´ av´ ame dalˇs´ı pomyslnou kouli, na jej´ımˇz povrchu se GPS pˇrij´ımaˇc nach´az´ı. GPS pˇrij´ımaˇc tedy mus´ı leˇzet na kruhu, kter´ y je pr˚ useˇc´ıkem tˇechto koul´ı. Pˇri 1
Univerz´ aln´ı rotaˇcn´ı ˇcas pˇrepoˇc´ıtan´ y na Greenwichsk´ y poledn´ık s n´ aslednou korekc´ı chyby zp˚ usoben´e pohybem p´ ol˚ u [18].
4
pˇrijmut´ı tˇret´ıho sign´ alu se protne tento kruh s koul´ı o polomˇeru vzd´alenosti GPS pˇrij´ımaˇce od tˇret´ıho satelitu a dostaneme dva body s pˇribliˇznˇe stejnou zemˇepisnou ˇs´ıˇrkou a d´elkou a r˚ uznou nadmoˇrskou v´ yˇskou. Pro upˇresnˇen´ı pot´e potˇrebujeme jeˇstˇe sign´al ze ˇctvrt´eho satelitu [6]. GPS pˇrij´ımaˇc nedost´ av´ a sign´aly ze vˇsech druˇzic, ale pouze z tˇech, kter´e jsou pro nˇej viditeln´e, viz obr´ azek 2.1, kde z modˇre oznaˇcen´eho bodu je viditeln´ ych 12 ˇcernˇe oznaˇcen´ ych satelit˚ u.
Obr´ azek 2.1: Viditelnost druˇzic z povrchu Zemˇe [6].
2.1.3
Zemˇ episn´ e souˇ radnice
K jednoznaˇcn´emu urˇcen´ı polohy na povrchu Zemˇe se pouˇz´ıvaj´ı zemˇepisn´e souˇradnice. Vertik´aln´ı pozici ud´ av´ a nadmoˇrsk´ a v´ yˇska a horizont´aln´ı pozice je reprezentov´ana zemˇepisnou ˇs´ıˇrkou a d´elkou. Zemˇepisn´ a ˇs´ıˇrka je u ´hlov´ a vzd´alenost od rovn´ıku, tedy u ´hel, kter´ y sv´ır´a rovina rovn´ıku s pˇr´ımkou proch´ azej´ıc´ı dan´ ym bodem a stˇredem Zemˇe. M˚ uˇze b´ yt bud’ severn´ı nebo jiˇzn´ı a m˚ uˇze nab´ yvat maxim´ aln´ıch hodnot 90◦ severn´ı ˇs´ıˇrky (na severn´ım p´olu) nebo 90◦ jiˇzn´ı ˇs´ıˇrky (na jiˇzn´ım p´ olu). M´ısta se stejnou zemˇepisnou ˇs´ıˇrkou se oznaˇcuj´ı rovnobˇeˇzky [12]. Zemˇepisn´ a d´elka je u ´hlov´ a vzd´alenost mezi rovinou Greenwichsk´eho poledn´ıku a rovinou poledn´ıku proch´ azej´ıc´ıho dan´ ym bodem. Poledn´ık je pomysln´a ˇc´ara proch´azej´ıc´ı body se stejnou zemˇepisnou d´elkou. Z´akladn´ı je Greenwichsk´ y (nult´ y) poledn´ık, kter´ y m´ a zemˇepisnou d´elku 0◦ . Poledn´ıky na z´apad od nˇej maj´ı z´apadn´ı d´elku a na v´ ychod od nˇej d´elku v´ ychodn´ı. Maxim´ aln´ı hodnota je 180◦ v´ ychodn´ı nebo z´apadn´ı d´elky [13].
2.1.4
Vzd´ alenost mezi dvˇ ema body urˇ cen´ ymi zemˇ episn´ ymi souˇ radnicemi
Nejkratˇs´ı spojnice dvou bod˚ u na povrchu kulov´e plochy se naz´ yv´a ortodroma [14]. Protoˇze Zemˇe je t´emˇeˇr kulat´ a, m˚ uˇzeme pro zjiˇstˇen´ı vzd´alenosti dvou bod˚ u leˇz´ıc´ıch na jej´ım povrchu pouˇz´ıt v´ ypoˇcet d´elky ortodromy. D´elku ortodromy m˚ uˇzeme spoˇc´ıtat pomoc´ı rovnice 2.1 d = ∆σ · R,
5
(2.1)
kde ∆σ je u ´hel, kter´ y sv´ıraj´ı spojnice bod˚ u, jejichˇz vzd´alenost poˇc´ıt´ame, se stˇredem Zemˇe a R je stˇredn´ı polomˇer Zemˇe [8]. V´ ypoˇ cet u ´ hlu pomoc´ı skal´ arn´ıho souˇ cinu vektor˚ u Pro v´ ypoˇcet u ´hlu spojnic bod˚ u se stˇredem Zemˇe m˚ uˇzeme vyuˇz´ıt skal´arn´ıho souˇcinu vektor˚ u r1 a r2 , kde r1 je vektor spojnice prvn´ıho bodu se stˇredem Zemˇe a r2 je vektor spojnice stˇredu Zemˇe s druh´ ym bodem [19]. Tento souˇcin n´am ud´av´a kosinus u ´hlu sv´ıran´eho tˇemito ´ vektory. Uhel tedy dostaneme z rovnice 2.2: σ = arccos(r1 · r2 ).
(2.2)
Pokud m´ ame souˇradnice uvedeny v zemˇepisn´e ˇs´ıˇrce a d´elce, pouˇzijeme rovnici 2.3: σ = arccos(cos(lat1 ) cos(lat2 ) cos(lon1 − lon2) + sin(lat1 ) sin(lat2 )).
(2.3)
V´ ysledn´ a vzd´ alenost z´ıskan´ a pomoc´ı u ´hlu z´ıskan´eho touto metodou je pomˇernˇe pˇresn´ a pro velk´e vzd´ alenosti, ale u mal´ ych vzd´alenost´ı v ˇr´adu kilometr˚ u vznikaj´ı velk´e zaokrouhlovac´ı chyby [8]. Pro tyto vzd´ alenosti je lepˇs´ı pouˇz´ıt Haversinovu formuli. V´ ypoˇ cet u ´ hlu pomoc´ı Haversinovy formule Pro pˇresnˇejˇs´ı v´ ypoˇcet u ´hlu m˚ uˇzeme pouˇz´ıt Haversinovu formuli 2.4: s ! lat − lat lon − lon 2 1 2 1 σ = 2 arcsin + cos (lat1 ) cos (lat2 ) sin2 . sin2 2 2
(2.4)
Tato formule je dostateˇcnˇe pˇresn´a i pro kr´atk´e vzd´alenosti. Zaokrouhlovac´ı chyby se projev´ı pˇri v´ ypoˇctu vzd´ alenost´ı bod˚ u maj´ıc´ıch opaˇcn´e souˇradnice. Protoˇze v programu budou poˇc´ıt´ any vzd´ alenosti mezi body zaznamenan´ ymi GPS pˇrij´ımaˇcem, kter´e jsou v ˇr´adech metr˚ u, byla pro v´ ypoˇcet u ´hlu zvolena tato formule. Stˇ redn´ı polomˇ er Zemˇ e Protoˇze Zemˇe nen´ı pˇresnˇe kulat´a, nem´a vˇsude stejn´ y polomˇer. Nejvˇetˇs´ı polomˇer je na rovn´ıku (6 378,1370 km) a nejmenˇs´ı na p´olech (6 356,7523 km). Pomoc´ı modelov´an´ı Zemˇe jako koule byl urˇcen stˇredn´ı polomˇer pˇribliˇznˇe 6 371 km [3].
2.1.5
Zaznamen´ av´ an´ı trasy
Nˇekter´e GPS pˇrij´ımaˇce dok´ aˇz´ı zaznamen´avat souˇradnice libovoln´e trasy tak, ˇze v pˇribliˇznˇe pravideln´ ych intervalech zaznamen´avaj´ı svoji aktu´aln´ı pozici. Trasu lze zaznamen´avat v nˇekolika form´atech – napˇr´ıklad GPX [5] nebo KML2 . Vytvoˇren´a aplikace um´ı pracovat s form´atem GPX, kter´ y je zaloˇzen´ y na XML. Jednotliv´e body jsou seskupen´e v segmentech, maj´ı dva povinn´e parametry (zemˇepisnou ˇs´ıˇrku a d´elku) a mohou obsahovat dalˇs´ı voliteln´e elementy (napˇr´ıklad ˇcas, nadmoˇrskou v´ yˇsku, aktu´aln´ı rychlost, smˇer pohybu, pˇresnost um´ıstˇen´ı). Z oˇcek´ avan´e funkcionality aplikace je nutn´e, aby bod obsahoval informaci o ˇcase. Zaznamenan´e ˇcasov´e u ´daje jsou uv´adˇeny ve form´atu UTC (viz 2.1.1). S t´ım je nutn´e poˇc´ıtat pˇri v´ ypoˇctu souˇradnic fotografi´ı, kter´e maj´ı nastaven ˇcas lok´aln´ıho ˇcasov´eho p´asma s ˇcasov´ ym posunem. 2
Form´ at udrˇzovan´ y spoleˇcnost´ı Google, v´ıce na .
6
2.2
Exif metadata
Exif (Exchangeable image file format) je form´at metadat fotografi´ı, kter´ y byl vytvoˇren asociac´ı Jeita (Japan Electronics and Information Technology Industries Association). Aktu´aln´ı verze specifikace je Exif verze 2.2 [15] z roku 2002. Metadata jsou bin´ arn´ı data. Maj´ı adres´aˇrovou strukturu [4] a kaˇzd´a poloˇzka v adres´ aˇri m´a pˇredem zn´ am´ y poˇcet byt˚ u [9]. Ne vˇsechny adres´aˇre uveden´e ve specifikaci mus´ı b´ yt pˇr´ıtomny. V jednotliv´ ych adres´ aˇr´ıch jsou uloˇzeny napˇr´ıklad informace o znaˇcce a modelu fotoapar´ atu, jeho orientaci v dobˇe poˇr´ızen´ı fotografie, ˇcas poˇr´ızen´ı, clona, pouˇzit´ı blesku, ˇcas expozice, vyv´ aˇzen´ı b´ıl´e nebo GPS souˇradnice. Kromˇe standardn´ıch atribut˚ u mohou metadata obsahovat tak´e adres´aˇr s pozn´amkami v´ yrobce [10]. Jeho obsah je specifick´ y podle znaˇcky fotoapar´atu a m˚ uˇze se liˇsit tak´e podle modelu. Mohou zde b´ yt uloˇzeny mimo jin´e pokroˇcil´e informace o fotografii, kter´e nejsou definov´ any ve specifikaci. Ukl´ ad´ an´ı do Exif metadat je podporov´ano drtivou vˇetˇsinou dnes vyr´abˇen´ ych digit´aln´ıch fotoapar´ at˚ u.
2.3
Geotagging
Pojmem geotagging rozum´ıme pˇriˇrazov´an´ı souˇradnic r˚ uzn´ ym digit´aln´ım m´edi´ım, napˇr´ıklad videu, fotografi´ım, SMS zpr´ av´ am nebo webov´ ym str´ank´am. Tato pr´ace se bude zab´ yvat geotaggingem fotografi´ı. Kaˇzd´e fotografii lze pˇriˇradit informaci o jej´ı zemˇepisn´e poloze. M˚ uˇze to b´ yt pozice fotoapar´ atu v okamˇziku poˇr´ızen´ı fotografie, ale tak´e pozice objekt˚ u na n´ı zobrazen´ ych. V tom pˇr´ıpadˇe se mus´ı zohlednit kromˇe pozice fotoapar´atu tak´e vzd´alenost objektu od fotoapar´ atu a smˇer focen´ı.
2.3.1
Pˇ riˇ razen´ı souˇ radnic fotografii
Souˇradnice se ukl´ adaj´ı do Exif metadat (viz sekce 2.2). Pokud je souˇc´ast´ı fotoapar´atu i GPS pˇrij´ımaˇc, mohou b´ yt uloˇzeny uˇz v dobˇe poˇr´ızen´ı fotografie, v opaˇcn´em pˇr´ıpadˇe mohou b´ yt souˇradnice fotografii pˇriˇrazeny pozdˇeji manu´aln´ım z´apisem do metadat. Program, kter´ y je souˇc´ ast´ı t´eto pr´ace, umoˇzn ˇuje pˇriˇradit fotografii souˇradnice bud’ ruˇcn´ım um´ıstˇen´ım znaˇcky do mapy, nebo automatickou synchronizac´ı s GPS trasou.
2.3.2
Aproximace souˇ radnic pˇ ri synchronizaci
Pˇri synchronizaci fotografie a GPS trasy lze fotografii pˇriˇradit souˇradnice nejbliˇzˇs´ıho zn´am´eho bodu. Tak sice m´ ame jistotu, ˇze fotografie leˇz´ı na trase, ale jej´ı um´ıstˇen´ı nemus´ı b´ yt u ´plnˇe pˇresn´e. Pro pˇresnˇejˇs´ı souˇradnice lze pouˇz´ıt aproximaci ze dvou okoln´ıch bod˚ u. Pomoc´ı rovnice 2.5, kde x1 a x2 jsou souˇradnice okoln´ıch bod˚ u a pomer je pomˇer mezi rozd´ılem ˇcasu prvn´ıho bodu a fotografie a rozd´ılem ˇcasu prvn´ıho a druh´eho bodu, spoˇc´ıt´ame nejprve jednu a pot´e druhou souˇradnici. Sloˇzen´ım tˇechto souˇradnic dostaneme novou pozici fotografie. xF oto = x1 · (1.0 − pomer) + x2 · pomer.
(2.5)
Tyto nov´e souˇradnice jsou pomˇernˇe pˇresn´e, pokud se GPS pˇrij´ımaˇc pohyboval rovnomˇern´ ym pohybem. Pokud se ale pohyboval se zrychlen´ım, budou v´ ysledn´e souˇradnice oproti sv´e spr´ avn´e hodnotˇe posunuty k bodu, ve kter´em byla rychlost vyˇsˇs´ı. 7
Zrychlen´ı na dan´em u ´seku lze pˇribliˇznˇe urˇcit tak, ˇze si spoˇc´ıt´ame pr˚ umˇern´e rychlosti na u ´seku pˇredchoz´ım a n´ asleduj´ıc´ım. Pomˇer tˇechto rychlost´ı je stejn´ y jako pomˇer rychlost´ı na zaˇc´atku a konci u ´seku s fotografi´ı. Zn´ame-li d´elku u ´seku, ˇcas str´aven´ y na tomto u ´seku a poˇc´ateˇcn´ı a koneˇcnou rychlost, m˚ uˇzeme pro v´ ypoˇcet souˇradnic pouˇz´ıt rovnici rovnomˇernˇe zrychlen´eho pohybu (viz sekce 3.8.3). Jeˇstˇe pˇresnˇejˇs´ıho v´ ypoˇctu souˇradnic by se dalo dos´ahnout zohlednˇen´ım zakˇriven´ı trasy, coˇz je ale v podstatˇe zbyteˇcn´e, protoˇze uˇz tak se dost´av´ame na pˇresnost, kter´a je limitov´ana sp´ıˇse pˇresnost´ı GPS pˇrij´ımaˇce neˇz v´ ysledky v´ ypoˇctu.
2.4
ˇ Casov´ a p´ asma a letn´ı ˇ cas
Aˇckoli je ˇcas GPS trasy uv´ adˇen v UTC form´atu, je tedy stejn´ y pˇri pouˇzit´ı GPS pˇrij´ımaˇce kdekoli na Zemi, fotoapar´ at m´ a vˇetˇsinou nastaven ˇcas m´ıstn´ıho ˇcasov´eho p´asma. Zemˇe je rozdˇelena do 39 ˇcasov´ ych p´asem, jednotliv´a p´asma jsou oddˇelena poledn´ıky ◦ vzd´alen´ ymi pˇribliˇznˇe 15 od sebe. Hranice p´asem jsou ale ovlivnˇeny geografick´ ymi a st´atn´ımi ˇ v soused´ıc´ıch p´ hranicemi. Cas asmech je vˇetˇsinou posunut o 1 hodinu, avˇsak pˇredevˇs´ım z historick´ ych d˚ uvod˚ u se ˇcas v nˇekter´ ych oblastech liˇs´ı o 15, 30 nebo 45 minut [16]. Z´akladn´ı ˇcasov´e p´ asmo leˇz´ı na nult´em poledn´ıku a jeho ˇcas je shodn´ y s ˇcasem UTC. Ostatn´ı p´ asma jsou definov´ ana posunem v˚ uˇci tomuto ˇcasu. Na z´apad je posun z´aporn´ ya ◦ na v´ ychod kladn´ y. Pˇribliˇznˇe na poledn´ıku o zemˇepisn´e d´elce 180 se setk´avaj´ı ˇcasov´a p´asma s kladn´ ym a z´ aporn´ ym posunem. Hranice mezi nimi se naz´ yv´a datov´a hranice. Pˇri jej´ım pˇrekroˇcen´ı doch´ az´ı k posunu ˇcasu o 24 hodin, pˇriˇcemˇz p´asmo na z´apad od t´eto hranice m´ a o 24 hodin v´ıce neˇz p´ asmo na jej´ı v´ ychodn´ı stranˇe. V mnoha zem´ıch se mezi jarem a podzimem pouˇz´ıv´a letn´ı ˇcas [2]. Jedn´a se o ˇcas lok´aln´ıho p´asma, ke kter´emu je pˇriˇctena jedna hodina. Datum pˇrechod˚ u mezi standardn´ım a letn´ım ˇcasem se v r˚ uzn´ ych zem´ıch liˇs´ı.
2.5
Kartografie
Kartografie je vˇeda zab´ yvaj´ıc´ı se mapami – jejich sestavov´an´ım, tˇr´ıdˇen´ım, histori´ı, v´ ykladem mapov´e symboliky. Navazuje na dalˇs´ı obory jako geografie, geod´ezie nebo geoinformaˇcn´ı syst´emy [17].
2.5.1
Obsahov´ e prvky mapy
Prvky mapy mohou b´ yt ˇclenˇeny podle jejich p˚ uvodu, charakteru a v´ yznamu na [17]: • prvky matematick´e – tvoˇr´ı konstrukˇcn´ı z´aklad mapy – napˇr. geodetick´e podklady, zemˇepisn´ a a souˇradnicov´ a s´ıt’, mˇeˇr´ıtko mapy, • prvky fyzickogeografick´e (pˇr´ırodovˇedn´e) – napˇr. vodstvo, reli´ef, porosty a vˇse, co je d´ ano vznikem a v´ yvojem Zemˇe, • prvky soci´ alnˇe ekonomick´e (spoleˇcensko vˇedn´ı) – s´ıdla, silnice, ˇzeleznice, pr˚ umyslov´e stavby, politicko-administrativn´ı dˇelen´ı a dalˇs´ı prvky vznikl´e ˇcinnost´ı lid´ı, • prvky doplˇ nkov´e a pomocn´e – vˇse co vhodnˇe doplˇ nuje obsah mapy, napˇr´ıklad geografick´e n´ azvoslov´ı, vysvˇetlivky, tabulky.
8
2.5.2
Tˇ r´ıdˇ en´ı map
Mapy mohou b´ yt tˇr´ıdˇeny napˇr´ıklad podle zp˚ usobu vyhotoven´ı, mˇeˇr´ıtka, u ´ˇcelu nebo obsahu. Podle obsahu se mapy dˇel´ı do dvou velk´ ych skupin [17]: • vˇ seobecn´ e mapy obsahuj´ı prvky uveden´e v sekci ve vz´ajemnˇe vyv´aˇzen´em rozsahu, • tematick´ e mapy obsahuj´ı speci´aln´ı tematick´e prvky nebo jsou na nich zd˚ uraznˇeny vybran´e prvky vˇseobecnˇe zemˇepisn´ ych map. D´ale se dˇel´ı do tˇrech okruh˚ u: – fyzicko-geografick´e mapy – zahrnuj´ı napˇr´ıklad mapy oce´anografick´e, geomorfologick´e, meteorologick´e, geologick´e, botanick´e, zoogeografick´e nebo seismick´e, – soci´ alnˇe ekonomick´e mapy – zde patˇr´ı napˇr´ıklad mapy obyvatelstva, pr˚ umyslu, sluˇzeb, dopravn´ı, cestovn´ıho ruchu, politick´e, dˇejinn´e, archeologick´e, – technick´e mapy – napˇr´ıklad leteck´e a n´amoˇrn´ı navigaˇcn´ı mapy, ˇzelezniˇcn´ı mapy, mapy vodn´ı dopravy, d˚ uln´ı mapy. Mapy mohou b´ yt v klasick´e analogov´e (tedy pap´ırov´e) nebo digit´aln´ı podobˇe. V t´eto pr´aci budou vyuˇz´ıv´ any digit´ aln´ı mapy, a to pˇredevˇs´ım vˇseobecn´e.
2.6
Existuj´ıc´ı programy
V souˇcasn´e dobˇe existuje nˇekolik program˚ u zab´ yvaj´ıc´ıch se geotaggingem fotografi´ı. Tyto programy funguj´ı bud’ jako aplikace bˇeˇz´ıc´ı v termin´alu, nebo maj´ı grafick´e uˇzivatelsk´e rozhran´ı.
2.6.1
Aplikace bˇ eˇ z´ıc´ı v pˇ r´ıkazov´ em ˇ r´ adku
D´ıky absenci grafick´eho rozhran´ı jsou tyto aplikace v porovn´an´ı s grafick´ ymi aplikacemi rychlejˇs´ı. Tak´e pr´ ace s nimi je pro uˇzivatele znal´eho jejich rozhran´ı velmi rychl´a. Spuˇstˇen´ım aplikace s nˇekolika parametry m˚ uˇzeme doc´ılit toho, co by bylo nutn´e v grafick´em rozhran´ı komplikovanˇe nastavovat. Ovˇsem pˇri velk´em mnoˇzstv´ı moˇzn´ ych nastaven´ı m˚ uˇze b´ yt rozhran´ı nepˇrehledn´e a pro bˇeˇzn´eho uˇzivatele m˚ uˇze b´ yt dos´ahnut´ı poˇzadovan´eho nastaven´ı pˇr´ıliˇs komplikovan´e.
2.6.2
Aplikace s grafick´ ym rozhran´ım
Aplikace s grafick´ ym rozhran´ım pˇredstavuj´ı pohodln´ y a vˇetˇsinou i intuitivn´ı n´astroj pro geotagging fotografi´ı. Oproti aplikac´ım v pˇr´ıkazov´em ˇr´adku dok´aˇz´ı data vizualizovat – mohou napˇr´ıklad zobrazovat n´ ahledy fotografi´ı nebo pracovat s mapou.
2.6.3
Pˇ r´ıklady aplikac´ı
ExifTool Program ExifTool3 je nadstavbou nad stejnojmennou knihovnou implementovanou v jazyce Perl. Aplikace je spustiteln´ a z pˇr´ıkazov´e ˇr´adky a pouˇziteln´a jak pod linuxov´ ymi syst´emy, tak tak´e pod r˚ uzn´ ymi verzemi syst´emu Windows. Jej´ı hlavn´ı funkc´ı je pr´ace s metadaty fotografi´ı. V t´eto oblasti patˇr´ı k nejrozˇs´ıˇrenˇejˇs´ım n´astroj˚ um s mnoha funkcemi, kromˇe ˇcten´ı 3
ExifTool je dostupn´ y na .
9
a z´apisu metadat umoˇzn ˇuje napˇr´ıklad pˇrejmenov´an´ı soubor˚ u podle jejich data nebo jin´ ych informac´ı obsaˇzen´ ych v metadatech. Podporuje velk´e mnoˇzstv´ı form´atu metadat a tak´e form´at˚ u fotografi´ı. Jednou z jeho funkc´ı je geotagging fotografi´ı pomoc´ı synchronizace fotografie s GPS trasou, pˇriˇcemˇz podporuje nˇekolik form´at˚ u trasy vˇcetnˇe GPX a KML. Pomoc´ı parametr˚ u je moˇzn´e zadat trasu, fotografii nebo adres´aˇr s fotografiemi a tak´e mˇenit ˇcas fotografi´ı. Form´at pˇr´ıkazu m˚ uˇze b´ yt n´ asleduj´ıc´ı: exiftool -geotag track.log -geosync=+25 dir, kde parametr -geotag urˇcuje, ˇze se jedn´a o geotagging, track.log je soubor s trasou, -geosync=+25 znamen´ a, ˇze k ˇcasu fotografi´ı bude pˇriˇcteno 25 sekund a dir je adres´ aˇr s fotografiemi. Tento program je vhodn´ y, pokud chceme pouze jednoduˇse a rychle synchronizovat fotografie s GPS trasou a nepoˇzadujeme ˇz´adn´e zvl´aˇstn´ı nastaven´ı. GPSCorrelate GPSCorrelate4 lze pouˇz´ıvat podobnˇe jako ExifTool z pˇr´ıkazov´e ˇr´adky. Jeho souˇc´ast´ı je tak´e jednoduch´e grafick´e rozhran´ı (obr´azek 2.2), kter´e je ale pouze nadstavbou nad programem v pˇr´ıkazov´e ˇr´ adce a nepˇrin´ aˇs´ı t´emˇeˇr ˇz´adnou vizualizaci dat. Tak´e mnoˇzstv´ı nastaven´ı a funkc´ı je dost omezen´e. Jeho hlavn´ı v´ yhodou je jednoduchost a tak´e je jedn´ım z m´ala program˚ u umoˇzn ˇuj´ıc´ı geotagging fotografi´ı pro linuxov´e syst´emy.
Obr´ azek 2.2: Program GPSCorrelate.
GeoSetter GeoSetter5 nab´ız´ı propracovan´e grafick´e prostˇred´ı (obr´azek 2.3) a je dostupn´ y v nˇekolika jazyc´ıch vˇcetnˇe ˇceˇstiny. Jeho souˇc´ast´ı je integrovan´ y pr˚ uzkumn´ık soubor˚ u a pracuje se vˇzdy s fotografiemi v aktu´ aln´ım adres´ aˇri. Pro pr´aci s Exif metadaty pouˇz´ıv´a ExifTool (viz sekce 4 5
GPSCorrelate je dostupn´ y na . GeoSetter je dostupn´ y na .
10
2.6.3). Umoˇzn ˇuje geotagging fotografi´ı bud’ synchronizac´ı s GPS trasou, nebo pomoc´ı mapy, pro jej´ıˇz zobrazen´ı pouˇz´ıv´ a API od spoleˇcnosti Google. Mezi ostatn´ımi programy vynik´ a pˇredevˇs´ım mnoˇzstv´ım nab´ızen´ ych funkc´ı. Kromˇe bˇeˇzn´ ych funkc´ı nab´ız´ı moˇznost pˇriˇradit fotografii u ´hel pohledu, pˇrejmenov´an´ı souboru podle jeho metadat, zobrazen´ı a u ´pravu 6 metadat, zjistit informace o jeho poloze, synchronizaci se sluˇzbou locr.com a mnoho dalˇs´ıch. Kv˚ uli velk´emu mnoˇzstv´ı nastaven´ı a funkc´ı ale m˚ uˇze b´ yt obt´ıˇzn´e se v programu zpoˇc´atku ’ orientovat. Tak´e jeho pamˇet ov´ a n´aroˇcnost je pomˇernˇe vysok´a, coˇz m˚ uˇze ˇcinit na slabˇs´ıch poˇc´ıtaˇc´ıch probl´emy.
Obr´ azek 2.3: Program GeoSetter.
Zoner Photo Studio Zoner Photo Studio7 (obr´ azek 2.4) je ˇcesk´ y program, jehoˇz hlavn´ı funkc´ı je spr´ava a editace fotografi´ı. Mimo jin´e ale nab´ız´ı tak´e moˇznost pˇriˇradit fotografi´ım souˇradnice pomoc´ı mapy nebo synchronizac´ı s trasou. Projevuje se u nˇej ale fakt, ˇze geotagging je jen jednou z jeho mnoha funkc´ı a proto nab´ız´ı pouze omezen´e moˇznosti nastaven´ı, kter´e se nav´ıc nˇekdy obt´ıˇznˇe hledaj´ı. Tak´e pr´ ace s mapou nen´ı pˇr´ıliˇs intuitivn´ı a je obt´ıˇzn´e si zvyknout na pouˇzit´e postupy. Jeho nev´ yhodou je tak´e licence, kter´a je placen´a. Lze jej ale vyzkouˇset na 30 dn´ı zdarma. 6 7
Sluˇzba umoˇzn ˇuje zobrazovat na mapˇe geotaggovan´ a data a sd´ılet je s jin´ ymi uˇzivateli. Zoner Photo Studio je dostupn´ y na .
11
Obr´ azek 2.4: Geotagging fotografi´ı v programu Zoner Photo Studio.
2.6.4
Navrhovan´ a aplikace
´ Ukolem bylo navrhnout aplikaci umoˇzn ˇuj´ıc´ı snadn´e pˇriˇrazen´ı souˇradnic fotografi´ım, synchronizaci fotografi´ı s trasami, operace s ˇcasem fotografi´ı a interpolaci polohy. V´ ysledkem ja aplikace s grafick´ ym rozhran´ım splˇ nuj´ıc´ı zad´an´ı. Nab´ız´ı moˇznost synchronizovat fotografie s trasou ve form´ atu GPX vˇcetnˇe moˇznosti posunu ˇcasu fotografi´ı a v´ ybˇeru zp˚ usobu aproximace polohy, zobrazen´ı poloh fotografi´ı a tras na mapˇe, pˇriˇrazen´ı a zmˇenu polohy pomoc´ı mapy, zobrazen´ı vybran´ ych Exif metadat fotografi´ı. Aplikace je navrhnuta pro linuxov´e operaˇcn´ı syst´emy a syst´em Windows. Nenab´ız´ı tak rozs´ahl´e moˇznosti jako napˇr´ıklad GeoSetter (viz sekce 2.6.3), ale m´a snadno ovladateln´e a pˇrehledn´e uˇzivatelsk´e rozhran´ı. Nav´ıc pro syst´emy zaloˇzen´e na linuxu je obt´ıˇzn´e naj´ıt obdobnou aplikaci. Podrobnˇeji se n´avrhem a ˇreˇsen´ım aplikace bude zab´ yvat kapitola 3.
12
Kapitola 3
N´ avrh aplikace 3.1
Uˇ zivatelsk´ e rozhran´ı
Pˇri n´avrhu uˇzivatelsk´eho rozhran´ı byl kladen d˚ uraz na pˇrehlednost aplikace a jej´ı snadn´e pouˇzit´ı. Z´ aroveˇ n by aplikace mˇela uˇzivateli umoˇznit flexibiln´ı zobrazen´ı informac´ı, kter´e ho zaj´ımaj´ı, a skryt´ı tˇech, kter´e v danou chv´ıli nejsou d˚ uleˇzit´e a sp´ıˇse by pˇrek´aˇzely v pr´ aci nebo omezovaly pracovn´ı prostor. Proto bylo jako centr´ aln´ı zvoleno okno s miniaturami fotografi´ı. U kaˇzd´e fotografie je zobrazen jej´ı n´ azev a nˇekter´e dalˇs´ı informace (viz sekce 3.4). Dalˇs´ı okna jsou dokovac´ı, mohou b´ yt tedy podle pˇr´ an´ı uˇzivatele zobrazena nebo skryta a jejich pozici v˚ uˇci centr´aln´ımu oknu s fotografiemi je moˇzn´e mˇenit. D˚ uleˇzitou souˇc´ast´ı aplikace, kter´a usnadn´ı a zpˇrehledn´ı geotagging fotografi´ı, je mapa (viz sekce 3.6). Fotografie, kter´e maj´ı pˇriˇrazeny souˇradnice, jsou na mapˇe automaticky zobrazeny a s jej´ı pomoc´ı je moˇzn´e pozici fotografi´ı zmˇenit nebo jim pˇriˇradit pozici novou. Dalˇs´ı souˇc´ast´ı je dokovac´ı okno s informacemi o otevˇren´ ych GPS tras´ach a okno s podrobn´ ymi Exif metadaty uloˇzen´ ymi ve vybran´e fotografii. N´asleduj´ıc´ı obr´ azek 3.1 ukazuje aplikaci pˇri zobrazen´ı vˇsech dokovac´ıch oken.
Obr´ azek 3.1: Aplikace pˇri zobrazen´ı vˇsech dokovac´ıch oken.
13
Uˇzivatel si m˚ uˇze vybrat, ve kter´em jazyce chce aplikaci pouˇz´ıvat – k dispozici je angliˇctina a ˇceˇstina. Vˇetˇsina funkc´ı je pˇr´ıstupn´ a z menu aplikace nebo z kontextov´eho menu jednotliv´ ych ˇc´ast´ı. O jednotliv´ ych funkc´ıch aplikace budou pojedn´avat n´asleduj´ıc´ı ˇc´asti kapitoly.
3.2
Otev´ır´ an´ı soubor˚ u
Program um´ı pracovat s nˇekolika form´aty fotografi´ı a GPX form´atem GPS trasy. Soubory v tˇechto form´ atech lze otevˇr´ıt bud’ pˇres menu, nebo pˇretaˇzen´ım do programu. Pˇri pˇretaˇzen´ı soubor˚ u program proch´az´ı jejich seznam a snaˇz´ı se rozpoznat jejich form´ at. GPX form´ at rozpozn´ av´ a podle koncovky, pro rozpozn´an´ı form´atu fotografi´ı je pouˇzita vnitˇrn´ı funkce Qt. Pokud se jedn´ a o adres´ aˇr, importuj´ı se vˇsechny soubory v nˇem vˇcetnˇe podadres´aˇr˚ u, jestliˇze form´ at nˇekter´ ych soubor˚ u nen´ı rozpozn´an, vytvoˇr´ı se dialog se seznamem tˇechto soubor˚ u. Naˇc´ıt´ an´ı soubor˚ u je pomal´e, proto se soubory naˇc´ıtaj´ı v samostatn´em vl´aknˇe. Komunikaci mezi hlavn´ım vl´ aknem a vl´ aknem pro naˇc´ıt´an´ı soubor˚ u ukazuje diagram na obr´azku 3.2. seznam názvů celkový počet souborů Hlavní vlákno
Nové vlákno objekt s načtenými informacemi počet zbývajících souborů objekt s načtenými informacemi počet zbývajících souborů ..... konec, nenačtené soubory
Obr´ azek 3.2: Komunikace mezi hlavn´ım vl´aknem a vl´aknem pro naˇc´ıt´an´ı soubor˚ u. Hlavn´ı vl´ akno pos´ıl´ a nov´emu vl´aknu seznam n´azv˚ u soubor˚ u a adres´aˇr˚ u. Nov´e vl´akno spoˇc´ıt´a soubory, kter´e se budou importovat, vˇcetnˇe soubor˚ u v adres´aˇr´ıch a zjiˇstˇen´ y poˇcet poˇsle zpˇet hlavn´ımu vl´ aknu. Po pˇrijmut´ı tohoto sign´alu um´ıst´ı hlavn´ı vl´akno do stavov´eho ˇr´adku hlavn´ıho okna progress bar, kter´ y bude informovat o procentech naˇcten´ ych soubor˚ u. Pot´e nov´e vl´ akno proch´ az´ı seznam soubor˚ u. Protoˇze mimo hlavn´ı vl´akno nelze cokoli zobrazovat, data ze soubor˚ u se v nov´em vl´aknˇe pouze naˇctou a uloˇz´ı do nov´eho objektu. Tento objekt je zasl´ an hlavn´ımu vl´aknu, kter´e data zobraz´ı. Z´aroveˇ n nov´e vl´akno informuje hlavn´ı vl´ akno o poˇctu zb´ yvaj´ıc´ıch soubor˚ u a hlavn´ı vl´akno aktualizuje progress bar. Naˇc´ıt´ an´ı je moˇzn´e kdykoli pˇreruˇsit stiskem kl´avesy Escape. V tom pˇr´ıpadˇe je nov´e vl´akno ukonˇceno. Po skonˇcen´ı naˇc´ıt´ an´ı zaˇsle nov´e vl´akno hlavn´ımu vl´aknu ukonˇcuj´ıc´ı sign´al a seznam soubor˚ u, jejichˇz form´ at se nepodaˇrilo rozpoznat, nebo kter´e nebylo moˇzn´e naˇc´ıst. Hlavn´ı vl´akno informuje uˇzivatele o tˇechto souborech nov´ ym dialogov´ ym oknem a ze stavov´eho ˇr´adku odebere progress bar. Pokud jsou v aplikaci otevˇreny fotografie a z´aroveˇ n alespoˇ n jedna GPS trasa, zobraz´ı se automaticky nov´e dialogov´e okno nab´ızej´ıc´ı uˇzivateli synchronizaci.
14
3.2.1
Naˇ c´ıt´ an´ı tras
Trasa je uloˇzena jako seznam segment˚ u. Kaˇzd´ y segment je reprezentov´an instanc´ı tˇr´ıdy GpsSegment. Ta obsahuje seznam ukazatel˚ u na instance tˇr´ıdy GpsPoint, kter´e reprezentuj´ı jednotliv´e body. Pro kaˇzd´ y bod je ukl´ad´an jeho ˇcas, zemˇepisn´a ˇs´ıˇrka a d´elka a nadmoˇrsk´ a v´ yˇska. Trasy jsou uˇz pˇri naˇcten´ı ˇrazeny podle ˇcasu jejich poˇc´ateˇcn´ıho bodu. Pro naˇc´ıt´ an´ı trasy je pouˇzit koneˇcn´ y automat (obr´azek 3.3), kter´ y proch´az´ı vˇsechny XML elementy vstupn´ıho souboru. znaky <ele>
znaky
4
Obr´ azek 3.3: Koneˇcn´ y automat pro naˇc´ıt´an´ı GPX souboru. ˇ Cten´ ı zaˇc´ın´ a naˇcten´ım elementu , jinak je automaticky usouzeno, ˇze se nejedn´ a o form´ at GPX a ˇcten´ı je ukonˇceno. Pˇri naˇcten´ı elementu se vytvoˇr´ı nov´a instance tˇr´ıdy GpsSegment. Element uvnitˇr segmentu reprezentuje body trasy. Pro kaˇzd´ y bod je vytvoˇrena nov´ a instance tˇr´ıdy GpsPoint s informacemi o zemˇepisn´e ˇs´ıˇrce a d´elce, kter´e jsou povinn´ ymi atributy elementu . Bod m˚ uˇze obsahovat element