• Fix a typo in swThermalConductivity doc.
  • Improve the handling of file encodings.
  • Make the argo [[ method handle spiciness.
  • Improve read.adp.ad2cp() extensively, breaking some old behaviours.
  • Add oceFileTrim(), adpAd2cpFileTrim and adpRdiFileTrim().
  • Remove renameData(), which had been flagged as defunct in multiple CRAN releases.
  • Deprecate trimString().
  • Fix compiler warning of comparing signed and unsigned quantities.
  • Add gappyIndex().
  • Fix encoding problems that will occur in the upcoming version of R.
  • Permit acoustic-Doppler files in excess of 4Gb.
  • Remove a stray file.
  • Change mapImage() to use interp instead of akima, as required by CRAN.
  • Improve read.ctd.sbe() for interpreting Date in headers.
  • Improve as.ctd() for Argo data.
  • Remove a link to https://pubs.usgs.gov/pp/1395/report.pdf, which was reported as unreachable during the attempted CRAN submission of version 1.7.1.
  • Fix error in comparing a class() result with a string, which was reported as an error during the attempted CRAN submission of version 1.7.0.
  • Fix CRAN-check warning about 2 uninitialized variables on the r-devel-linux-x86_64-debian-gcc test system. (We thank K. Hornik, for an email dated 2022-03-16 notifying us about the problem.)
  • Fix CRAN-check error on the r-devel-linux-x86_6-debian-clang, r-devel-linux-x86_6-fedora-clang and r-devel-linux-x86_6-fedora-gcc test systems, relating to a byte-order-mark in a test file, which is evidently treated differently on different systems.
  • Remove a kriging example because it causes CRAN-check problems on r-devel-linux-* machines (but, curiously, no other machines or systems).
  • Change mapTissot() to trim shapes to earth limits.
  • Alter this NEWS.md file so pkgdown::build_news() will notice the subsections.
  • Add read.ctd.aml().
  • Change read.met() to handle a new encoding argument.
  • Fix drawPalette() to obey the at and labels arguments.
  • Fix plot,ctd-method() to recognize which=13 for spice.
  • Remove a journal link that has become unavailable.
  • Fix “length_1” error (thanks to B. Ripley for the heads-up).
  • tidem() permits inferred constituents
  • tidem() follows T_TIDE phase convention
  • adorn argument removed from some 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
  • 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
  • prepare for an upcoming release of R-devel
  • move vignette source directory
  • 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)
  • 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
  • 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(), and 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