ctdFindProfiles {oce} | R Documentation

## Find profiles within a towyow CTD record

### Description

Examine the pressure record looking for extended periods of either ascent or descent, and return either indices to these events or a vector of CTD records containing the events.

### Usage

    ctdFindProfiles(x,
      cutoff=0.5, minLength=10, minHeight=0.1*diff(range(x[["pressure"]])),
      direction=c("descending", "ascending"), arr.ind=FALSE,
      debug=getOption("oceDebug"), ...)

### Arguments

`x` | A `ctd` object, as read by `read.ctd` or created by `as.ctd`.
`cutoff` | criterion on pressure difference; see “Details”.
`minLength` | lower limit on number of points in candidate profiles.
`minHeight` | lower limit on height of candidate profiles.
`direction` | string indicating the travel direction to be selected
`arr.ind` | should array indices be returned, or a vector of ctd objects?
`debug` | a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more.
`...` | extra arguments that are passed to `smooth.spline`.

### Details

The method works by examining the pressure record. First, this is smoothed using `smooth.spline`, which is provided with any extra arguments as supplied to the present function, e.g. `ctdFindProfiles(..., df=10)` uses a spline with 10 degrees of freedom. The spline is then first differenced with `diff`. Median values of the positive and negative first-difference values are then multiplied by `cutoff`. This establishes criteria for any given point to be in an ascending profile, a descending profile, or a non-profile. Contiguous regions are then found, and those that have fewer than `minLength` points are discarded. Then, those that have pressure ranges less than `minHeight` are discarded.

It is often necessary to pass the resultant profiles through `ctdTrim`, to remove artifacts such as an equilibration phase, etc.

### Value

If `arr.ind=TRUE`, a data frame with columns `start` and `end`, the indices of the downcasts. Otherwise, a vector of `ctd` objects.

### Author(s)

Dan Kelley

### See Also

The documentation for `ctd-class` explains the structure of CTD objects, and also outlines the other functions dealing with them.

### Examples

    ## Not run:
    library(oce)
    d <- read.csv("towyow.csv", header=TRUE)
    towyow <- as.ctd(d$salinity, d$temperature, d$pressure)

    casts <- ctdFindProfiles(towyow)
    par(mfrow=c(length(casts), 3))
    for (cast in casts) {
      plotProfile(cast, "salinity")
      plotProfile(cast, "temperature")
      plotTS(cast, type='o')
    }

    ## End(Not run)

[Package oce version 0.9-18 Index]