Geotag imagery on post-production for action cams or 360 cameras that don't have GPS

Hey, done this in mind for those that have hardware that dont have GPS on the device. We will use the time-stamp method, which means your camera clock will be the same as your gps tracker device (probably your smartphone).

Use a GPS tracker app on your mobile device, this will create a gpx file with the coordinates. These are the ones i recommend:
OSMTracker on Android https://play.google.com/store/apps/details?id=net.osmtracker
Open GPX Tracker for iOS ‎Open GPX Tracker na App Store

Before starting a sequence (everytime as the camera clock, tends to mismatch if it runs out of battery or a few days without using it), sync the time of the camera the same as your mobile, that can be fixed after on GeoSetter but its less time consuming doing it before recording a sequence. Start recording the track on the app one minute before starting the actual sequence on camera, so the GPS can have better accuracy. Start sequence timelapse on camera. Stop recording on camera when you finished your sequence and after stop recording the track on the GPS tracker app on your mobile device.

Export the gpx file generated on app to your computer (or upload/download on a online storage such as Google Drive. Do the same to the images (in case of 360, stitch them before using GeoSetter).

Install GeoSetter (freeware only for Windows OS, not sure if there’s iOS alternatives) available here https://www.geosetter.de/en/main-en/ Feel free to donate to the author as this software is great and deserves.

Follow the instruction on the video to inject the coordinates into the image EXIF (geotag) using GeoSetter.

Video on Youtube

Don’t be greedy and try to geotag more than 999 photos at a time, GeoSetter tends to crash if you use more than 999.

Hope it helps, if you guys have doubts, let me know.

5 Likes

GeoTagger is great advice, I am also a heavy user! Regrettably it’s not very good at handling huge amounts of photos, but it is workable.

I want to add some instructions for when you have no GPS track, also in this situation GeoTagger can be a lifesafer! :slight_smile: And we’re not only talking about action cams or 360 cams (I have neither), I am currently geotagging 10.000 photos taken with the Mapillary app, because my phone couldn’t get a GPS fix.

  1. Open your folder with images in GeoSetter.
  2. Make sure report view is enabled: View > Image Files > Report.
  3. Select the first image in the list, study the photo in the Preview window, and click on the map at the correct location. A red pin will show up. (If no Preview window is available, then turn it on with View > Image Preview or Ctrl+P. The map can be turned on with View > Map or Ctrl+M.)
  4. On the map toolbar, click the icon with a red pin and a arrow pointing to the left. The coordinates will now be assigned to the selected image.
  5. To make things easier later on, I also assign a 5 stars rating to this image.
  6. Save the changes to this image (Ctrl+Shift+S). (You can also use Ctrl+S to save all images, but saving the selected image only is going to be much faster later on.)
  7. Do the same for the last identifiable image.
  8. Now select both images. (Later on, when you have identified more images, it will become easier to sort the list by rating, and quickly select all 5-star images. That is why I am assigning a rating to the images that were placed on the correct location.)
  9. With all identified images selected, choose File > Export to GPX track file. Save the GPX file in the image folder, and it should now show up in the Tracks window. (If the Tracks window is not visible, it can be activated in the View menu. If your new GPX file doesn’t show up there automatically, there is an Open icon on the Track window toolbar.)
  10. Now select all images, and choose Edit > Synchronise with GPS Data File. All your images are now put on a straight line between the start and end point.
  11. Now take the image(s) that should deviate the furthest from this straight line, and put them in the correct location in the same way as the first and last image.
  12. Create a new GPX file including the newly identified images, and assign all images to the new track.
  13. Keep on repeating this process, until you’re happy with the results. On average, I need to manually correct between 10% and 25% of the images before I am happy with the placement of all images. Note that the process gets easier with each iteration, because the images get closer to their actual location each time. Also, and this seems counter-intuitive, but the process is easier the more images you have, because they are closer together.
  14. When you’re happy with the placement of all images, just press Ctrl+S to save all.
1 Like

Note that GeoSetter crashes a lot, and it crashes more often when you have many images, but 999 is not a magic number. I’m currently doing a sequence of 9.926 images (that’s 10x as many), and I have another sequence of 25.576 images waiting to be done. It can be done, but just be careful. The more you do at once, the more you have to do over again if it crashes halfway.

Weird discovery: GeoSetter actually seems more stable when editing images directly from a fast NAS drive, than when doing the same with the images stored on a local drive (which is a fast SSD in my case). There seems to be some interrupt or conflict when saving lots of images, which can make the drive refresh, which can totally throw GeoSetter off balance if it’s running from the same drive.

yeh i done 5000 once, but only once, the other 10 times i tried it crashed. And ended up wasting more time figuring out what was the last photo that was geotagged and repeat the process. From my experience, 999 is just a indication in which you won’t have any problem with GeoSetter.

Another option to correlate the images with a gpx/nmea trace, is Josm. Add the photoadjust and photo_geotagging plugin, and you are ready to geotag as many images as you want without crashes.

I will give the JOSM plugin another try. I’ve never been able to understand the instructions. Actually, with the first line of the instructions being “First, you have to synchronize your photos with a gpx track,” I always thought the photos need to be geotagged (using tools like GeoSetter) before you can use the JOSM plugin.

No, you can correlate inside Josm:

  • Load some images
  • Load a gpx/nmea file
  • right click on the images layer and select “correlate with gpx”.
  • adjust the settings (josm support subsecond offset) and validate
  • right click the images layer and select “Write coordinate to image header”.

If you have the photoadjust plugin you can edit individual position and direction:

  • Select the images layer you want to edit
  • Left click to move a picture (or select the photo then shift + click on the new position)
  • ctrl + click to add or change the direction.
  • right click the images layer and select “Write coordinate to image header”.

You can edit the gpx too:

  • Right click the gpx layer and choose “Convert to data layer”
  • edit position, timestamp, remove or add nodes…
  • Convert back to gpx with right click “Convert to gpx layer”. Sometimes I have to save this new gpx to disk to be able to use for a new correlation.
3 Likes

This is looking great! And to my surprise, this method even supports GPX files with only a timestamp at the beginning and end of the track. :partying_face:

I’m going to update the wiki documentation (which hasn’t had a proper updated in over 5 years) for people like me that get lost.

1 Like