##---------------------- sw_albedo.m ---------------------------------------------------------------
#' albedo for short wave radiation for given latitude and time of year
#'
#' @name sw_albedo
#' @param lat latitude in degrees North.
#' @param time date as a POSIXct object in UTC time zone(???)
#' @return numeric vector of albedo for short wave radiation for given latitude and time of year
#' @export
#' @references science and dude, 2001 - some title
#' @seealso test
#' @examples
#'  lat <- 54
#'  time <- as.POSIXct("2001-10-10",tz="UTC")
#'  sw_alb(lat,time)
sw_albedo <-  function(time,lat){
  ## convert time to day of the year
  # using base R
  doy <- as.numeric(format(time,"%j")) + (as.numeric(format(time,"%H"))*3600 +
                                            as.numeric(format(time,"%M"))*60 +
                                            as.numeric(format(time,"%S")))/86400
  # using lubridate
  #doy2 <- as.numeric(format(time,"%j")) + (hour(time)*3600 + minute(time)*60 +
  #                                             second(time))/86400
  # Assign Parameter Values #
  Tropic <-  23.45
  YrDays <-  365.0
  DclDay <-  284.0
  DgCrcl <-  360.0
  DgToRd <-  57.29577951
  RefInd <-  1.33 # This is a mild function of T and S. http://scubageek.com/articles/wwwh2o.html
  Lat <-  lat/DgToRd
  z <-  DclDay + floor(doy)
  x <-  DgCrcl*z/YrDays/DgToRd
  y <-  sin(x)
  Decl <-  Tropic/DgToRd*y
  # Hour-angle calculation where time is hours from midnight  #
  HrAng <-  ((doy-floor(doy))*24 -12)*15.0/DgToRd
  # Zenith angle calculation #
  Zenith <-  acos(sin(Decl)*sin(Lat)+cos(Decl)*cos(Lat)*cos(HrAng))
  # Angle of Refraction calculation based on Snell's Law #
  RefAng <-  asin(sin(Zenith)/RefInd) # Angle of refraction
  # Albedo Calculation #
  A1 <-  tan(Zenith-RefAng)^2
  A2 <-  tan(Zenith+RefAng)^2
  A3 <-  sin(Zenith-RefAng)^2
  A4 <-  sin(Zenith+RefAng)^2
  sw_alb <-  0.5 * (A1/A2 + A3/A4)
  # Set albedo to 1 if greater than 1 #
  sw_alb[sw_alb > 1] <-  1
  return(sw_alb)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.