The R code is based on information in the Nortek System Integrator Guide (2008) and on postings on the Nortek ``knowledge center'' discussion board. One might assume that the latter is less authoritative than the former. For example, the inference of cell size follows advice found at, which contains a typo in an early posting that is corrected later on.

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



a connection or a character string giving the name of the file to load. (For read.adp.sontek.serial, this is generally a list of files, which will be concatenated.)


indication of the first profile to read. This can be an integer, the sequence number of the first profile to read, or a POSIXt time before which profiles should be skipped, or a character string that converts to a POSIXt time (assuming UTC timezone). See “Examples”, and make careful note of the use of the tz argument. If from is not supplied, it defaults to 1.


an optional indication of the last profile to read, in a format as described for from. As a special case, to=0 means to read the file to the end. If to is not supplied, then it defaults to 0.


an optional indication of the stride length to use while walking through the file. If this is an integer, then by-1 profiles are skipped between each pair of profiles that is read, e.g. the default by=1 means to read all the data. (For RDI files only, there are some extra features to avoid running out of memory; see “Memory considerations”.)


character string indicating time zone to be assumed in the data.


optional signed number indicating the longitude in degrees East.


optional signed number indicating the latitude in degrees North.


Optional character string specifying the orientation of the sensor, provided for those cases in which it cannot be inferred from the data file. The valid choices are "upward", "downward", and "sideward".


Optional vector holding the distances of bin centres from the sensor. This argument is ignored except for Nortek profilers, and need not be given if the function determines the distances correctly from the data. The problem is that the distance is poorly documented in the Nortek System Integrator Guide (2008 edition, page 31), so the function must rely on word-of-mouth formulae that do not work in all cases.


boolean value indicating whether to indicate the progress of reading the file, by using txtProgressBar() or otherwise. The value of monitor is changed to FALSE automatically, for non-interactive sessions.


if TRUE, despike() will be used to clean anomalous spikes in heading, etc.




if provided, the action item to be stored in the log. (Typically only provided for internal calls; the default that it provides is better for normal calls by a user.)


a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more.


optional additional arguments that some (but not all) read.adp.*() functions pass to lower-level functions.


An adp object. The contents of that object make sense for the particular instrument type under study, e.g. if the data file contains NMEA strings, then navigational data will be stored in an item called nmea in the data slot).


  1. Information on Nortek profilers (including the System Integrator Guide, which explains the data format byte-by-byte) is available at (One must join the site to see the manuals.)

  2. The Nortek Knowledge Center may be of help if problems arise in dealing with data from Nortek instruments.


Dan Kelley