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 (⪚ 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 ⪚ 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 ⪚ <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>