Ask Marilyn ® by Marilyn vos Savant is a column in Parade Magazine, published by PARADE, 711 Third Avenue, New York, NY 10017, USA. According to Parade, Marilyn vos Savant is listed in the "Guinness Book of World Records Hall of Fame" for "Highest IQ."
In her Parade Magazine column of July 18, 1999, Marilyn is asked whether the sun shines equally over the earth on an annual basis (assuming clear skies), and responds that every place on earth will accumulate six months of daylight and six months of darkness.
Marilyn correctly notes that, discounting the effects of weather, (though she neglects to mention it also discounts atmospheric refraction, which lengthens the days) all areas of the world are in sunlight for a total of six months each year (from 12 hours each day at the equator to 6 months at one time at the poles).
She fails to mention that this does not amount to the same amount of sunlight on each patch of ground, as the sun, when it is up, in the arctic is on average much lower in the sky than the sun in the tropics. Per unit area, over the course of a year, the equator receives (again, ignoring weather conditions) 2.4 times as much sunlight (radiant light energy) as the poles. After all, that's why the equator is hot and the poles are cold. So the letter writer and her father might both be right, with different interpretations as to what the amount of sunshine is.
The following program which computes the annual insolation (accumulated solar energy) for various latitudes. It's written in QuickBasic. Results are in arbitrary units, but comparable for differing latitudes:
DEFDBL A-Z DEF FNNR (x) = x - 360 * INT((x + 180) / 360) DEF FNSG (x) = SGN(SGN(x) + .5) DEF fnsn (x) = SIN(x * dr) DEF fncs (x) = COS(x * dr) dr = 3.141592654# / 180 DEF FNAR (x) = ATN(x) / dr DEF FNTN (x) = TAN(x * dr + .01 * dr * (ABS(90 - ABS(x)) < .001) * SGN(x)) DEF fnas (x) IF ABS(x) < 1 THEN fnas = FNAR(x / SQR(-x * x + 1)) ELSE fnas = 90 * FNSG(x) END IF END DEF DEF FNAC (x) = 90 - fnas(x) DEF FNNM (x) = x - 360 * INT(x / 360) DEF FNNM2 (x) = x - 360 * INT((x + 180) / 360) CLS FOR lat = -90 TO 90 STEP 15 tot = 0 FOR l = 0 TO 359.9 STEP 5 m = l + 77 lt = l + 1.9 * fnsn(m): v = lt + 77 r = 1 / (1 + .0167 * fncs(v)) dec = fnas(fnsn(lt) * fnsn(23.45)) FOR HrA = 0 TO 359 STEP 5 alt = fnas(fnsn(lat) * fnsn(dec) + fncs(lat) * fncs(dec) * fncs(HrA)) IF alt > 0 THEN tot = tot + fnsn(alt) / (r * r) NEXT NEXT PRINT USING "### #######"; lat; tot NEXT
The first few lines just set up use of double precision floating point variables and define trig functions in degrees. The major loop, of course gives the results for all latitudes at intervals of 15 degrees. The tot is initialized to zero, then we numerically integrate over the celestial longitudes the sun has during the year (0 up to but not including 360, as that is the same as zero). An integration step size of 5 is shown here but the relative values (equator vs. pole) are not significantly different for a step size of 10 or smaller than 5, but as more numbers are added, the arbitrary units change. The variable, l (lower case L) is the sun's celestial longitude, measured along the ecliptic from the March (vernal) equinox point where it crosses the equator, and is one of the variables over which we integrate, representing the time of the year. Variable m is the sun's mean anomaly (angular distance from the position on it's apparent annual path where it is closest to earth--really of course the earth closest to the sun).
In our era this is pretty much fixed at about 77 degrees before the vernal equinox so m is 77 more than l. Variable lt is the sun's true longitude taking into consideration the eccentricity of earth's orbit, and r is the relative distance to the sun in astronomical units (avg dist to sun = 1 AU). Variable dec is the declination of the sun, how many degrees north (or south if negative) the sun is from the equator. Variable HrA is the hour angle, going from 0 up to but not including 360 in the numerical integration. Variable alt is the height of the sun in the sky in degrees for the given geographic latitude and solar longitude at the given time of day, and is computed by spherical trigonometry. If alt > 0 means that the sun is above the horizon, in which case the amount added to the total is proportional to the sine of the height of the sun in the sky and inversely proportional to the square of the distance to the sun.
Running the program gives this set of relative annual insolations at the various latitudes:
-90 657 -- south pole -75 707 -60 900 -45 1169 -30 1390 -15 1533 0 1581 -- equator 15 1533 30 1390 45 1168 60 900 75 707 90 657 -- north pole
Note that use of 10 degrees as the interval of integration (for longitude of the sun--annual motion-- and hour angle--daily motion) does not change the result much (each is of course about 1/4 the previous values as we are using one quarter as many points):
-90 164 -75 177 -60 225 -45 292 -30 348 -15 383 0 395 15 383 30 348 45 292 60 225 75 177 90 164
If we use 2.5 degree increments, for most accurate results, the result is essentially unchanged, just 4 times the values for increments of 5 degrees in celestial longitude and hour angle:
-90 2627 -75 2828 -60 3599 -45 4674 -30 5561 -15 6132 0 6327 15 6132 30 5561 45 4674 60 3599 75 2827 90 2626
In any case, dividing the value at the equator by the value at either pole results in a ratio of 2.4. The slight difference between north (90 lat) and south (-90 lat) pole is the result of the sun's being closest to the earth during southern hemisphere's summer.
The Northern Hemisphere receives slightly more sunlight than the Southern hemisphere through the course of the year because the Sun is in the northern hemisphere longer than it is in the southern hemisphere due to the Earth's elliptical orbit.
The Sun enters the northern hemisphere at the Spring Equinox (on or about March 21) and enters the southern hemisphere at the Fall Equinox (on or about September 23); the Sun is north of the equator for about 186 days and south of the equator for about 179 days. Since the hemisphere with the Sun gets more daylight than the other hemisphere, the northern hemisphere gets a little extra sunlight.
For instance, a location 45 degrees north of the equator receives about 41 hours more sunlight than a location 45 degrees south of the equator. This is based on a program from the Nautical Almanac for Computers.
Matt is basically pointing out that even if Marilyn's definition of more sunlight is used (i.e., number of hours and minutes, without taking into consideration the strength of the sunlight), the annual total over various parts of the world is different. My calculations took into consideration the strength of the sunlight, considering both the height of the sun in the sky as well as the earth-sun distance. Thus Matt and I are both right.
Matt's letter states correctly that the sun is above the horizon for a longer period in the northern hemisphere than in the southern. This has to do with the other alternative definition (Marilyn's) of counting how long the sun is in the sky without consideration of how strong that sunlight is. My first letter concentrated on the angle at which the sunlight hit the surface of the earth at a given latitude integrated over time of day and days of the year, when the sun was up. The program which did the calculations also took into consideration the fact that the earth is closer to the sun during southern hemisphere summer/ northern hemisphere winter, so that the longer daylight period in the south is enhanced by the nearness of the sun, while the longer days in the northern hemisphere are only of a more distant sun. I present here another version of the program, which produces two columns of data for each mentioned latitude: the integrated sunlight taking into consideration the varying distance to the sun (the same as my previous answers), and one not taking into consideration that variation. (This time I have put the north pole at the top and the south pole at bottom, in agreement with the usual convention):
90 2626 2694 75 2827 2893 60 3599 3658 45 4674 4723 30 5561 5597 15 6132 6152 0 6327 6330 -15 6132 6117 -30 5561 5530 -45 4674 4629 -60 3599 3543 -75 2828 2765 -90 2627 2561
Note that in the uncorrected last column the northern hemisphere does indeed show more sunlight. But in actual fact, the distance to the sun, along with the inverse square law, more than make up for that (just slightly) and give the insolation edge to the southern hemisphere, as shown in the column to the left of the rightmost. More importantly, the edge is to the tropics over the poles.
The revised program is:
DEFDBL A-Z DEF FNNR (x) = x - 360 * INT((x + 180) / 360) DEF FNSG (x) = SGN(SGN(x) + .5) DEF FNSN (x) = SIN(x * dr) DEF FNCS (x) = COS(x * dr) dr = 3.141592654# / 180 DEF FNAR (x) = ATN(x) / dr DEF FNTN (x) = TAN(x * dr + .01 * dr * (ABS(90 - ABS(x)) < .001) * SGN(x)) DEF FNAS (x) IF ABS(x) < 1 THEN FNAS = FNAR(x / SQR(-x * x + 1)) ELSE FNAS = 90 * FNSG(x) END IF END DEF DEF FNAC (x) = 90 - FNAS(x) DEF FNNM (x) = x - 360 * INT(x / 360) DEF FNNM2 (x) = x - 360 * INT((x + 180) / 360) CLS FOR lat = 90 TO -90 STEP -15 tot = 0: totx = 0 FOR l = 0 TO 359.9 STEP 2.5 m = l + 77 lt = l + 1.9 * FNSN(m): v = lt + 77 r = 1 / (1 + .0167 * FNCS(v)) dec = FNAS(FNSN(lt) * FNSN(23.45)) FOR HrA = 0 TO 359 STEP 2.5 alt = FNAS(FNSN(lat) * FNSN(dec) + FNCS(lat) * FNCS(dec) * FNCS(HrA)) IF alt > 0 THEN tot = tot + FNSN(alt) / (r * r) ' corrects for solar distance totx = totx + FNSN(alt) ' does not correct for solar distance END IF NEXT NEXT PRINT USING "### ####### #######"; lat; tot; totx NEXT
The remainder of this article has been updated by Charlie on July 26, 2005, based upon a problem identified by Rodney Small Rodney Small <email@example.com>. The original program incorrectly calculated the total hours of sunshine at the north pole.
I've also written a program hoping to support Matt's claim that "a location 45 degrees north of the equator receives about 41 hours more sunlight than a location 45 degrees south of the equator." I find the sun up 4458.18 hours per year at 45 deg. north versus 4418.99 hours per year at 45 deg. south, or 39.2 hours more at the northern latitude. By the way, these compare to the 4383 hours per year (6 months = 24 * 365.25 / 2 hours) that Marilyn's six months would be. The greater value for each latitude is due to atmospheric refraction and the fact that the sun is considered up even if less than half the solar disk is up. The table is:
90 4562.70 85 4563.52 80 4564.02 75 4566.06 70 4576.04 65 4570.19 60 4510.50 55 4485.27 50 4469.41 45 4458.18 40 4449.71 35 4443.08 30 4437.73 25 4433.34 20 4429.69 15 4426.62 10 4424.03 5 4421.84 0 4420.01 -5 4418.50 -10 4417.28 -15 4416.36 -20 4415.73 -25 4415.42 -30 4415.49 -35 4415.99 -40 4417.08 -45 4418.99 -50 4422.17 -55 4427.62 -60 4438.26 -65 4473.27 -70 4437.88 -75 4407.29 -80 4392.96 -85 4385.77 -90 4382.51
but again, this is accumulated time over the year that the sun is up, without regard to its strength, which is affected both by the height of the sun above the horizon and the distance to the sun. Note the peculiarity that the sun is above the horizon more at the north pole than at the equator. So even when amount of time above the horizon is considered (which Marilyn did) it's not the same the whole world over.
Here is the time accumulation program:
DEFDBL A-Z DEF FNNR (x) = x - 360 * INT((x + 180) / 360) DEF fnsg (x) = SGN(SGN(x) + .5) DEF fnsn (x) = SIN(x * dr) DEF fncs (x) = COS(x * dr) dr = 3.141592654# / 180 DEF FNAR (x) = ATN(x) / dr DEF FNTN (x) = TAN(x * dr + .01 * dr * (ABS(90 - ABS(x)) < .001) * SGN(x)) DEF FNAS (x) IF ABS(x) < 1 THEN FNAS = FNAR(x / SQR(-x * x + 1)) ELSE FNAS = 90 * fnsg(x) END IF END DEF DEF fnac (x) = 90 - FNAS(x) DEF FNNM (x) = x - 360 * INT(x / 360) DEF FNNM2 (x) = x - 360 * INT((x + 180) / 360) CLS FOR lat = 90 TO -90 STEP -5 tot = 0: totx = 0 FOR l = 0 TO 359.9 STEP .01 m = l + 77 lt = l + 1.9 * fnsn(m): v = lt + 77 r = 1 / (1 + .0167 * fncs(v)) dec = FNAS(fnsn(lt) * fnsn(23.45)) c = (fnsn(-.75) - fnsn(lat) * fnsn(dec)) / (fncs(lat) * fncs(dec)) IF ABS(c) > 1 THEN noonAlt = 90 - ABS(dec - lat) + .75 HrA = 90 + 90 * fnsg(noonAlt) ELSE HrA = fnac(c) END IF tot = tot + HrA * 2 * 24 / 360 NEXT PRINT USING "### #####.##"; lat; tot * .01 * 365.25 / 360 NEXT
c = (fnsn(-.75) - fnsn(lat) * fnsn(dec)) / (fncs(lat) * fncs(dec)) IF ABS(c) > 1 THEN noonAlt = 90 - ABS(dec - lat) + .75 HrA = 90 + 90 * fnsg(noonAlt) ELSE HrA = fnac(c) END IF
uses spherical trig to find the hour angle at which the sun rises and sets. The cases of midnight sun or no sun at all are handled by the THEN clause while the ordinary instance is handled in the ELSE clause.
tot = tot + HrA * 2 * 24 / 360
The addition to tot adjusts degrees to hours of time and doubles, as each angle was noon to sunset or noon to sunrise, and both have to be counted.
NEXT PRINT USING "### #####.##"; lat; tot * .01 * 365.25 / 360
The final printing multiplies by 0.01 as that was the interval of integration, rather than individual degrees, and converts 360 degrees to 365.25 days. Note that while the insolation programs used arbitrary units, care was taken here to produce the answer in hours per year.