{"id":5087,"date":"2026-01-28T08:00:06","date_gmt":"2026-01-28T16:00:06","guid":{"rendered":"https:\/\/www.cloudacm.com\/?p=5087"},"modified":"2026-01-26T07:57:48","modified_gmt":"2026-01-26T15:57:48","slug":"importing-tracks-routes-and-waypoints","status":"publish","type":"post","link":"https:\/\/www.cloudacm.com\/?p=5087","title":{"rendered":"Viking and QGIS &#8211; Importing Position Data"},"content":{"rendered":"<p>In an earlier post I covered a project that tracked position, <a href=\"https:\/\/www.cloudacm.com\/?p=4728\">https:\/\/www.cloudacm.com\/?p=4728<\/a>.\u00a0 The data is stored as a CSV file.\u00a0 This format is easier to work with in a spreadsheet but lacks visual map details.\u00a0 This post will cover basic steps on how I import the tracks in Viking and QGIS.<\/p>\n<p>The first step is merging data files if they span a given trip.\u00a0 I append the data files sequentially in a spreadsheet.\u00a0 I&#8217;ve noticed that some rows contain garbage, which is easy to fix with a search and replace step.\u00a0 Then I&#8217;ll copy the columns containing latitude and longitude readings and paste them to a new spreadsheet.\u00a0 Finally, I&#8217;ll save it as a CSV format.\u00a0 The final file only contains the position readings without any header information.<\/p>\n<p>Importing the file in Viking is done with these steps.\u00a0 First open a new TrackWaypoint layer and select it.\u00a0 Then from File &gt; Aquire &gt; Import File with GPSBabel, select the CSV file and set the file type to Comma separated values and click OK.\u00a0 The imported file layer properties will draw labels by default which I remove by unchecking the Draw Labels box.\u00a0 I&#8217;ll then set the Waypoint marker to Circle, set its size to 2, and uncheck the Draw Waypoint Symbols box.\u00a0 Finally, I&#8217;ll add a map layer.\u00a0 If all looks fine, I can generate an image file which is displayed below.<\/p>\n<p><a href=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5094\" src=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track.png 800w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-300x300.png 300w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-150x150.png 150w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-768x768.png 768w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-270x270.png 270w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Importing the file into QGIS is done with these steps.\u00a0 Open Data Source Manager and select Delimited Text.\u00a0 Browse to the data file and set File format to CSV.\u00a0 Uncheck First record has field names.\u00a0 Set Point coordinates with X field as field_2 and Y field as field_1.\u00a0 Geometry CRS can be set to Default CRS.\u00a0 I set the data track symbology size to .40.\u00a0 Next I&#8217;ll add the XYZ Tiles OpenStreetMap.\u00a0 The layers should be sorted with the track on top of the map tile.\u00a0 Finally, I&#8217;ll export the map to an image format by selecting Project &gt; Import\/Export &gt; Export Map to Image with the dimensions of my choosing.\u00a0 Below is an example.<\/p>\n<p><a href=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5098\" src=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-2.png\" alt=\"\" width=\"800\" height=\"800\" srcset=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-2.png 800w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-2-300x300.png 300w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-2-150x150.png 150w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-2-768x768.png 768w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2026\/01\/Data1-13_Track-2-270x270.png 270w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>QGIS has many more features, with this post just scratching the surface on what it can do.\u00a0 I referenced this link on how to import my CSV file, <a href=\"https:\/\/www.qgistutorials.com\/en\/docs\/3\/importing_spreadsheets_csv.html\">https:\/\/www.qgistutorials.com\/en\/docs\/3\/importing_spreadsheets_csv.html<\/a>.<\/p>\n<p>Viking GIT releases can be found here, <a href=\"https:\/\/github.com\/viking-gps\/viking\/releases\">https:\/\/github.com\/viking-gps\/viking\/releases<\/a><\/p>\n<p>QGIS GIT releases can be found here, <a href=\"https:\/\/github.com\/qgis\/QGIS\/releases\">https:\/\/github.com\/qgis\/QGIS\/releases<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In an earlier post I covered a project that tracked position, https:\/\/www.cloudacm.com\/?p=4728.\u00a0 The data is stored as a CSV file.\u00a0 This format is easier to work with in a spreadsheet but lacks visual map details.\u00a0 This post will cover basic steps on how I import the tracks in Viking and QGIS. The first step is merging data files if they span a given trip.\u00a0 I append the data files sequentially in a spreadsheet.\u00a0 I&#8217;ve noticed that some rows contain garbage,&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.cloudacm.com\/?p=5087\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5087","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/5087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5087"}],"version-history":[{"count":16,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/5087\/revisions"}],"predecessor-version":[{"id":5106,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/5087\/revisions\/5106"}],"wp:attachment":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5087"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}