Files
spaceapps2017_matches/notebooks/testing_small_tan_slope_approximation.ipynb
2017-04-29 12:01:29 +08:00

48 KiB

There is term in the fire transmission equation in the spread equations that I didn't expect. Let's look at the graph of how it varies. It is:

e^{0.069*\theta} where \theta is slope in degrees.

paper: http://www.bushfirecrc.com/sites/default/files/managed/resource/ctr_010.pdf

In [30]:
%pylab
%matplotlib inline
Using matplotlib backend: agg
Populating the interactive namespace from numpy and matplotlib
In [31]:
slope = np.arange(-90,90,10)
r=np.exp(0.069*slope)
plt.plot(slope,r)
Out [31]:
[<matplotlib.lines.Line2D at 0x7f05e5d24c50>]

the graph explains it, it has trouble spreading down (negative degrees) but not up (positive)

In [ ]:

can I make an approximation

Since we start with height we need to derive slope. Compare to a neighbouring cell.

e^{0.069*\theta} where \theta is calculated from the height (h) and width (w)

\theta = tan^{-1}(h/w) * 180/pi

e^{0.069*(tan^{-1}(h/w) * 180/pi)}

The small tan approximation is

e^{0.069*(h/w * 180/pi)}

let see how well it holds up

In [37]:
h = np.arange(-60,60,5)
plt.plot(h,np.tanh(h/30) * 180/np.pi)
plt.plot(h,h/30* 180/pi)
Out [37]:
[<matplotlib.lines.Line2D at 0x7f05e5681208>]

It holds up well to ~20 deg, good enougth to give a try

In [29]:
h = np.arange(-60,60,5)
slope = np.rad2deg(np.tanh(h/30))
r=np.exp(0.069*slope)
plt.plot(slope,r)
plt.title('non approx')
plt.ylim(0,100)
plt.show()

h = np.arange(-60,60,5)
slope = np.rad2deg(h/30)
r=np.exp(0.069*slope)/10
plt.title('small tan approx')
plt.ylim(0,100)
plt.plot(slope,r)
Out [29]:
[<matplotlib.lines.Line2D at 0x7f05e5aa5048>]
In [ ]: