Processing thermal images


Introduction to thermal mapping

Infrared imaging is increasingly used for obtaining thermal maps, in particular of industrial installations, to quickly detect anomalies in plants, to better target maintenance efforts, and improve the efficiency of operation.

Thermal cameras are rather different from normal RGB cameras. First of all, thermal cameras tend to have much lower resolution than current RGB cameras. They also need special optics, not to block longwave infrared wavelengths. Then, even if thermal cameras normally carry a shutter, this is usually not used for taking pictures, but only for internal calibration of the sensor.

The time over which an image is acquired is rather determined by a “response time” of the camera sensor, which is generally longer than typical exposure times for RGB cameras. In addition, the response of thermal cameras tends to change in time (drift), and be non-uniform over the sensor.

Which images can be used for thermal projects?

PIX4Dmapper can process thermal images that have been captured following the recommendations described in this section.

Format Description
RJPG An RJPG (radiometric JPG) image is a .jpg image with radiometric data embedded in the image's metadata. This is a proprietary image format that is supported by PIX4Dmapper. RJPG is the recommended image format for thermal images.
.tiff .tiff grayscale images are supported by PIX4Dmapper but can lack important radiometric data.
.jpg PIX4Dmapper supports .jpg thermal images, but this image format is not recommended. The .jpg images are colored-mapped temperatures and contain only a visual representation of the temperature instead of the raw values.
Information: You can process thermal images extracted from a video but it is not recommended for the same reasons why .tiff images are preferable to .jpg images. Moreover, a movie is less likely to contain image geolocation and is likely to be more compressed than a still image. A thermal video may also capture excessive amounts of image overlap, which can introduce noise into your reconstruction.

Which Pix4D software can process thermal images?

  • PIX4Dmapper and PIX4Dengine can process all types of thermal (RJPG, .tff, .jpg) images that have been captured following the recommendations described in this section.
  • PIX4Dfields can process the thermal band of the Micasense Altum and Sentera 6X cameras and will provide real temperature values.
  • PIX4Dfields and PIX4Dreact can process the .jpg thermal images of many drones and will provide colored maps that only visually represent the temperature.
  • PIX4Dcloud/PIX4Dcloud Advanced alone doesn't support the processing of rjpeg and grayscale thermal images. PIX4Dmapper can be used to process those images. See Processing thermal images using PIX4Dcloud/PIX4Dcloud Advanced and PIX4Dmapper.
  • PIX4Dmatic, and PIX4Dinspect do not process thermal images. They support RGB images.

Processing thermal images using PIX4Dcloud/PIX4Dcloud Advanced and PIX4Dmapper.

PIX4Dcloud can be used along with PIX4Dmapper to process the thermal images (rjpeg and grayscale) on the PIX4Dcloud. To do so, first, create a project on PIX4Dmapper and upload it to PIX4Dcloud for processing.

  1. Create the project using PIX4Dmapper and select the thermal Camera template for processing the images.
  2. Upload the project to the PIX4Dcloud (Project > Upload project files).
  3. After processing is completed, download the entire Project files.
  4. Visualize them using PIX4Dmapper or other third-party software such as QGIS, ArcGIS Pro, etc.  
Note: When the thermal project is processed on PIX4Dcloud, no result is displayed on the cloud because reflectance maps aren't supported for visualization on PIX4Dcloud. However, the results can be downloaded and viewed.

Which thermal cameras are supported and which temperature they provide?

Sensor recommendations

In order to have enough visual content in the images for PIX4Dmapper to reconstruct the scene, we recommend:

  • A minimum sensor resolution of 640x480. Smaller sensors are not supported and typically do not calibrate. 
  • Using a lens with a smaller focal length (9mm) increases the image's footprint, though it is possible to use longer lens focal lengths.

Supported thermal cameras

Recommended integrated solutions that are supported out-of-the-box include the following cameras.

Camera model Absolute temperature Relative temperature
DJI Zenmuse XT    x
DJI Zenmuse XTR x  
FLIR Vue Pro   x
FLIR Vue Pro R x  
senseFly ThermoMAP x  
Aeryon Labs FLIR board   x
Workswell WIRIS 2nd Gen 640  x  
Micasense Altum (Multispectral+Thermal)  x  
senseFly Duet T (RGB+Thermal)  x  

