How to obtain surface temperature index from Thermal Mosaic data?

4916
5
12-12-2017 07:38 AM
KushendraShah1
New Contributor III

I captured thermal images using DJI zenmuse XT FLIR sensor. I can obtain temperature information of individual thermal images from FLIR tools software. The FLIR tools software only reads photos that are in radiometric jpeg file (R-JPEG) format. When I stitched the images using Agisoft Photoscan, I have the problem to display the temperature information of the mosaic data in ArcGIS. I kinda interested to see the just like a NDVI index in Arcgis. I tried using raster calculator to calculate the absolute temperature index using this formula :  0.04 * thermal_ir - 273.15 but I didn't get the good result. I obtained the formula from Pix4D link How to process thermal datasets in Pix4Dmapper – Support . has anyone tried to display thermal data in ArcGIS? Is there any way to display the temperature information in index (high - low values) of the stitched images in ArcGIS? I appreciated for any help on this. 

Thanks,

Kush

0 Kudos
5 Replies
CodyBenkelman
Esri Regular Contributor

Kush

What you are seeking is possible, but this may take several posts back-and-forth to work through the details.  There are two major issues to address:

1) are you viewing the original pixel values, or have they been altered?

2) do you have an equation to convert accurately from pixel values to temperature?

Ignoring the radiometry (#2) for a moment, note that if you are working with a mosaic, in most cases the pixel values in that mosaic have been altered during the blending process to mosaic the separate images together.   If the mosaicking software does not also apply a histogram stretch, this mosaic *might* work (you will have to test to verify), but my general recommendation, for best accuracy, will be:

  1. run the mosaicking process (Agisoft, Pix4D, Drone2Map, other)
  2. extract the photogrammetric metadata from the mosaicking software and use it to ingest the original images into ArcGIS using the Frame Camera raster type (see note below). 
    1. This will allow you to orthorectify each image individually and not blend pixels together.  
    2. You'd want to use the Nearest Neighbor resampling (not the default resampling = Bilinear)
  3. Add your equation to convert from pixel values to temperature as a raster function (if you're not familiar with raster functions, that's a separate discussion).  
  4. add an optional color map if you want to simply identify temperature visually by color (the raster function w/o color map would allow you to click on a pixel to get temperature)

Now, NOTE that the online documentation for the Frame Camera raster type is not as detailed as I would like, and I'm actually working on a workflow specifically for it now.  If you don't need it urgently in the next few days, I hope to get this completed and posted online soon.  In addition, the step "extract the photogrammetric metadata from the mosaicking software" is not trivial, so I won't pretend we can do the above steps in just a few minutes.  

My recommendation is to address the radiometric problem first.  If you can't find an equation to give you good temperatures, then the workflow I mentioned above is not important.

I can't determine if the equation you show is valid, but I'd start with the FLIR documentation to determine if they provide one.  Once you have an equation, you need to do some testing with individual images - nothing from the drone that has been rectified into a mosaic - these should be images taken on the ground, with controlled temperature objects that you can physically measure - e.g. maybe multiple coffee mugs with hot water in 2 of them, ice water in 2 more.  If you cannot detect these temperatures with relative accuracy, attempting it from the air is a waste of time.

Two other comments:  

  • Read about emissivity.  Depending on the surface material (e.g. concrete vs. metal), two objects at the same actual temperature will have different apparent temperatures in your thermal IR imagery.  Nothing I've said above accounts for this, so you'll have to decide if your landcover material (grass, pavement, asphalt shingles, glass windows, water, etc.) must be mapped to account for emissivity before you try correlating to temperature.  (Any equation you find for converting pixels to temperatures must either have an emissivity parameter, or you need to understand it is giving you only the apparent temperature).   
    • You can test this in the lab by using two different coffee mugs with hot water - get one metal mug, and for the other use a dull (not glossy) ceramic mug, and then put some masking tape or carpet tape on the lower half of both mugs.  When you put in hot water, let the mugs sit still for ~3-4 minutes before recording the temperature and taking the thermal IR image.  My prediction is that the masking tape areas will appear to be similar temperatures on both mugs, but the metal and ceramic surfaces will appear different temperatures. 
  • My comments at top about not using the orthomosaic created by Agisoft/Pix4D/Drone2Map may not be a concern.  If you work through the challenge of finding an equation that works properly, the pixel values that you see in the blended orthomosaic might still be accurate enough for your work - you will have to determine that.

Cody B. 

rogue_recon
New Contributor II

Cody, 

Thank you for taking the time and writing such a detailed response; we appreciate people like you doing this. I have a similar question as Kush, but a different application. 

We provide a thermal mapping of wildland fires, and I also use the Zenmuse XT. The general workflow is grid the fire collecting raw TIFF images, and stitching them together using metashape, which does an excellent job. For now, we are manually digitizing the hot spots. We are looking into a more automated process of classifying the pixels and using the raster calculator to bring back absolute temperature. For example, when we identify a hotspot in arcpro, the general value of the pixel is around 3800 - 4200. I am open to any ideas you might have of how we can get temperature values again and automate the digitizing process. Okay, maybe this is a little off from the original topic! 

0 Kudos
CodyBenkelman
Esri Regular Contributor

Drone2Map now supports reporting of temperature values, but my cautions above regarding radiometric calibration must still be considered.  Surface emissivity in a forest fire is likely not a concern.  

As for images processed in metashape, I can't really comment.   I'm not a fire expert but 3800-4200 does not sound like an accurate temperature value (Fahrenheit, Celsius, or Kelvin) so I would only be guessing at what to do with those data values.  I'd recommend some controlled testing to understand the performance of your sensor and processing software.

 

0 Kudos
rogue_recon
New Contributor II

I don't think those values have any connection to temperature as far as I know because they are in tiff format. Just curious if we can get those temp values back. It seems the best workflow so far is collecting in rjpeg and then converting to tiff, but I have found a similar issue, giving it a similar value. Overall it's not the worst thing, but just trying to refine our wildland fire mapping workflow. 

0 Kudos
CodyBenkelman
Esri Regular Contributor

It's difficult to comment on the accuracy of the data captured by this or any specific sensor.  I'd start with a single image.  If you're able to read accurate temperature values out of an image but then our software is changing those values, we will look into what is causing it. 

If the source data from the camera is incorrect, and you can do some controlled tests (capture images of objects with known temperature values, at the low and high end of your range of concern), you could rescale your data with a raster function in ArcGIS Pro.

Cody B.

0 Kudos