[continued from Part 2]
The El Nino Southern Oscillation, also known as ENSO, or just El Nino, refers to the interannual variation in ocean temperatures in the tropical Pacific. The term ‘El Nino’ was originally used to describe a warm current which ran south along the Peruvian and Ecuadorian coasts around Christmastime (the name is Spanish for ‘boy child / Christ’). Now, ‘El Nino’ typically refers to the warm phase of the El Nino Southern Oscillation; that is, a basinwide warming of the tropical Pacific. The opposite phase, known as La Nina (‘little girl’), sees widespread cooling in the tropical pacific. Despite its immediate focus, ENSO has been linked to various climate events around the world (Trenberth, 1997).
The ENSO data used in this exercise was once again taken from the KNMI Climate Explorer website (KNMI, 2019). The site provided a choice of multiple ENSO indices. THe HadSST1 index was chosen to remain consistent with the global ISST data, and with the previous indices. Several other indices, numbered between 1 and 4, were available. These indices are named after ship tracks which cross/have crossed the region. In the end, the Nino3.4a index was chosen. Nino3.4 was created after researchers discovered the key region for ocean-atmosphere interactions lied further west of Nino3 (UCAR, 2019).
# Loading the Data
enso_nc <- nc_open(file.path(getwd(),"nino3.4a_hadsst1.nc"))
enso.monthly <- ncvar_get(enso_nc,'Nino3.4')
enso.time <- ncvar_get(enso_nc, 'time')
# Formatting Time
tunits<-ncatt_get(enso_nc,"time",attname="units")
tustr<-strsplit(tunits$value, " ")
enso.date <-as.character(as.Date(enso.time*365.25/12,origin=unlist(tustr)[3]))
# Data Frame
enso.df <- data.frame("year"=format(as.Date(enso.date, format="%Y-%m-%d"),"%Y"),
"month"=format(as.Date(enso.date, format="%Y-%m-%d"),"%m"),
"enso"=enso.monthly)
# Annual Aggregation
enso.an <- aggregate(enso~year,enso.df,mean)
# Finding the Overlap
enso.an <- enso.an[1:133,]
# SST Timeseries
sst_ts <- enso.an$enso
# Plot
plot(yrs,sst_ts,type='l',xlab='Year',ylab='SST Anomaly',main='ENSO')
# Correlation
c.matrix <- matrix(NA,length(lon),length(lat))
t.matrix <- matrix(NA,length(lon),length(lat))
for (i in 1:dim(lon)) {
for (j in 1:dim(lat)) {
if (length(asst[i,j,][!is.na(asst[i,j,])])>2){
c.matrix[i,j] <- cor(asst[i,j,], sst_ts)
p.vals <- cor.test(asst[i,j,], sst_ts)
t.matrix[i, j] <- p.vals$p.value
}
}
}
# Add to Plotting Data
grid$corr <- as.vector(c.matrix)
grid$pval <- as.vector(t.matrix)
# Significance
sig <- subset(grid[, c(1, 2, 5, 6)], pval < 0.01)
sig <- SpatialPointsDataFrame(coords = sig[, c(1, 2)], data = sig)
# Plot
levelplot(corr~x*y, data=grid ,
col.regions = pal(100),xlab='Longitude',ylab='Latitude',main=paste0('Correlation of SSTA with ENSO')) +
layer(sp.polygons(world.land, fill='white')) +
layer(sp.points(sig, pch = 20, cex = 0.01, col = "black"))
# LM. Linear regression
r.matrix <- matrix(NA,length(lon),length(lat))
s.matrix <- matrix(NA,length(lon),length(lat))
for (i in 1:dim(lon)) {
for (j in 1:dim(lat)) {
if (length(asst[i,j,][!is.na(asst[i,j,])])>2){
r.lm <- lm(asst[i,j,]~sst_ts)
r.matrix[i,j] <- r.lm$coefficients[2]
smm<-summary(r.lm)
s.matrix[i, j] <- smm$coefficients[8]
}
}
}
grid$reg <- as.vector(r.matrix)
grid$sig <- as.vector(s.matrix)
sig <- subset(grid[, c(1, 2, 5, 6)], pval < 0.01)
sig <- SpatialPointsDataFrame(coords = sig[, c(1, 2)], data = sig)
#plot
levelplot(reg~x*y, data=grid , at=c(-30:30)/10,
col.regions = pal(100),xlab='Longitude',ylab='Latitude',
main='Regression of SSTA with ENSO') +
layer(sp.polygons(world.land, fill='white')) +
layer(sp.points(sig, pch = 20, cex = 0.005, col = "black"))
enso_nc <- nc_open(file.path(getwd(),"nino3.4a_hadsst1.nc"))
enso.monthly <- ncvar_get(enso_nc,'Nino3.4')
enso.time <- ncvar_get(enso_nc, 'time')
tunits<-ncatt_get(enso_nc,"time",attname="units")
tustr<-strsplit(tunits$value, " ")
enso.date <-as.character(as.Date(enso.time*365.25/12,origin=unlist(tustr)[3]))
enso.df <- data.frame("year"=format(as.Date(enso.date, format="%Y-%m-%d"),"%Y"),
"month"=format(as.Date(enso.date, format="%Y-%m-%d"),"%m"),
"enso"=enso.monthly)
enso.an <- aggregate(enso~year,enso.df,mean)
enso.an <- enso.an[39:150,]
slp_ts <- enso.an$enso
c.matrix <- matrix(NA,length(lon),length(lat))
t.matrix <- matrix(NA,length(lon),length(lat))
for (i in 1:dim(lon)) {
for (j in 1:dim(lat)) {
if (length(asst[i,j,][!is.na(asst[i,j,])])>2){
c.matrix[i,j] <- cor(asst[i,j,], slp_ts)
p.vals <- cor.test(asst[i,j,], slp_ts)
t.matrix[i, j] <- p.vals$p.value
}
}
}
grid$corr <- as.vector(c.matrix)
grid$pval <- as.vector(t.matrix)
levelplot(corr~x*y, data=grid , # xlim=c(-120,10),ylim=c(0,80), # at=c(-1:1),
col.regions = pal(100),xlab='Longitude',ylab='Latitude',main=paste0('Correlation of SLP with ENSO')) +
layer(sp.polygons(world.land, fill='white'))
r.matrix <- matrix(NA,length(lon),length(lat))
s.matrix <- matrix(NA,length(lon),length(lat))
for (i in 1:dim(lon)) {
for (j in 1:dim(lat)) {
if (length(asst[i,j,][!is.na(asst[i,j,])])>2){
r.lm <- lm(asst[i,j,]~slp_ts)
r.matrix[i,j] <- r.lm$coefficients[2]
smm<-summary(r.lm)
s.matrix[i, j] <- smm$coefficients[8]
}
}
}
grid$reg <- as.vector(r.matrix)
grid$sig <- as.vector(s.matrix)
levelplot(reg~x*y, data=grid , at=c(-30:30)/10,
col.regions = pal(100),xlab='Longitude',ylab='Latitude',
main='Regression of SLP with ENSO') +
layer(sp.polygons(world.land, fill='white'))
High significance is detected off the west and southwest coast of South America. One would expect this, as this is the region most synonymous with El Nino and the El Nino Southern Oscillation (Trenberth, 1997). Other regions identified as having high correlation are the mid to north Pacific (for SST) and the southwest Asia (for SLP).
The maps appear to show similarity between the sea level pressure patterns of the AMO and PDO. These two oscillations occur in two diffrent bodies of water, but perhaps the mechanisms of each have a similar effect on sea level pressure. The AMO maps appear to show region of SLP correlation just off the tip of South America. This may be connected to the El Nino Southern Oscillation, in which case, the same hypothesis could be applied. It is also possible that the similarity is caused by the global effects of ENSO.
In terms of both SST and SLP patterns, a connection appears to be present between the ENSO and the Pacific Decadal Oscillation. Established literature would support this statement. The PDO has, in the past, been recognised as a sort of long-lived version of El Nino climate variability (Mantua and Hare, 2002). A previous study, which looked at El Nino-forced variability on the PDO, found that it was dependent on ENSO across all timescales (Newman et al., 2003) That said, the PDO is in fact a unique oscillation pattern; it has an irregular periodicity which is distint from ENSO, and appears to be influenced by a combination of El Nino and overall atmospheric noise.
Folland, C. K., A. W. Colman, D. P. Rowell, and M. K. Davey (2001), Predictability of northeast Brazil rainfall and real-time forecast skill, 1987-98, Journal of Climate, 14, 1937-1958.
Knight, J.R., Folland, C.K. and Scaife, A.A. (2006) Climate impacts of the Atlantic multidecadal oscillation. Geophysical Research Letters, 33(17).
KNMI (2019) Monthly climate indices [online]. Available at: http://climexp.knmi.nl/selectindex.cgi?id=ididsomeone@somewhere (accessed 24 Apr 2019).
Mantua, N.J. and Hare, S.R. (2002) The Pacific decadal oscillation. Journal of oceanography, 58(1), 35-44.
Met Office (2019) Hadley Centre observations datasets [online]. Available at: https://www.metoffice.gov.uk/hadobs/hadisst/data/download.html (accessed 24 Apr 2019).
Natural Earth (2019) 1:110m Physical Vectors [online]. Available at: http://www.naturalearthdata.com/downloads/110m-physical-vectors/ (accessed 24 Apr 2019)
Newman, M., Compo, G.P. and Alexander, M.A. (2003) ENSO-forced variability of the Pacific decadal oscillation. Journal of Climate, 16(23), 3853-3857.
Trenberth, K.E. (1997) The definition of el nino. Bulletin of the American Meteorological Society, 78(12), 2771-2778.
University Corporation for Atmospheric Research (2019) Nino SST Indices (Nino 1+2, 3, 3.4, 4; ONI and TNI) [online]. Available at: https://climatedataguide.ucar.edu/climate-data/nino-sst-indices-nino-12-3-34-4-oni-and-tni (accessed 24 Apr 2019).