GeoTagging Images on Mission Planner



Geo-tagged aerial pictures are very useful for mosaic mapping as well as the creation of accurate 3D models from a terrain.

Michael Oborne added a great tool for injecting GPS data on the EXIF tags by using APM's telemetry log from a flight.
This tutorial was created to show you how does it work.
This is a work from Sandro Benigno and Guto Santaella who kindly provided the sample files and screenshots used for making this tutorial.


Step by Step


1: Open the Mission Planner and press "Ctrl+F". It will open a hidden screen, like shown here:


2: Click the button "Geo ref images".
It will give you access to the Geo Tagging resource as shown below:


3: Click the button "Browse Log" and select the telemetry log (.tlog) of the flight related to the shooting session.
Note: You can use both sources: the "Logs" folder from Mission Planner install or you can download it from the APM's dataflash through the USB port.
4: Click the button "Browse Directory" and select the folder where your aerial pictures was downloaded from your camera.


5: Just to illustrate, the screen below shows the mission used for creating this tutorial:


6: The next step is clicking on "Estimate Offset". It will try to extract the offset from the "Log Start Time" and the "Shooting Time" from the first picture taken.
The result shows "offset should be about...". You need to take the guessing and insert it manually on the field "Seconds offset".


7: Click the button "Do it" and wait until the processing is finished. The number shown in "Done... matches" must be the number of pictures taken. Otherwise it means that the sync isn't good enough.
8: After the previous step you can verify the positioning of each picture on Google Earth by clicking "Location Kml".


9: Looking at the example above you'll see the estimated position of a picture. You can click any images at the list on left to check it. If the position is not accurate you can step back and retry it from the step "6" by increasing or decrasing the "Seconds offset" a little bit, just like a fine tuning.
10: After finishing the tuning, all you need to do is click "Geo Tag Images". This process will add geographic data to your picture, i.e. Latitude, Longitude and Altitude.
The processing creates new files with a suffix "_geotag". The original set of pictures remains untouched.


11: You can check your pictures by visualizing the file properties details. You should see the inserted GPS tags on the EXIF data.

Thanks to Michael Oborne by one more awesome tool! ;)

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • :-)

    Thx, will double check again and revert 

  • Distributor

    @Frejus, if time camera was OK your timing offset should be around 60s, not in the day before... Hahaha! (I'm joking...)
    Well, if you believe the times are close, try to adjust this offset yourself, I do it in all my procedures here.
    Go ahead and tell us in progress...


  • Fine thank you Guto.

    - Camera time is OK

    - How do I check / change the APM time please ?

  • Distributor


    It's obvious you have a big problem with timing offset(-6204,912s), you should not only press "estimate offset" and believe 100% on that. I suggest you do your self the timing adjust as well, start checking your ground station date and time and compare with your camera date and time...

  • and flight shows perfectly fine on Google Earth.

  • I started fresh this morning erasing the logs than going for a very quick flight (2 minutes). GPS had a fix from the start. I downloaded the logs. When I look at the logs directory, tlog weighs only 1k...

    I must be misunderstanding the whole process, nd boy, I did read the manual maybe 10 times...

  • Distributor


    Check your log file on google earth, if it have no problem, check again the timing of log and pictures (time offset)

    Good luck...

  • Yes thank you Michael, I just realised it.

    Don't you think Geo Ref Images should only look for *.tlog files by default ?

    Now I have another problem : I have only 6 matches out of many. I cannot find any doc or tutorial about what to do in case of limited number of matches. I though that there was some interpolation and thus all pictures would get geo tagged ? This is only one flight, no battery interruption.

    #seconds offset -  -6204,912
    #longitude and latitude - in degrees
    #name   utc   longitude   latitude   height
    IMG_2607.JPG   2014:04:13 20:03:11   0   0   0
    IMG_2611.JPG   2014:04:13 20:03:22   6,7766472   43,4243968   56,41
    IMG_2612.JPG   2014:04:13 20:03:25   6,7766496   43,4243968   56,79
    IMG_2613.JPG   2014:04:13 20:03:27   6,7766544   43,4243936   57,17
    IMG_2614.JPG   2014:04:13 20:03:31   6,7766536   43,4243936   57,6
    IMG_2615.JPG   2014:04:13 20:03:34   6,7766472   43,4243936   57,39

    I am using chdk independently of the APM. 


  • Developer

    the log is meant to be an arduplane log. not a gpx file

  • I have this in the log file


    Isn't this "+02:00" giving the trouble ?

This reply was deleted.