Learn R Programming

splash (version 1.0.2)

calc_daily_solar: 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
)

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

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).

References

Berger, A.L., 1978. Long-term variations of daily insolation and Quaternary climatic changes. Journal of Atmospheric Sciences, 35(12), pp.2362-2367. tools:::Rd_expr_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. tools:::Rd_expr_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. tools:::Rd_expr_doi("10.1029/2010GL045777")

Linacre, E.T., 1968. Estimating the net-radiation flux. Agricultural meteorology, 5(1), pp.49-63. tools:::Rd_expr_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. tools:::Rd_expr_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, tools:::Rd_expr_doi("10.1080/01431168508948283")

Examples

Run this code
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))

Run the code above in your browser using DataLab