Raw Temperature values

Started by billacat, January 22, 2013, 09:58:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

billacat

Does anybody know how the Raw Temperature values in ML relate to actual temperatures (Centigrade or Fahrenheit)?
And where can one find out temperature tolerances for the Canon 600D?

Thanks

a1ex


billacat


escho

Quote from: a1ex on January 22, 2013, 11:53:42 PM
http://groups.google.com/group/ml-devel/browse_thread/thread/725ae6f424dd2917

=> grab a thermometer and measure it, then let us know.

exiftool seems to decode this whole stuff

edgar@linux-pusc:~/testordner> exiftool -CameraTemperature  test.CR2
Camera Temperature              : 22 C


So, no thermometer would be necessary :)

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

nanomad

EOS 1100D | EOS 650 (No, I didn't forget the D) | Ye Olde Canon EF Lenses ('87): 50 f/1.8 - 28 f/2.8 - 70-210 f/4 | EF-S 18-55 f/3.5-5.6 | Metz 36 AF-5

SDX

I tried my best to make sense of the structure of exiftool, but I can't find a table or alike which could help us. I assume that the value in the exif already is converted to Celsius.

We can either collect some data by taking photos, checking the temperature in exif, compare to the raw data and create some tables.
Or try to find the tables (or function) somewhere in the firmware.

Or I simply overlooked something in exiftool. (this statement made this post quite useless again ^^)

1%

this is worth working out as 6d seems to display similar temps to 600d

probably would be pretty simple if the temp is converted. record them, take a pic. shoot some video, record new temp, take a pic. it doesn't fluctuate that much so if you get a few values you might be able to figure out the rest.

Walter Schulz

Seems to be stored quite simple:

Exiftool -CameraTemperature source.jpg
Camera Temperature              : 19 C

Exiftool -CameraTemperature -b source.jpg
19

Verified by changing EXIF
Exiftool -CameraTemperature=10 source.jpg

Exiftool -CameraTemperature source.jpg
Camera Temperature              : 10 C

Exiftool -CameraTemperature -b source.jpg
10


Exiftool -CameraTemperature=-10 source.jpg

Exiftool -CameraTemperature source.jpg
Camera Temperature              : -10 C

Exiftool -CameraTemperature -b source.jpg
-10

Ciao, Walter

SDX

Okay, I'll collect some data then. My 600D is already outside in order to cool down. Should be a few minus degrees Celsius right now, so we can get data over a wide span. I think 3-4 samples with different temperatures should be good enough do to an okay regression analysis.

When that works out as I hope, I might do the same with a 1100D.

EDIT: okay, lets say round about 10 samples.

SDX

Okay, here are the values for the 600D:




raw128130133140157160170176182
7813162424293436

EDIT: a linear regression analysis results with: -57.608+0.516x

I think something like x/2-58 might be what we are looking for

EDIT EDIT:
I just checked what regression models would fit. Even though a logarithmic has a RMSE of 1.173, the linear has 1.211, which appears to be it. So yea, we found it, I think..

nanomad

Given this "new" discovery, it's worth re-checking the 550D values and see how they compare
EOS 1100D | EOS 650 (No, I didn't forget the D) | Ye Olde Canon EF Lenses ('87): 50 f/1.8 - 28 f/2.8 - 70-210 f/4 | EF-S 18-55 f/3.5-5.6 | Metz 36 AF-5

1%

6d appears to display the same values so i think that scale is the same for all new cameras. i have to run them together and see if they display the same temps at the same time to be sure.

escho

Look at this command:

edgar@linux-pusc:~/testordner> exiftool -CameraTemperature test.CR2 -v3 | grep CameraTemperature
  | | | | CameraTemperature = 150
  | | | | CameraTemperature = 150


Maybe, these are the raw-data. But I´m not shure about..

Edit:

Yes, looks like raw:

| | | | CameraTemperature = 150
  | | | | - Tag 0x000c (2 bytes, int16s[1]):
  | | | |     063c: 96 00                                           [..]


Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

SDX

