This function may be incomplete in some important ways, because AD2CP data formats are not described clearly enough in references 1, 2 and 3 to be certain of how to handle the range of file configurations that may be possible. The code has been tested with a small number of files that are available to the author, but these do not cover some cases that users might require, e.g. involving echosounder and altimeter data streams. Please be on the lookout for problems and contact the author if you need help. Also, note that some of the standard read.adp.* arguments are handled differently with this function, e.g. by must equal 1, because skipping records makes little sense with blended multiple streams; see the “Arguments” section for other limitations that stem from the specifics of this file format.

  from = 1,
  to = 0,
  by = 1,
  tz = getOption("oceTz"),
  longitude = NA,
  latitude = NA,
  monitor = FALSE,
  despike = FALSE,
  debug = getOption("oceDebug"),



A connection or a character string giving the name of the file to load.


An integer indicating the index number of the first record to read. This must equal 1, for this version of read.adp.ad2cp. (If not provided, from defaults to 1.)


An integer indicating the final record to read. (If not provided, by defaults to 1e9.)


An integer indicating the step from record to record. This must equal 1, for this version of read.adp.ad2cp. (If not provided, by defaults to 1.)


Character value indicating time zone. This is used in interpreting times stored in the file.


Numerical value indicating the longitude of observation.


Numerical value indicating the latitude of observation.


Ignored by read.adp.ad2cp, and provided only for similarity to other adp-reading functions.


Ignored by read.adp.ad2cp, and provided only for similarity to other adp-reading functions.


Optional integer specifying which 'plan' to focus on (see reference 1 for the meaning of 'plan'). If this is not given, it defaults to the most common plan in the requested subset of the data.


Optional character value indicating the type of Nortek instrument. If this is not provided, an attempt is made to infer it from the file header (if there is one), and "Signature1000" is used, otherwise. The importance of knowing the type is for inferring the slantwise beam angle, which is usd in the conversion from beam coordinates to xyz coordinates. If type is provided, it must be one of "Signature250", "Signature500", or "Signature1000"; the first of these has a 20 degree slant-beam angle, while the others each have 20 degrees (see reference 2, section 2 on page 6). Note that oceSetMetadata() can be used to alter the slantwise beam angle of an existing object, and this will alter any later conversion from beam to xyz coordinates.


Logical value indicating whether the progress in reading the file is to be illustrated by calling txtProgressBar().


Ignored by this function, and provided only for similarity to other adp-reading functions.


Character value that, if provided, is saved within the processingLog slot of th returned value.


Integer value indicating the level of debugging. Set to 1 to get a moderate amount of debugging information, from the R code only, to 2 to get some debugging information from the C++ code that is used to parse the data chunks, or to 3 for intensive debugging at both levels.


Ignored by this function.


  1. Nortek AS. “Signature Integration 55|250|500|1000kHz.” Nortek AS, 2017.

  2. Nortek AS. “Operations Manual - Signature250, 500 and 1000.” Nortek AS, September 21, 2018.

  3. Nortek AS. “Signature Integration 55|250|500|1000kHz.” Nortek AS, 2018. (This revision of reference 1 is useful in including new information about instrument orientation. Note that most of the comments within the read.adp.ad2cp code refer to reference 1, which has different page numbers than reference 3.)

See also


if (FALSE) { d <- read.adp.ad2cp("~/test.ad2cp", to=100) # or read.oce() }