Assemble data into a ctd-class
dataset.
as.ctd(salinity, temperature = NULL, pressure = NULL,
conductivity = NULL, scan = NULL, time = NULL, other = NULL,
units = NULL, flags = NULL, missingValue = NULL, type = "",
serialNumber = "", ship = NULL, cruise = NULL, station = NULL,
startTime = NULL, longitude = NULL, latitude = NULL,
deploymentType = "unknown", pressureAtmospheric = 0,
sampleInterval = NA, profile = NULL, debug = getOption("oceDebug"))
There are several distinct choices for salinity
.
(1) It can be a
vector indicating the practical salinity through the water column. In that case,
as.ctd
employs the other arguments listed below. (2)
it can be something (a data frame, a list or an oce
object)
from which practical salinity, temperature, pressure, and conductivity
can be inferred. In this case, the relevant information
is extracted and the other arguments to as.ctd
are ignored, except for
pressureAtmospheric
. If the first argument has salinity, etc., in
matrix form (as can happen with some objects of argo-class
),
then only the first column is used, and a warning to that effect is given,
unless the profile
argument is specified and then that specific
profile is extracted. (3) It can be an object of rsk-class
,
(see “Converting rsk objects” for details). (4)
It can be unspecified, in which case conductivity
becomes a mandatory
argument, because it will be needed for computing actual salinity,
using swSCTp
.
in-situ temperature [\(^\circ deg\)C], defined on
the ITS-90 scale; see “Temperature units” in the documentation for
swRho
.
Vector of pressure values, one for each salinity
and
temperature
pair, or just a single pressure, which is repeated to match
the length of salinity
.
electrical conductivity ratio through the water column (optional). To convert from raw conductivity in milliSeimens per centimeter divide by 42.914 to get conductivity ratio (see Culkin and Smith, 1980).
optional scan number. If not provided, this will be set to
seq_along(salinity)
.
optional vector of times of observation
optional list of other data columns that are not in the standard list
an optional list containing units. If not supplied,
defaults are set for pressure
, temperature
, salinity
,
and conductivity
. Since these are simply guesses, users
are advised strongly to supply units
. See “Examples”.
if supplied, this is a list
containing data-quality
flags. The elements of this list must have names that match the data
provided to the object.
optional missing value, indicating data that should be
taken as NA
. Set to NULL
to turn off this feature.
optional type of CTD, e.g. "SBE"
optional serial number of instrument
optional string containing the ship from which the observations were made.
optional string containing a cruise identifier.
optional string containing a station identifier.
optional indication of the start time for the profile,
which is used in some several plotting functions. This is best given as a
POSIXt
time, but it may also be a character string
that can be converted to a time with as.POSIXct
,
using UTC
as the timezone.
optional numerical value containing longitude in decimal
degrees, positive in the eastern hemisphere. If this is a single number,
then it is stored in the metadata
slot of the returned value; if it
is a vector of numbers, then they are stored in the data
slot.
optional numerical value containing the latitude in decimal
degrees, positive in the northern hemisphere. See the note on length, for
the longitude
argument.
character string indicating the type of deployment. Use
"unknown"
if this is not known, "profile"
for a profile (in
which the data were acquired during a downcast, while the device was lowered
into the water column, perhaps also including an upcast; "moored"
if
the device is installed on a fixed mooring, "thermosalinograph"
(or
"tsg"
) if the device is mounted on a moving vessel, to record
near-surface properties, or "towyo"
if the device is repeatedly
lowered and raised.
A numerical value (a constant or a vector),
that is subtracted from pressure before storing it in the return value.
(This altered pressure is also used in calculating salinity
, if
that is to be computed from conductivity
, etc., using
swSCTp
(see salinity
above).
optional numerical value indicating the time between samples in the profile.
optional positive integer specifying the number of the profile
to extract from an object that has data in matrices, such as for some
argo
objects. Currently the profile
argument is only utilized for
argo-class
objects.
an integer specifying whether debugging information is
to be printed during the processing. This is a general parameter that
is used by many oce
functions. Generally, setting debug=0
turns off the printing, while higher values suggest that more information
be printed. If one function calls another, it usually reduces the value of
debug
first, so that a user can often obtain deeper debugging
by specifying higher debug
values.
An object of ctd-class
.
If the salinity
argument is an object of rsk-class
,
then as.ctd
passes it,
pressureAtmospheric
,
longitude
,
latitude
ship
,
cruise
,
station
and
deploymentType
to rsk2ctd
, which builds the ctd object that is
returned by as.ctd
. The other arguments to as.ctd
are ignored in this instance, because rsk
objects already
contain their information. If required, any data or metadata
element can be added to the value returned by as.ctd
using oceSetData
or oceSetMetadata
,
respectively.
The returned rsk-class
object contains pressure in a form that
may need to be adjusted, because rsk
objects may contain
either absolute pressure or sea pressure. This adjustment is handled
automatically by as.ctd
, by examination of the metadata item
named pressureType
(described in the documentation for
read.rsk
). Once the sea pressure is determined,
adjustments may be made with the pressureAtmospheric
argument,
although in that case it is better considered a pressure adjustment
than the atmospheric pressure.
rsk-class
objects may store sea pressure or absolute pressure (the
sum of sea pressure and atmospheric pressure), depending on how the object was
created with as.rsk
or read.rsk
. However,
ctd-class
objects store sea pressure, which is needed for
plotting, calculating density, etc. This poses no difficulties, however,
because as.ctd
automatically converts absolute pressure to sea pressure,
if the metadata in the rsk-class
object indicates that this is
appropriate. Further alteration of the pressure can be accomplished with the
pressureAtmospheric
argument, as noted above.
Culkin, F., and Norman D. Smith, 1980. Determination of the concentration of potassium chloride solution having the same electrical conductivity, at 15 C and infinite frequency, as standard seawater of salinity 35.0000 ppt (Chlorinity 19.37394 ppt). IEEE Journal of Oceanic Engineering, 5, pp 22-23.
Other things related to ctd
data: [[,ctd-method
,
[[<-,ctd-method
,
cnvName2oceName
, ctd-class
,
ctdDecimate
, ctdFindProfiles
,
ctdRaw
, ctdTrim
,
ctd
, handleFlags,ctd-method
,
initialize,ctd-method
,
initializeFlagScheme,ctd-method
,
oceNames2whpNames
,
oceUnits2whpUnits
,
plot,ctd-method
, plotProfile
,
plotScan
, plotTS
,
read.ctd.itp
, read.ctd.odf
,
read.ctd.sbe
,
read.ctd.woce.other
,
read.ctd.woce
, read.ctd
,
setFlags,ctd-method
,
subset,ctd-method
,
summary,ctd-method
,
woceNames2oceNames
,
woceUnit2oceUnit
, write.ctd
# NOT RUN {
library(oce)
## 1. fake data, with default units
pressure <- 1:50
temperature <- 10 - tanh((pressure - 20) / 5) + 0.02*rnorm(50)
salinity <- 34 + 0.5*tanh((pressure - 20) / 5) + 0.01*rnorm(50)
ctd <- as.ctd(salinity, temperature, pressure)
# Add a new column
fluo <- 5 * exp(-pressure / 20)
ctd <- oceSetData(ctd, name="fluorescence", value=fluo,
unit=list(unit=expression(mg/m^3), scale=""))
summary(ctd)
## 2. fake data, with supplied units (which are the defaults, actually)
ctd <- as.ctd(salinity, temperature, pressure,
units=list(salinity=list(unit=expression(), scale="PSS-78"),
temperature=list(unit=expression(degree*C), scale="ITS-90"),
pressure=list(unit=expression(dbar), scale="")))
# }
Run the code above in your browser using DataLab