# What are the Cessna 172 carburetor icing chart data points?

I am looking for the polynomial equations (functions) for each of the curved lines.

I have been looking online and I am unable to find the formulas and the data points for this chart (Cessna 172).

I am trying to program an application that can calculate the icing probability for a Cessna 172. By the way if you have the data points for other types of engines and planes that would also help me a lot!

What are the Cessna 172 carburetor icing chart data points?

• As far as I'm aware, that chart doesn't vary by aircraft.
– Jamiec
Commented Feb 28 at 8:52
• @Jamiec no clue. I did do some research on the engine that Cessna's 172 use and it is the Lycoming O-320 Series. Skyhawks and other types of airplanes use it too. I went intot the engine documentation and I haven't found anything on carburetor icing graph. This is what I found so far: github.com/jnbdz/aviation-quickstarts/tree/main/Airplanes/… Commented Feb 28 at 13:59
Commented Feb 28 at 16:00
• @Adam good question. I have no clue. Even ChatGPT seems to be unable to find that information. Commented Feb 29 at 1:15
• @mins thank you so much! My googling skills are terrible! Once I have a minute I will explore it in more details. Commented Feb 29 at 21:54

This chart is not related to any particular aircraft. It was initially published by the Chief Accident Investigation Establishment in Canada:

But it has many variants and yours doesn't match exactly the original.

Still the curves can be easily approximated as polynomials using appropriate fitting functions. For example sampling the curves at a few points, using a piece of Python code and Numpy polyfit (least squares and Vandermonde matrix), I got polynomials matching pretty accurately the chart.

The corresponding coefficients for polynomials (up to degree 5), in order of increasing power, from the outer curve to the inner one:

[19.634  1.688 -0.044  0.    -0.    -0.   ]
[ 1.5896e+01  1.9160e+00 -1.4600e-01  1.1000e-02 -0.0000e+00  0.0000e+00]
[ 8.797e+00  2.878e+00 -3.080e-01  2.400e-02 -1.000e-03  0.000e+00]
[ 4.955e+00  3.183e+00 -5.500e-01  6.500e-02 -4.000e-03  0.000e+00]


The code used:

for a in [c1,c2,c3,c4]:

# Unpack input array
dp, t = a[:,0], a[:,1]

# Coeffs - Low to high power
c = npp.polyfit(dp, t, deg=5)
print(np.round(c, 3))

# Curve samples
dp_s = np.linspace(dp[0], dp[-1], 20)
t_s = npp.polyval(dp_s, c)

# Plot everything
ax.plot(t_s, dp_s, c='m', lw=3) # samples
ax.scatter(t, dp, c='m', s=90) # input points


Arrays c1, ..., c4 contain the sample values with dew point in first column and temperature in second column:

c1 = np.array([[-13.9, -13.7],
[-9.2,  -0.],
...


Since the original functions are not injective (folded curves), the polynomials are the inverse functions, they take the dew point as the variable, and return the temperature, $$t = \mathrm p \,(dp)$$.