Tag Archives: R scripts

Animated Images of Arctic Sea Ice Extent Decline

This post shows how to download and animate a series of Arctic Sea Ice Extent images using R and the animation package.

In my previous post, I showed how to download the daily arctic sea ice extent  data and generate an animation of the time series plots. In this post I show how to animate the monthly images provided by NOAA’s Nation Snow and Ice Data Center.


###### RClimate Script: NSIDC_Monthly_Sea_Ice_Extent_Images.R
## Download and process 1981 to 2012 Monthly Arctic SIE Images
## Sept. 5, 2012: http://chartsgraphs.wordpress.com; DK O'Day
##############################################################
  library(animation)
## Establish work dir to place downloaded images and gif file
  setwd(getwd())
  where <- getwd()

## Monthly NSIDC Extent Immage Link
# ftp://sidads.colorado.edu/DATASETS/NOAA/G02135/Aug/N_198108_extn.png
  part_1 <- "ftp://sidads.colorado.edu/DATASETS/NOAA/G02135/Aug/N_"
  part_3 <- "08_extn.png"

# Specify month number for animation
  m <- "08"

# Loop through years to create link and download images
  for (y in 1981:2012) {
     file_name <- paste(part_1, y, part_3, sep="")
     copy_name <- paste(where, "//asie",y,m,".png",sep="")
     download.file(file_name, copy_name, mode="wb")
     }

## copy last file c times to extend gif animation
    for (c in 1:2)
    {
     file_name <- paste("asie2012",c, ".png",sep="")
     file.copy(from= copy_name, to = file_name, overwrite=T)
    }

## Use animation package to generate gif file
  ani.options(convert=shQuote('C:\\Program Files (x86)\\ImageMagick-6.7.9-Q16\\convert.exe'))
  ani.options(outdir = getwd()) # direct gif output file to working dir
  ani.options(interval= 0.70)
  im.convert("asie*.png", "asie_image_animation.gif")

Here is a link to the R script file.

R Script to Build Animation of Arctic Sea Ice Extent – Update 9/3/12

In my previous post I showed an animation of Arctic Sea Ice Extent from the 1980′s through August, 2012 (link).  In this post, I show how to build this Arctic Sea ice Extent  animated chart.

Source Data

The Arctic Ice Sea Monitor (link)   updates their daily csv file with the latest satellite based arctic sea ice measurements.  Here is the daily csv file link.

R script

To develop my animation of the daily Arctic Sea Ice extent, I decided to produce a plot for each year that showed the current year in red and the previous years in grey.  I go this idea from Tamino at Open Mind.

Here is my R script: link.

Once I have the individual png files for each year, I use Photoshop Elements to generate my animation.

After getting Pierre’s comment about using the animation package, I gave it another try. The 2nd time,  I got it to work with ease.

I can now update the daily ASIE plot automatically without any Photoshop Elements involvement.

Thanks Pierre.

Comparison of UAH and RSS Time Series with Common Baseline

In this post I set both UAH 5.4 and RSS 3.3 global temperature anomaly series to a common baseline period (1981-2010)  to compare them. Since both the UAH 5.4 and RSS 3.3 series are satellite based , they exhibit striking similarities.

Common Baseline

In this previous post, I showed how to convert temperature anomaly time series from one baseline period to another period.  I then used this technique in this post to directly compare UAH 5.4 (baseline 1981-2010) and GISS.

In this post, I compare the satellite based UAH 5.4 (baseline 1981-2010) and RSS 3.3 (baseline 1979-1998) series.

The offsets are as follows:

  • UAH:  -0.000978
  • RSS:      0.098772

Since the UAH TLT 5.4 series is based on a 1981-2010 baseline, the offset is nearly zero (-0.00098 versus 0.0). The RSS offset changes the baseline from 1979-1998 to 1981-2010.

Users can reproduce my analysis on their own by downloading my CTS.csv file and applying the offsets to the UAH and RSS series.

