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


  • Michael, happy to provide a data set but I won't be able to do so until tomorrow morning. 

    Could you describe fundamentally how your implementation works? How is the offset estimated? What happens if there is no entry in the .tlog that matches to an image; does it discard that particular image and then keep matching subsequent images? Does your algorithm interpolate at all? 

    Kind regards

  • More and more people going into photogrammetry, a clean georef tool is definitely worth it and adds a huge value to MP :-) as it makes pictures "stitching" calculation way faster, something super  important when you have 2000 pictures to assemble.

  • Developer

    can one of you guy provide me with a sample date set? something to test against.

  • it actually looks like the latest version of Ardupilot acts differently than the older version (logs are different) 

    My older firmware is logging with the altitude out of position and my newer firmware is loggin with the lat long out of position... haha... oh well. 

    Also the camera logs should all shift over so that they line up with all the rest of the data like lat long and altitude... well at least I think they should.

    Good luck!

  • Hi Michael, From what I can see the geotag program wants column 7,8,9 in order to geotag. 7=latitude 8=longitude 9= altitude (should be gps altitude not relative to take off)

    Now which one is wrong? the geotag or the log? I am using data flash logs btw.

    Next issue is that the geotag program log start seems to pick the same time like the day before... I have an easy enough fix (truncate the log) but it's not the "rigtht" thing to do of course.

    Next issue is that every few logs I get the time stays at 0.00 on the far left column when reviewing the log. GPS time is still present and the geotag works but it makes it more difficult to find your first photo.

    Finally if I could possibly request that the geotagged photos be placed into a sub folder?

    FYI, I use the geotagger on my fixed wing and as well to trigger and log on a multi rotor. Both run arduplane (multi copter is used as a stand alone trigger and logger)

    Thanks for all your hard work! 

    I don't even mind so much doing the work around but it would be nice to fix it.

  • Developer

    let me know the correct numbers. and I will fix in MP!!

  • Hi Steve,

    You may change the ALT log offsets number (here it shows 7 on point 10) so that the ALT is taken from the right column. If you find it than your result would be much appreciated.

    I guess we are looking for the RELATIVE HEIGHT number.


  • well now with the latest mission planner it seems they have corrected the lat and long, but altitude is taken from the wrong column... sigh. No mention of it on any forum.... very annoying after I geotagg a few thousand photos and realize they made a change.

  • Thanks Milz, I will give it a shot. Do you find that you have to truncate the start of your logs too? 

    Geotagging from log files working perfectly using the above fixes. 

  • hi

    i had the same prob and written my own small tool with some code MP.

    mfg milz

This reply was deleted.