In previous posts I have shown plots of global temperature anomaly, volcano and Nino34 trends (here , here). In this post , I want to further explore the role of volcanic eruptions and Nino34 phases (El Nino, La Nina) on temperature anomalies.
This post shows a 5-panel chart of monthly climate trend data: 1) time line of major volcanoes and Volcanic Explosivity Index (VEI), 2) Mauna Loa Observatory (MLO) Atmospheric Transmission (AT) measurements, 3) Stratospheric Aerosol Optical Thickness (SATO) Index, 4) , Nino 34 as an indicator of ENSO and 5) GISS land-ocean temperature anomaly.
The RClimate script and Climate Time Series data file (CTS.csv) links are provided.
First, here is the 5-panel chart that I have made showing the monthly volcano time line with Volcano Explosivity Index (VEI) , Atmospheric Transmission at Mauna Loa Observatory, SATO Index as well as the Nino34 SSTA and GISS LOTA. (Click Image to Enlarge)
Laki Eruption , 1783: “For millennia humans no doubt have noticed that smoke and ash from volcanic eruptions can block sunlight for many days. But Benjamin Franklin went a step further in 1783, proposing that a massive volcanic eruption of the Laki fissure in Iceland caused months of unusually cold weather in Europe. By the early 1900s, scientists had begun trying to quantify how volcanic eruptions affect climate, but measurements and climate models were too crude to conclusively link the two. It wasn’t until the late 20th century that scientists understood precisely how Laki’s eruption and the subsequent strange blue haze that wafted over Europe cooled temperatures, and how this related to the “human volcano” of air pollution.” Source: NOVA Global Dimming
Volcanoes can inject large amounts of aerosols into the atmosphere, affecting the amount of solar radiation that reaches the Earth’s surface. Aerosols are a suspension of fine solid particles or liquid droplets in a gas.
Sulfur aerosols play an important role in reducing the amount of solar radiation that reaches the earth’s surface. Sulfur emissions from volcanoes vary widely, from 0.5% to 12% of all gaseous emissions ( link).
Here is part of Wikipedia’s discussion (link) of volcanic sulfur aerosols:
“Sulfur aerosols are common in the troposphere as a result of pollution with sulfur dioxide from burning coal, and from natural processes. Volcanos are the major source of particles in the stratosphere as the force of the volcanic eruption propels sulfur-containing gases into the stratosphere.”
“Stratospheric sulfur aerosols are tiny sulfur-rich particles of solid or liquid, or a mixture of the two, which exist in the stratosphere region of the Earth’s atmosphere. When present, after a strong volcanic eruption such as Mount Pinatubo, they produce a cooling effect for a few years before the particles fall out, by reflecting sunlight, and by modifying clouds as they fall out of the stratosphere.” Wikipedia link
The major volcano time line includes volcanoes with a VEI of 4 or more. The plot labels the 5 volcanic eruptions with VEI s of 5-6. Pinatubo was the only VEI @ 6 in the 1958-2011 period. It was followed by Hudson Cerro, VEI of 5, a little less than 2 months later.
El Chichon actually had 2 eruptions only 5 days apart (3/28/91 @ 4, 4/3/91 @ 5).
Volcanic Dimming Indicators
My chart shows 2 atmospheric optical indicators, SATO and Mauna Loa Observatory (MLO) Atmospheric Transmission.
NASA uses the Stratospheric Aerosol Optical Thickness (SATO) index in their climate models (link).
“The optical depth expresses the quantity of light removed from a beam by scattering or absorption during its path through a medium. If I0 is the intensity of radiation at the source and I is the observed intensity after a given path, then optical depth τ is defined by the following equation: Wikipedia