Other custom camera integrations based on FLIR's Vue Pro or Tau2 sensors are also supported. Learn more about custom camera integrations: Processing thermal images. For more information on how to process Duet-T images, please have a look at the senseFly knowledge base (only available with a valid senseFly account).

Important: When creating a project with one of these supported cameras, verify that the Pixel Size and the Focal Length values are correct. Contact your camera manufacturer for details about your camera's specifications. Learn how to modify camera model parameters: How to use the Editing Camera Model Options.

Radiometric thermal cameras

Cameras labeled "R" are radiometrically calibrated. Using such cameras enables the capture of absolute temperature in every pixel of an image. FLIR Vue Pro R and Zenmuse XTR are both radiometric versions that do record absolute temperature. They save their images in RJPG (radiometric JPG) format: a .jpg image with temperature data embedded in every pixel.

Important: Even when using radiometrically calibrated cameras, please note that the differences in illumination, as well as the properties of the surface (material, roughness,...) in the scene, also affect the thermal emissivity in such a way that only similar surfaces can be reliably compared within one project. How far the absolute value of temperature is from the locally measured one depends on the details of the camera. Any such bias cannot be compensated by the software alone, but should rather be addressed at the hardware level. In practice, using as reference a local temperature measurement on the ground is the simplest and most effective solution.

How to process images obtained from Mavic 3T Enterprise, Mavic 2 Dual Enterprise Advanced, Zenmuse H20T, and Zenmuse H20N?

Pix4D's software is currently unable to generate a reflectance map with temperature values from certain thermal cameras, such as the Mavic 3T Enterprise, Mavic 2 Dual Enterprise Advanced, Zenmuse H20T, and Zenmuse H20N from DJI. This is because the metadata of the thermal images from these cameras differs from that of other normal thermal cameras, making it difficult for the FLIR SDK used by Pix4D's software to identify them as rjpeg images. As a result, the software processes these images as RGB images instead of thermal images.

To process these images correctly using Pix4D's software, a workaround is to use third-party software to convert the rjpeg images into TIFF files with temperature information before processing them with PIX4D's software. For more information: Thermal images convertion.

If .jpg thermal images are processed in PIX4Dmapper, PIX4Dfields, and PIX4Dreact, they will be treated as RGB images, and the resulting orthomosaic will not display temperature values. As a result, even if users generate an orthomosaic for visualization purposes, they will not be able to extract the temperature value of a particular object or pixel from the resulting map

How to capture thermal images?

For a better reconstruction of the captured scene in a thermal project, some recommendations should be followed during the image acquisition:

  • Have very high overlap: 90% front and side image overlap.
  • The images have been taken at a resolution of at least 640x480.
  • The images do not suffer from motion blur. An increased flight speed may cause a blurred image.

How to process thermal datasets?

Process a thermal project

1. Create a new project. For more information: New project in PIX4Dmapper.
For nadir datasets with accurate image geolocation, select the processing template Thermal Camera. For more information: Processing Options Default Templates

Important: You can apply a different processing template in the following cases:

2. Ensure that the Pixel Size and the Focal Length values are correctly set: on the menu bar, click Project > Image Properties Editor... and in the section Selected Camera Model, click Edit... For step-by-step instructions about how to modify the camera model: How to use the Editing Camera Model Options.
3. On the Processing bar, click Start to start the processing. The thermal index map will be generated during step 3. DSM, Orthomosaic, and Index.

Process dataset from Micasense Altum

The Micasense Altum is a camera with 6 bands: Blue, green, red, red edge, near-infrared (NIR) and thermal infrared (LWIR). Though the thermal sensor is 160x120, the images process successfully as a rig due to the high-resolution multispectral sensors.

1. Upload the images and use the ag multispectral template.
2. To convert the LWIR pixel values to degree C, use the formula: Thermal_ir=(lwir/100)-273.15

There is a demo dataset of this camera in the micasense website.

Process dataset with both thermal and RGB imagery (A better 3D mesh/ model)

Thermal cameras usually have much lower resolution than RGB cameras, and thus the 3D model is of much lower quality. The idea is to use the higher resolution RGB images to compute a detailed 3D model (mesh) and to project the thermal texture on top of it. This greatly improves the final thermal 3D model. To process a dataset with both thermal and RGB imagery:

1. Run step 1. Initial Processing for the thermal dataset following the instructions above.
2. Run step 1. Initial Processing for the RGB dataset in a separate PIX4Dmapper project.
3. Merge the RGB and the thermal projects. For more information about merging projects: Merging projects.
4. On the menu bar, click Process > Processing Options. Select 2. Point Cloud and Mesh and the tab Advanced. Ensure that for the Point Cloud and Mesh Geometry image groups, Thermal IR is unchecked and that group1 is checked. Ensure that for the Mesh Texture image group, Thermal IR is checked and group1 is unchecked. For more information: Menu Process > Processing Options... > 2. Point Cloud and Mesh > Advanced.

Information: This last step ensures that the point cloud will be generated from the RGB images, the mesh geometry will be created from this RGB point cloud, and that the texturing will be done using the thermal imagery. However, the merging benefits only the mesh and not any other output.

How to visualize thermal outputs?

Visualize the 3D Point Cloud in the rayCloud

1. Click View > rayCloud, to open the rayCloud and load the 3D Point Cloud by ticking the Point Clouds box in the Layers section of the left sidebar. For more information: Menu View > rayCloud > Left sidebar > Layers > Point Clouds .
2. Display: (optional) In the Point Clouds layer of the left sidebar, select Display Properties and change the Shader to either Screen Aligned Quads, Thermal or Spherical Points, Thermal.

Visualize the 3D Textured Mesh in the rayCloud

1. If you use the Thermal Camera processing template and the 3D Textured Mesh output is desired, on the menu bar, click Process > Generate 3D Textured Mesh. For more information: Menu Process > Generate 3D Textured Mesh.
2. Click View > rayCloud, to open the rayCloud and load the 3D Textured Mesh by ticking the Triangle Mesh box in the Layers section of the left sidebar. For more information: Menu View > rayCloud > Left sidebar > Layers > Triangle Meshes .
3. Display: (optional) In the Triangle Meshes layer of the left sidebar, select Display Properties and change the Shader to Thermal.

Visualize thermal Index Map in the Index Calculator

1. Click View > Index Calculator to open the Index Calculator.
2. In the section Index Map of the sidebar, select the band containing thermal data.

Note: Depending on the camera used to capture images, the band containing thermal data will differ.
Zenmuse XTR and FLIR Vue Pro R For projects created with Zenmuse XTR or FLIR Vue Pro R radiometric cameras and if RJPG (radiometric .jpg) imagery is used, the absolute temperature is obtained directly from the band. For more information on RJPG, see this section.
senseFly ThermoMAP Records absolute temperature. For projects created using the senseFly ThermoMAP camera, the temperature [°C or °F] index should be used to obtain absolute temperature index maps. This index is loaded automatically for Thermomap projects and computed using the following formula: 0.01*thermal_ir - 100
Zenmuse XT and FLIR Vue Pro Relative temperature is computed.
Workswell WIRIS 2nd Gen 640 The newer Wiris camera records relative temperature. It is recommended to do the processing using grayscale .tiff images and create the following index to view absolute temperature: 0.04*thermal_ir - 273.15
Micasense Altum LWIR .tiff images are used to generate the thermal reflectance map. Create the following index to view absolute temperature: Thermal_ir=(lwir/100)-273.15

3. Display: (optional) In the section Color Map and Prescription of the sidebar, increase the number of classes to 32, and from the drop-down list choose Equal SpacingMenu View > Index Calculator > Sidebar > 4. Color Maps and Prescription.

How to fix the discontinuities of thermal intensity between consecutive images?

If the temperature seems to drift with time, this is due to the characteristics of the camera (usually uncooled cameras exhibit this behavior) and this cannot be corrected by software. The camera provides an automated way to recalibrate the intensity, usually by taking a picture with the shutter closed. What happens is that the thermal image of a surface having uniform temperature is not itself uniform: it might rather show patterns, peculiar of a specific camera, and highly variable in time.

Check with the camera manufacturer for more details.

How to reduce very long processing time?

There are two main factors that affect the speed of step 1. Initial Processing:

  • Too much overlap: if some images in the project are taken from the same location, this will increase the processing time exponentially. It is advised to use a flight planning app (such as PIX4Dcapture) that triggers the camera based on distance instead of time. Alternatively, it is recommended to manually remove images if the drone was hovering at the same location for an extended period of time.
  • Camera model optimization: if the camera’s initial values are too different from the optimized ones, it may slow down processing. Ensure that the pixel size and focal length are entered correctly: How to use the Editing Camera Model Options.

