Plotting Budyko Curve (1974)

Viewed 563

I couldn't find a ready script for the Budyko Curve, so how can I plot it in python?

The equation for the budyko curve is:

Budyko_Curve_Equation

And the budyko curve I want to plot is:

Budyko_Curve

1 Answers

Here is the script I used:

import numpy as np
import matplotlib.pyplot as plt

budyko_curve_x = np.arange(0, 3, 0.05)
energy_limit_x = np.arange(0, 1.0001, 0.05)
x = np.arange(0, 1.0001, 0.05)

budyko_curve_y = np.power((budyko_curve_x*np.tanh(1/budyko_curve_x)*(1-np.exp(-budyko_curve_x))),0.5)

water_limit_y = 1+budyko_curve_x*0
energy_limit_y = energy_limit_x
y = 1 + x*0

plt.plot(budyko_curve_x,budyko_curve_y,  linestyle='--')
plt.plot(energy_limit_y,energy_limit_x, c='r')
plt.plot(budyko_curve_x,water_limit_y,c='b')
plt.plot(y,x,linestyle='-.', c='k',label='_nolegend_')

plt.ylabel("Actual ET/P")
plt.xlabel("Potential ET/P")
plt.title('Budyko Curve')
plt.grid(b=True, which='major', color='#666666', linestyle='-',alpha=0.2)
# Show the minor grid lines with very faint and almost transparent grey lines
plt.minorticks_on()
plt.legend(["Budyko Curve","Energy Limit", "Water Limit"])
plt.grid(b=True, which='minor', color='#999999', linestyle='-', alpha=0.2)

And the output is:

Budyko_Curve_Output

So, copy and paste and use..

Related