Thermal Radiometric Processing Zenmuse XTR

I am not trying to hijack your thread at all, but I have thermal processing challenges as well. I AM able to create Orthos, I am NOT able to produce any file that has radiometric indexing. The output file in Pix4D is found in the projects Indicies folder. The file that I am able to import into Qgis from Pix4D is named *Thermal_index_thermal_ir.tif This file contains radiometric data. I can see the values with a plugin called ValueTool. So I am saying these things because unless I do not understand, the OP and I both thought we would be able to process the radiometric thermal images and have an Ortho with radiometric information. I think I must be missing an output step of some sort. I am going to post my settings to try to help the OP be able to get as far as creating an Ortho. The problem is that all that is being created is an RGB Ortho. PLEASE tell me I am doing something wrong and hopefully it is a common solution for both me and the OP. If you think this should be a separate thread, then I can do that. BTW, Zenmuse XTR 640x480.

[INFO] Initializing ODM 2.8.8 - Tue Aug 30 15:57:20 2022
[INFO] ==============
[INFO] 3d_tiles: False
[INFO] auto_boundary: False
[INFO] auto_boundary_distance: 0
[INFO] boundary: {}
[INFO] build_overviews: False
[INFO] camera_lens: auto
[INFO] cameras: {}
[INFO] cog: True
[INFO] copy_to: None
[INFO] crop: 3
[INFO] debug: False
[INFO] dem_decimation: 1
[INFO] dem_euclidean_map: False
[INFO] dem_gapfill_steps: 3
[INFO] dem_resolution: 2.0
[INFO] depthmap_resolution: 640
[INFO] dsm: True
[INFO] dtm: False
[INFO] end_with: odm_postprocess
[INFO] fast_orthophoto: False
[INFO] feature_quality: high
[INFO] feature_type: sift
[INFO] force_gps: False
[INFO] gcp: None
[INFO] geo: None
[INFO] gps_accuracy: 10
[INFO] ignore_gsd: False
[INFO] matcher_neighbors: 0
[INFO] matcher_type: flann
[INFO] max_concurrency: 12
[INFO] merge: all
[INFO] mesh_octree_depth: 11
[INFO] mesh_size: 200000
[INFO] min_num_features: 10000
[INFO] name: 95bafe0a-7e75-4cdd-ae3e-79cc4550920f
[INFO] no_gpu: False
[INFO] optimize_disk_space: False
[INFO] orthophoto_compression: DEFLATE
[INFO] orthophoto_cutline: False
[INFO] orthophoto_kmz: False
[INFO] orthophoto_no_tiled: False
[INFO] orthophoto_png: False
[INFO] orthophoto_resolution: 2.0
[INFO] pc_classify: False
[INFO] pc_copc: False
[INFO] pc_csv: False
[INFO] pc_ept: True
[INFO] pc_filter: 2.5
[INFO] pc_geometric: False
[INFO] pc_las: False
[INFO] pc_quality: high
[INFO] pc_rectify: False
[INFO] pc_sample: 0
[INFO] pc_tile: False
[INFO] primary_band: auto
[INFO] project_path: D:\WebODM\resources\app\apps\NodeODM\data
[INFO] radiometric_calibration: camera
[INFO] rerun: None
[INFO] rerun_all: False
[INFO] rerun_from: None
[INFO] resize_to: 2048
[INFO] rolling_shutter: False
[INFO] rolling_shutter_readout: 0
[INFO] sfm_algorithm: incremental
[INFO] skip_3dmodel: False
[INFO] skip_band_alignment: False
[INFO] skip_orthophoto: False
[INFO] skip_report: False
[INFO] sky_removal: False
[INFO] sm_cluster: None
[INFO] smrf_scalar: 1.25
[INFO] smrf_slope: 0.15
[INFO] smrf_threshold: 0.5
[INFO] smrf_window: 18.0
[INFO] split: 999999
[INFO] split_image_groups: None
[INFO] split_overlap: 150
[INFO] texturing_data_term: gmi
[INFO] texturing_keep_unseen_faces: False
[INFO] texturing_outlier_removal_type: gauss_clamping
[INFO] texturing_skip_global_seam_leveling: False
[INFO] texturing_skip_local_seam_leveling: False
[INFO] texturing_tone_mapping: none
[INFO] tiles: False
[INFO] time: False
[INFO] use_3dmesh: False
[INFO] use_exif: False
[INFO] use_fixed_camera_params: False
[INFO] use_hybrid_bundle_adjustment: False
[INFO] verbose: False



I have not seen an admin say that we cannot create indexed thermal maps. I would like to know if anyone has been able to create a thermal map. I have had no trouble with creating an ortho from the thermals. Also chose camera for radiometric_calibration: If we were not able to produce radiometric maps then I would not imagine the option being available. If we cannot, that’s fine. What needs to happen to develop? I would be so happy for a positive result here. I will do what I am able to help.

Exif from one of the rjpegs:
ExifTool Version Number : 12.44
File Name : DJI_0023.jpg
Directory : H:/Photo By Category/Inspections/Commercial Buildings/Coop Albert South 092922/Thermal Map 35m Above Roof
File Size : 743 kB
File Modification Date/Time : 2022:09:29 08:01:54-06:00
File Access Date/Time : 2022:09:29 09:23:30-06:00
File Creation Date/Time : 2022:09:29 08:01:54-06:00
File Permissions : -rw-rw-rw-
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Exif Byte Order : Little-endian (Intel, II)
Make : DJI
Camera Model Name : FLIR
X Resolution : 1
Y Resolution : 1
Resolution Unit : None
Software :
Modify Date : 2022:09:29 08:01:54
F Number : 1.3
Aperture Value : 1.5
Focal Length : 13.0 mm
Sub Sec Time Original : 207
Focal Plane Resolution Unit : mm
GPS Latitude Ref : North
GPS Longitude Ref : West
GPS Altitude Ref : Above Sea Level
GPS Map Datum : WGS-84
Compression : JPEG (old-style)
Thumbnail Offset : 576
Thumbnail Length : 5026
About : DJI Meta Data
Absolute Altitude : +600.09
Relative Altitude : +44.80
Gimbal Roll Degree : +0.00
Gimbal Yaw Degree : +168.80
Gimbal Pitch Degree : -90.00
Flight Roll Degree : -5.80
Flight Yaw Degree : +176.00
Flight Pitch Degree : +17.30
Rtk Flag : 0
Central Temperature : 12
Tlinear Gain : 0
Band Name : LWIR
Central Wavelength : 10000
Wavelength FWHM : 4500
Creator Software : ATAU_RBFO
Raw Thermal Image Width : 640
Raw Thermal Image Height : 512
Raw Thermal Image Type : TIFF
Raw Thermal Image : (Binary data 655564 bytes, use -b option to extract)
Emissivity : 1.00
Object Distance : 20.00 m
Reflected Apparent Temperature : 22.0 C
Atmospheric Temperature : 22.0 C
IR Window Temperature : 22.0 C
IR Window Transmission : 1.00
Relative Humidity : 50.0 %
Planck R1 : 17096.453
Planck B : 1428
Planck F : 1
Atmospheric Trans Alpha 1 : 0.006569
Atmospheric Trans Alpha 2 : 0.012620
Atmospheric Trans Beta 1 : -0.002276
Atmospheric Trans Beta 2 : -0.006670
Atmospheric Trans X : 1.900000
Camera Temperature Range Max : 135.0 C
Camera Temperature Range Min : -25.0 C
Camera Temperature Max Clip : 150.0 C
Camera Temperature Min Clip : -60.0 C
Camera Temperature Max Warn : 135.0 C
Camera Temperature Min Warn : -25.0 C
Camera Temperature Max Saturated: 150.0 C
Camera Temperature Min Saturated: -60.0 C
Camera Model :
Camera Part Number :
Camera Serial Number :
Camera Software :
Lens Model :
Lens Part Number :
Lens Serial Number :
Field Of View : 0.0 deg
Filter Model :
Filter Part Number :
Filter Serial Number :
Planck O : -246
Planck R2 : 0.046582058
Raw Value Range Min : 0
Raw Value Range Max : 65535
Raw Value Median : 2258
Raw Value Range : 1597
Date/Time Original : 2022:09:29 08:01:54.205+00:00
Focus Step Count : 0
Focus Distance : 0.0 m
Frame Rate : 0
Image Width : 640
Image Height : 512
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Aperture : 1.3
Image Size : 640x512
Megapixels : 0.328
Date/Time Original : 2022:09:29 08:01:54.207
Thumbnail Image : (Binary data 5026 bytes, use -b option to extract)
Peak Spectral Sensitivity : 10.1 um
GPS Altitude : 600 m Above Sea Level
GPS Latitude : 50 deg 25’ 7.09" N
GPS Longitude : 104 deg 37’ 2.32" W
Focal Length : 13.0 mm
GPS Position : 50 deg 25’ 7.09" N, 104 deg 37’ 2.32" W
– press ENTER –

1 Like

I had some experience to process H20T thermal images using ODM. One way is to first pre-calibrate the raw thermal images (Radiometric JPEG) into TIFF files with the temperature values, then feed them into ODM to create a grayscale orthomosaic. From the posted EXIF, it seems the XTR is using similar parameters for radiometric calibration. You may need to set skip-band-alignment: true.

1 Like

Thank you so much for the thoughts. I tried to dupicate then run a dataset using
dem-resolution: 2, orthophoto-resolution: 2, pc-quality: high, radiometric-calibration: camera, skip-band-alignment: true

I still get a good looking orth, just does not have radiometric info. Are you saying that you were able to get ODM to create an indexed map? Did you convert rjpegs to Tif and if so, how did you do it? Do you mind sharing?

1 Like


One way is to use Thermoconverter app. I’ve tried the trial version and it does the trick. I’ve opened DJI R-JPEG on Flir tools and could see data… Thermoconverter is a bit expensive. I’m talking with a guy who have done a script to convert this, hope he could share it with us.

Or if anyone in the WebODM community done that, could it be shared?

I’ve done the conversion and at this moment I’m running a batch with the inputs you have.

fingers crossed

1 Like

There is a discussion in the exiftool forum for DJI Zenmuse H20T images. It might be working for other DJI thermal images as well. You can also look at the official DJI Thermal SDK.

Note if you precalibrate the R-JPEG images, you need to preserve the EXIF/XMP metadata and convert the calibrated images into UINT16 TIFF format (e.g. expand the calibrated temperature values into 0~65535 by T*100 + 27315) in order for all ODM stages to be working.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.