calc_daily_solar: Calculate daily solar radiation fluxes

View source: R/solar.R

calc_daily_solarR Documentation

Calculate daily solar radiation fluxes

Description

This function calculates daily solar radiation fluxes.

Usage

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"))
cat(sprintf("  kn: %d\n", solar$kN))
cat(sprintf("  nu: %0.6f degrees\n", solar$nu_deg))
cat(sprintf("  lambda: %0.6f degrees\n", solar$lambda_deg))
cat(sprintf("  rho: %0.6f\n", solar$rho))
cat(sprintf("  dr: %0.6f\n", solar$dr))
cat(sprintf("  delta: %0.6f degrees\n", solar$delta_deg))
cat(sprintf("  ru: %0.6f\n", solar$ru))
cat(sprintf("  rv: %0.6f\n", solar$rv))
cat(sprintf("  rw: %0.6f\n", solar$rw))
cat(sprintf("  hs: %0.6f degrees\n", solar$hs_deg))
cat(sprintf("  hn: %0.6f degrees\n", solar$hn_deg))
cat(sprintf("  tau_o: %0.6f\n", solar$tau_o))
cat(sprintf("  tau: %0.6f\n", solar$tau))
cat(sprintf("  Qn: %0.6f mol/m^2\n", solar$ppfd_mol.m2))
cat(sprintf("  Rnl: %0.6f w/m^2\n", solar$rnl_w.m2))
cat(sprintf("  Ho: %0.6f MJ/m^2\n", (1.0e-6) * solar$ra_j.m2))
cat(sprintf("  Hn: %0.6f MJ/m^2\n", (1.0e-6) * solar$rn_j.m2))
cat(sprintf("  Hnn: %0.6f MJ/m^2\n", (1.0e-6) * solar$rnn_j.m2))

splash documentation built on Oct. 12, 2022, 5:07 p.m.