R: Adjust ADP Signal for Spherical Spreading

beamUnspreadAdp {oce} | R Documentation

## Adjust ADP Signal for Spherical Spreading

### Description

Compensate ADP signal strength for spherical spreading.

### Usage

    beamUnspreadAdp(
      x,
      count2db = c(0.45, 0.45, 0.45, 0.45),
      asMatrix = FALSE,
      debug = getOption("oceDebug")
    )

### Arguments

`x` | an adp object.
`count2db` | a set of coefficients, one per beam, to convert from beam echo intensity to decibels.
`asMatrix` | a boolean that indicates whether to return a numeric matrix, as opposed to returning an updated object (in which the matrix is cast to a raw value).
`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

First, beam echo intensity is converted from counts to decibels, by multiplying by `count2db`. Then, the signal decrease owing to spherical spreading is compensated for by adding the term 20*log10(r), where r is the distance from the sensor head to the water from which scattering is occurring. r is given by `x[["distance"]]`.

### Value

An adp object.

### Author(s)

Dan Kelley

### References

The coefficient to convert to decibels is a personal communication. The logarithmic term is explained in textbooks on acoustics, optics, etc.

### See Also

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

### Examples

    library(oce)
    data(adp)
    plot(adp, which=5) # beam 1 echo intensity
    adp.att <- beamUnspreadAdp(adp)
    plot(adp.att, which=5) # beam 1 echo intensity
    ## Profiles
    par(mar=c(4, 4, 1, 1))
    a <- adp[["a", "numeric"]]             # second arg yields matrix return value
    distance <- adp[["distance"]]
    plot(apply(a,2,mean), distance, type='l', xlim=c(0,256))
    lines(apply(a,2,median), distance, type='l',col='red')
    legend("topright",lwd=1,col=c("black","red"),legend=c("original","attenuated"))
    ## Image
    plot(adp.att, which="amplitude",col=oce.colorsJet(100))

[Package oce version 1.2-0 Index]