that command results in the temperature in Celsius here.. but looks like raw data indeed. What camera is that from?

escho

https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

maybe, you forgot the -v3 option, which does the binary stuff

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

I wrote a little bash-script:

#!/bin/bash

for all in $HOME/testordner/testreihe/*.CR2
do
  exiftool -CameraTemperature $all >> $HOME/testordner/testreihe/log
  exiftool -CameraTemperature $all -v3 | grep CameraTemperature >> $HOME/testordner/testreihe/log
  echo >> log
done


Then I took some pictures and looked into the exifs with the bash-script. this is the result for my 600d

Camera Temperature              : 21 C
  | | | | CameraTemperature = 149
  | | | | CameraTemperature = 149

Camera Temperature              : 24 C
  | | | | CameraTemperature = 152
  | | | | CameraTemperature = 152

Camera Temperature              : 27 C
  | | | | CameraTemperature = 155
  | | | | CameraTemperature = 155

Camera Temperature              : 28 C
  | | | | CameraTemperature = 156
  | | | | CameraTemperature = 156

Camera Temperature              : 31 C
  | | | | CameraTemperature = 159
  | | | | CameraTemperature = 159

Camera Temperature              : 34 C
  | | | | CameraTemperature = 162
  | | | | CameraTemperature = 162

Camera Temperature              : 34 C
  | | | | CameraTemperature = 162
  | | | | CameraTemperature = 162

Camera Temperature              : 36 C
  | | | | CameraTemperature = 164
  | | | | CameraTemperature = 164

 
Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

SDX

You are right.. the values fit somewhat to what i read manually when doing the tests. The test with 128 is 125 in the exif.
I don't know, maybe the value in the ML menu might now be fully up to date. Can someone please confirm that?

That script is great, now we just need to collect a bunch of pictures from different cameras and do regression analysis on the data.

Important edit: I noticed quite a little difference between your and my data around 130, but 36° is 182 here (from ML menu), 164 for you (in exif). Should we trust the exif or the ML menu?
PS: what I read to be 182 in ML menu is 164 in exif too. I took the picture while the camera was set to film, so almost no delay which could give a chance to cool it down.

escho

Hmm, if the exif-data and the data of ML are the same, then it´s only necessary to substract 128 to get °C. If they are not the same, then I don´t know...

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

escho

Quote from: SDX on January 23, 2013, 08:08:12 PM

Important edit: I noticed quite a little difference between your and my data around 130, but 36° is 182 here (from ML menu), 164 for you (in exif). Should we trust the exif or the ML menu?
PS: what I read to be 182 in ML menu is 164 in exif too. I took the picture while the camera was set to film, so almost no delay which could give a chance to cool it down.

In my case is 164 in exif 164 in ML. See this list:

ML.. 145 146 148 156 158 159 161 164
exif 149 152 155 156 159 162 162 164


In the first 4 cases, the temperature was rising quite quickly, maybe that is the difference here

Edgar

https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

SDX

Okay, well, that convinces me.

x-128, that's easy

nanomad

1100D seems to be using x-128 too. I'll have to check the 650D and the M but x-128 makes perfect sense from a metadata point of view as it allows temps in a range from -128C to 128C using a uint8_t
EOS 1100D | EOS 650 (No, I didn't forget the D) | Ye Olde Canon EF Lenses ('87): 50 f/1.8 - 28 f/2.8 - 70-210 f/4 | EF-S 18-55 f/3.5-5.6 | Metz 36 AF-5

SDX

We are able to print on the screen while doing a bulb exposure, aren't we? Would be great if we could put some useful information there (such as the temperature).

escho

I looked at sourcecode of exiftool:

#..............................................................................
# common CameraInfo tag definitions
.
.
.
my %ciCameraTemperature = (
    Name => 'CameraTemperature',
    Format => 'int8u',
    ValueConv => '$val - 128',
    ValueConvInv => '$val + 128',
    PrintConv => '"$val C"',
    PrintConvInv => '$val=~s/ ?C//; $val',
);


Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a1ex

So... the 550D measurements were not accurate?