B Downloading ICOADS covariates
The covariates are those in Stergiou and Christou except that NS winds might not be vertical wind. I used the ICOADS data not the COADSs. The boxes are 1 degree but on 1 degree centers not 0.5 centers. Thus box is 39.5-40.5 not 39-40.
The following is the code used to download the covariates from the NOAA ERDDAP server. It creates a list with the monthly data for each box.
library(RCurl)
library(XML)
library(stringr)
c(39,39,40)
lat <- c(24,25,25)
lon <- list()
covs <-for(i in 1:3){
paste0("[(",lat[i],".5):1:(",lat[i],".5)][(",lon[i],".5):1:(",lon[i],".5)]")
loc <- paste0("https://coastwatch.pfeg.noaa.gov/erddap/griddap/esrlIcoads1ge.htmlTable?air[(1964-01-01):1:(2018-08-01T00:00:00Z)]",loc,",slp[(1964-01-01):1:(2018-08-01T00:00:00Z)]",loc,",sst[(1964-01-01):1:(2018-08-01T00:00:00Z)]",loc,",vwnd[(1964-01-01):1:(2018-08-01T00:00:00Z)]",loc,",wspd3[(1964-01-01):1:(2018-08-01T00:00:00Z)]",loc)
url <- getURL(url)
doc <- readHTMLTable(doc, which=2, stringsAsFactors=FALSE)
cov <- paste0(colnames(cov),".",cov[1,])
coln <- str_replace(coln, "\n", "")
coln <- str_replace_all(coln, "[*]", "")
coln <- cov[-1,]
cov <-colnames(cov) <- coln
1] <- as.Date(cov[,1])
cov[,for(j in 2:dim(cov)[2]) cov[,j] <- as.numeric(cov[,j])
cov
covs[[i]] <- }
Now create the monthly and yearly means.
covs[[1]]
covsmean <-for(j in 2:dim(cov)[2])
apply(cbind(covs[[1]][,j], covs[[2]][,j], covs[[3]][,j]),1,mean,na.rm=TRUE)
covsmean[,j] <- covsmean[,c(-2,-3)]
covsmean <-$Year <- as.factor(format(cov[,1],"%Y"))
covsmean covsmean
covsmean.mon <- data.frame(Year=unique(covsmean$Year))
covsmean.year <-for(j in 2:(dim(covsmean)[2]-1)) covsmean.year <- cbind(covsmean.year, tapply(covsmean[,j], covsmean$Year, mean, na.rm=TRUE))
colnames(covsmean.year) <- c("Year",colnames(covsmean)[2:(dim(covsmean)[2]-1)])