This simple plot shows the optical depth – transmission relationship.
The SATO index reflects the portion of the solar radiation that passes through the stratosphere. Here is the SATO index data link.
The Maunal Loa Observatory measures clear-sky atmospheric transmission monthly (link). This data series shows the fraction of the top-of-atmosphere solar radiation that is reaching the surface. Here is the raw data link.
If we look at the MLO AT and SATO trend lines we can see significant decreases in AT and increases in SATO that coincide with the El Chichon and Pinatubo – Hudson Cerro eruptions. The El Chichon period AT decreased from approximately 0.92 to 0.79 2 months later. It took 28 months for the AT to return to its pre-Pinatubo level.
The Pinatubo period AT decreased from 0.93 to a low of 0.85 3 months later. It took 29 months for the AT to return back to the pre-El Chichon level.
It is important to note that the VEI is note a good indicator of volcanic dimming. The Mt St Helens eruption had a VEI of 5 with no noticeable change in either SATO or AT.
The Agung (VEI 5) eruption is interesting because it seems to have increased SATO and reduced the AT from pre-Agung levels of
Ron at The Whiteboard has an interesting post on the role that the time of year and location (latitude) play in volcanic eruption impacts on climate (link).
Interplay of Nino 34 and Volcanic Dimming
Nino 34 is one of several ENSO (El Nino Southern Oscillation) indicators. I have a number of previous Nino 34 posts (here, here, here). El Nino conditions tend to increase global temperature anomalies and La Nina conditions tend to lower global temperature anomalies, after a multi-month lag. Major volcanic eruptions with high SATO index and lower AT will tend to lower global temperature.
The GISS anomaly series shows a variability caused by natural variation, and the aperiodic impacts of volcanic dimming and ENSO impacts.
RClimate Script and Data File
In working on this post, I developed a new Climate Time Series file (CTS.csv) that includes the 5 major land ocean temperature anomaly series, the climate oscillation series (Nino34, PDO, AMO, AO), MLO’s CO2 series, SATO, MLO Atmospheric Transmission as well as volcano VEIs.
I will update this file monthly to reflect the the latest agency updates for each series.
My RClimate script for this post chart uses my new CTS.csv file, greatly simplifying data download and preparation.
I continue to use traditional graphics for my R charts, even for my panel charts. For the 1st time, I used the layout() function to generate this 5-panel chart rather than the par(mfrow=) that I have used previously. I find that png() works better with the layout() so I’ll be sticking with layout().
Here are the links to my RClimate script and CTS.csv files.






