Creating an orthophoto using single-band absolute temperatures (float array)


I am trying to create a fast orthomosaic using WebODM. Unfortunately, the images I am using are for research and cannot be shared. Here is my problem statement:

I am trying to create a fast orthomosaic of thermal images output by a DJI M30T camera. The images output by this camera are not absolute temperatures, they are just a ‘heatmap’ single-channel JPG. However, absolute temperature can be acquired by running these JPGs through the DJI SDK, which can temperature correct the images and then output them. However, once they are output, they obviously cannot be the typical image format we use (uint 0-255), they are instead an array of float32s (to allow for temperatures like 15.6° to be described).

So far, I have used ODM to

  1. Stitch the RGB JPGs into a fast orthophoto for this survey
  2. Stitch the UNCORRECTED thermal imagery into a fast orthophoto for this survey

and both worked fine. However, stitching the temperature-corrected (float32 .TIF) images into a fast orthophoto processes and completes as normal, but the output I download results in a very low resolution (~10x less than what is output when using the uncorrected thermal imagery) orthophoto. Additionally, the projection seems wrong, as loading it into GIS software places it flipped and in the wrong spot.

Any idea why the temperature-corrected float32 images, when used in stitching, result in such a lower resolution?



I’m guessing the temperature corrected ones are missing the exif/xmp and related tags that gave geolocation in the original images. Are you able to confirm the converted data still has GOS tags?

1 Like

Thanks for the reply!

After conversion, they do lose their exif and xmp data. However, I have a python script I wrote that ‘reprojects’ the temperature converted images using the original drone captured JPG’s xmp/exif data. So the images are geospatially projected (I can place the individual images into QGIS and they are correctly placed). I can look a bit deeper into making sure the XMP and exif formats are correct


You can look at Pierotofy’s exifimageresize for pointers on copying relevant tags over:

Exiftool also can do this with a single command, if memory serves.

1 Like