R: Convert ADP From Beam to XYZ Coordinates

beamToXyzAdp {oce} | R Documentation

## Convert ADP From Beam to XYZ Coordinates

### Description

Convert ADP velocity components from a beam-based coordinate system to a xyz-based coordinate system. The action depends on the type of object. Objects creating by reading RDI Teledyne, Sontek, and some Nortek instruments are handled directly. However, Nortek data stored in in the AD2CP format are handled by the specialized function `beamToXyzAdpAD2CP()`, the documentation for which should be consulted, rather than the material given blow.

### Usage

    beamToXyzAdp(x, debug = getOption("oceDebug"))

### Arguments

`x` | an adp object.
`debug` | 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.

### Details

For a 3-beam Nortek `aquadopp` object, the beams are transformed into velocities using the matrix stored in the header.

For 4-beam objects (and for the slanted 4 beams of 5-beam objects), the along-beam velocity components B1 B1, B3, and B4 are converted to Cartesian velocity components u v and w using formulae from section 5.5 of RD Instruments (1998), viz. the along-beam velocity components B1, B2, B3, and B4 are used to calculate velocity components in a cartesian system referenced to the instrument using the following formulae: u=c*a*(B1-B2), v=c*a*(B4-B3), w=-b*(B1+B2+B3+B4). In addition to these, an estimate of the error in velocity is computed as e=d*(B1+B2-B3-B4). The geometrical factors in these formulae are: `c` is +1 for convex beam geometry or -1 for concave beam geometry, a=1/(2*sin(theta)) where theta is the angle the beams make to the axial direction (which is available as `x[["beamAngle"]]`), b=1/(4*cos(theta)), and d=a/sqrt(2).

### Value

An object with the first 3 velocity indices having been altered to represent velocity components in xyz (or instrument) coordinates. (For `rdi` data, the values at the 4th velocity index are changed to represent the "error" velocity.) To indicate the change, the value of `x[["oceCoordinate"]]` is changed from `beam` to `xyz`.

### Author(s)

Dan Kelley

### References

1. Teledyne RD Instruments. “ADCP Coordinate Transformation: Formulas and Calculations,” January 2010. P/N 951-6079-00.

2. WHOI/USGS-provided Matlab code for beam-enu transformation http://woodshole.er.usgs.gov/pubs/of2005-1429/MFILES/AQDPTOOLS/beam2enu.m

### See Also

See `read.adp()` for other functions that relate to objects of class `"adp"`.

Other things related to adp data: `[[,adp-method`, `[[<-,adp-method`, `ad2cpHeaderValue()`, `adp-class`, `adpConvertRawToNumeric()`, `adpEnsembleAverage()`, `adpFlagPastBoundary()`, `adp_rdi.000`, `adp`, `as.adp()`, `beamName()`, `beamToXyzAdpAD2CP()`, `beamToXyzAdv()`, `beamToXyz()`, `beamUnspreadAdp()`, `binmapAdp()`, `enuToOtherAdp()`, `enuToOther()`, `handleFlags,adp-method`, `is.ad2cp()`, `plot,adp-method`, `read.adp.ad2cp()`, `read.adp.nortek()`, `read.adp.rdi()`, `read.adp.sontek.serial()`, `read.adp.sontek()`, `read.adp()`, `read.aquadoppHR()`, `read.aquadoppProfiler()`, `read.aquadopp()`, `rotateAboutZ()`, `setFlags,adp-method`, `subset,adp-method`, `subtractBottomVelocity()`, `summary,adp-method`, `toEnuAdp()`, `toEnu()`, `velocityStatistics()`, `xyzToEnuAdpAD2CP()`, `xyzToEnuAdp()`, `xyzToEnu()`

[Package oce version 1.7-2 Index]