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


  • @kuson yes thanks I finally installed Windows 8.1 and MP on Mac Parallels. It works, is there anyone that can confirm MP reliability and stability on Mac Parallels OS virtualisation?

  • It's relevant for calculating the cam trigger distance setting in your flight plan. 
    You need the right distance forward and sideways to get the right amount of overlap or PIX4D won't have enough information to match the images. 

    Apart from that orientation makes no difference to a PIX4D stitch as PIX4D ignores roll pitch yaw and direction EXIF data, it figures that out its self.

    the orientation option  is really only there because 3DR made a mapping wing that had the camera mounted sideways rather than a normal orientation. 

  • ActionDrone -- you may have to use Mission Planner on Windows? I was looking for Linux, Mac version but it does not exist. 

    May I ask how relevant is the Heading Setting as well as Camera Orientation for Pix4D / DroneDeploy stitching?


  • Hi all,

    I have a problem because pressing ctrl+F doesn't show any window.

    How can I find it?

    I'm using Parallels 11 on a Mac.


  • In MS 1.3.34  

    When tagging images flown in Terrain follow the height 100m AGL is added to the final Height. Making the images 100m above where they were taken. 
    Making the images 100m above where they were taken.  

    It's like it's reading the AMSL height and then adding the 100m AGL to that.   I have tried all methods of tagging but the height is always 100m out. 

    There is an option for tagging in absolute (AMSL) and one for Relative (ATO), Can I suggest adding one for Terrain (AGL) and ensuring that the right ALT is used. 

    I have had to tag all my images in Pix4d and then merge flights to get it to work right. Which is really time-consuming. 


  • I'm trying to follow this tutorial "GeoTagging Images on Mission Planner"
    My Camera shutter is activated in proper places and photos are taken. But I
    can't find CAM Messages in the .log file. (LOG_BITMASK is set to Default)

    Only these few strings:
    Line 12: FMT, 148, 31, CAM, IHLLeeccC, GPSTime,GPSWeek,Lat,Lng,Alt,RelAlt,Roll,Pitch,Yaw
    Line 188: PARM, CAM_TRIGG_TYPE, 1
    Line 189: PARM, CAM_DURATION, 1
    Line 190: PARM, CAM_SERVO_ON, 1300
    Line 191: PARM, CAM_SERVO_OFF, 1100
    Line 192: PARM, CAM_TRIGG_DIST, 0

    Am I missing something?

  • hi guys you have fixed a lot of these issues great job!

    Now please can you support RAW tagging? 



  • ummmm how do you upload a file in this blog post that is not a photo or video? Micheal I can email you personally or send you a drop box link. 

  • the actual tagging engine works very well. Now that I have it working I tagged over 3000 photos last night with it. 

    I have cam and gps enabled in logs

    I have to look at the log file in the terminal window with "browse log" first. There I look for either a photo when I see the plane or heli takes off and delete everything in the log up to that point. Alternatively I look for a time stamp on the column that is close to my first photo and delete everything up to that point. 

    This forces the program to use the correct camera time stamp every time.

    Next I open up a text editor and trucate up to that line of log, save the file and close.

    Then I open the doc in excel and if it's my recent arduplane board I move columns 6 and 7 over one column to 7 and 8 (9 stays as is) export to csv and exit

    Next I load up the log and photos in the geotag tool, estimate the offset and check that the number of photos is the same after i click "do it" 

    Then geotag and all is good. 

    I would like to see a cleaner interface for sure. One that can truncate the beginning for you with a little user input and a separate output folder for the geotagged images that remains the same. 

    I think I hit on all the steps. I will upload a log file and a couple photos

  • Developer

    the guess offset is based on.

    timestamp of first image in data set.

    and first timestamp in valid log file.


    ie if first image is at 9am

    and first gps log fix was at 8:59, the offset would be 60 seconds.

This reply was deleted.