| setFlags,ctd-method {oce} | R Documentation |
This function changes specified entries in the data-quality
flags of a ctd object, which are stored within
a list named flags that resides in the metadata
slot. If the object already has a flag set up for name,
then only the specified entries are altered. If not, the flag
entry is first created and its entries set to default,
after which the entries specified by i
are changed to value.
The specification is made with i, the form of which
is determined by the data item in question. Generally,
the rules are as follows:
If the data item is a vector, then i must be (a)
an integer vector specifying indices to be set to value,
(b) a logical vector of length matching the data item, with
TRUE meaning to set the flag to value, or (c)
a function that takes an oce object as its single
argument, and returns a vector in either of the forms
just described.
If the data item is an array, then i must be
(a) a data frame of integers whose rows specify spots to change
(where the number of columns matches the number of dimensions
of the data item), (b) a logical array that has dimension equal to
that of the data item, or (c) a function that takes an oce
object as its single input and returns such a data frame or array.
See “Details” for the particular case of
ctd-class objects.
## S4 method for signature 'ctd'
setFlags(object, name = NULL, i = NULL, value = NULL,
debug = getOption("oceDebug"))
object |
An oce object. |
name |
Character string indicating the name of the variable to be flagged. If
this variable is not contained in the object's |
i |
Indication of where to insert the flags; see “Description” for
general rules and “Details” for rules for |
value |
The value to be inserted in the flag. |
debug |
Integer set to 0 for quiet action or to 1 for some debugging. |
Since all the entries in the data slot of ctd objects are vectors, i must be a vector (either logical as in Example 1 or integer as in Example 2), or a function taking a ctd object and returning such a vector (see “Indexing rules”).
An object with flags set as indicated.
This function was added in early May, 2018, and is likely to undergo changes until the mid-summer of that year. Use with caution.
Other functions relating to data-quality flags: defaultFlags,
handleFlags,adp-method,
handleFlags,argo-method,
handleFlags,ctd-method,
handleFlags,section-method,
handleFlags,
initializeFlagScheme,ctd-method,
initializeFlagScheme,oce-method,
initializeFlagScheme,section-method,
initializeFlagScheme,
initializeFlags,adp-method,
initializeFlags,oce-method,
initializeFlags,
setFlags,adp-method,
setFlags,oce-method, setFlags
Other things related to ctd data: [[,ctd-method,
[[<-,ctd-method, as.ctd,
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,
subset,ctd-method,
summary,ctd-method,
woceNames2oceNames,
woceUnit2oceUnit, write.ctd
library(oce)
# Example 1: Range-check salinity
data(ctdRaw)
## Salinity and temperature range checks
qc <- ctdRaw
# Initialize flags to 2, meaning good data in the default
# scheme for handleFlags(ctd).
qc <- initializeFlags(qc, "salinity", 2)
qc <- initializeFlags(qc, "temperature", 2)
# Flag bad salinities as 4
oddS <- with(qc[["data"]], salinity < 25 | 40 < salinity)
qc <- setFlags(qc, name="salinity", i=oddS, value=4)
# Flag bad temperatures as 4
oddT <- with(qc[["data"]], temperature < -2 | 40 < temperature)
qc <- setFlags(qc, name="temperature", i=oddT, value=4)
# Compare results in TS space
par(mfrow=c(2, 1))
plotTS(ctdRaw)
plotTS(handleFlags(qc, flags=list(1, 3:9)))
# Example 2: Interactive flag assignment based on TS plot, using
# WHP scheme to define 'acceptable' and 'bad' codes
## Not run:
options(eos="gsw")
data(ctd)
qc <- ctd
qc <- initializeFlagScheme(qc, "WHP CTD")
qc <- initializeFlags(qc, "salinity", 2)
Sspan <- diff(range(qc[["SA"]]))
Tspan <- diff(range(qc[["CT"]]))
n <- length(qc[["SA"]])
par(mfrow=c(1, 1))
plotTS(qc, type="o")
message("Click on bad points; quit by clicking to right of plot")
for (i in seq_len(n)) {
xy <- locator(1)
if (xy$x > par("usr")[2])
break
i <- which.min(abs(qc[["SA"]] - xy$x)/Sspan + abs(qc[["CT"]] - xy$y)/Tspan)
qc <- setFlags(qc, "salinity", i=i, value=4)
qc <- handleFlags(qc, flags=list(salinity=4))
plotTS(qc, type="o")
}
## End(Not run)