Steven Mosher wanted clarification on how I will be computing the 7-‘day’ average, and which value will “win” the quatloos. Today, I am showing the 7-‘day’ average computed since 2002.
The plot also shows the minimum 7 day average for each year in the record along with the current minimum for 2011. The 7 day average computed 7 days ago is shown in the notes on the lower left hand side. Neven suggested I use the minimum value as being more exciting and I think suggested that using the average forces us to wait to long to call the result.
It is more exciting to use the daily minimum. Unfortunately, it is also the case that we frequently see a relative daily minimum before the final daily minimum. So, even if we saw a daily minimum, we would still need to wait a week or two to confirm that it is a minimum. The 7 day average is a bit less noisy, but I think we still need to wait a week after a relative minimum to call a winner. Since minimums have occurred near the end of September, I think waiting until all of September has reported is safe.
For those who want to fiddle with scripts, I am also attaching the R file. Those who read the R file will note that the 7 day average is computed by:
- Deleting all values with missing data (denoted by -9999).
- Averaging over 7 consecutive values. When data is missing, the computation is still over 7 available days. These may span more than 7 calendar days.
I wrote this script this morning. Those who would like additional information on the graph, request what you’d like. If it’s easy I’ll add it. Meanwhile: Bet here.

For people who prefer to work with time series. I’ll show
you how to do this in ‘zoo’
library(“zoo”)
url <- "http://www.ijis.iarc.uaf.edu/seaice/extent/plot.csv"
# read with csv, set the column names and recode -9999 as NA
jax <-read.csv(url,na.strings =-9999,header=FALSE,col.names=c("Month","Day","Year","Extent"))
# set the start date.
StartDate <-paste(jax$Year[1], '-', jax$Month[1],'-',jax$Day[1],sep='')
# now create a 'zoo' object, which is a type of time series
Ice <-zoo(jax$Extent, as.Date(StartDate) + 0:length(jax$Extent))
# create the 7 day means, dropping NAs if they happen.
Aves7Day <- rollapply(Ice,width=7,FUN=mean, na.rm=T)
# now we set up an index for every year.
# this is a little tricky as I used as.Date() for the time
# series.. but just recast as a number, take the floor
# and now every DAY, has a index for the year it is in.
#
iDex<-as.yearmon(time(Aves7Day))
# 2002 =1, 2003=2, etc
iDex<-floor(as.numeric(iDex))-as.numeric(jax$Year[1]) +1
# find the minimum By Year
M <-aggregate(Aves7Day,by=iDex,FUN=min,na.rm=T)
print(M)
bingo. That's your zoo lesson for the day.
you can do similar stuff with ts()
Get the code from Nick Stokes for untangling these graphs.
Eli-
What do you want untangled? For that matter, what do you think is tangled?
its nick color thing
Lucia, Eli’s talking about this cool way of displaying spaghetti plots.
It’s javascript.
thanks carrick I missed that one.
very nice. must steal