I have several very large image datasets from a AUV survey, essentially aerial imagery, that I need to bring into a GIS environment and have them display at the proper spatial scale, orientation and location. The images had no GPS EXIF metadata embedded, but with the help of EXIFTool I have appended this information. X,Y,height above seafloor(Altitude), vehicle heading, focal length.

We have a MATLAB script that will mosaic raw images together, but this survey was poorly conducted and there are gaps in the along track overlap and no cross-track overlap.

My hope is that I can bring them into ArcGIS as a mosaic_dataset or something similar in QGIS. They do not need to be stitched together, just displayed in their proper location, orientation and spatial scale.

How do I define the spatial scale of an image (Hopefully batch for the ~8000/dataset), and the orientation? Each image should cover real world area of 2.5m x 4m.


What you're essentially looking at is creating the world file for every image.

  • The EXIF data gives you the coordinates of the center of the image.
  • The photo scale is given by PS = (focal length) / (Height).
  • You need the pixel size of the camera in order to convert it to ground distance, using the photo scale. This will be the GSD (Ground Sample Distance). The camera pixel size should be in the technical specifications.
  • Once you know the pixel size, you will be able to calculate the real world area covered by the image using the image size in pixels. Of course any tilt in the camera during photo acquisition will not be accounted for.
  • Using the real world dimensions, the image center coordinates, and with the vehicle heading, you should be able to calculate the coordinates of the top left corner of the image on the ground.

All these values should be stored in a text file having the same name as the image but with a *.tfw extension for TIFF files or *.jgw for a JPEG.

  • Is it possible to batch world files from EXIF data? I have close to 100k images that need to be processed. – Mender Dec 19 '16 at 16:55
  • I'm not familiar with MATLAB and have no idea about its capabilities but a quick online search yielded exif-py (github.com/ianare/exif-py) an "Easy to use Python module to extract Exif metadata from tiff and jpeg files." Using exif-py it should be easy to automate the task in Python to process all your images. – Techie_Gus Dec 19 '16 at 17:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.