*Total Solar Irradiance and the Solar Constant*

*Total Solar Irradiance and the Solar Constant*

Extraterrestrial irradiance refers to solar irradiance outside the earth’s atmosphere. Total Solar Irradiance (TSI) is the amount of incoming solar electromagnetic radiation per unit area at the top of the Earth’s atmosphere (TOA). The solar constant is the mean TSI.

The following R code downloads TSI measurements across a range of experiments and satellite data collection efforts to present a composite time series of TSI spanning the period 1976 to 2013. The objective is to confirm the numeric value of the solar constant and to define the amount of variation in solar irradiance entering the Earth’s atmosphere.

All data is sourced from the World Radiation Center at the Physikalisch-Meteorologische Observatorium Davos (PMOD/WRC). The code uses unpublished data from the VIRGO Experiment on the cooperative ESA/NASA Mission known as SoHO.^{1}

The data visualization shows daily TSI with an 81-day moving average. Variations in TSI are seen to have an 11-year cycle, which corresponds to variations in sun spot activity.^{2} The presence of an 11-year solar cycle is sometimes used to explain climate variation or periodic seasonal departures from normal.

The data shows that cycle variation has only a minimal impact on the measured amount of solar radiation entering the Earth’s atmosphere. The mean irradiance at the top of the atmosphere, or the solar constant, is calculated to be 1365.88 W/m^{2}. However, the amount of variation around the mean is well contained to 5 W/m^{2}. A solar cycle is present, indeed, but the amplitude is very small relative to the total irradiance entering the Earth’s atmosphere. Notwithstanding, when this small variation is magnified over the total surface area of the Earth’s disc facing the Sun, then the amount of variation is significant (5 W/m^{2 }* 1.29e14 meters).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 1.Total Solar Irradiance ---- # Download data and read into R url <- "ftp://ftp.pmodwrc.ch/" path <- "pub/data/irradiance/composite/DataPlots/" file <- "ext_composite_d41_62_1302.dat" download.file(file.path(url, path, file, sep=""),file) tsi.data <- read.table(file, skip = 45, col.names = c("Date", "EpochDay", "TSI.Daily", "TSI.81MA"), na.strings = "-99.0000") # Clean-up observation dates and data date1 <- as.Date(strptime(as(tsi.data[1:8762,1], "character"), format = "%y%m%d"), tz = "GMT", format = "%y%m%d") date2 <- seq(as.Date("2000-01-01", tz = "GMT"), by = "days", length = 4813, format = "%y%m%d") tsi.data[, 1] <- c(date1, date2) tsi.data <- tsi.data[, c("Date", "TSI.Daily", "TSI.81MA")] head(tsi.data) # Estimate the solar constant and update dataframe solar.c <- mean(tsi.data[, "TSI.Daily"], na.rm = TRUE) tsi.data <- transform(tsi.data, Solar.Constant = solar.c) # Plot data ggplot(tsi.data) + geom_line(aes(Date, TSI.Daily, color="TSI.Daily"), size = 0.5) + geom_line(aes(Date, TSI.81MA, color="TSI.81MA"), size = 0.75) + geom_line(aes(Date, Solar.Constant, color="Solar.Constant"), size = 1.25) + scale_color_manual(values=c("red", "navy", "gold2")) + scale_x_date(labels = date_format("%y"), breaks = date_breaks("year")) + scale_y_continuous(limits=c(1363, 1368), breaks=seq(1363, 1368, 0.5)) + #theme(legend.key = element_rect(colour = "grey90")) + labs(title = expression(atop(bold("Total Solar Irradiance"), atop(italic("Top of Atmosphere; Composite Time Series (1976-2013)")),"")), x = "Production Year", y = "Solar Irradiance (W/m^2)", color = "Legend") |

*Sunlight and the Solar Spectrum*

*Sunlight and the Solar Spectrum*

The solar constant includes all types of solar radiation, not just visible light. The following code decomposes TSI into its spectral components to determine the distribution or the relative weights of different wavelengths. The code utilizes data from the Renewable Resource Data Center (RReDC) at NREL to define the spectral distribution at the top of the Earth’s atmosphere. Also presented are two standard reference distributions of sunlight at the Earth’s surface, one for global horizontal irradiance (GHI) and one for direct normal irradiance (DNI). The reference distributions are found in ASTM G-173-03 and define standard test conditions for solar photovoltaic (PV) and concentrator equipment.

The profile of the measured solar spectrum closely resembles that of a blackbody emitter calculated previously (see Blackbody Radiation). The Y-axis values on the blackbody chart are slightly different than those above since the current chart normalizes the solar radiation by wavelength to present spectral intensity.

