Climate Data Oscillations and the Magnitude Squared Coherence
Nicola Scafetta has written a series of papers about how the movement of the center of mass of the solar system allegedly influences the global temperature. The movement is mainly due to the two giant planets, Jupiter and Saturn. Claiming a connection with the global temperature is rather speculative, and that's what my analysis has shown also.
Scafetta invokes Johannes Kepler’s Mysterium Cosmographicum (1596, 1621) and Harmonices Mundi (1619) in order to argue for the planetary influence. But it is not at all obvious that Kepler’s contributions beyond his three laws, are so useful. Here is what a critical historian of science has written:
“The three major gems in his works on astronomy lay in a vast field of errors, of irrelevant data and details, of mystical fantasies, of useless speculations, of morbid detours of self analysis, and, last but not least, of an organismic and animistic conception of the world and its processes.” (S. L. Jaki, Planets and Planetarians: A History of Theories of the Origin of Planetary Systems, p. 26. Scottish Academic Press, Edinburgh, 1978).
Leaving prior expectations aside, the left-hand figure shows the orbit of the center of mass of the solar system from 1980 to 2014. Its variation is in the order of ±2 sun radii. By the way, measurement of the minute velocity variations in a sun's orbit due to the presence of one or more planets is one of the main methods for detecting exoplanets.
The right-hand figure shows the global temperature anomaly, upper curve, with mean, linear and quadratic fits. The most obvious feature is a gradual rise which is captured imperfectly by the linear and parabolic fits. The secondary feature is a pattern of oscillations which is what the analysis here is concerned with. Although I disagree with much of his analysis, Scafetta is to be commended for having drawn the attention to these oscillations and especially the one with period around 60 years. It resembles in many ways the Atlantic multidecadal oscillation which has a period of about 70 years or 50-90 years.
The lower curve in the right-hand figure shows the speed of the center of mass of the solar system (SCMSS) with mean value. Its main oscillation period is around 20 years.
In order to argue for influence from the orbit on the temperature one needs two kinds of evidence. The first and most important one is an explanation in terms of a physical model that explains why this orbit should affect processes in the sun which in turn will influence oscillations in the temperature on earth. There is no such explanation which is generally accepted today.
The second kind of evidence is found by comparing data and look for coherence and correlation. I introduced the magnitude squared coherence estimator to these data sets and my papers show that neither is there any coherence of any significance.
- S. Holm, "On the alleged coherence between the global temperature and the sun's movement," J. Atmos. Solar-Terrestr. Phys., April 2014 (ArXiv has the latest version, open for all to access)
- S. Holm, "Prudence in estimating coherence between planetary, solar and climate oscillations" Astrophys. Space Sci., May 2015. It can also be downloaded from arXiv.
The first paper was featured on the "Watts Up With That?" blog under the title: Death blow to Barycentrism: ‘On the alleged coherence between the global temperature and the sun’s movement’. This is the "the world's most viewed site on global warming and climate change", with more than two million hits per month according to Wikipedia.
Matlab code for producing the figures for two papers can be downloaded here.
The most unique aspect of this code is that it provides a way of finding confidence intervals for magnitude squared coherence estimators which are based on only a few averages, even when the data sets have near line spectra. The main code for accomplishing that can be found in the calls to ebisuzaki.m, mscohere, and randomPhaseMSC.m.
The code will produce Figs. 1-9 (Figs. 1-2 are shown above) in "Prudence in estimating coherence between planetary, solar and climate oscillations", Astrophys Space Sci, 2015, except the 95% confidence interval in Fig 5, since that builds on software from a third party (Stepan Poluianov). These Matlab figures all have numbers starting with 2015.
The code will also generate Figs. 1-5 and the data for Table 1 in "On the alleged coherence between the global temperature and the sun's movement", Journ Atmospher. Solar Terr. Physics, 2014 (including the Corrigendum), except the 95% confidence intervals in Figs. 4 and 5, since that builds on software from a third party (ShouYan Wang). These Matlab figures all have numbers starting with 2014.
Open the zip-file and extract it in a separate directory. These sub-directories will then be created:
- 'data' - for the HadCRUT3 global temperature dataset and solar data from the JPL HORIZONS on-line solar system data and ephemeris computation service.
- 'timeutil' - for time and date utilities by Peter John Acklam.
- 'weaclim' - for two routines (ebisuzaki.m and stan.m) from the Weaclim toolbox by Vincent Moron.
- 'WaveletCoherence' - for the Cross wavelet and wavelet coherence toolbox by Aslak Grinsted. These are the only files that are not included in the download. If you don't want to download and install this toolbox yourself, you may comment out the final 50 or so lines of the prudence.m program. Figures 4 and 5 of the 2015 paper then won't be generated.
Run the program by typing 'prudence' at the Matlab prompt. Then select whether you want the 2015 or the 2014 sets of figures to be generated. In the first case you will also be prompted to respond to whether you want a fast and inaccurate simulation of confidence intervals (nsim=10) for Figs. 6-8 or a slow, but accurate simulation (nsim=1000) as used in the paper.
The code requires the Matlab Signal Processing Toolbox from Mathworks for functions like mscohere, kaiser, and pburg. It runs on Matlab R2013b which seems to be the last version which supports the Cross wavelet and wavelet coherence toolbox.