“bad subifd directory” Replacing/removing bad SubIFD

Handling bad SubIFD entries in photos you want to geo tag / the problem

I just converted some of my RAW photos in RawTherapee and polished them in Photoshop CS. Of course I also wanted to GeoTag them (using GeoSetter) before putting the images in my archive. Fortunately, a GPS point was found in my trace for all photos. Unfortunately, I couldn’t write the Exif-GPS position due to a “bad subifd directory”. That’s what exiftool (which geosetter uses) tells me.

So – how to get the geo information into exif – or how to get the bad SubIFD directory out?

The solution:

In the end the issue was rather easy to solve:

  1. copy your images to a linux machine (or vm or whatever)
  2. copy all images to a directory “conv” AND in parallel to “conv2
  3. enter “conv2
  4. remove all exif information from the conv2 images by
    find ./*.jpg -exec exiftool -exif:all= {} ;
  5. enter “conv1” & copy the exif information (except SubIFD) to the cleaned images in “conv2” by
    find ./*.jpg -exec exiftool -tagsfromfile {} -exif:all --subifd:all ../conv2/{};
  6. you’re done.
  7. (fire up geo setter and geo tag your photos)

Be happy!

One thought on ““bad subifd directory” Replacing/removing bad SubIFD”

  1. You don’t need to do this in linux, and the command is much simpler:

    exiftool -ext jpg -exif:all= .

    But rather than destroy the metadata, why not rebuild it instead? (see ExifTool FAQ 20: http://owl.phy.queensu.ca/~phil/exiftool/faq.html#Q20). This is the command:

    exiftool -exif:all= -tagsfromfile @ -exif:all -unsafe -thumbnailimage -F -ext jpg .

    – Phil

Comments are closed.