Again we see that the peak of the solar spectrum is dominated by the visible spectrum between 400 and 700 nanometers (1 nm = 1 billionth of a meter = ). We have already shown that TOA irradiance is 1,366 W/m^{2} using direct satellite observations, and this number is roughly confirmed by taking the integral of the AM0 sunlight curve, which yields 1,356 W/m^{2}.[ There are two possible reasons why the WRC data and the ASTM reference curves do not agree: Either the WRC measured data is biased for some reason (e.g. sensor measurement or inconsistent data treatment across satellite experiments) or the ASTM reference curve model is biased (e.g. incorrect blackbody temperature, model error, etc.). Either way, the discrepancy is small and represents less 1% of the WRC estimate)]. The new data also reveals that the energy distribution of sunlight entering the atmosphere is 10% ultraviolet light, 40% visible light, and 50% infrared light.

As sunlight travels through the atmosphere, chemicals interact with the sunlight and absorb certain wavelength bands, transforming radiant energy into heat energy. The best known example of atmospheric filtering is the stripping of high-energy, ultraviolet light by ozone molecules in the upper atmosphere. A more active component of the filtering process is water vapor, which has absorption bands at numerous wavelengths, as shown by the dramatic dips in the GHI curve.

At ground level, the energy composition of sunlight decreases to roughly 1000 W/m^{2}* using the ASTM curves*. The reference curve data also reveals that the energy fractions are now 3% ultraviolet, 44% visible light, and 57% infrared. In practice, ground level energy intensity and the solar spectrum will differ from standard test conditions based on location (e.g. latitude), elevation, time of day, and atmospheric conditions.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 2.Solar Spectrum ---- # Downoad data and read into R url <- "http://rredc.nrel.gov" path <- "solar/spectra/am1.5/ASTMG173" file <- "ASTMG173.xls" download.file(paste(url, path, file, sep="/"), file) # Load the Excel workbook and read data from targeted sections of the worksheet wb <- loadWorkbook(file) wave <- readWorksheet(wb, sheet = "SMARTS2", startRow = 3, startCol = 1, endRow = 2004, endCol = 1, header=FALSE) am0 <- readWorksheet(wb, sheet = "SMARTS2", startRow = 3, startCol = 2, endRow = 2004, endCol = 2, header=FALSE) am15ghi <- readWorksheet(wb, sheet = "SMARTS2", startRow = 3, startCol = 3, endRow = 2004, endCol = 3, header=FALSE) am15dni <- readWorksheet(wb, sheet = "SMARTS2", startRow = 3, startCol = 4, endRow = 2004, endCol = 4, header=FALSE) spectra <- data.frame(wave, am0, am15ghi, am15dni) names(spectra) <- c("wave", "am0", "am15ghi", "am15dni") # Plot data ggplot(spectra) + geom_line(aes(wave, am0, color="AM0 Sunlight ToA"), size = 0.75) + geom_line(aes(wave, am15ghi, color="AM1.5 GHI Surface"), size = 0.50) + geom_line(aes(wave, am15dni, color="AM1.5 DNI Surface"), size = 0.50, alpha = 0.50) + scale_x_continuous(limits=c(250, 4000), breaks=seq(250, 4000, 250)) + scale_color_manual(values=c("gold2", "plum", "navy"), breaks=c("AM0 Sunlight ToA","AM1.5 GHI Surface","AM1.5 DNI Surface")) + labs(title = expression(atop(bold("Standard Solar Spectrum"), atop(italic("Top of Atmosphere vs. ASTM G-173-03 Reference Spectra for Surface GHI and DNI")),"")), x = "Wavelength (nm)", y = "Solar Irradiance (W/m^2/nm)") + theme(legend.position=c(.82, .79), legend.title=element_blank()) |

*Solar Orbit and Extraterrestrial Irradiance*

*Solar Orbit and Extraterrestrial Irradiance*

The mean distance between the Sun and Earth is 1 astronomical unit (149,597,871 km). The distance varies as the Earth follows an elliptical orbit, moving from the perihelion in January (closest to the Sun) to the aphelion in July (farthest from the sun).^{3} At the average distance, light travels from the Sun to the Earth in 8 minutes and 19 seconds.

Johannes Kepler is credited as the first to validate the heliocentric model of the Earth rotating around the Sun.^{4} Specifically, Kepler showed that the Earth’s orbit is ellipse with an eccentricity of 0.17. The following diagram shows the relation of the Sun and earth with an exaggerated eccentricity for clarity.

The orbital plot shows that the four seasons are determined by perpendicular axes: the solar equinox occurs when the Earth’s tilt is at a maximum angle to the Sun, and the solar solstice occurs when the Earth’s tilt is at a minimum angle to the Sun. The Earth is closest to the Sun at the periapsis in January and furthest from the Sun at the apoasis in July. As a consequence, the Southern hemisphere enjoys more solar energy during its summer than the Northern hemisphere.

The distance between the Sun and Earth is defined by basic trigonometry and the function for an ellipse. The same function determines the intensity of TOA radiation as a function of time. The orbital distance can be estimated using the following equation:^{5}

(1)

where

is the distance from the Sun;

is the semi-major axis of the ellipse,

is the eccentricity, and is the angle around from perihelion.

