Warning, /graphics/kgeotag/doc/overview.docbook is written in an unsupported language. File is not indexed.

0001 <!-- SPDX-FileCopyrightText: 2022 Tobias Leupold <tl at stonemx dot de>
0002 
0003      SPDX-License-Identifier: CC-BY-SA-4.0
0004 -->
0005 
0006 <chapter id="overview">
0007 
0008 <title>Overview</title>
0009 
0010 <section>
0011 
0012 <title>What is it?</title>
0013 
0014 <para>
0015 KGeoTag is a Free/Libre Open Source photo geotagging program. It's written in C++/<ulink url="https://www.qt.io/">Qt</ulink> and uses the <ulink url="https://api.kde.org/frameworks/">KDE Frameworks</ulink>. It's published under the terms of the <ulink url="https://www.gnu.org/licenses/#GPL">GNU General Public License (GPL)</ulink>.
0016 </para>
0017 
0018 </section>
0019 
0020 <section>
0021 
0022 <title>What is "Geotagging"?</title>
0023 
0024 <para>
0025 Photos (&eg; JPEG images) contain metadata like the creation date, camera information &etc; Those are either stored in the so-called <ulink url="https://en.wikipedia.org/wiki/Exif">Exif header</ulink>, in an <ulink url="https://en.wikipedia.org/wiki/Extensible_Metadata_Platform">XMP sidecar file</ulink> or in both. This data can also represent geographic coordinates so that it's replicable where the images were taken.
0026 </para>
0027 
0028 <para>
0029 Most cameras don't have GPS receivers, so, most can't save coordinates when taking images. A common approach is to &eg; carry a small GPS logging device along (or nowadays also using a smartphone ;-)), which records a track all the time. Later on, the images' dates can be compared to the GPS log's points' dates to figure out where an image was taken.
0030 </para>
0031 
0032 <para>
0033 If one knows for sure where the respective photo was taken, it's also possible to assign coordinates to the images manually.
0034 </para>
0035 
0036 </section>
0037 
0038 <section>
0039 
0040 <title>Geotagging with KGeoTag</title>
0041 
0042 <section>
0043 
0044 <title>Supported file formats</title>
0045 
0046 <para>
0047 KGeoTag currently supports The following image formats: <ulink url="https://en.wikipedia.org/wiki/JPEG">JPEG</ulink>, <ulink url="https://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</ulink>, <ulink url="https://en.wikipedia.org/wiki/WebP">WebP</ulink>, <ulink url="https://en.wikipedia.org/wiki/TIFF">TIFF</ulink>, <ulink url="https://en.wikipedia.org/wiki/OpenRaster">OpenRaster</ulink> and <ulink url="https://en.wikipedia.org/wiki/Krita">Krita Document</ulink>, as well as some TIFF-based RAW image formats: <ulink url="https://en.wikipedia.org/wiki/Raw_image_format">Canon Raw v2</ulink> (.cr2), <ulink url="https://www.nikonusa.com/en/learn-and-explore/a/products-and-innovation/nikon-electronic-format-nef.html">Nikon Electronic Format</ulink> (.nef) and <ulink url="https://helpx.adobe.com/camera-raw/digital-negative.html">Adobe Digital Negative</ulink> (.dng).
0048 </para>
0049 
0050 <para>
0051 Geodata can be loaded from (uncompressed) <ulink url="https://en.wikipedia.org/wiki/GPS_Exchange_Format">GPX</ulink> files.
0052 </para>
0053 
0054 </section>
0055 
0056 <section>
0057 
0058 <title>Assigning images</title>
0059 
0060 <para>
0061 KGeoTag offers multiple ways to assign coordinates to images:
0062 </para>
0063 
0064 <section>
0065 
0066 <title>Automatic tagging</title>
0067 
0068 <para>
0069 The most convenient approach is automatic matching using geodata provided by GPX files. Those can be loaded and displayed on a map. Using this data, images can be assigned with matching geographic coordinates by finding (more or less) exact chronological matches, or by interpolating a likely position if no exact match can be found.
0070 </para>
0071 
0072 <para>
0073 Normally, the images only provide a time and date, but no timezone. Thus we need to set one to make an assignment possible. The presumably correct timezone is detected from the geographic location of the GPX file, but it can also be set manually.
0074 </para>
0075 
0076 <para>
0077 If altitude values aren't set in the dataset or they are not accurate enough, they can be looked up using opentopodata.org (see below).
0078 </para>
0079 
0080 <para>
0081 The clocks of cameras mostly aren't radio-controlled and often have a slight offset. If the images' dates have a time drift due to the camera's clock being not exactly in sync with the GPS data (which is assumed to be correct), a deviation can be defined. It then will be considered when searching for matches, and can also be used to fix the images' dates.
0082 </para>
0083 
0084 </section>
0085 
0086 <section>
0087 
0088 <title>Drag and drop interface</title>
0089 
0090 <para>
0091 Another option is tagging images via drag and drop. One or more images can be selected and dropped onto the map, to their respective location (possibly also guided by some GPX track). Elevations can't be ascertained this way, so either, they are left to be "0 m" (sea level), entered manually or looked up via opentopodata.org (either automatically or manually, see below).
0092 </para>
0093 
0094 </section>
0095 
0096 <section>
0097 
0098 <title>Assigning images to bookmarks</title>
0099 
0100 <para>
0101 For places frequently assigned to images (like one's home, where one doesn't carry a GPS logger), bookmarks can be defined. Images can then be assigned to the respective coordinates easily.
0102 </para>
0103 
0104 </section>
0105 
0106 <section>
0107 
0108 <title>Manual assignment</title>
0109 
0110 <para>
0111 It's also possible to enter coordinates for one or more images by hand. The altitudes can be either looked up automatically using opentopodata.org (see below), or also be entered manually.
0112 </para>
0113 
0114 </section>
0115 
0116 </section>
0117 
0118 <section>
0119 
0120 <title>Setting or looking up elevation information</title>
0121 
0122 <para>
0123 Altitudes can always be set manually. Alternatively, the altitudes can also be looked up querying different elevation datasets using <ulink url="https://www.opentopodata.org/">opentopodata.org</ulink>'s API.
0124 </para>
0125 
0126 <para>
0127 The preset is to use the <ulink url="https://asterweb.jpl.nasa.gov/gdem.asp">ASTER</ulink> dataset. This one covers the whole globe. Others can be used as well, cf. <ulink url="https://www.opentopodata.org/#public-api">opentopodata.org's homepage</ulink>.
0128 </para>
0129 
0130 <para>
0131 By default, such a server lookup has to be triggered manually. It's also possible to enable automated altitude lookups for all images dropped on the map (which yields geographic coordinates but no elevation) and coordinates entered manually.
0132 </para>
0133 
0134 </section>
0135 
0136 <section>
0137 
0138 <title>Making the data persistent</title>
0139 
0140 <para>
0141 Finally, the assigned coordinates can be saved. KGeoTag can either write them to the images' Exif header (which will obviously alter the respective files), to XMP sidecar files (leaving the original files untouched) or to both. By default, a backup of each original file is created if it will be changed during the write process.
0142 </para>
0143 
0144 <para>
0145 This way, the geodata assignment is made persistent and also accessible for other geodata-aware applications (like &eg; <ulink url="https://www.kphotoalbum.org/">KPhotoAlbum</ulink>).
0146 </para>
0147 
0148 <para>
0149 If a time drift has been identified and a deviation has been given, the images' dates and times also can be fixed whilst saving.
0150 </para>
0151 
0152 </section>
0153 
0154 </section>
0155 
0156 </chapter>