# beamToXyzAdpAD2CP: Convert AD2CP-style adp data From Beam to XYZ Coordinates In oce: Analysis of Oceanographic Data

## Description

This looks at all the items in the `data` slot of `x`, to see if they contain an array named `v` that holds velocity. If that velocity has 4 components, and if `oceCoordinate` for the item is `"beam"`, then along-beam velocity components B1 B1, B3, and B4 are converted to instrument-oriented Cartesian velocity components u v and w using the convex-geometry formulae from section 5.5 of reference 1, viz. u=a*(B1-B2), v=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: 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).

## Usage

 `1` ```beamToXyzAdpAD2CP(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.

## References

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

Other things related to adp data: `[[,adp-method`, `[[<-,adp-method`, `ad2cpHeaderValue()`, `adp-class`, `adpEnsembleAverage()`, `adp_rdi.000`, `adp`, `as.adp()`, `beamName()`, `beamToXyzAdp()`, `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()`