# Overzicht

## Wat is het?

KGeoTag is een Free/Libre open-source fotoprogramma voor aanbrengen van geotags. Het is geschreven in C++/Qt en gebruikt KDE Frameworks. Het is gepubliceerd onder de bepalingen van de GNU General Public License (GPL).

## Wat is "Geotagging"?

Foto's (⪚ JPEG afbeeldingen) bevatten metagegevens zoals de aanmaakdatum, camer-informatie ⪚ Deze zijn ofwel opgeslagen in de zogenaamde Exif-header, in een XMP sidecar bestand of in beiden. Deze gegevens kunnen ook geografische coördinaten bevatten zodat het reproduceerbaar is waar de afbeeldingen zijn genomen.

De meeste camera's hebben geen GPS-ontvangers, dus, kunnen de meesten geen coördinaten opslaan bij het nemen van de opname. Een algemene benadering is om bijvoorbeeld een klein GPS-log-apparaat naast (of heden ook een smartphone ;-) mee te nemen, die al die tijd een gevolgd pad opneemt. Later kunnen de gegevens van de afbeeldingen vergeleken worden met de GPS log-punten om uit te vinden waar een afbeelding is genomen.

Als men zeker weet waar de respectievelijke foto is genomen, dan is het ook mogelijk coördinaten handmatig aan de afbeeldingen toe te kennen.

## Met KGeoTag geo-tags toevoegen

### Ondersteunde bestandsformaten

KGeoTag ondersteunt momenteel de volgende afbeeldingsformaten: JPEG, PNG, WebP, TIFF, OpenRaster en Krita document, evenals enige op TIFF gebaseerde RAW afbeeldingsformaten: Canon Raw v2 (.cr2), Nikon Electronic Format (.nef) en Adobe Digital Negative (.dng).

Geodata kan geladen worden uit (niet gecomprimeerd) GPX bestanden.

### Afbeeldingen toekennen

KGeoTag biedt meerdere manieren om coördinaten aan afbeeldingen toe te kennen:

#### Automatische tagging

De gemakkelijkste benadering is automatische overeenkomst met geodata geleverd door GPX bestanden. Deze kunnen geladen en getoond worden op een kaart. Met deze gegevens kunnen afbeeldingen toegekend worden met overeenkomende geografische coördinaten door het vinden van (meer of minder) exacte chronologische overeenkomsten of door interpoleren van een waarschijnlijke positie als geen exacte overeenkomst gevonden kan worden.

Normaal leveren de afbeeldingen alleen een tijd en datum, maar geen tijdzone. Dus is het noodzakelijk dat we er een instellen om een toekenning mogelijk te maken. De waarschijnlijk juiste tijdzone wordt gedetecteerd uit de geografische locatie van het GPX bestand, maar het kan ook handmatig ingesteld worden.

Als waarden van hoogtes niet ingesteld kunnen worden in de gegevensset of ze zijn niet accuraat genoeg, dan kunnen ze opgezocht worden met gebruik van opentopodata.org (zie onderstaand).

De klokken van camera's zijn meestal niet radio-gestuurd en hebben vaak een kleine offset. Als de gegevens van de afbeeldingen een tijdafwijking hebben vanwege dat de klok van de camera niet exact gesynchroniseerd is met de GPS-gegevens (waarvan aangenomen is correct te zijn), kan een afwijking gedefinieerd worden. Dit zal dan beschouwd worden bij het zoeken naar overeenkomsten en kan ook gebruikt worden om de gegevens van de afbeeldingen te repareren.

#### Interface Slepen en loslaten

Een andere optie is afbeeldingen taggen via slepen en loslaten. Een of meer afbeeldingen kunnen geselecteerd worden en losgelaten worden op de kaart, op hun respectievelijke locatie (mogelijk ook geleid door een GPX-track). Hoogten kunnen niet op deze manier toegekend worden, dus ofwel, ze worden op "0 m" (zeeniveau) gelaten, handmatig ingevoerd of opgezocht via opentopodata.org (ofwel automatisch of handmatig, zie onderstaand).

#### Afbeeldingen toekennen aan bladwijzers

Voor vaak aan afbeeldingen toegekende plaatsen (zoals iemands huis, waar men geen GPS-logger draagt), kunnen bladwijzers worden gedefinieerd. Afbeeldingen kunnen dan gemakkelijk aan de respectievelijke coördinaten worden toegekend.

#### Handmatige toekenning

Het is ook mogelijk om coördinaten voor een of meer afbeeldingen met de hand in te voeren. De hoogten kunnen ofwel opgezocht worden of automatisch met opentopodata.org (zie onderstaand) of ook handmatig ingevoerd worden.

### Hoogte-informatie instellen of opzoeken

Hoogtes kunnen altijd handmatig ingesteld worden. Als alternatief kunnen de hoogtes ook opgezocht worden door verschillende hoogtedatasets af te vragen met de API van opentopodata.org.

De voorinstelling is om de ASTER dataset te gebruiken. Deze dekt de gehele globe. Anderen kunnen ook worden gebruikt, cf. Homepagina van opentopodata.org.

Standaard moet zo'n opzoeken op een server handmatig gestart worden. Het is ook mogelijk om geautomatiseerde hoogtes opzoeken voor alle afbeeldingen losgelaten op de kaart (die geografische coördinaten levert maar geen hoogtes) en handmatig ingevoerde coördinaten.

### De gegevens blijvend maken

Tenslotte kunnen de toegekende coördinaten worden opgeslagen. KGeoTag kan ze ofwel schrijven in de Exif-header (die natuurlijk de respectievelijke bestanden wijzigt), naar de XMP-sidecar bestanden (die de originele bestanden ongemoeid laat) of naar beiden. Standaard wordt een reservekopie van elk origineel bestand aangemaakt als het gewijzigd wordt in het schrijfproces.

Op deze manier wordt de toekenning van geodata blijvend gemaakt en ook toegankelijk voor andere geodata-aware toepassingen (zoals ⪚ KPhotoAlbum).

Als er een tijdafwijking is geïdentificeerd en een afwijking has gegeven is, kunnen de datums en tijden ook gerepareerd worden tijdens het opslaan.