Read an ocean index file, in the format used by NOAA.
Arguments
- file
a connection or a character string giving the name of the file to load. May be a URL.
- format
optional character string indicating the format type. If not supplied, a guess will be made, based on examination of the first few lines of the file. If supplied, the possibilities are
"noaa"
and"ucar"
. See “Details”.- missingValue
If supplied, this is a numerical value that indicates invalid data. In some datasets, this is -99.9, but other values may be used. If
missingValue
is not supplied, any data that have value equal to or less than -99 are considered invalid. SetmissingValue
toTRUE
to turn of the processing of missing values.- tz
character string indicating time zone to be assumed in the data.
- encoding
a character value that indicates the encoding to be used for this data file, if it is textual. The default value for most functions is
"latin1"
, which seems to be suitable for files containing text written in English and French.- debug
a flag that turns on debugging, ignored in the present version of the function.
Value
A data frame containing t
, a POSIX time, and index
,
the numerical index. The times are set to the 15th day of each month, which
is a guess that may need to be changed if so indicated by documentation (yet
to be located).
Details
Reads a text-format index file, in either of two formats. If
format
is missing, then the first line of the file is examined. If
that line contains 2 (whitespace-separated) tokens, then "noaa"
format is assumed. If it contains 13 tokens, then "ucar"
format is assumed.
Otherwise, an error is reported.
In the "noaa"
format, the two tokens on the first line are taken to
be the start year and the end year, respectively. The second line
must contain a single token, the missing value. All further lines must contain
12 tokens, for the values in January, February, etc.
In the "ucar"
format, all data lines must contain the 13 tokens,
the first of which is the year, with the following 12 being the values
for January, February, etc.
Sample of Usage
library(oce)
par(mfrow=c(2, 1))
# 1. AO, Arctic oscillation
# Note that data used to be at https://www.esrl.noaa.gov/psd/data/correlation/ao.data
ao <- read.index("https://psl.noaa.gov/data/correlation/ao.data")
aorecent <- subset(ao, t > as.POSIXct("2000-01-01"))
oce.plot.ts(aorecent$t, aorecent$index)
# 2. SOI, probably more up-to-date then data(soi, package="ocedata")
soi <- read.index("https://www.cgd.ucar.edu/cas/catalog/climind/SOI.signal.ascii")
soirecent <- subset(soi, t > as.POSIXct("2000-01-01"))
oce.plot.ts(soirecent$t, soirecent$index)