oce (development version) Unreleased



  • Address argument doc/code warning that blocked CRAN acceptance.
  • Accommodate new ocedata (needed to meet new CRAN dependency rule).
  • Add oceRenameData() and oceRenamemetadata().
  • Deprecate renameData().
  • Improve axis control for mapPlot() and plot,coastline-method.
  • Remove addColumn(), ctdAddColumn(), ctdUpdateHeader(), findInOrdered(), mapMeridians(), mapZones(), and oce.as.POSIXlt(), all of which have been marked as “Deprecated” for the past two CRAN releases.
  • Extend read.met() to read a new Environment Canada data format.
  • Handle some upcoming rgdal/R-devel changes.
  • Extend sectionSmooth() to handle grids beyond data range.
  • Extend read.adp.rdi() to trim time if it longer than other data.
  • Improve geodDist() to handle second location correctly when alongPath=FALSE.
  • Improve vignettes.
  • Fix itemized-list documentation problem pointed out by Kurt Hornik.


  • Address “link-time-optimization” issues for CRAN submission.


  • fix argument error in a .C() call
  • Extend read.odf() to store ODF header as a list in metadata.
  • Add presentTime().
  • Add vignette on subclassing oce.
  • Extend sectionSmooth() to handle output grid better, and offer 2 new methods.
  • Extend read.ctd.sbe() to handle more column names.
  • Extend mapping code to support i386/windows.
  • Extend imagep() to handle combined flipy and ylim arguments better.


  • Renamed 0.9-24, released with OAR book publication.



  • tidem() permits inferred constituents
  • tidem() follows T_TIDE phase convention
  • adorn argument removed from plot functions (after being defunct 1+ year)
  • deprecate findInOrdered()


  • plot,section-method() can use external bathymetry
  • lowpass() added
  • ctdTrim() can isolate upcasts
  • deprecate byteToBinary()
  • address a CRAN NOTE about UTF-8 strings in data


  • adpEnsembleAverage() added
  • mapCoordinateSystem() added
  • woce-exchange missing-value inference
  • woce-exchange autodetection, plus read all data types
  • download.amsr() updated for data-server change
  • download.met() added
  • as.ctd() can specify columns within argo data
  • read.adp.rdi() handles more file types and larger RDI files
  • read.odf() handles contradictory metadata better
  • oce.as.POSIXlt() deprecated
  • oceSetData() handles units better
  • address R_registerRoutines build-time warning
  • fix memory-usage error in coastlineCut()


  • remove observatory object type (changed format, seldom-used type)
  • remove pangaea object type (undocumented format, seldom-used type)
  • improvements for BioArgo data
  • Spanish translation by Pablo Valdés
  • make read.gps() handle more files
  • deprecate ctdAddColumn() and ctdUpdateHeader()
  • download.topo() added and read.topo() updated to handle new formats
  • download.amsr() added
  • composite() added
  • addColumn() marked as deprecated
  • read.cm.s4() reads all data in file
  • as.cm() added
  • read.odf() handles Aanderaa current meter data
  • mapPlot() and mapAxis() get cex.axis parameter
  • subset(amsr) added; various other amsr improvements


  • deprecate ‘adorn’ in plot functions
  • make read.ctd() obey missingValue (renamed)
  • improve map projections
  • add renameData()
  • improve support for SBE files
  • remove is.beam(), is.xyz(), is.enu() and coordinate(), since x[[“coordinate”]] now permits these simply
  • replace several function-style accessors with [[ style
  • fix test-suite error relating to an rgdal change
  • add handleFlags() as generic plus specifics for ctd and argo classes
  • use S4 documentation, e.g. ?‘plot,ctd-method’ instead of ?plot.ctd
  • add subset(argo, “adjusted”)
  • make read.argo() read all documented data and metadata fields
  • add trimString()


  • improve plot.coastline() and mapPlot()
  • add support for G1SST satellite
  • all objects now have metadata items for units and flags
  • ctdTrim() method renamed: old A and B are new A; old C is new B
  • support more channels and features of rsk files
  • as.adp() added
  • convert argo objects to sections
  • makeSection() deprecated; use as.section() instead
  • read.adp.rdi() handles Teledyne/RDI vsn 23.19 bottom-track data
  • geodXyInverse() added; geod functions now spell out longitude etc
  • read.odf() speeded up by a factor of about 30
  • add colour palettes from Kristen Thyng’s cmocean Python package
  • as.oce() added
  • rename ‘drifter’ class as ‘argo’ to recognize what it actually handles
  • add oceColorsViridis()
  • interpBarnes() has new argument ‘pregrid’
  • binMean2D() has new argument ‘flatten’
  • data(topoWorld) now has longitude from -179.5 to 180
  • ODF2oce() added
  • read.odf() handles more data types
  • read.adp.rdi() reads more VmDas (navigational) data
  • ITS-90 is now the default temperature unit
  • ctd objects can have vector longitude and latitude
  • logger class renamed to rsk
  • bremen class added
  • coastlineCut() added
  • rgdal package used instead of local PROJ.4 source code
  • mapproj-style map projections eliminated


  • remove an exit() call in a C function


  • cite PROJ.4 contributors in DESCRIPTION
  • address package-build warnings; improve DESCRIPTION (thanks, BR)


  • plot.echosounder() gets new argument ‘drawPalette’
  • data(landsat) taken from ocedata (and shrunk)
  • data(nao) and data(soi) moved to ocedata
  • mapTissot() added
  • read.logger() with ctd-type data infers salinity if necessary
  • ctdTrim() can have “method” as a function
  • as.topo() can convert “bathy” objects from the marmap package
  • “+.section” renamed sectionAddStation()
  • oceApprox() renamed oce.approx(), with an alias for compatibility
  • oce.grid() added
  • “tdr” class renamed “logger”
  • swCSTp() added
  • swConductivity() now swThermalConductivity(); using Caldwell (1974).
  • many sw() functions handle eos=“gsw”
  • library(gsw) replaces teos()
  • curl() added
  • handle new NOAA ascii topography dataset type
  • mapGrid() added
  • data(soi) moved to ocedata package
  • lonlat2map() added
  • map2lonlat() made more accurate
  • permit proj4 style map projections
  • landsat-7 (and possibly 4 and 5) support
  • landsat decimation/plotting improvements
  • drifterGrid() added
  • mapDirectionField() added
  • mapArrows() added
  • read.index() added
  • utm2lonlat() and lonlat2utm() added
  • data(met) changed to time of Hurricane Juan


  • fix compile-time warning
  • colormap() added, and functionality added to imagep() and drawPalette()
  • imagep() and drawPalette() new arg. ‘axisPalette’ (suggested C. Richards)
  • drawPalette() has new args: plot, pos, levels, and cex.axis
  • ctdDecimate() permits user-supplied method function
  • data(nao) added; data(soi) updated, and names improved in latter
  • landsat support added
  • plotProfile() and plotTS() get new argument ‘pt.bg’
  • plot.section() grids the data if needed
  • rename ‘sealevelHalifax’ dataset as ‘sealevel’
  • translate some axis names (Spanish, French, German and Mandarin)
  • plotProfile() now has ytype=“depth”
  • mapImage() and friends now demand a map exists first
  • runlm() added
  • mapScalebar() added
  • subset.topo() added
  • read.topo() now handles GEBCO netcdf files
  • decimate() now handles topo objects
  • reverse oce.colorsGebco colours for water
  • drawIsopycnals() and plotTS(): improve isopycnal labels
  • ctdDecimate() handles new method ‘unesco’
  • coastline improvements (now 3 resolutions)
  • webtide() improvements
  • read.observatory() added
  • read.ctd.itp() added
  • mapImage() speeded up (60X in 1deg SST example)
  • binApply1D() and binApply2D() added
  • binCount1D(), binMean1D(), binCount2D(), and binMean2D() added
  • numberAsHMS() added
  • gps data type added (provisionally)
  • various functions: reorder arguments putting longitude before latitude
  • magneticField() replaces magneticDeclination()
  • ungrid() added
  • mapPlot(): improve zone and meridian aesthetics
  • detrend() returns list with detrend vector and coefs
  • decodeTime() improvements
  • interpBarnes() has new arg ‘trim’
  • standardDepths() added
  • mapLongitudeLatitudeXY() added
  • read.ctd.woce() now accepts a format used once by Arctic scientists
  • swRrho() added
  • plotProfile() now accepts type=“o”
  • read.adv.nortek(): read salinity
  • ctdDecimate(): fix bug for NULL columns [issue 327]
  • plot.section() now chooses best coastline file
  • swPressure() added
  • ctdFindProfiles() added
  • as.ctd(): new arguments filename etc
  • remove oceBisect(), which merely reproduces uniroot()
  • move large/specialized datasets to library(ocedata)


  • prepare for an upcoming release of R-devel


  • move vignette source directory


  • numberAsPOSIXct() now handles types “sas” and “spss”
  • data(turbulence) added
  • plot.echosounder(): use white for below-threshold values
  • plot.echosounder(): add arg ‘beam’ to e.g. display Sv
  • read.echosounder(): handle dual-beam and split-beam data
  • read.echosounder(): decode bottom-pick
  • swSoundAbsorption()
  • read.adp: improve doc regarding variable orientation of RDI files


  • improve line breaks in some help pages (thanks, B. Ripley)


  • mapPlot() uses … graphical parameters (e.g. cex) in labelling axes
  • fix recent bug in reading CNV files (issue 318)
  • plotTS(…, mar=NULL) now avoids setting par(mar)


  • fix memory error in teos handler (thanks, B. Ripley)


  • make ctdTrim() work in R 3.0
  • support for adp vmdas nav data (coded by Clark Richards)
  • approx3d(): added
  • drawPalette(): new arg ‘fullpage’
  • plot.lobo(): add ‘which’ argument
  • read.coastline.openstreetmap() added
  • data(levitus) added
  • plot.coastline(): new arguments ‘projection’ etc to use mapPlot()
  • mapContour(): permit first argument to be a ‘topo’ object
  • mapPlot(): add arguments axes, bg, fill, and drawBox


  • address compilation error on Windows-64 platform
  • make some long-running operations more interruptible
  • oceApprox(): permit equal x values [issue 279]


  • halve package check time


  • as.section() added
  • add data(endeavour)
  • add map projections, with provisional functions mapPlot() etc
  • plot.ctd(): add argument ‘add’
  • add crude mapping support
  • interpBarnes(): add args ‘xgl’ and ‘ygl’
  • read.section(): add ‘directory’ argument
  • sectionSmooth(): add ‘barnes’ method
  • oce.plot.ts() and oce.axis.POSIXct(): add tformat argument
  • read.aquadopp() and cousins added [issues 253 and 258]
  • read.ctd() guesses waterDepth if not supplied [issue 253]
  • plotTS(): extend isopycnal range [issue 252]
  • plot.section() contouring improved
  • data(oceans) added
  • data(papa) added
  • fillGap() works on matrices as well as vectors
  • read.lobo() is more flexible on column names
  • imagep(…, axes=FALSE): no longer plots axis box [issue 249]
  • oce.plot.ts(): alter time auto-ranging method
  • oceBisect(): increase generality of function whose root is sought
  • plotTS(): clean axes after isopycnals drawn
  • teos10: update test values (with help from PB)
  • read.adp.nortek(): handle missing ‘to’ argument as documented
  • beamUnattenuateAdp() renamed beamUnspreadAdp()
  • plotTS() and plotProfile(): permit type=‘n’
  • plotProfile(ytype=‘z’): fix bug in y label
  • improve error message if TEOS-10 is missing


  • example(riley): remove error in R-devel
  • plot.ctd(…, which=7) improvement
  • swSCTp(): accept conductivity in mS/cm and S/m
  • as.ctd(): accept TEOS-10 values SA and CT
  • make TEOS routines more resistant to unphysical values


  • remove unwanted files during build process


  • pwelch(): fix bug in frequency
  • tidem(): add argument ‘regress’
  • rename oce.plot.sticks() as plotSticks(); delete stickplot()
  • use S4 style for all plot() methods
  • data(giss) added
  • data(topo2) added
  • plotPolar() added
  • oce.magic() new name for magic(); renamed oceMagic() in 0.9-15
  • errorBars() added
  • numberAsPOSIXct() add a leap second for July 2012


  • plot.topo(): automatic cut-point shift
  • add support for Nortek aquadopp-profiler instruments
  • oce.contour() added
  • lisst class added
  • plotTaylor() added
  • oce.as.raw() added
  • binmap() added


  • make the newly-added TEOS-10 functions compile on Windows


  • data(cm) added
  • plot.coastline(): improve argument ‘geographical’
  • add prettyPosition()
  • add grad()
  • add (preliminary) support for TEOS-10, installed separately
  • add integrateTrapezoid()
  • plotTS(): add argument teos
  • add teos() as an interface to the TEOS-10 library
  • add moonAngle() plus other astronomy functions, e.g. julianDay()


  • plotInset(): remove ‘bg’ and ‘fg’ arguments
  • plotTS(): add ‘bg’ argument
  • rename ‘dt’ object and functions to ‘tdr’
  • plotTS(): add argument ‘inset’
  • read.adp.rdi(): fix a bug in bottom-tracking; add soundSpeed vector
  • data(echosounder) created
  • formatPosition() created
  • plot(echosounder): new arguments atTop and labelsTop
  • adp objects now also hold ‘percent good’ for RDI instruments
  • plot.drifter(): improve multi-panel plots
  • imagep(): add argument ‘missingColor’
  • imagep() and drawPalette(): add arguments ‘labels’ and ‘at’


  • imagep(): permit POSIXt type for zlim


  • reconstruct data(ctd) so plot will focus maps better
  • plotInset() added
  • grid() works for oce-based time axes
  • imagep(…, filledContours): obey ylab argument
  • subset(): permit subsetting ADP by pressure
  • oce.plot.ts(): obey arguments xaxt and yaxt
  • improve support for shapefile coastlines


  • replace ‘center’ argument for plotting topography and coastline with clatitude and clongitude
  • add ‘echosounder’ class
  • fullFilename(): handle URLs properly
  • ADV objects: add access to slow variables (e.g. headingSlow)


  • add ‘met’ class
  • subset.oce() handles section objects
  • draw.section(): permit xtype=“latitude” or “longitude”
  • imagep() has drawPalette=“space” option


  • fix bug in read.coastline(), reversing lon and lat [issue162]
  • fix bug in S4 adp validity checker
  • geodDist(): add argument ‘alongPath’
  • remove compilation warning about doc for summary.ctd()


  • switch to S4 classes, and add new accessors and ‘show’ functions.
  • add support for RBR ‘rsk’ files
  • plot.section() now uses ‘col’ if supplied


  • improve oce.colorsJet()
  • improve plotProfile() vertical range with missing data
  • add data(drag)
  • plotProfile() and plot.ctd(): add xtype=“spice”
  • add data(geosecs235)
  • plotProfile() and plot.ctd(): add argument ‘keepNA’
  • as.ctd(): add arguments ‘other’ and ‘missingValue’
  • read.lobo(): tolerate more formats, including missing velocities
  • add data(schmitt)
  • add accessor spice()
  • handle O2 and nutrients in CTD data and sections
  • swSCTp(): use surface pressure as a default
  • plotTS(): add arguments inSitu and referencePressure
  • plotTS(): handle section objects
  • fix bugs reported in issues 150, 151, 153, 155, 156
  • imagep(): change default drawContours to FALSE


  • add ‘adv’ dataset
  • generalize swN2() by adding new arg ‘derivs’
  • oce.plot.ts() gets new arg ‘axes’
  • add accessor distance()
  • rename to plotTS() and plotScan() to avoid S3 check warnings
  • switch makeFilter’s argument asKernel to TRUE


  • add support for ARGO drifters
  • latitude() and longitude(): new argument to repeat byDepth
  • addCtdColumn(): replace if column already exists
  • add CTD accessors for lat, lon, pressure, salinity, temperature


  • plot.sealevel(): only show 3 panels, for clarity
  • plot.ctd(): add argument ‘type’
  • imagep(): handle x, y, and z as image() does
  • oce.plot.ts(): inferred ylim matches data range within provided xlim
  • read.adv.nortek(): handle extra analog data
  • add CTD accessors longitude(), latitude(), time(), elevation(), etc


  • add read.oce.odf()
  • add findInOrdered
  • generalize tidem() argument list
  • read.adv.nortek(): handle burst-mode data
  • add datasets wilson, redfieldNP, redfieldNC, redfieldPlankton, and riley
  • change data(ctd) to be derived from data(ctdRaw)
  • change to monitor=FALSE for all reading functions
  • add accessor functions heading(), latitude(), longitude(), pitch(), pressure(), processingLog(), roll(), salinity(), temperature(), time(), and velocity()
  • rename history as processingLog
  • flatten data objects to be 1 level thick (for future matlab exports)
  • add threenum() added, and use it in all summaries (for speed)


  • head.adp() added
  • tail.adp() added
  • extract() added


  • velocityStatistics() added
  • new names: oceApprox() integerToAscii() rangeLimit() ctdRaw
  • topoInterpolate() added
  • numberAsPOSIXct(): add type ‘argos’
  • rename beamAttenuateAdp() as beamUnattenuateAdp()


  • camel-case function and argument names (and the NEWS file)


  • add binAverage()
  • fillGap(): add ‘rule’ argument (analogous to same for approx())
  • add rescale()
  • read.pt(): fix timing error; use as.pt() to create return value
  • add as.pt()
  • read.adp.rdi() uses checksums
  • number.as.POSIXct(type=“gps”): account for leap seconds


  • remove warning that occurs for R 2.13.0 (alpha)
  • number.as.POSIXct(): accept GPS times
  • rename e.g. adv.2enu() as to.enu.adv()
  • speed up conversion of ADP and ADV to enu by more than a factor of 10
  • change RDI coordinate handling
  • rename match.bytes() as matchBytes()
  • add drawPalette()
  • remove matlab2POSIXt(), now a sub-case of number.as.POSIXct()
  • number.as.POSIXct(): added
  • oceBiset(): added
  • despike(): add argument ‘action’
  • detrend(): added
  • read.adp.sontek(): handle PCADP type
  • read.adp.sontek.serial(): added
  • read.section(): handle WOCE quality flags for salinity
  • retime(): added
  • read.adv.sontek.serial(): correct error in class of ‘a’ and ‘c’
  • despike(): use string value for argument ‘method’
  • logger.toc(): fix bug in discovering files ranging over days
  • as.ctd(): make temperature and salinity into vectors, if not already
  • plot.TS(): add argument ‘use.smoothScatter’
  • oce.debug(): flush the console after printing a message
  • sw.theta(): rename the method possibilities, to lower case
  • in some sw functions, rename ‘pref’ as ‘reference.pressure’
  • read.ctd(): fix bug in getting start.time for some time formats
  • pwelch() added
  • plot.sealevel(): make y axis obey range in data subset, if xlim is given
  • adp.2enu() added
  • coastline.world: improve resolution by a factor of 4 or so
  • read.ctd.woce(): infer water depth as max(pressure) if not in header
  • section.smooth(): handle misordered stations; handle missing values better
  • plot.section(): allow strings for ‘which’; improve contouring
  • plot.ctd() and plot.profile(): add ‘use.smoothScatter’ argument
  • coriolis(): improve omega value


  • add despike()
  • add range.limit()
  • add unabbreviate.time()
  • add support for bottom-tracking RDI ADCPs
  • add support for interocean ‘s4’ current meters
  • add unwrap.angle()
  • read.adv.nortek(): detect the velocity range
  • add processing.log.add(), an alternative to processing.log.append()
  • plot.ctd(): add more plot types; which=9 for salinity, not density
  • as.ctd(): improve flexibilty
  • predict.tidem(): add ‘newdata’ argument
  • adv.2enu() added
  • adp.xyz2enu(): make it correct for heading.bias
  • make.filter(): can now produce tskernel type
  • improve (but temporarily limit) fill.gap
  • plot.adp(): add ‘use.layout’ argument
  • window.oce() added
  • make objects remember full filename, not just local filename (issue8)
  • plot.tidem(): remove argument ‘plot.type’, using ‘which’ instead
  • read.pt(): add arguments from, by, and to
  • fix issue 57 [read.adp.rdi() read the heading incorrectly]
  • add “rr” method to ctdDecimate()
  • oceApprox() added
  • topoWorld dataset added
  • plot.ctd(): by default, make coastlines extend to box boundaries
  • reformulate sun.angle in R
  • fix google-code issue 56 [plot.topo() should accept land.z=NULL]
  • fix google-code issue 55 [plot.topo() could go past poles]
  • fix google-code issue 54 [plot.topo() was resetting par() on exit]
  • fix google-code issue 53 [interp.barnes() gives poor error msg for mismatched x and y]
  • fix google-code issue 52 [plot.section() draws incorrect bottom shape]


  • add sun.angle [not tested yet; needs R reformulation]
  • fix google-code issue 51 [summary.section() does not report water depth]
  • fix google-code issue 50 [non-bug relating to sun elevation]
  • fix google-code issue 49 [demo(TS) broken]


  • fix google-code issue 48 [oce.plot.sticks() ignored page ratio]
  • fix google-code issue 47 [cannot read new MEDS sealevel format]


  • add data(RRprofile)
  • to plot.TS(), add arguments lwd.rho and lty.rho


  • refactor adp code wrt transformation matrices
  • add matrix.smooth()
  • improve labels for oce.axis.POSIXct()
  • set default for ‘debug’ argument to getOption(“oceDebug”) in all functions
  • plot.profile(): add argument ytype; change ‘type’ to ‘xtype’
  • add swZ()
  • add oce.smooth()
  • add read.adv(), etc., supporting Nortek and Sontek devices
  • add read.adp(), etc., supporting Nortek, RDI and Sontek devices
  • add oce.plot.ts()
  • add imagep()
  • add bcd2integer()
  • add matlab2POSIXt()
  • to most plot functions, add ‘mgp’ and ‘mar’ arguments
  • plot.pt(): add plim and Tlim arguments
  • gravity(): give default for latitude argument
  • plot.sealevel(): remove argument focus.time and add argument which
  • rename tdr functions as pt, to reflect oral convention
  • add geod.xy()
  • add argument ‘mgp’ to all plotting functions
  • use abbreviations for axis names if space is tight
  • add argument ‘adorn’ to all plot() functions
  • add oce.colorsTwo(), oce.colorsJet(), and oce.colorsPalette()
  • add byte2binary()
  • add “lty.grid” to all CTD plotting functions
  • add “+.section”, a more convenient way to build sections from stations
  • rework summary() for all existing objects
  • as.sealevel(): rename sampling.interval as deltat


  • sw.N2(): make it tolerate NAs; adjust df to make result smoother
  • add makeFilter()
  • add decimate(), which may eventually replace ctd.decimate()
  • read.tdr(): handle 5-column data files; add tz argument
  • plot.profile(): add types sigma+dpdt and sigma+time
  • ctdTrim(): add pmin parameter
  • plot.ctd(): add Slim, Tlim, plim, lonlim, latlim args; add maps
  • add coastline.sle dataset
  • plot.TS(): fix isopycnal labels for fresh water; add args Slim, Tlim
  • read.ctd(): make it understand another SBE format
  • add parseLatlon()
  • oce.edit(): add argument ‘action’
  • add oce.write.table()
  • add fillGap()





  • add interp.barnes()


  • fix bug in makeSection (ignored the list, if a list provided) http://code.google.com/p/r-oce/issues/detail?id=18&q=label:Type-Defect
  • add oce.edit(), later renamed oceEdit()
  • add topoMaritimes dataset
  • add read.topo(), plot.topo(), and summary.topo()
  • add gebcoColors() … renamed oce.colorsGebco() in version 0.1.77
  • make plot.section() check that pressures coincide


  • plot.TS(): make isopycnal list work better for nearly-fresh water
  • trimCtd(): improve equilibration-phase deletion
  • read.ctd(): handle cases without cruise information or scan column
  • permit setting xlab and ylab in plot.TS()
  • make processing log timestamps be in GMT
  • add as.windrose() and plot.windrose()
  • add sealevel.tuk sea-level dataset
  • add tidem(), predict.tide(), summary.tide(), plot.tide(), data(tidedata)
  • establish a uniform form for objects created by “read” and “as”
  • let swRho() and similar functions take a ctd object as a single argument
  • add swDynamicHeight()
  • make section.grid() and ctd.decimate() extrapolate to surface
  • add summary.oce()
  • make all objects inherit from a new class “oce”
  • fix google-code issue 12: read.sealevel() had a hard-wired filename


  • modify documentation slightly
  • start a migration to more uniform object structures
  • rename as.CTD() to as.ctd(), to make it consistent with similar functions
  • add read.section()
  • add sectionGrid(), which only grids in p at the moment
  • add a03 dataset (renamed ‘section’ in 0.9-13)
  • fix SF bug 1833719: warnings from read.ctd()
  • fix google-code issue 8: read.coastline() not producing data
  • improve ability of trimCtd() to ignore spurious initial data
  • add “connectPoints” option to plot.TS()
  • add “station” item to “ctd” object
  • change as.CTD() to produce sigma.theta instead of sigma


  • add coastline.world; increase resolution of coastline.maritimes
  • plot.TS() no longer rotates the RH margin isopycnal labels


  • allow swRho() and similar take matrices as arguments for S, T, etc


  • fix bug in plot.TS() that prevented it from showing some isopycnals


  • switch to UNESCO formulation for sw potential temperature by default
  • prevent warnings with C90 compiler on some machines


  • add read.oce(), a generic function for reading several oceanographic files
  • make read.ctd() understand WOCE-exchange files
  • make read.sealevel() understand comma-separated data from MEDS
  • make plot.sealevel() skip spectral graphs if timeseries has NA values
  • improve aesthetics of plot.ctd()
  • extend plot.sealevel() by adding focus.time argument
  • add ctdDecimate()
  • add oce.as.POSIXlt()
  • add latlonFormat(), latFormat(), and lonFormat()
  • add as.coastline()
  • add make.section()
  • add summary.section()
  • add plot.section()
  • add data(section)


  • add swSoundSpeed()


  • add historyAppend() (later named processingLogAppend()) and related code
  • improve ctdTrim()


  • add rudimentary read/summary/plot functions for lobo datasets


  • add vignette; address some build-stage warning messages


  • set up data files to permit latin1 encoding of some content


  • rename all seawater-related functions to e.g. swTheta(), to allow for atmospheric analogs


  • make as.CTD() accept length(p)=1, e.g. for surface plots


  • make read.coastline() handle S files


  • keep swTheta() from complaining if length(p) = 1


  • add swAlpha() and swBeta()


  • add swAlphaOverBeta()


  • document the use of df in swN2(), plot.ctd(), etc.


  • permit swRho() (and similar) to take NAs in args (bug B32)


  • permit swRho() and descendants to take scalar pressure.


  • add as.CTD()


  • add “UNESCO1983” formulation to swTheta() as an alternative


  • speed up swTheta() by moving vector work from R to C


  • make geodDist() accept a vector for location 1 and a scalar for location 2


  • make read.coastline() understand matlab and Splus formats


  • make plot.coastline() scale lat and lon correctly


  • add read.coastline(), summary.coastline(), and plot.coastline()


  • add as.sealevel()


  • add read.sealevel(), summary.sealevel(), and plot.sealevel()


  • add name option to plot.ctd.scan()


  • add lapse.rate()


  • fix B27 (header not updated for columns added during read.ctd)


  • rename as ctdTrim()
  • rename to ctdWrite()


  • add write.ctd()
  • add ctdAddColumn()
  • add ctdUpdateHeader()


  • add plot.ctd.scan()


  • make read.ctd() calculate S if missing but C, T, and p are given
  • add swSCTp()


  • add swConductivity()


  • rename to swRho()


  • use namespace


  • add oce.viscosity()


  • fix B23 (not done yet)
  • fix B22 (not done within oce; done at system level)


  • add pressure method to trimCtd()


  • vectorize swRho() since it was too slow on large datasets


  • make demo(oce.ctd) print data


  • fix some documentation errors that the 2.0.0 CHECK noticed


  • profiles have correct y-axis
  • OSX port, but must first do e.g. export PKG_LIBS=“-L/sw/lib”


  • OSX port (you must first do export PKG_LIBS=“-L/sw/lib”)


  • add trim.ctd()


  • permit lat/lon with the “N”-type indicator at start


  • fix bug B16 (label the isopycnals on TS diagram)


  • make read.ctd handle more file types


  • add oceCoriolis, oceDepth, oceGravity, oceTFreeze


  • add oceSpecificHeat oce.N2; fix bug B18


  • get data(ctd) working


  • add oceSTRho


  • fix bug B15 (maybe)


  • add oceTSRho


  • fix bugs B10, B11, and B13


  • fix bugs B6, B7, and B12


  • add geodDist()
  • add plot.ctd(), which is rudimentary for now
  • fix bug B8


  • add spice() function


  • permit all eos functions to handle missing values
  • fix bug B4


  • add summary(ctd) method.
  • make read.ctd() return an object of type ctd.
  • get tests/ working.


  • create tests/oce.test1.R


  • add oceSigma(), oceSigmaT(), oceSigmaTheta()


  • permit various EOS functions to handle lists
  • fix bug B3


  • add ocerho()


  • fix file-path bug
  • fix bug B2


  • add theta()
  • fix bug B1


  • add read.ctd()