
radsol_fao56
Compute solar radiation via the 'Angstrom Formula' which uses extraterrestrial radiation and relative sunshine as described in FAO 56 (equation 35).
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 radsol_fao56 ( radext : numeric, lat : numeric, sunhr : numeric, iounit [2] : integer, opt [1] : logical )
Arguments
radextA scalar or array containing extraterrestrial radiation.
latA scalar or an array of any dimensionality containing latitudes (degrees). Same dimensionality as radext.
sunhrDuration of sunshine (hours). Same dimensionality as radext.
iounitAn integer array of length 2 which specifies the units of the input radext and returned extra terrestrial radiation:
- iounit(0)=0 input radext are mm/day
- iounit(0)=1 input radext are MJ/(m2-day)
- iounit(0)=2 input radext are W/m2
- iounit(1)=0 returns units of mm/day
- iounit(1)=1 returns units of MJ/(m2-day)
- iounit(1)=2 returns units of W/m2
Optional arguments are present.
- opt=False : Optional arguments as and bs are set to the FAO recommended values: as=0.25 and bs=0.50
- opt=True : User may set both as and bs; opt@as=??? and opt@bs=???
Return value
If both jday and lat are scalars then a scalar is returned. Otherwise, a two-or-three dimensional array is returned. If jday(ntim) and lat(nlat), the returned array will be (ntim,nlat). If lat(nlat,mlon), the returned array will be (ntim,nlat,mlon). The returned arrays will contain meta data where applicable.
Description
Computes solar radiatiion based upon daily sunshine and day-of-year 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 equation 35 of Chapter 3.
See Also
Crop & Evapotranspiration functions
Examples
Example 1: Replicate example 10 in Chapter 3.
jday = 135 lat = -22.9 ; Rio de Janerio, Brazil sunhrx = daylight_fao56(jday, lat) ; max daylight/sun; hr per day radext = radext_fao56(jday, lat, 1) ; 25.11; radiation MJ/(m2-day) sunhr = 220.0/31.0 ; =7.1 average daily sunshine hours radsol_0 = radsol_fao56(radext, sunhrx, sunhr, (/1,0/), False) ; 5.8981 mm/day radsol_1 = radsol_fao56(radext, sunhrx, sunhr, (/1,1/), False) ; 14.4561 MJ/(m2-day) radsol_2 = radsol_fao56(radext, sunhrx, sunhr, (/1,2/), False) ; 167.315 W/m2
The full output for 'radsol'
Variable: radsol_1 Type: float Total Size: 4 bytes 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: Number Of Attributes: 4 long_name : radiation: FAO_56 units : MJ/(m2-day) url : http://www.fao.org/docrep/X0490E/x0490e07.htm info : FAO 56; EQN 35 parameters : as=0.25 bs=0.5 (0) 14.456Example 2: Consider lat(lat) and jday(time)
lat = (/ -22.9, 0, 45 /) lat@units = "degrees_north" lat!0 = "lat" lat&lat = lat nlat = dimsizes(lat) time = (/ 15, 135, 246, 306 /) time@long_name = "julian day" time!0 = "time" time&time = time ntim = dimsizes(time) sunhrx = daylight_fao56(jday, lat) ; [jday | 4] x [lat | 3] radext = radext_fao56(jday, lat, 1) ; [jday | 4] x [lat | 3] ; BOGUS 'sunhr' values ; to illustrate dimensionality sunhr = onedtond((/ 7.9, 10.0, 6.8, 5.3 \ ; [4] x [3] , 10.2, 8.0 3.1, 5.8 \ , 6.6, 8.2, 7.2, 6.7 /) \ , dimsizes(radext)) radsol = radsol_fao56(radext, sunhrx, sunhr, (/1,0/), False)The output would beVariable: radsol Type: float Total Size: 48 bytes 12 values Number of Dimensions: 2 Dimensions and sizes: [jday | 4] x [lat | 3] Coordinates: jday: [15..306] lat: [-22.9..45] Number Of Attributes: 5 lon_name : solar radiation: FAO_56 units : mm/day url : http://www.fao.or/docrep/X0490E/x0490e07.htm info : FAO 56; EQN 35; radsol_fao56 parameters : as=0.25 bs=0.5 (0,0) 9.463996 (0,1) 9.834846 (0,2) 3.065224 (1,0) 5.053281 (1,1) 9.57552 (1,2) 8.364044 (2,0) 4.881212 (2,1) 7.372278 (2,2) 6.409425 (3,0) 9.374564 (3,1) 8.259603 (3,2) 3.750898