ctd
.read.ctd(file, type=NULL, columns=NULL, station=NULL,
monitor=FALSE, debug=getOption("oceDebug"), history, ...)
read.ctd.sbe(file, columns=NULL, station=NULL, missing.value,
monitor=FALSE, debug=getOption("oceDebug"), history, ...)
read.ctd.woce(file, columns=NULL, station=NULL, missing.value=-999,
monitor=FALSE, debug=getOption("oceDebug"), history, ...)
NULL
, then the first line is studied, in order to determine the
file type. If type="SBE19"
, then a Seabird 19 (or similar) CTD
format is assumed. If type="WOCE"
then a
WOCE-exchange file is NULL
, then read.ctd
tries to infer column names from the
header. If a list, then it will be taken to be the list
of columns. The list must include "pressure"
, "temperature"
and either NA
upon reading.TRUE
to provide an indication
of line of data read. (This may be useful in debugging problems in
reading files that are misconfigured.)class
"ctd"
, which is a
list with elements detailed below.
The most important elements are the station name and position, along
with the profile data that are contained in the data frame named data
.
(Other elements in the list may be deleted in future versions of the
package, if they prove to be of little use in practice, or if they prove
to have been idiosyncratic features of the particular files used in
early development of oce
.)data$pressure
,
data$salinity
, data$temperature
, and
data$sigmatheta
. ($\sigma_\theta$ is calculated
using swSigmaTheta
.)oce
format.read.ctd
is a dispatch function that analyzes some of
the file contents, and then calls either read.ctd.sbe
(for
files created by Seabird CTD instruments) or read.ctd.woce
(for
files stored in the exchange format used by the World Ocean
Circulation Experiment.) The funcitons attempt to infer a wide range of meta-information from
file headers, but variations in these headers impose some limitations
on the process. For example, in the first file tested during
development, the sampling rate was written as * sample rate = 1
scan every 0.5 seconds
, while the second test file had *
Real-Time Sample Interval = 0.125 seconds
; dealing with such
variations is not easy. Similarly, the functions can be challenged in
parsing latitudes and longitudes in the wide variety of ways that
humans choose (decimal versus degree-minute-second, signed versus
"east" and "west", or "e" and "w".). The solution to the challenge is
simple: do a reasonable job with common file formats, and provide
users with the tools to correct (or insert) information that would
ideally be gleaned from the headers. This can be done by direct
manipulation of the entries in the object's metadata
,
e.g. writing object$metadata$latitude <- 33 + 1/3
.
It should be noted that different file types provide different
meta-information. For example, the WOCE exchange format binds
together the institute name and the initials of the chief scientist
into a single string that read.ctd
cannot parse, so both
object$institute
and object$scientist
are left blank for
WOCE files.
The WOCE-exchange format is described at
read.oce
provides an alternative to this.Data from a CTD cast may be assembled into a ctd
object using as.ctd
.
A ctd
object may be summarized with summary.ctd
.
Overview plots may be made with plot.ctd
, while
plot.TS
produces TS plots and
plot.ctd.scan
produces scan plots that may help with data editing.
Extraneous data such as those collected during upcasts and equilibration intervals
may be trimmed with ctdTrim
,
and the data may be cast onto specified pressure levels with ctdDecimate
.
Low-level manipulation may be done with ctdAddColumn
and ctdUpdateHeader
, as well as by direct manipulation of the items
within ctd
objects.
In many cases, CTD instruments are set up to report dates in English.
This can cause a problem for users running in different locales, since
e.g month names differ. Therefore, if you know your datafile is
written in American-English notation, you might want to do
Sys.setlocale("LC_TIME", "en_US")
before you try to read the data.
library(oce)
x <- read.oce(system.file("extdata", "ctd.cnv", package="oce"))
plot(x) # summary with TS and profiles
plot.TS(x) # just the TS
woce <- read.oce(
"http://woce.nodc.noaa.gov/woce_v3/wocedata_1/whp/exchange/example_ct1.csv")
plot(woce)
Run the code above in your browser using DataLab