What to do in presence of entirely white or black images in the rayCloud and low calibration rate?

In case the rayCloud presents either entirely black or entirely white images and the project shows a very low calibration rate, it means that the thermal camera used is not registered in our database. In these situations two actions are possible:

  • The preferred way is to send us a sample of the dataset such that we can include it in our database.
  • Another way is, before starting the process, to close the project and open the .p4d file with a text editor, and below the <tangentialT2> and above the <cameraModelSource> lines, add the following line
    <pixelValue pixelType="uint16" min="-1" max="-1"/>

The "pixelType" must match the datatype of your input image. For example, if you use float or 8-bit data, the above line will not work.

How to use a custom integration of a thermal sensor?

When using a custom integration, it is necessary to integrate the metadata PIX4Dmapper requires in the image EXIF tags. Ensure to follow this document listing all the EXIF tags read by PIX4Dmapper: EXIF and XMP tag information for project creation.

Guidelines for troubleshooting

When the processing of your thermal dataset is not successful or does not calibrate, please ensure to check the following points:

If after verifying the points above, the project still does not calibrate or is still very distorted, please try applying the following processing options in the following order:

  1. Apply All Prior to the internal camera parameter optimization method. For more information on All Prior processing option: Menu Process > Processing Options... > 1. Initial Processing > Calibration.
  2. Set the Camera model with distortion parameters to zero (Radials R1, R2, R3, and Tangentials T1 and T2). For more information on camera model options: How to use the Editing Camera Model Options.
  3. If it still does not calibrate, try to run it with other calibration methods (Standard, Alternative). For more information: Menu Process > Processing Options... > 1. Initial Processing > Calibration. Thermal and Thermomap templates use THE alternative calibration pipeline. This pipeline assumes that the dataset does not contain oblique images, the terrain is flat and homogenous. Due to this assumption during the calibration, the images that have  >35 deg orientation will not get calibrated. Try processing with standard calibration.
  4. A good thermal data set would be of a very high overlap of around 95%. Still, it is important that the images are not captured from the same point of view, but the centers of the images are different points. For cameras like Tau2 (video camera), the fps might be too high and there might be many images in the same location, especially if the drone is hovering. In this case, you should manually remove some frames of the data set.
Was this article helpful?
29 out of 37 found this helpful