Pingback: UAH Temperature Anomalies Following Predictable Pattern | Climate Charts & Graphs
Pingback: How easily it is to get fooled | Louo.net
Pingback: Atmospheric Temperature Structure : 2 – Stratospheric Cooling | Climate Charts & Graphs
Pingback: The Climate Change Debate Thread - Page 490
Robert
I’ve updated the KNML script to include writing a csv file to your designated location.
Here’s the link to the updated R script here
Hey Kelly,
From what I can understand about the RClimate.txt file is that this is the code needed for each archive to be downloaded and formatted. How does one export the data from there however into a .csv file for example?
Also the RScript written for KNML is not working for me in terms of outputting a .csv
I input the following code.
output_link <- C:\\Learn_R\\myfile.csv
write.csv(df, link, quote=FALSE, row.names = F)
but got the following error message:
Error: unexpected input in " output_link <- C:\ "
Any ideas? Sorry to be a pain. Thanks though!
Robert
The output link text string must be in quotes “C:\\Learn_R\\myfile.csv”
Once you add the quotes for the text string, it should work!!
Hey Kelly,
I added the quotes for the string but I still got an error. This time a different one. If you like I can be emailed directly at robert_way19@hotmail.com rather than discussing this so publicly. Either way the error I received was that it said
can only open URLs for readingError in file (file, ifelse(append, “a”, “w”)) : cannot open the connection.
I typed in:
output_link <- "c:\\Learn_R\\test1.csv"
write.csv(df, link, quote=FALSE, row.names = F)
You have defined output_link with quotes.
However, you are writing to link. Adjust your write.csv to output_link.
I just realized where I erred. Dumb mistake of mine. Thanks.
Hey Kelly
I have begun looking into R. I downloaded your R presentations and such and am basically at the 4th one (of 5) but I am obviously by no means turning into an expert although I do understand some basics now. I certainly see the advantage in using R it is just a matter of working out the bugs in my understanding. I had a look at your R script and it looks interesting. Certainly to be able to output to a .csv would be useful nowmatter what, whether I use R to plot or excel. I should be pretty good with using this script for KNML files but I do see that there will be probably some issues with compatibility when I go to try using files downloaded from other websites that have a different formatting which would include the traditional headers of year/month Jan.. Feb.. etc…
In general I will take any data series and format it into the following format:
Year/Month Jan Feb Mar
1880
1881
So considering I will do most formatting into that framework I am curious whether this script will deal with that situation the same as the KNML stuff.
Nevertheless within the framework of the KNML work I could certainly use this and it will be very useful. Thank you for your help.
I hope the KNML site has been useful.
Robert
Your questions have convinced me that I should write a post or two about how to download climate data series with different formats.
A few points before my post:
There are 2 file layout styles for monthly climate data, wide and long
ggplot2′s melt() function for that.
I have R scripts for 20 monthly climate series. I think I have seen just about every variation in format. If you look at my RClimate.txt file (here) you can find the R script for each of these data series.
Hey Søren Rosdahl Jensen,
Would all the commands be the same in Matlab with the exception of the last one? Any idea what I could do to output it using Matlab if the last one is different?
Thanks for your commentary.
Robert
Here’s a link to a highly commented (# used for comments in R) script that downloads the Temperature anomaly from the KNML site.
I can add a csv file export to this if you want to still use Excel.
If you think you want to try R, I suggest you look at my LearnR Toolkit, link.
As a first step, I suggest my Getting Familiar with R and Excel & R Worlds to give you a sense for R and why, as an Excel chart guru, I switch to R.
This script is generic for KNML files, just change the link and you should be all set.
Hi Robert
The code below works in Matlab, you just need to remove header text and other text from the data-file and make sure it ends on .txt.
It is very similar to the Scilab code, so I have not commented it. If you don’t have Excel on your system the xlswrite-function will instead write in csv-format. Instead you can then write in txt format and then import that to Excel. Use this command to write in txt-format:
dlmwrite(‘gissdata3.txt’,[time temp],’delimiter’, ‘\t’, ‘precision’,'%4.4f’)
If you want the numbers seperated with a single space instead of a tab replace ‘\t’ with ‘ ‘.
Here is the code
clear
M = dlmread(‘gissdata2.txt’)
year=M(:,1);
time=year(1)+0.5/12:1/12:year(130)+11.5/12;
time=time’;
temp1=M(:,2:13);
temp2=temp1′;
temp=temp2(:);
% write to file
xlswrite(‘gissdata.xls’,[time temp])
Hey Kelly,
An example would be here http://www.cru.uea.ac.uk/cru/data/temperature/hadcrut3vgl.txt
Excluding the quirky 2nd row for each year (I don’t know why they include that) we essentially have a matrix with years by monthly temperature anomaly.
If I want to turn that into a usable format in excel for monthly analysis, how would I go about it? I know how to bring it into excel but only how to get yearly values. Basically the months going across I would like to have going down like as follows:
Year/month Jan Feb Mar …
1880
turned into:
1880 Jan
1880 Feb
1880 Mar
etc… I would like to use excel because I don’t know R (trying to pick up python at least!) Any ideas?
robert
I have a csv file (link) that includes 18 climate time series, including Hadley. The easiest way is to download this csv file and remove the columns you don’t want.
Hey Kelly,
The file seems very useful but the problem is that there will be instances when I will still need to do the switch like I mentioned. For example I have a script for creating gistemps analysis on a regional scale but it outputs the matrix I mentioned before but I would like to make it useful for monthly regression. If it isn’t easy to do then I understand but I was hoping there was some way to do it.
Another note, do you want to incorporate the various reanalysis datasets? I can give you the link to where you can get them all.
robert
I was a big Excel-VBA user (here, here) but found that it was very limited for my climate data interests. I switched to R and have found that I can do just about anything I want to do in R.
I handle this in R with a few lines of script that I use over and over.
I’d be interested in your suggestions for additional climate time series.
Kelly
For the Reanalysis Data
http://climexp.knmi.nl/selectfield_rea.cgi?someone@somewhere
Steps
show field (Select which of the 6 reanalysis datasets you prefer)
2m Temperature
Select Field (at top)
Latitude (90 to -90 N)
Longitude (0 to 360 E)
click Make Time Series
click Raw Data
This interface can also let you do regional analysis which I am actually using for an upcoming paper.
I was wondering then what I should do regarding my situation? Like learning R will take some time but I was hoping to use my data sooner rather than later. Is it possible that I could learn to import the data, apply the R script which formats it, then export the data so I can use it in excel as monthly? Any advice on how to do this?
Kelly,
you don’t by any chance have a script for excel which turns matrices to vectors do you? I’m having trouble making monthly data when it comes in the traditional
jan feb mar…
1880
1881
I’m not sure what you are asking for.
I’ll try to help, 1st a few questions:
1. What data series are you working with?
2. Not clear what you mean by “turns matrices to vectors”? In R speak, a matrix consists of 2 or more vectors.
3. “script for Excel”. Are you asking for Excel VBA script or R script?
I think I know what the question is about.
I use the following commands in Scilab to turn the GISTEMP output into a column vector of monthly anomalies.
//Open file
M=fscanfMat(“path to file \gissdata.txt”);
//Vector of years
year=M(:,1);
//Vector of months
time=year(1)+0.5/12:1/12:year(130)+11/12;
//Pick out monthly anomalies from the GISS-file, i.e. column 2 to 13 for all rows
temp1=M(:,2:13);
// temp1 is now a matrix of 131 rows – one for each year, and 12 columns – one for each month
// Next, transform temp1 to a matrix of 12 rows and 131 columns
temp2=temp1′;
//The first column is the monthly anomalies for 1880, the second column is the monthly anomalies of 1880 and so on. We want to place the data from 1881 below 1880, and from 1882 below 1881…etc.
This command wil do that
temp=temp2(:)
// Now write time and temp to a txt-file:
fprintfMat(‘path to file\yourfilename.txt’, [time' temp])
The file has the format:
month temp_anomaly
The output file can then be read into Excel or whatever. Scilab cannot write directly to xls format, but it is possible to write to csv using the write_csv command.
This also works with Matlab if you change the code for saving the file.
Pingback: Climate Blog and News Recap 2011 01 22 « The Whiteboard