Arctic Sea Ice Extent Trends: 1979-2014; Update 2

Now that the 2010 2013 Arctic sea ice melt season is over, we can see how 2010  2013 fits into the long-term trends Arctic  Sea Ice Extent. This post shows an R Climate chart that I have made to look at the annual  NSIDC Arctic Sea Ice Extent maximum, minimum and seasonal melt trends for the 35 year period, 1979 to 2013. Data and RClimate scripts are provided.
Update 1 (10/6/10) Added trend lines to plots based on suggestion from reader. Update 2: Extended to 2014, included R script.

Here’s my RClimate script trend chart of 1979-2010  NSIDC Arctic Sea Ice Extent data.  I have plotted NSIDC’s maximum and minimum sea ice extent for each year and my calculated value for seasonal melt (maximum – minimum). (Click image to enlarge)

Arctic_sea-ice_extent

During the 1979 – 2006 period the maximums and minimums SIE  declined while the annual SIE melts held relatively constant.  The 2007 – 2008 period showed an increasing trend which resumed its downward slope in 2009 and 2010.

After a major drop in minimum SIE  in 2007 there has been some recovery in 2008 and 2009;  the 2010 minimum has resumed the declining trend, dropping below 2009.

Except for one year (1996), the annual melt remained within a relatively narrow band of 8.75 +- 0.75 million km^2  in the 1979 – 2006 period. The 2007 seasonal melt changed the previous pattern,  melt increased to 10.4. It increased again in 2008 to  10.6. After a decrease in 2009 to  9.8, it increased to 10.2 in 2010.

Arctic Sea Ice Extent continued its long-term decline in the 2010 melt season. The annual maximum and minimum sea ice extent values have declined significantly over the past 32 years with some year to year variation.  After holding relatively steady in the 1979 – 2006 period, the seasonal melt has increased from an average of 8.5 to an average of 10 + in the 2007-2010 period.

The 2010 melt season shows that Arctic Sea Ice continues to long-term decline.

RClimate Script Details

Here the data CSV file links - Data Link.

Here is the R script.


library(nlme)
## Calc: melt(yr) = Max_SIE(yr) - Min_SIE(yr)
 link_n <- "http://processtrends.com/files/RClimate_NSIDC_sea_ice_extent.csv"
 sie <- read.table(link_n, skip = 1, sep = ",", header = F,
             colClasses = rep("numeric", 5),
             comment.char = "#", na.strings = c("NA",-9999),
             col.names = c("yr_frac", "yr", "mo", "ext", "area"))
 sie <- sie[,c(1,2,3,4)]

 sie <- subset(sie, sie$yr >1978 & sie$yr < 2014)
## Calculate max, min & seasonal melts for each year
 ann_max <- tapply(sie$ext, sie$yr, max, na.rm=T)
 ann_min <- tapply(sie$ext, sie$yr, min, na.rm=T)
 ann_melt = ann_max-ann_min
 ann_df <- data.frame(seq(1979,2013,1), ann_max, ann_min, ann_melt)
 names(ann_df)<- c("yr", "Max", "Min", "Melt")
## Calc simple trend line for each series
   glm_max <- gls(Max ~ yr, ann_df)
   glm_min <- gls(Min ~ yr, ann_df)
   glm_melt <- gls(Melt ~ yr, ann_df)

## Create 3 panel chart showing max, min & seasonal melt
 plot_func<- function() {
   par(mfrow=c(3,1)); par(las=1)
   par(oma=c(4,2,4,1)); par(mar=c(2,5,0,1))
 plot(ann_df$yr, ann_df$Max, type="o", pch=16, col="blue", xlab="", ylab="Annual Maximum SIE",axes=F)
    axis(1, at=NULL, labels=F)
    axis(2, at=NULL, labels =T)
    box(col="black")
    grid(nx=NULL, ny=NA, col = "grey", lty= "solid")
    rect(1979,14.6,1987 , 15, col = "white", border = "white")
    text(1979,14.8, "a) Maximum Monthly SIE", adj=0,font=2)
    abline(glm_max, col="brown")
    legend(2002, 16.2, c("Trend - GLM"), col = c("brown"),
       text.col = "black", lty = c(1), merge = T, bg = "white", bty="o")
 plot(ann_df$yr, ann_df$Min, type="o", pch=16, col="green",xlab="", ylab="Annual Minimum SIE", axes=F)
    axis(1, at=NULL, labels=F)
    axis(2, at=NULL, labels =T)
    box(col="black")
    grid(nx=NULL, ny=NA, col = "grey", lty= "solid")
    rect(1979,4.5,1987, 4.9, col = "white", border = "white")
    text(1979,4.7, "b) Minimum Monthly SIE",adj=0,font=2)
    abline(glm_min, col="brown")

 plot(ann_df$yr, ann_df$Melt, type="o", pch=16, col="red", xlab="", ylab="Annual Melt (Max - Min)")
   grid(nx=NULL, ny=NA, col = "grey", lty= "solid")
   rect(1979,7.5,1987 ,8.2, col = "white", border = "white")
   text(1979,7.8,"c) Seasonal Melt = Max - Min", adj=0, font=2)
   abline(glm_melt, col="brown")

# Generate and add bottom footer KOD & System data notes & overall chart title
       mtext("D Kelly O'Day - http://chartgraphs.wordpress.com", 1,1, adj = 0, cex = 0.7, outer=T)
       mtext(format(Sys.time(), "%m/%d/ %Y"), 1, 1, adj = 1, cex = 0.7, outer=T)
       mtext("Data Source: NSIDC monthly data files: ftp://sidads.colorado.edu/DATASETS/NOAA/G02135/", 1,0, outer=T,adj=0.5, cex=0.7)
  m_title <- "Annual Arctic SIE Summary from NSIDC Monthly Data\n a) Maximum, b) Minimum, c) Melt (millions sq km)"
  mtext(m_title, 3,1, adj = 0.5, cex = 0.8, outer=T,font=2)
}

plot_func()
 
About these ads

5 responses to “Arctic Sea Ice Extent Trends: 1979-2014; Update 2

  1. Hello Dear
    the script and data link is not active.

    I am to interesting in the products but when I need to download the data and script link it is not active, what can we do.

    Best Regards
    Goitom

    • Goitom

      I’ve updated my data CSV file to march,2014 and the plot.

      I have also included the R Script in the post so that you can download it if you like.

  2. Pingback: September 2011 Arctic Sea Ice Extent Forecast | Climate Charts & Graphs

  3. It would be interesting to see some lines fit through those data points (rather than just joining the dots). Are the min/max decreasing linearly? With exponential decay? Can you predict when these values reach zero?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s