Article feedback (for troubleshooting, post here instead)


  • Kang Yu

    @Momtanu, thank you for your reply. The xt2 images are in the R.JPG format that seems to have three bands, and we don't know how to convert to temperature programmatically. Therefore, i was wondering whether you have a formula to do the conversion.  

  • hydro lab

    @Momtau, in particular what do you need? I have the picture folder of 20 Gb and the project folder of 20 Gb.

  • Avatar
    Momtanu (Pix4D)

    @Kang, if the images have 3 bands that means the format is jpeg not rjpeg. Rjpeg will be grayscale (though both joeg and rjpeg have the same extension, jpeg). For jpeg you will not get temperature values, you will have to use the map just for visualization.

  • Avatar
    Momtanu (Pix4D)

    @Hydrolab, I just need the quality report and the p4d file for the final project. The easiest way to find the quality report:


    The p4d file will be there in somewhere with p4d as the format extension.

  • hydro lab

    @Momtanu here thera are the requested files...waiting for your help.

  • Avatar
    Marco (Pix4D)

    Hi @hydrolab,

    I had a look on your quality report.
    We can see that there is a lack a matching and overlapping images:

    Here are my recommended processing options:

    Let us know if it has anyhow improved your results.


  • hydro lab

    Dear Marco,


    I tried your advices, but the results aren't better. Why?

    Hoped that merge procedures caa improve the ir mosaic.

    Could be problem about the parameters of flir lepton camera?

    At the link there are the files of new merge procedure...waiting for your help.

  • Cassandra Champagne

    Has anyone else noticed a non-physical stratification/layering/striping phenomenon when processing infrared images taken over a large area? 

    I am using a FLIR Vue Pro R infrared camera pointed straight down (at nadir).  The phenomenon is observed for a range of different side overlap percentages and flight altitudes.

    The bars are definitely not physical, they are manifested artifacts from the processing.  The white dots on the right side below indicate the locations of the images used.  The bars clearly correlate with the flight path.  This has been observed on different days and at different sites.

    I have not encountered this issue with smaller areas.  The survey on the top is approximately 450 m by 250 m.  The survey on the bottom is approximately 450 m by 450 m.

  • Avatar
    Momtanu (Pix4D)


    The parameters of the camera might be incorrect. You will need to verify the parameters by looking at the image properties editor and the manufacturer specs. The main parameters to verify would be the pixel size and focal length. Make sure they are correct, I have given a screenshot of another project (with RGB cam) just for example.

    I hope you are following the merging procedure correctly. Process thermal images in one project (with a different template, use thermal template and change keypoint to custom 10,000) and RGB in a different project (use ag RGB template). Mark manual tie points in both, a point named MTP1 in the thermal project should be named as MTP1 in the RGB project. Then create a merged project and process step 2 and 3. 

    Step 1 is the process where you can check the quality, if the quality is bad after step 1, it will not improve after merging. So make sure you calibrate most of the images in step 1 and there are no holes. We are just doing the merging to align the thermal and RGB.

    Let me know if you have any questions.

  • Avatar
    Momtanu (Pix4D)


    We have had very few cases of stripes in thermal reflectance maps and they were due to the NUC of the camera. The NUC effect can cause issues with the calibration because the same feature will register different temperatures on different images, therefore making the matching step more difficult. It is generally a characteristic of all uncooled thermal cameras and happens when the camera needs calibration.

    It might be the same case for you. However, I cannot be sure before looking at the images. Could you check if there are discontinuities in the intensity of the images (for example, one image is bright, the next one is very dark though it is practically the same pixels)? You can read this: For this issue, we generally ask you to recalibrate the camera with help from the manufacturer.

  • Garvit Pandya
    I have a FLIR VUE PRO R 640 Thermal Camera fixed mounted on my custom Drone. For the last couple of months, this sensor is not capturing the quality data and the use of FLIR TOOLS with different trial changes in the parameter becomes necessary which takes a lot of time and effort to identify the hotspot and other Solar Inspection related parameters.
    My setup includes -
    a) FLIR Vue Pro R 640 Camera with HDMI Converter
    b) FLIR Original cable
    c) 5V 2A Powerbank
    I am quite interested in solving all the above issues on priority. If anyone has come across any of the issues and can help me out solving this, Please update me with the solution. Should you have any queries, feel free add up in the comment/discussion.
    Please find the sample images in the attachment.
    Thank you for your support.


    Edited by Garvit Pandya
  • Avatar
    Momtanu (Pix4D)

    Hi Jack,

    Could you contact FLIR and let them know about your issue? I think they would be able to help, let us know what they say.

  • Garvit Pandya


    I have already had a conversation with FLIR regarding the same. In conversation, they just gave an idea of factory resetting the camera by pressing 2 buttons. 

    Apart from that, they did not say anything about the further procedure if the problem remains as it is after resetting the camera. The next step that comes directly after setting is to send the camera to their service center. It is then quite a time-consuming process. 


  • Gervy Roberto Inestroza Rivera

    Buenas tardes Amigos!

    Quiero generar un mapa térmico, hice una prueba de vuelo en modo manual y al momento de procesar la información con la plantilla de procesamiento "Cámara térmica" pero no me aparece la opción "Thermal_ir", y solo aparece en índices el "escala de grises".

    Pueden ayudarme por favor.



  • Avatar
    Momtanu (Pix4D)

    Hi Gervy,

    Grayscale and thermal_ir the same. For some cameras it comes up as grayscale and for some thermal_ir.

  • Kathryn Sweeney

    I am trying to create a Thermal project using aerial photos from a FLIR Duo Pro R. The terrain includes homogenous grass hills and water. 
    I have been running the Initial Processing Step for the same set of photos as a 3D Maps project and separately as a Thermal project, using a standardized altitude and the Aerial Grid flight path selection.I have been leaving all images in the properties editor, both the Grayscale and the Duo Pro sets for each. 
    In the Processing Options for the Initial Step, I have tried running both projects with Alternative Calibration, and again with Alternative for the Thermal project and Standard for the RGB project. No matter what I do, the pixels in the ray cloud are all over the place. Any suggestions?

  • Avatar
    Momtanu (Pix4D)

    Hi Kathryn,

    We already have your quality report from the support ticket. The overlap looks very low, also a GSD of 0.08 cm means the flight height was low. We recommned higher flight height and 90% frontal and side overlap for processing thermal images due to its low resolution.

    The camera parameters seem to be incorrect as there is a high optimization value. The pixel size of the RGB should be 1.85 micron and that of the thermal should be 17 micron. You will need to change that in the image properties editor. After saving, set Internal parameters optimisation to all prior. Process step 1. Does it calibrate more images now?

  • Francesco Chiappetta

    Hi Momtanu,

    I'm trying to process a thermal project. i have around 1700 Rjpeg images, but when i load them the software converts only 999 pictures. Is it possible to work with more than 999 converted images? 

    Thank you

  • Avatar
    Momtanu (Pix4D)

    Francesco Chiappetta There is no limit on the number of images. Can you check if the converted folder have only 999 tif images? Can you send us your log file?

  • Francesco Chiappetta

    Yes the converted folder has only 999 tif images. in the pictures you can see what happens. 

    Here is the log file.  

    How can I fix this problem?


  • Avatar
    Momtanu (Pix4D)

    Francesco Chiappetta The reason is that in your project there are duplicated images.
    You can see it in the log file:

    Not adding duplicated image in the inputs: C:/Users/DIS/Desktop/TIR marsciano/converted/DJI_0002_R.tif for a number of images.

  • Randy Post

    A partner we work with is considering buying a DJI ZENMUSE H20T sensor. I don't see it listed on your supported sensors, any plans to support it? It collects data in r-jpeg format, so does that mean it should work with some of the processing workflows you list? Many thanks.

  • Avatar
    Momtanu (Pix4D)

    Hi Randy, It should work. Pix4Dmapper is camera agnostic, it will read the camera parameters from the EXIF of the images for the cameras that are not there in our database. The min res for thermal images we support is 640x480 and the specs page of DJI says the res is the same, so it should work.

  • Samir Touzani

    When using thermal images (RJPEG) to texture a 3D model constructed from RGB images, we notice that the thermal texture on the model does not seem to line up very well with the images. Is there an easy way to fix this? We chose the highest settings for the "Point Cloud and Mesh" step, i.e. Original Scale image size and a High Resolution textured mesh. We used the default settings for the Initial Processing. We used the Zenmuse XT camera for the thermal images, and the DJI Zenmuse X5S for RGB images.

    For instance, in this image the window is bright,


    But in the corresponding texture mapped 3D model, the area where the window should be is dark. The lower row of windows in the image seems to appear near the roof of the building in the model.

  • Avatar
    Momtanu (Pix4D)

    Hi Samir, It seems you merged a thermal and RGB project, right? In that case, to align, it is very important to add the MTPs very accurately, reoptimise, and then merge. You should ensure the quality of the reconstruction after step 1 for both projects and then continue to create a merged project. Do you have the quality reports for the individual projects?

  • Cesar Urrutia

    I was trying to process thermal images witha Duet T. On the first lines of this page says: For more information on how to process Duet-T images, please have a look at this Sensefly article.  The link does not work.

  • Avatar
    Momtanu (Pix4D)

    I think you need to log in with your sensefly ID and password for viewing their articles. If you are still not able to get it, I would recommend reaching out to them directly.

  • Elizabeth Eastman

    Hello, we are flying stream corridors with matrice 210 and the zenmuse xt2, we are planning flights in DJI pilot and then wanting to process orthomosaics. We are wanting to visually adjust temperatures to see the differences in temperatures. Is this possible? Also is their an attribute table of any kind that you can go in and see temperature of specific pixels once ortho is created?

  • Avatar
    Momtanu (Pix4D)

    You can use the index map to change the range or create some indices to visually see the difference. You can export the map as a zonation map (.shp) and look at the attribute able in QGIS, you could also use the information tool in QGIS to click and look at the temperature of a certain pixel/object.

  • Elizabeth Eastman

    My quality report was poor, I am using the Zenmuse XT2 on the Matrice 210V2, how do I find my pixel size and focal length for this camera to make sure it is input into my flight planning software correctly? That is why I had the poor camera optimization?

Article is closed for comments.