photobiologySun
0.4.0knitr::opts_chunk$set(fig.width=8, fig.height=4)
This is a catalogue of all data sets included in the package. You will find below plots of spectral irradiance for sunlight. All spectra a expressed in absolute units. Some are from standards, and other have been measured or simulated.
Of the measured spectra, not all of them have been measured with the same instruments. The fine sructure of spectral data depends on the spectral resolution of the monochromator. Lower resolution results in smoother spectra through averaging over nearby wavelengths. Similar averaging can be done in software, but such averaging was not used.
Some of the spectral data extend far into the infra-red region. Plots of these data sets do not include the whole range of wavelengths. In the case of time series of spectra, only a few time points are plotted. The step between succesive wavelengths can vary as a function of wavelength with in the case of measured data and standards. In all cases wavelengths are expressed in nanometres and energy irradiances in watt per square metre.
library(photobiology)
library(photobiologyWavebands)
library(photobiologySun)
library(ggplot2)
library(ggspectra)
## For news about 'ggspectra', please, see http://www.r4photobiology.info/
## For on-line documentation see http://docs.r4photobiology.info/ggspectra/
library(lubridate)
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
##
## date
options(photobiology.plot.annotations =
c("boxes", "labels", "colour.guide", "peaks", "title"))
Air Mass zero or AM0 means sunlight that has not travelled through the air.
stepsize(WMO_Wehrli_AM0.spct)
## [1] 0.1 2290.0
range(WMO_Wehrli_AM0.spct)
## [1] 199.5 10075.0
plot(WMO_Wehrli_AM0.spct, range=c(250, 2000), w.band = NULL)
stepsize(ASTM_E490_AM0.spct)
## [1] 1e+00 6e+05
range(ASTM_E490_AM0.spct)
## [1] 119.5 1000000.0
plot(ASTM_E490_AM0.spct, range=c(250, 2000), w.band = NULL)
stepsize(Gueymard_AM0.spct)
## [1] 0.5 5.0
range(Gueymard_AM0.spct)
## [1] 280 4000
plot(Gueymard_AM0.spct, range=c(250, 2000), w.band = NULL)
Air Mass 1.5 (AM1.5) assumes such a solar elevation angle that sunlight travels through 1.5 times the thickness of the atmosphere. The plane of incidence is assumed to be at 37 degrees rather than horizontal. This is considered as typical for the USA. Global radiation includes both direct radiation from the sun and scattered radiation from the sky and clouds.
stepsize(ASTM_G173_direct.spct)
## [1] 0.5 5.0
range(ASTM_G173_direct.spct)
## [1] 280 4000
plot(ASTM_G173_direct.spct, range=c(250, 2000), w.band = NULL)
stepsize(ASTM_G173_global.spct)
## [1] 0.5 5.0
range(ASTM_G173_global.spct)
## [1] 280 4000
plot(ASTM_G173_global.spct, range=c(250, 2000), w.band = NULL)
stepsize(sun_May_morning.spct)
## [1] 0.43 0.48
range(sun_May_morning.spct)
## [1] 250.05 899.78
plot(sun_May_morning.spct, annotations = c("+", "title:objct:when"))
length(gap.mspct)
## [1] 72
stepsize(gap.mspct[[1]])
## [1] 0.43 0.48
range(gap.mspct[[1]])
## [1] 250.22 899.86
plot(rbindspct(gap.mspct[1:5]), annotations = c("-", "peaks")) +
aes(linetype = spct.idx)
plot(sun_May_morning.spct, annotations = c("+", "title:objct:when"))
plot(subset(sun_hourly_august.spct, day(EEST) == 21 &
hour(EEST) > 7 &
hour(EEST) < 13),
annotations = "colour.guide") +
facet_wrap(~EEST, ncol = 3)
Late summer in Helsinki, 2015.
ppfd_label <- expression(PAR~~photon~~irradiance~~(mu*mol~s^{-1}~m^{-2}))
irrad_label <- expression(Global~~irradiance~~(W~m^{-2}))
time_label <- "Time EEST"
ppfd_labels <- labs(x = time_label, y = ppfd_label)
irrad_labels <- labs(x = time_label, y = irrad_label)
ggplot(ppfd.LICOR.data, aes(time_EET, ppfd_mean)) + geom_line() +
ppfd_labels
Global PAR radiaition
ggplot(ppfd.BF.data, aes(time_EET, ppfd_tot_mean)) + geom_line() +
ppfd_labels
Diffuse PAR radiation
ggplot(ppfd.BF.data, aes(time_EET, ppfd_diff_mean)) + geom_line() +
ppfd_labels
Global radiation (UV + VIS + IR)
ggplot(irrad.Kipp.data, aes(time_EET, e_irrad_mean)) + geom_line() +
irrad_labels
Detail time courses for two days with contrasting cloudiness.
sunny.day.data <- subset(ppfd.LICOR.data,
time_EET >= ymd_hms("2015-08-22 00:00:00") &
time_EET < ymd_hms("2015-08-23 00:00:00") )
ggplot(sunny.day.data, aes(time_EET, ppfd_max)) +
geom_area(fill = "orange", alpha = 0.3, colour = "tomato") +
ylim(-0.3, 1600) + ppfd_labels
cloudy.day.data <- subset(ppfd.LICOR.data,
time_EET >= ymd_hms("2015-09-07 00:00:00") &
time_EET < ymd_hms("2015-09-08 00:00:00") )
ggplot(cloudy.day.data, aes(time_EET, ppfd_max)) +
geom_area(fill = "orange", alpha = 0.3, colour = "tomato") +
ylim(-0.3, 1600) + ppfd_labels