read.argo {oce} | R Documentation |
read.argo
is used to read an Argo file, producing an object of type
argo
. The file must be in the ARGO-style netCDF format described at
in the Argo documentation [2,3].
read.argo(file, debug = getOption("oceDebug"), processingLog, ...)
file |
a character string giving the name of the file to load. |
debug |
a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more. |
processingLog |
if provided, the action item to be stored in the log. (Typically only provided for internal calls; the default that it provides is better for normal calls by a user.) |
... |
additional arguments, passed to called routines. |
Metadata items such as time
, longitude
and latitude
are inferred from the data file in a straightforward way, using
ncvar_get
and data-variable names as listed in
the Argo documentation [2,3]. The items listed in section 2.2.3
of [3] is read from the file and stored in the metadata
slot,
with the exception of longitude
and latitude
,
which are stored in the data
slot.
String data that contain trailing blanks in the argo NetCDF
are trimmed using trimString
. One-dimensional
matrices are converted to vectors using as.vector
.
Items listed in section 2.2.3 of [3] are meant to be present
in all files, but tests showed that this is not the case, and so
read.argo
sets such items to NULL
before saving
them in returned object.
Items are translated from upper-case Argo names to oce
names
using argoNames2oceNames
.
It is assumed that the profile data are as listed in the NetCDF variable
called STATION_PARAMETERS
. Each item can have variants, as
described in Sections 2.3.4 of [3].
For example, if "PRES"
is found in STATION_PARAMETERS
,
then PRES
(pressure) data are sought in the file, along with
PRES_QC
, PRES_ADJUSTED
, PRES_ADJUSTED_QC
, and
PRES_ERROR
. The same pattern works for other profile data. The variables
are stored with different names within the resultant argo-class
object, to match with oce
conventions. Thus, PRES
gets renamed
pressure
, while PRES_ADJUSTED
gets renamed pressureAdjusted
,
and PRES_ERROR
gets renamed pressureError
; all of these are
stored in the data
slot. Meanwhile, the quality-control flags
PRES_QC
and PRES_ADJUSTED_QC
are stored as pressure
and pressureAdjusted
in the metadata$flags
slot.
An object of argo-class
.
Argo data are made available at several websites. A bit of detective work can be required to track down the data.
Some servers provide data for floats that surfaced in a given ocean on a given day, the anonymous FTP server ftp://usgodae.org/pub/outgoing/argo/geo/ being an example.
Other servers provide data on a per-float basis. A complicating
factor is that these data tend to be categorized by "dac" (data
archiving centre), which makes it difficult to find a particular
float. For example,
http://www.usgodae.org/ftp/outgoing/argo/ is the top level of
a such a repository. If the ID of a float is known but not the
"dac", then a first step is to download the text file
http://www.usgodae.org/ftp/outgoing/argo/ar_index_global_meta.txt
and search for the ID. The first few lines of that file are header,
and after that the format is simple, with columns separated by slash
(/
). The dac is in the first such column and the float ID in the
second. A simple search will reveal the dac.
For example data(argo)
is based on float 6900388, and the line
containing that token is
bodc/6900388/6900388_meta.nc,846,BO,20120225005617, from
which the dac is seen to be the British Oceanographic Data Centre
(bodc
). Armed with that information, visit
http://www.usgodae.org/ftp/outgoing/argo/dac/bodc/6900388
and see a directory called 'profiles' that contains a NetCDF
file for each profile the float made. These can be read with
read.argo
. It is also possible, and probably more common,
to read a NetCDF file containing all the profiles together and for
that purpose the file
http://www.usgodae.org/ftp/outgoing/argo/dac/bodc/6900388/6900388_prof.nc
should be downloaded and provided as the file
argument to
read.argo
. This can be automated as in Example 2,
although readers are cautioned that URL structures tend to change
over time.
Similar steps can be followed on other servers.
Dan Kelley
2. Argo User's Manual Version 3.2, Dec 29th, 2015, available at https://archimer.ifremer.fr/doc/00187/29825/40575.pdf (but note that this is a draft; newer versions may have replaced this by now).
3. User's Manual (ar-um-02-01) 13 July 2010, available at http://www.argodatamgt.org/content/download/4729/34634/file/argo-dm-user-manual-version-2.3.pdf, which is the main document describing argo data.
The documentation for argo-class
explains the structure of argo
objects, and also outlines the other functions dealing with them.
Other things related to argo
data: [[,argo-method
,
[[<-,argo-method
, argo-class
,
argoGrid
, argoNames2oceNames
,
argo
, as.argo
,
handleFlags,argo-method
,
plot,argo-method
,
subset,argo-method
,
summary,argo-method
## Not run: ## Example 1: read from a local file library(oce) d <- read.argo("/data/OAR/6900388_prof.nc") summary(d) plot(d) ## Example 2: construct URL for download (brittle) id <- "6900388" url <- "http://www.usgodae.org/ftp/outgoing/argo" if (!length(list.files(pattern="argo_index.txt"))) download.file(paste(url, "ar_index_global_meta.txt", sep="/"), "argo_index.txt") index <- readLines("argo_index.txt") line <- grep(id, index) if (0 == length(line)) stop("id ", id, " not found") if (1 < length(line)) stop("id ", id, " found multiple times") dac <- strsplit(index[line], "/")[[1]][1] profile <- paste(id, "_prof.nc", sep="") float <- paste(url, "dac", dac, id, profile, sep="/") download.file(float, profile) argo <- read.argo(profile) summary(argo) ## End(Not run)