Compute density ratio for a ctd
object. An error (perhaps with some hints)
is issued for any other type of object.
swRrho(
ctd,
sense = c("diffusive", "finger"),
smoothingLength = 10,
df,
eos = getOption("oceEOS", default = "gsw"),
debug = getOption("oceDebug")
)
Density ratio defined in either the "diffusive"
or
"finger"
sense.
an oce object that holds salinity
, temperature
, and
pressure
. If eos
is "gsw"
, then it must also hold longitude
and
latitude
.
an indication of the sense of double diffusion under study and therefore of the definition of Rrho; see “Details”
ignored if df
supplied, but otherwise the
latter is calculated as the number of data points, divided by the number
within a depth interval of smoothingLength
metres.
if given, this is provided to smooth.spline()
.
equation of state, either "unesco"
or "gsw"
.
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.
Dan Kelley and Chantelle Layton
If eos="unesco"
, the work is done by calculating salinity and
potential-temperature derivatives from smoothing splines whose properties
are governed by smoothingLength
or df
. If
sense="diffusive"
the definition is
\((beta*dS/dz)/(alpha*d(theta)/dz)\) and
the reciprocal for "finger"
.
If eos="gsw"
, the work is done by extracting absolute salinity and
conservative temperature, smoothing with a smoothing spline as in the
"unesco"
case, and then calling gsw::gsw_Turner_Rsubrho()
on these smoothed fields. Since the gsw function works on mid-point
pressures, approx()
is used to interpolate back to the original
pressures.
If the default arguments are acceptable, ctd[["Rrho"]]
may be used
instead of swRrho(ctd)
.
Other functions that calculate seawater properties:
T68fromT90()
,
T90fromT48()
,
T90fromT68()
,
computableWaterProperties()
,
locationForGsw()
,
swAbsoluteSalinity()
,
swAlpha()
,
swAlphaOverBeta()
,
swBeta()
,
swCSTp()
,
swConservativeTemperature()
,
swDepth()
,
swDynamicHeight()
,
swLapseRate()
,
swN2()
,
swPressure()
,
swRho()
,
swSCTp()
,
swSR()
,
swSTrho()
,
swSigma()
,
swSigma0()
,
swSigma1()
,
swSigma2()
,
swSigma3()
,
swSigma4()
,
swSigmaT()
,
swSigmaTheta()
,
swSoundAbsorption()
,
swSoundSpeed()
,
swSpecificHeat()
,
swSpice()
,
swSpiciness0()
,
swSpiciness1()
,
swSpiciness2()
,
swSstar()
,
swTFreeze()
,
swTSrho()
,
swThermalConductivity()
,
swTheta()
,
swViscosity()
,
swZ()
library(oce)
data(ctd)
u <- swRrho(ctd, eos = "unesco")
g <- swRrho(ctd, eos = "gsw")
p <- ctd[["p"]]
plot(u, p, ylim = rev(range(p)), type = "l", xlab = expression(R[rho]))
lines(g, p, lty = 2, col = "red")
legend("topright", lty = 1:2, legend = c("unesco", "gsw"), col = c("black", "red"))
Run the code above in your browser using DataLab