We know equals 1 AU or 149,598,261 km, and equals 0.01671123. The tricky part here is linking with time (or the day of year). A simplifying approximation is to assume that the Earth orbits at a constant angular rate.^{6} Hence, time in days since perihelion is given by since there are 365.25 days in the year and it takes 360 degrees to orbit once. is found by defining time as the number days since perihelion, rearranging terms, and converting degrees to radians:

(2)

Solving for as a function time yields the following plot.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
3.Earth Orbit Distance to Sun ---- # Earth orbit in days orbit.days <- 365.256363004 # Mean Earth distance from Sun in km (1 AU) # The semi-major axis of the oribital ellipse au <- 149,598,261 # Earth orbit elliptical eccentricity e <- 0.01671123 # Date and hour of perihelion for 2014 when earth is Closest to the Sun # Source: US Naval Observatory per.date <- as.POSIXct("2014-01-02 12:00:00") # Theta angle of Earth to perihelion in radians as a function of date seq.date <- seq(as.POSIXct("2014-01-01", tz="GMT"), by="days", length=365) per.diff <- as.numeric(difftime(seq.date, per.date, units="days")) theta <- (per.diff * (360/orbit.days)) * pi/180 # Earth distance as a function of date and scaled to 100 million km d <- (au * (1-e^2)) / (1 + e * cos(theta)) / 1e8 data <- data.frame(day=1:365, radius = d) # Plot Earth orbit distance as a function of time ggplot(data, aes(day, radius)) + geom_line(color="green", size=1.25) + geom_hline(yintercept = mean(r), color="navy", size = 1.25) + scale_x_continuous(limits=c(1, 365), breaks=seq(0, 365, 20)) + scale_y_continuous(limits=c(1.465, 1.522), breaks=seq(1.46, 1.522, 0.01)) + labs(title = expression(atop(bold("Earth Orbit Distance to Sun vs. Mean Distance"), atop(italic("2014 Profile")),"")), x = "Day of Year (Integer)", y = "Distance (1*10^8 km)") + annotate("text", x=184, y=1.51, fontface=3, color="green4", size=4, label = "Furthest point from the Sun\n(aphelion)") + annotate("text", x=25, y=1.467, fontface=3, color="green4", size=4, label = "Closest approach to Sun\n(perihelion)") + annotate("text", x=335, y=1.467, fontface=3, color="green4", size=4, label = "Closest approach to Sun\n(perihelion)") + annotate("text", x=25, y=1.498, fontface=3, color="green4", size=4, label = "Mean distance to Sun") |

*Extraterrestrial Irradiance*

*Extraterrestrial Irradiance*

TOA irradiance will vary throughout the year with Earth’s elliptical orbit. The variation effect can be represented empirically with the following equation:^{7}

(3)

where

is the solar constant;

is the mean sun-earth distance; and

is the actual sun-earth distance as a function of the day of the year.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
4.Extraterrestrial Radiation ---- # Solar constant or total solar irradiance (W/m^2) solar.c <- mean(tsi.data[, "TSI.Daily"], na.rm = TRUE) etr <- solar.c * (mean(r)/r)^2 data <- data.frame(day=1:365, etr=etr) # Plot extraterrestrial radiation as a function of time ggplot(data, aes(day, etr)) + geom_line(color="gold2", size=1.25) + geom_hline(yintercept = mean(etr), color="navy", size = 1.25) + scale_x_continuous(limits=c(1, 365), breaks=seq(1, 365, 20)) + scale_y_continuous(limits=c(1320, 1420), breaks=seq(1320, 1420, 10)) + labs(title = expression(atop(bold("Annual Variation in Extraterestrial Radiation"), atop(italic("2014 Profile")),"")), x = "Day of Year (Integer)", y = "Solar Irradiance (W/m^2)") + annotate("text", x=184, y=1335, fontface=3, color="green4", size=4, label = "Furthest point from the Sun\n(aphelion)") + annotate("text", x=25, y=1420, fontface=3, color="green4", size=4, label = "Closest approach to Sun\n(perihelion)") + annotate("text", x=335, y=1420, fontface=3, color="green4", size=4, label = "Closest approach to Sun\n(perihelion)") + annotate("text", x=15, y=1370, fontface=3, color="green4", size=4, label = "Solar Constant") |

*Optical Air Mass*

*Optical Air Mass*

Air mass is a relative measure of the optical length of the atmosphere. AM0 refers to the entry point into the atmosphere, where the air mass equals zero and solar irradiance equals the solar constant. At sea level, when the sun is directly overhead and the zenith angle equals 0, the air mass is equal to one or AM1. As the zenith angle increases, the direct path of sunlight through the atmosphere grows longer. Air mass approaches its maximum value (AM38) as the zenith angle approaches 90°. At this angle, the path length of sunlight through the atmosphere is roughly 38 times longer than when the zenith angle is zero.

Estimating the impact of atmospheric filtering on terrestrial solar irradiance is a challenge since the atmosphere is highly variable in nature. The following sections discuss interpolative and atmospheric models of air mass, their role in solar resource assessment, and the impact on the performance of solar power systems.