refevt_penman_fao56
Use the full Penman-Monteith equation to derive reference evapotranspiration as described in FAO 56.
Available in version 6.4.0 and later.
Prototype
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/crop.ncl" ; This library is automatically loaded ; from NCL V6.5.0 onward. ; No need for user to explicitly load. function refevt_penman_fao56 ( Tmean : numeric, netrad : numeric, G : numeric, g : numeric, u2 : numeric, edef : numeric, D : numeric, albedo_crop : numeric, cnum : numeric, cden : numeric, ounit [1] : integer )
Arguments
TmeanScalar or array containing the mean temperature(s) (degC). This is equation 9 in the FAO-56 document: Tmean=(Tmin+Tmax)/2.
netradScalar or array containing the net radiation at the crop surface (MJ/(m2-day)). This is equation 40 in the FAO-56 document. See: netrad_fao56.
GScalar or array containing the soil heat flux density (MJ/(m2-day)).
- Monthly data: This is equation 41 in the FAO-56 document. See: soil_heatflux_month_fao56
- Daily data: This is equation 42 in the FAO-56 document. Hence, G=0.0 for daily data
- Hourly data:
- Daylight hours: This is equation 45 n the FAO-56 document: G=0.1*netrad
- Nighttime hours: This is equation 46 n the FAO-56 document: G=0.5*netrad
Scalar or array containing the psychrometric constant (kPa/sqrt[degC]). This is equation 8 in the FAO-56 document. See: psychro_fao56
u2Scalar or array containing the wind speed (m/s) at 2-meters. If not available set to 2.0. This is equation 47 in the FAO-56 document. See: u2_fao56
edefScalar or array containing the vapor pressure deficit (kPa): (es-ea) where es is the saturation vapor presssure and ea is the actual vapor presssure. See: satvpr_mean_fao56, satvpr_tdew_fao56, actvpr_mnmx_fao56, actvpr_rhmean_fao56,
DScalar or array containing the slope of the vapor pressure curve (kPa/C). This is equation 13 in the FAO-56 document. See: satvpr_slope_fao56
cnumA scalar or array containing the crop coefficient(s) to be used in the numerator of the Penman-Monteith equation. If an array is input, the array must have the same size and shape as Tmean in the Penman-Monteith equation. This coefficient is a function of the time step and aerodynamic resistance (i.e., reference type)
Typical constant values for daily or monthly applications are
- cnum = 900 is the value for the 'classic' short reference crop.
- cnum = 1600 is the value for the tall reference crop.
For hourly time steps the ASCE Standardized reference suggests:
- cnum = 37 for short crop hourly (day or night time)
- cnum = 66 for tall crop hourly (day or night time)
A scalar or array containing the crop coefficient(s) to be used in the denominator of the Penman-Monteith equation. If an array is input, the array must have the same size and shape as Tmean in Penman-Monteith equation. This coefficient is a function of the time step and aerodynamic resistance (i.e., reference type)
Typical constant values for monthly applications are
- cden = 0.34 are the values for the 'classic' short reference crop.
- cden = 0.38 are the values for the tall reference crop.
For hourly time steps the ASCE Standardized reference suggests:
- cnum = 0.24 for short crop hourly day application
- cnum = 0.96 for short crop hourly night application
- cnum = 0.25 for tall crop hourly day application
- cnum = 1.76 for tall crop hourly night application
An integer indicating the desired units of the returned reference evapotranspiration.
- ounit=0 ; output units => mm/day
- ounit=1 ; output units => MJ/(m2-day)
- ounit=2 ; output units => W/m2
Return value
An array the same size as Tmean containing the estimates of reference evapotranspiration.
Description
Estimates evapotranspiration vis the full Penman-Monteith equation as described in the Food and Agriculture Organization (FAO) Irrigation and Drainage Paper 56 entitled: Crop evapotranspiration - Guidelines for computing crop water requirement . Specifically, see Chapters 3 and 4.
See Also
Crop & Evapotranspiration functions
Examples
Example 1: Replicate example 17 in Chapter 4. Here ounit=0. Mean monthly data are used.
jday = 105 ; mid April lat = 13.73 ; Bangkok, Thailand tmax = 34.8 ; C tmin = 25.6 ea = 2.85 ; kPa (specified in this example) u2 = 2.0 ; m/s z = 2.0 ; m sunhr = 8.5 ; hrs/day P0 = 101.3 ; kPa Z0 = 0.0 ; m albedo = 0.23 ; crop albedo cnum = 900. ; short crop numerator coefficient for monthly data cden = 0.34 ; short crop denominator coefficient for monthly data tavgmon = (/30.2, 29.2 /) ; C tunit = 0 ; degC runit = 1 ; MJ/(m2-day) punit = 2 ; kPa ;============================================= tavg = (tmin+tmax)*0.5 ; 30.2 C slp = satvpr_slope_fao56(tavg, (/0,2/)) ; 0.246 kPa p = prsatm_tz_fao56(tavg, 2.0, P0, Z0, (/0,2/)) ; 101.222 kPa g = psychro_fao56(p, (/0,0/) ) ; 0.0673 G = 0.14*(tavgmon(0)-tavgmon(1)) ; 0.14 MJ/(m2-day) [EQN 44] esTmin = satvpr_mean_fao56(tmin, (/0,2/)) ; 3.283 kPa [EQN 11] esTmax = satvpr_mean_fao56(tmax, (/0,2/)) ; 5.560 kPa esAvg = (esTmin+esTmax)*0.5 ; 4.422 [EQN 12] edef = esAvg-ea ; 1.572 ; Example 5 radext = radext_fao56(jday, lat, 1) ; 38.06 MJ/(m2-day) sunhrx = daylight_fao56(jday, lat) ; 12.31 hr radsol = radsol_fao56(radext,sunhrx,sunhr,(/1,1/),False) ; 22.65 MJ/(m2-day) radsol_clr = radsol_clrsky_fao56(radext, False) ; 28.54 MJ/(m2-day) netlw = netlw_fao56(tmin, tmax, ea, radext, radsol, (/0,1/), False) ; 3.11 MJ/(m2-day) netsw = netsw_fao56(radsol, albedo) ; 17.44 MJ/(m2-day) netrad = netrad_fao56(netsw, netlw) ; 14.33 ; function REFEVT = refevt_penman_fao56(tavg, netrad, G, g, u2 \ , edef, slp, albedo, cnum, cden, 0) ; 5.72 mm/day ; explicitly calculate dnom = slp + g*(1+cden*u2) ; 0.359 (denominator) refevt = (0.408*(netrad-G)*slp + g*(cnum/(tavg+273))*u2*edef)/dnom ; 5.72 mm/day refevt@long_name = "Penman-Monteith reference evapotranspiration: inline" refevt@units = "mm/day" print(refevt) print(REFEVT) ;============================================= ; For comparison ... Use Hargreaves approximation: tmin, tmax, radext ;============================================= refevt_hg = refevt_hargreaves_fao56( tmin, tmax, radext, (/0,1,0/) ) ; 5.20 mm/day print(refevt_hg)The (edited) output for the above:
Variable: refevt Type: float 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: Number Of Attributes: 2 units : mm/day long_name : Penman-Monteith reference evapotranspiration (0) 5.716062 Variable: REFEVT Type: float Total Size: 4 bytes 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: Number Of Attributes: 4 long_name : Penmon-Monteith reference evapotranspiration (month) units : mm/day url : http://www.fao.org/docrep/X0490E/x0490e07.htm info : FAO 56; EQN 6; penman_fao56 parameters: cc(0)=900 cc(1)=0.34 (0) 5.716062 Variable: refevt_hg Type: float Total Size: 4 bytes 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: Number Of Attributes: 4 long_name : reference evapotranspiration: Hargreaves units : mm/day url : http://www.fao.org/docrep/X0490E/x0490e07.htm info : FAO 56; EQN 52; refevt_hargreaves_fao56 (0) 5.19954
Example 2: Replicate example 18 in Chapter 4. Here ounit=0. Daily data are used. As recommended for daily data, the soil heat flux (G) is set to 0.0
;======================== ; Charper 4: example 18 ;======================== ; This was done this way to mimic Example 18 ;======================== jday = 187 ; 6 July lat = 50.80 ; Brussels, Belgium staz = 100.0 ; station altitude (m) tmax = 21.5 ; C tmin = 12.3 rhmax = 84.0 ; % rhmin = 63.0 uz = 10.0 ; km/hr z = 10.0 ; m (wind height above ground) sunhr = 9.25 ; hrs/day ; standard constants P0 = 101.3 ; kPa Z0 = 0.0 ; m albedo= 0.23 ; default ;=================== tavg = (tmin+tmax)*0.5 ; 16.9 C slp = satvpr_slope_fao56(tavg, 0) ; 0.122 kPa/C p = prsatm_tz_fao56(tavg, staz, P0, Z0, 0) ; 100.11 kPa g = psychro_fao56(p, 0) ; 0.0666 kPa/sqrt(c) G = 0.0 ; recommended for daily data ; Example 3 esTmin = satvpr_mean_fao56(tmin, 0) ; 1.431 [EQN 11] esTmax = satvpr_mean_fao56(tmax, 0) ; 2.564 esAvg = (esTmin+esTmax)*0.5 ; 1.997 [EQN 12] u2 = u2_fao56(uz, z, 1) ; 2.078 m/s [wunit=1: km/hr->m/s) ea = actvpr_mnmx_fao56(tmin, tmax, rhmin, rhmax, 0) ; 1.409 ; Example 5 edef = esAvg-ea ; 0.589 radext = radext_fao56(jday, lat, 1) ; 41.088 MJ/(m2-day) sunhrx = daylight_fao56(jday, lat) ; 16.10 hr radsol = radsol_fao56(radext,sunhrx,sunhr,(/1,1/),False) ; 22.07 MJ/(m2-day) radsol_clr = radsol_clrsky_fao56(radext, False) ; 30.82 MJ/(m2-day); FAO 56 says 30.90 netlw = netlw_fao56(tmin, tmax, ea, radext, radsol, (/0,1/), False) ; 3.73 MJ/(m2-day); FAO 56 says 3.71 netsw = netsw_fao56(radsol, albedo) ; 17.00 MJ/(m2-day) netrad = netrad_fao56(netsw, netlw) ; 13.27 MJ/(m2-day) dnom = slp + g*(1+0.34*u2) ; 0.236 dnom@long_name = "denominator in P-M" ET0 = (0.408*(netrad-G)*slp + g*(900.0/(tavg+273))*u2*edef)/dnom ; 3.877 mm/day ET0@units = "mm/day" print(ET0) refevt = refevt_penman_fao56(tavg, netrad, G, g, u2, edef, slp, (/900.0, 0.34/), 0) ; 3.877 mm/day print(refevt) ;===================== ; Use Hargreaves approximation: tmin, tmax, radext ;===================== refevt_hg = refevt_hargreaves_fao56( tmin, tmax, radext, (/0,1,0/) ) ; 4.06 mm/day print(refevt_hg)
The (edited) output follows:
Variable: ET0 Type: float Total Size: 4 bytes 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: Number Of Attributes: 1 units : mm/day (0) 3.877064 Variable: refevt Type: float Total Size: 4 bytes 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: Number Of Attributes: 5 long_name : Penmon-Monteith reference evapotranspiration (month) units : mm/day url : http://www.fao.org/docrep/X0490E/x0490e07.htm info : FAO 56; EQN 6; refevt_penman_fao56 parameters : cc(0)=900 cc(1)=0.34 (0) 3.877064 Variable: refevt_hg Type: float Total Size: 4 bytes 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: Number Of Attributes: 4 long_name : reference evapotranspiration: Hargreaves units : mm/day url : http://www.fao.org/docrep/X0490E/x0490e07.htm info : FAO 56; EQN 52; refevt_hargreaves_fao56 (0) 4.058171
Example 3:
Replicate example 20 in Chapter 4.
Here,
jday = 196 ; 6 July
lat = 45.72 ; Lyons, France
staz = 200.0 ; station altitude (m)
tmax = 26.6 ; C
tmin = 14.8
u2 = 2.00 ; recommended
krs = 0.16
G = 0.0 ; recommended for daily data
P0 = 101.3 ; kPa
Z0 = 0.0 ; m
albedo= 0.23 ; default
;===================
tavg = (tmin+tmax)*0.5 ; 20.7 C
slp = satvpr_slope_fao56(tavg, 0) ; 0.150 kPa/C
p = prsatm_tz_fao56(tavg, staz, P0, Z0, 0) ; 98.96 kPa
g = psychro_fao56(p, 0) ; 0.0666 kPa/sqrt(c)
; Example 3
esTmin = satvpr_mean_fao56(tmin, 0) ; 1.684 [EQN 11]
esTmax = satvpr_mean_fao56(tmax, 0) ; 3.483
esAvg = (esTmin+esTmax)*0.5 ; 2.583 [EQN 12]
; assume tmin=tdew
edef = esAvg-esTmin ; 0.90
radext = radext_fao56(jday, lat, 1) ; 40.55 MJ/(m2-day)
radsol = radsol3_hargreaves_fao56(tmin, tmax, radext, krs, (/0,1,1/)) ; 22.29 MJ/(m2-day)
opt = True
opt@z = staz
radsol_clr = radsol_clrsky_fao56(radext, opt) ; 30.578 EQN 37
;;ea = esTmin
netlw = netlw_fao56(tmin, tmax, esTmin, radext, radsol, (/0,1/), False) ; 3.71 MJ/(m2-day); FAO 56 says 3.68
netsw = netsw_fao56(radsol, albedo) ; 17.16 MJ/(m2-day)
netrad= netrad_fao56(netsw, netlw) ; 13.45 MJ/(m2-day) ; FAO 56 says 13.48
dnom = slp + g*(1+0.34*u2) ; 0.236
dnom@long_name = "denominator in P-M"
ET0 = (0.408*(netrad-G)*slp + g*(900.0/(tavg+273))*u2*edef)/dnom ; 4.553 mm/day
ET0@units = "mm/day"
print(ET0)
refevt = refevt_penman_fao56(tavg, netrad, G, g, u2, edef, slp, (/900.0, 0.34/), 0) ; 4.553 mm/day
print(refevt)
;=====================
; Use Hargreaves approximation: tmin, tmax, radext
;=====================
refevt_hg = refevt_hargreaves_fao56( tmin, tmax, radext, (/0,1,0/) ) ; 5.03 mm/day
print(refevt_hg)
The output is here
Variable: ET0
Type: float
Total Size: 4 bytes
1 values
Number of Dimensions: 1
Dimensions and sizes: [1]
Coordinates:
Number Of Attributes: 1
units : mm/day
(0) 4.55321
Variable: refevt
Type: float
Total Size: 4 bytes
1 values
Number of Dimensions: 1
Dimensions and sizes: [1]
Coordinates:
Number Of Attributes: 5
long_name : Penmon-Monteith reference evapotranspiration (month)
units : mm/day
url : http://www.fao.org/docrep/X0490E/x0490e07.htm
info : FAO 56; EQN 6; refevt_penman_fao56
parameters : cc(0)=900 cc(1)=0.34
(0) 4.55321
Variable: refevt_hg
Type: float
Total Size: 4 bytes
1 values
Number of Dimensions: 1
Dimensions and sizes: [1]
Coordinates:
Number Of Attributes: 4
long_name : reference evapotranspiration: Hargreaves
units : mm/day
url : http://www.fao.org/docrep/X0490E/x0490e07.htm
info : FAO 56; EQN 52; refevt_hargreaves_fao56
(0) 5.033028