Compute seawater "spice", a variable that is in some sense orthogonal to
density in TS space. Larger spice values correspond to relative warm and
salty water, compared with smaller spice values. Two distinct variants exist.
If eos="unesco"
then Flament's (2002) formulation is used. If eos="gsw"
then gsw::gsw_spiciness0()
is used to compute a newer variant that is part
of the Gibbs SeaWater formulation (McDougall and Krzysik, 2015). See the
“Examples” section for a graphical illustration of the difference in a
typical coastal case.
swSpice(
salinity,
temperature = NULL,
pressure = NULL,
longitude = NULL,
latitude = NULL,
eos = getOption("oceEOS", default = "gsw"),
debug = getOption("oceDebug")
)
Flament-formulated spice \(kg/m^3\) if eos
is "unesco"
or surface-referenced GSW spiciness0 \(kg/m^3\) if eos
is "gsw"
,
the latter provided by gsw::gsw_spiciness0()
, and hence aimed
at application within the top half-kilometre of the ocean.
either salinity (PSU) (in which case temperature
and
pressure
must be provided) or a ctd
object (in which
case salinity
, temperature
and pressure
are determined
from the object, and must not be provided in the argument list).
in-situ temperature (\(^\circ\)C) on the
ITS-90 scale; see “Temperature units” in the documentation for
swRho()
.
Seawater pressure (dbar) (only used if eos
is
"gsw"
); see “Details”..
longitude of observation (only used if eos
is
"gsw"
; see “Details”).
latitude of observation (only used if eos
is
"gsw"
; see “Details”).
Character value specifying the equation of state, either
"unesco"
(for the Flament formulation, although this is not actually part
of UNESCO) or "gsw"
for the Gibbs SeaWater formulation.
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 coded this, merely an interface to the code described by references 1 and 2.
If the first argument is a ctd
object, then salinity, temperature and
pressure values are extracted from it, and used for the calculation. For
the eos="gsw"
case, longitude and latitude are also extracted, because
these are required by gsw::gsw_spiciness0()
.
Roughly speaking, seawater with a high spiciness is relatively warm and salty compared with less spicy water. Another interpretation is that spice is a variable measuring distance orthogonal to isopycnal lines on TS diagrams (if the diagrams are scaled to make the isopycnals run at 45 degrees). Note that pressure, longitude and latitude are all ignored in the Flament definition.
Flament, P. “A State Variable for Characterizing Water Masses and Their Diffusive Stability: Spiciness.” Progress in Oceanography, Observations of the 1997-98 El Nino along the West Coast of North America, 54, no. 1 (July 1, 2002):493-501. tools:::Rd_expr_doi("10.1016/S0079-6611(02)00065-4")
McDougall, Trevor J., and Oliver A. Krzysik. “Spiciness.” Journal of Marine Research 73, no. 5 (September 1, 2015): 141-52.
Other functions that calculate seawater spiciness:
swSpiciness0()
,
swSpiciness1()
,
swSpiciness2()
Other functions that calculate seawater properties:
T68fromT90()
,
T90fromT48()
,
T90fromT68()
,
computableWaterProperties()
,
locationForGsw()
,
swAbsoluteSalinity()
,
swAlpha()
,
swAlphaOverBeta()
,
swBeta()
,
swCSTp()
,
swConservativeTemperature()
,
swDepth()
,
swDynamicHeight()
,
swLapseRate()
,
swN2()
,
swPressure()
,
swRho()
,
swRrho()
,
swSCTp()
,
swSR()
,
swSTrho()
,
swSigma()
,
swSigma0()
,
swSigma1()
,
swSigma2()
,
swSigma3()
,
swSigma4()
,
swSigmaT()
,
swSigmaTheta()
,
swSoundAbsorption()
,
swSoundSpeed()
,
swSpecificHeat()
,
swSpiciness0()
,
swSpiciness1()
,
swSpiciness2()
,
swSstar()
,
swTFreeze()
,
swTSrho()
,
swThermalConductivity()
,
swTheta()
,
swViscosity()
,
swZ()
# Compare unesco and gsw formulations
library(oce)
data(ctd)
p <- ctd[["pressure"]]
U <- swSpice(ctd, eos = "unesco")
G <- swSpice(ctd, eos = "gsw")
xlim <- range(c(U, G), na.rm = TRUE)
ylim <- rev(range(p))
plot(U, p,
xlim = xlim, ylim = ylim,
xlab = "Measure of Spiciness", ylab = "Pressure (dbar)"
)
points(G, p, col = 2)
legend("topleft", col = 1:2, pch = 1, legend = c("unesco", "gsw"))
Run the code above in your browser using DataLab