Comparison of 1981-2010 Baseline Series

Here is a plot of UAH and RSS 12 month moving averages for 1979 to current: Click to Enlarge

Continue reading

Comparison of UAH and GISS Time Series with Common Baseline

In this post I set both UAH and GISS global temperature anomaly series to a common baseline period (1981-2010)  and compare them. Even though the UAH series is satellite based and GISS series is station based, the series exhibit striking similarities.

Common Baseline

In this previous post, I showed how to convert temperature anomaly time series from one baseline period to another period.  I use this technique in this post to directly compare UAH (baseline 1981-2010) and GISS (baseline 1951-1980) series.

The offsets are as follows:

  • UAH:  -0.000978
  • GISS: 0.34958

Since the UAH TLT 5.4 series is based on a 1981-2010 baseline, the offset is nearly zero (-0.00098 versus 0.0).

Users can reproduce my analysis on their own by downloading my CTS.csv file and applying the offsets to the UAH and GISS series.

Comparison of 1981-2010 Baseline Series

Here is a plot of UAH and GISS 12 month moving averages for 1979 to current: Click to Enlarge Continue reading

UAH Temperature Anomalies Following Predictable Pattern

In this post I show one simple  and 2 multiple regression models to assess the role of time, El Nino – La Nina SSTA and volcanic activity (SATO) on UAH global temperature anomaly trends. The 3rd model provides a reasonable  approximation of the actual UAH oscillations over the 1979 – Feb, 2011 period.

Click Image to Enlarge

This analysis is similar to previous temperature anomaly regressions (here, here, here) that I have done.

The simple trend line regression shows the overall trend is upward, however, there are several oscillations that the linear trend misses.  The yr_frac and Nino34 regression improves on the linear model, however, it undershoots in the early 1980s,  overshoots in the 1992-1994 period, periods following significant volcanic activity.

The yr_frac, Nino34 and SATO model improves the fit in the early 1980s and 1992-1994 period and is slightly better in the 1998 and 2010 El Nino periods.

The 3rd model matches the observed 2010 El Nino – La Nina oscillation pretty well so far, indicating that the 2010 – 2011 UAH anomalies are following a predictable pattern.

Comparison of GISS LOTAs During 5 El Nino – La Nina Cycles

In this post I compare GISS LOTAs during 5 El Nino – La Nina cycles (2010, 1998, 19883, 1973 and 1970).

El Nino – La Nina Cycles

In a previous post I showed the Nino 34 SSTA cycles for 2010, 1998, 1983, 1973 and 1970 here. In this post, I want to see how GISS Land Ocean Temperature Anomalies (LOTA) vary over El Nino – La Nina cycles.  Here is my RClimate chart showing GISS anomalies for 6 months prior to cycle year,the cycle year and the 12 months after cycle year (30 month period).

Click chart to enlarge

While the 2010 cycle is only partially complete, there are a number of interesting aspects in this chart. The average temperatures during the cycles have clearly risen with the latest cycle showing the highest maximum anomaly. All 5 cycles all have similar patterns, with a buildup in 6 months prior to cycle year. The maximum – minimum range for the 5 cycles are comparable, ranging from 0.45 (2010) to 0.60 (1998).

Here is a data summary of the 5 cycles.

RClimate Links

September 2011 Arctic Sea Ice Extent Forecast

In this post, I use a quadratic regression model to forecast the  September, 2011  Arctic Sea Ice Extent. The model was developed with  1980 – 2010 data. Links to the R script, source data and  how-to article on polynomial regression are provided.

Arctic Sea Ice Extent Forecast for September, 2011

First, here is my forecast: (Click image to enlarge)

Based on the 1980 – 2010 downward Arctic Sea Ice trend,  my forecast is that September, 2011 SIE will decline  0.36 below 2010 levels, to 4.54 million km^2, with a confidence band of +- 0.59.

