This function calculates daily solar radiation fluxes.

calc_daily_solar(
  lat,
  n,
  elv = 0,
  y = 0,
  sf = 1,
  tc = 23,
  ke = 0.0167,
  keps = 23.44,
  komega = 283,
  kA = 107,
  kalb_sw = 0.17,
  kalb_vis = 0.03,
  kb = 0.2,
  kc = 0.25,
  kd = 0.5,
  kfFEC = 2.04,
  kGsc = 1360.8
)

Arguments

lat

double, decimal degrees.

n

double, day of year.

elv

double, elevation, m A.S.L. Default: \(0\).

y

double, year. Default: \(0\).

sf

double, fraction of sunshine hours. Default: \(1\).

tc

double, mean daily air temperature, degrees C. Default: \(23.0\).

ke

double, eccentricity of earth's orbit. Default: \(0.01670\), 2000CE (Berger, 1978).

keps

double, obliquity of earth's elliptic. Default: \(23.44\), 2000CE (Berger, 1978).

komega

double, lon. of perihelion, degrees Default: \(283\), 2000CE (Berger, 1978).

kA

double, empirical constant, degrees Celsius. Default: \(107\) (Monteith and Unsworth, 1990).

kalb_sw

double, shortwave albedo. Default: \(0.17\) (Federer, 1968).

kalb_vis

double, visible light albedo. Default: \(0.03\) (Sellers, 1985).

kb

double, empirical constant. Default: \(0.20\) (Linacre, 1968).

kc

double, cloudy transmittivity. Default: \(0.25\) (Linacre, 1968).

kd

double, angular coefficient of transmittivity. Default: \(0.50\) (Linacre, 1968).

kfFEC

double, flux-to-energy conversion, umol/J. Default: \(2.04\) (Meek et al., 1984).

kGsc

double, solar constant, W/m^2. Default: \(1360.8\) (Kopp and Lean, 2011).

Value

Returns a list object with the following variables:

  • nu_deg ............ true anomaly, degrees

  • lambda_deg ........ true longitude, degrees

  • dr ................ distance factor, unitless

  • delta_deg ......... declination angle, degrees

  • hs_deg ............ sunset angle, degrees

  • ra_j.m2 ........... daily extraterrestrial radiation, J/m^2

  • tau ............... atmospheric transmittivity, unitless

  • ppfd_mol.m2 ....... daily photosyn. photon flux density, mol/m^2

  • hn_deg ............ net radiation hour angle, degrees

  • rn_j.m2 ........... daily net radiation, J/m^2

  • rnn_j.m2 .......... daily nighttime net radiation, J/m^2

References

Berger, A.L., 1978. Long-term variations of daily insolation and Quaternary climatic changes. Journal of Atmospheric Sciences, 35(12), pp.2362-2367. doi:10.1175/1520-0469(1978)035<2362:LTVODI>2.0.CO;2

Federer, C.A., 1968. Spatial variation of net radiation, albedo and surface temperature of forests. Journal of Applied Meteorology and Climatology, 7(5), pp.789-795. doi:10.1175/1520-0450(1968)007<0789:SVONRA>2.0.CO;2

Kopp, G. and Lean, J.L., 2011. A new, lower value of total solar irradiance: Evidence and climate significance. Geophys. Res. Lett. 38, L01706. doi:10.1029/2010GL045777

Linacre, E.T., 1968. Estimating the net-radiation flux. Agricultural meteorology, 5(1), pp.49-63. doi:10.1016/0002-1571(68)90022-8

Meek, D.W., Hatfield, J.L., Howell, T.A., Idso, S.B. and Reginato, R.J., 1984. A generalized relationship between photosynthetically active radiation and solar radiation 1. Agronomy journal, 76(6), pp.939-945. doi:10.2134/agronj1984.00021962007600060018x

Monteith, J., and Unsworth, M., 1990. Principles of Environmental Physics, Butterworth-Heinemann, Oxford.

Sellers, P.J., 1985. Canopy reflectance, photosynthesis and transpiration, International Journal of Remote Sensing, 6:8, 1335-1372, doi:10.1080/01431168508948283

Examples

solar <- splash::calc_daily_solar(lat = 37.7,
                                  n = 172,
                                  elv = 142,
                                  y = 2000,
                                  sf = 1,
                                  tc = 23.0)
cat(sprintf("Solar values:\n"))
#> Solar values:
cat(sprintf("  kn: %d\n", solar$kN))
#>   kn: 366
cat(sprintf("  nu: %0.6f degrees\n", solar$nu_deg))
#>   nu: 166.097934 degrees
cat(sprintf("  lambda: %0.6f degrees\n", solar$lambda_deg))
#>   lambda: 89.097934 degrees
cat(sprintf("  rho: %0.6f\n", solar$rho))
#>   rho: 1.016194
cat(sprintf("  dr: %0.6f\n", solar$dr))
#>   dr: 0.968381
cat(sprintf("  delta: %0.6f degrees\n", solar$delta_deg))
#>   delta: 23.436921 degrees
cat(sprintf("  ru: %0.6f\n", solar$ru))
#>   ru: 0.243228
cat(sprintf("  rv: %0.6f\n", solar$rv))
#>   rv: 0.725946
cat(sprintf("  rw: %0.6f\n", solar$rw))
#>   rw: 823.423931
cat(sprintf("  hs: %0.6f degrees\n", solar$hs_deg))
#>   hs: 109.575573 degrees
cat(sprintf("  hn: %0.6f degrees\n", solar$hn_deg))
#>   hn: 101.217016 degrees
cat(sprintf("  tau_o: %0.6f\n", solar$tau_o))
#>   tau_o: 0.750000
cat(sprintf("  tau: %0.6f\n", solar$tau))
#>   tau: 0.752844
cat(sprintf("  Qn: %0.6f mol/m^2\n", solar$ppfd_mol.m2))
#>   Qn: 62.042300 mol/m^2
cat(sprintf("  Rnl: %0.6f w/m^2\n", solar$rnl_w.m2))
#>   Rnl: 84.000000 w/m^2
cat(sprintf("  Ho: %0.6f MJ/m^2\n", (1.0e-6) * solar$ra_j.m2))
#>   Ho: 41.646763 MJ/m^2
cat(sprintf("  Hn: %0.6f MJ/m^2\n", (1.0e-6) * solar$rn_j.m2))
#>   Hn: 21.774953 MJ/m^2
cat(sprintf("  Hnn: %0.6f MJ/m^2\n", (1.0e-6) * solar$rnn_j.m2))
#>   Hnn: -3.009150 MJ/m^2