Freesteel Blog » Temperature catches sunburn

Temperature catches sunburn

Friday, March 24th, 2017 at 12:19 pm Written by:

We move on to the temperature sensor work, and the controversial concept that the temperature of the rising air in a thermal is hotter than the non-upwardly-mobile surrounding environmental atmosphere.

I say it’s controversial because the meaning of “the temperature” in relation to a mobile and turbulent airmass whose structure spans hundreds of metres in the vertical dimension and thousands of Pascals in relative pressure is undefined. Remember that the adiabatic temperature differential is about 0.7degrees per 100m change in altitude.

We do, however, have a single point temperature sensor on a mobile glider which is also progressing up and down the air column (depending on the wind currents and skill of the pilot). The location of the glider with the single temperature sensor is imperfectly known (due to bad GPS (see previous post) and inexplicable barometric behavior (see next post)), and the sensor itself has a thermal mass which means its readings have a delay half-life of about 9 seconds in flowing air (see this other post).

I have taken the precaution of jettisoning my slow, accurate and low resolution dallas temperature sensor for two humidity/temperature sensor combos and an infrared thermometer that has quite a good ambient temperature sensor within its metal can.

These sensors tracked one another pretty well, except for one small problem when I spotted a series of spikes in one and then the other humidity/temperature sensor.


What is going on?

I identified these spikes at times 15:42:49, 15:43:07, 15:43:46, 15:43:57, 15:44:07, 15:44:17 and 15:44:27 and plotted them on the more-consistent-with-the-evidence-at-this-moment 6030 GPS (seen on the right), but had to include a 2.5 second offset to my flight logger’s GPS times to make the timing positions consistent with those running in my flight-logger. (I still can’t see how it’s underplaying the arrival times, seeing as the timestamps should be coming from the GPS satelites, and competition pilots would prefer their computers to shift them forward in space if they were choosing any direction.)


The blue dot is at the start of the time window, and the 10Hz sample GPS on the left gets the first two left hand loops badly wrong, but then looks okay for the five right hand loops. (The right hand vario GPS makes a reading only every 2 seconds.)

The two green diamonds coincide with the spikes in the si7021 humidity meter, while the five red diamonds are the spikes on the SHT31 humidity meter. The coloured line segments are the axis of the vertical king-post, so they are perpendicular to the plane of the wing.

When turning, the glider banks inwards, but there is also an angle of attack, so the perpendicular line to the wing is going to rake backwards from the heading.

You can see why I was getting nowhere for the past year with traces like on the left where I didn’t know that the GPS was implying a velocity that was 90degrees out from the truth.

Now the temperature sensors were recessed on the bottom of the device, out of sight of the sunlight, so I thought, but looking at the video you can see the sun is quite low to the horizon and could have snuck in there.

According to the, on this day at this time, the sun was 19degrees above the horizontal in a direction of 233degrees (West of Southwest).


The sensors are mounted spreadwise to expose them to the airstream, with the Si7021 on the right and the SHT31 on the left, and potentially exposing the former to direct sunlight on a left bank (during a left turn) and the latter to sunlight on the right bank (during a right turn). This is indeed consistent with the 2 spikes then 5 spikes pattern in the record above.

Not every tight turn scores a hit from the sun. Why?

I can filter out the low frequencies in the temperature signal to just indicate the spikes (they get doubled up unfortunately, but there’s only one spike there), and plot then on the line at the same time as the roll/bank of the glider in degrees, like so:

g = fd.pG.tG[t0:t1]
fg = FiltFiltButter(g, 0.05)
plt.plot((g - fg)**2*1000, label="si7021")
plt.plot(np.degrees(np.arcsin(SinRoll(-fd.pZ[t0:t1]))), label="rollangle")


This shows a wobbly bank left followed by a wobbly bank right, where the wing fluctuates between 20 and 50 degrees (I wonder if this is inefficient flying or not?) The spikes/sun-strikes occur in the middle of the higher bank angles.

Here is a slightly busier plot of the same thing, with the orientation heading plotted on it.

plt.plot((NorthOrient(fd.pZ[t0:t1]))*0.1-36, label="heading-deg/10")


The heading of the glider is in degrees between 0 (north) and 360 (north again). The plot has discontinuities as it passes the northerly direction, first two turns counter-clockwise to the left and then multiple turns clockwise to the right. I’ve offset the plot down by 360 and divided it by 10 so it plots on the same graph.

You can see that I only get a spike when the glider is heading north at the same moment as there is a banking angle of over 40 degrees. Otherwise I presume a shadow continues to be cast over the sensor.

Well, we can sort that out:


Now, hopefully this doesn’t block off the flow of air past the temperature sensors and ruin my carefully calibrated response curves.

Also, you’re asking, what’s with the infra-red temperature sensor exposed in the funnel looking at the ground?

Well, that’s easy. All I need to do is calculate its field of view of ground area from the landscape height field and the solar heating from the sun direction on the contours of the ground, and then it’ll tell me if the ground under that one pixel of view is too hot or too cold, like it’ll mean anything.

This is not quite such a stupid idea as I thought.

Here’s the graph of the infra-red sensor pointing at the ground temperature vs the altitude.


So, the IR temperature is reading about the same throughout. The oscillations when the glider is climbing is due to the circling to stay in the thermal with a bank angle and sweeping different parts of the landscape.

But like all good ideas in sensor land, there’s no quick win. Here’s plotting the times when the glider is flying level with red dots when the ground view temperature is hotter than 10.3degrees, and blue otherwise:

t = 10.3
q = fd.pQ[t0:t1].copy()   # GPS positions
q["m22"] = utils.InterpT(q, fd.pZ.m22)  # Z axis of kingpost
q["tI"] = utils.InterpT(q, fd.pI.tI)    # IR temperature
fq = q[(q.m22<-0.95) & (q.tI < t)].sample(200)
plt.scatter(fq.x, fq.y, color='b')
fq = q[(q.m22<-0.95) & (q.tI > t)].sample(200)
plt.scatter(fq.x, fq.y, color='r')


The higher ground is to the Southeast in this picture where the IR temperatures are higher, which is wrong! Maybe I really do need to factor in the angle of attack and the height of the ground. This is not inconceivable.

So although not one thing worked properly in this study to date, I’m getting much more confident of these data tools and that they can get me there — if there is a there there!

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>