How Did I Develop My Forecast?

I have written a number of posts on Arctic Sea Ice Extent (here, here, here). In this post, I used the NSDIC‘s monthly data file (link)  to construct a quadratic regression model of September sea ice extent for the 1980 – 2010 period. I then used this model to predict the September, 2011  Arctic Sea Ice Extent.

I have 2 main learning curve sources for this model:

  • Tamino‘s post on Arctic Sea Ice decline provided the basic idea of using a quadratic model to fit Arctic SIE decline.
  • John Quick’s tutorial on polynomial regression provided the how-to instructions I needed to implement Tamino’s approach in R.

RClimate Script and Links

Here is the link to my RClimate script.

Assessing Climate Trends: Eyeball versus Regression

In a previous post, I showed the Lower Stratospheric Temperature Anomaly (TLS) Trends (link).  A reader submitted the following comment:

“The lower stratosphere temperature profile is essentially flat from ca. 1995 to the present. This approximately mirrors the temperature trend for the surface temperature. From 1980 to about 1995, the surface temperature increased while the lower stratospheric temperature decreased. After that both went flat.tony

In the words of Edwards Deming:

In God we Trust, All Others Must  Bring Data”

Since tony didn’t bring any data to back up his  claims, I’ll do the analysis for him.

Continue reading

Atmospheric Temperature Structure : 2 – Stratospheric Cooling

In this  post I review the temperature structure of the atmosphere and lower stratosphere temperature (TLS) anomaly trends.

Temperature Structure in the Atmosphere

In post 1 of this series, I developed this RClimate chart of temperature soundings which I update daily: (Click to enlarge)

Continue reading

Climate Time Series In a Single CSV File: Update 1

I am pleased to announce my CTS.csv file which includes 18 climate monthly time series in one easy to access csv file. This is part of  my goal of having a user friendly way for do-it-yourself citizen climate scientists to get up-to-date agency climate time series in a painless way.

Update 1: Reader Scott asked if I could provide meta data for the columns in my CTS.csv. This page lists the source agency and data links for the climate data series.

Here’s a snap shot of the first 6 rows of my  CTS.csv file. The data extends from 1880 until the most recent month.  Click image to enlarge

My hope is to make the CTS.csv the go-to file for citizen climate scientists who may want to:

  • Check temperature anomalies trends by series (GISS, HAD, NOAA, RSS, UAH)
  • Assess climate oscillations(AMO, AO, MEI, Nino34,  PDO)  trends
  • Evaluate  CO2 versus temperature anomaly relationships
  • Evaluate relationship between Sunspot numbers and anomaly temperature anomaly trends
  • Compare atmospheric transmission, SATO index  and volcanic activity
  • Assess impact of volcanoes on temperature anomaly trends
  • Compare MEI versus Nino ENSO 34 indicators
  • Assess lower stratospheric trends using RSS’s TLS series

By having these climate time series in a single csv file, R and Excel users can work with up to date data in a convenient form. The file will be automatically updated monthly as the climate agencies release their latest data.

How can CTS.csv Help Do-It-Yourself Citizen Climate Scientists?

Interested climate observers who want to compare global SSTA versus Nino34 trends, for example, have to follow a multiphase process:

  1. Find data file – even with Google this can take time
  2. Download files
  3. Merge 2 or more files to get data  into a usable format – source files all have different formats
  4. Perform analysis

Steps 1-3 can be very time consuming, so many users don’t bother checking out their ideas. Rather, they may rely on climate blog  comments. With CTS.csv and some R or Excel analysis, they can find the facts themselves rather than just having opinions.  They can submit their analysis and charts to blog posts, hopefully increasing the rigor of blog discussions.

Climate bloggers can request that their readers submit charts to back up their climate trend claims.

Data & RClimate Scripts Are All Open Book

All of the RClimate script that I use to produce the CTS.csv is available on-line at this link. Source data links are included in the function for each series.