• Add package?oce documentation (had been missing with a Roxygen2 change).
  • Add read.ctd.saiv() to read data from SAIV instruments (issue #2141).
  • Remove many dontrun examples from the docs (issue #2152).
  • Remove trimString(), after it had been deprecated for a long time (issue #2123).
  • Remove use of the deprecated sp package (issue #2154).
  • Change amsr dataset and functions to handle new format (issues #2124 to #2133 plus issue #2147).
  • Change as.ctd() to handle multi-profile Argo better (issue #2173).
  • Change as.tidem() to handle NOAA constituent names and frequencies (issues #2143, #2144 and #2146).
  • Change C/C++ sprintf() calls so all formats match arguments (issue #2172).
  • Change computableWaterProperties to handle a vector of variable names.
  • Change plot.adp() to obey xlab if x axis represents time (issue #2162).
  • Change plot.cm() to obey xlim, ylim, xaxs and yaxs (issue #2121).
  • Change plotTS() and plotProfile() to accept type="b".
  • Change plot.windrose() for type="fivenum" (issue #2164).
  • Change as.ctd() to handle startTime, PRES, PSAL and TEMP better.
  • Change binCount1D() + 6 related functions by adding include.lowest parameter (issue 2113).
  • Change C++ files to avoid an error relating to include statements (issue 2119).
  • Change imagep() to ensure z (if provided) is a matrix (issue 2091).
  • Change plot.section() to skip the kriging example (issue 2080).
  • Change plot.section() to show palette triangles if necessary (issue 2083).
  • Change plot.section() to show data and bottom correctly (issue 2092).
  • Change plotTS() to obey the rho1000 parameter again (issue 2085).
  • Change read.argo() to translate more variable names.
  • Change read.netcdf() to read more items.
  • Change read.rsk() to obey the tz parameter (issue 2108).
  • Change summary.adp() to handle the new format for AD2CP data (issue 2087).
  • Add advSontekAdrFileTrim() (issue 1994).
  • Add ctdFindProfilesRBR() (issue 2027).
  • Change applyMagneticDeclination() to also handle adp and adv (issue 2038).
  • Change download.topo() to handle new NOAA database (issue 2015).
  • Change inst/extdata by compressing some files.
  • Change mapPlot() to remove an infrequent low-level error (issue 2036).
  • Change mapPlot() to require projection to be a string (issue 2076).
  • Change numberAsPOSIXct(t, type="gps") to handle week rollover (issue 2077).
  • Change plot.echosounder() to use oceColorsViridis() by default (issue 2060).
  • Change plotProfile() to create xlab on vector input (issue 2047).
  • Change plotTS() to compute isopycnals more accurately (issue 2046).
  • Change plotTS() to handle lobo objects directly.
  • Change plot.tidem() to obey ... parameter (issue 2035).
  • Change read.adp.ad2cp(), and structure of AD2CP objects (issue 2005).
  • Change read.rsk() to read geographic information (issue 2024).
  • Change sectionSmooth() to handle method="kriging" again
  • Change tidem() (and summary method) to handle 6-hourly data (issue 2034).
  • Remove package dependence on rgeos and raster packages (issue 2028).
  • Remove plotAD2CP(), now superseded by generic plot() method (issue 2005).
  • Remove plotting tests but retain in developer suite (issue 2073).
  • 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() 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()
  • 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 argument 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" 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 the cmocean Python package by Kristen Thyng
  • add as.oce()
  • 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)
  • 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() with 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
  • make the newly-added TEOS-10 functions compile on Windows
  • 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
  • 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 (issue 162)
  • 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()' andplot.ctd(): addxtype=“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 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
  • 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
  • camel-case function and argument names (and the NEWS file)
  • 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 common phrasing.
  • 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 addColumn()
  • add undriftTime()
  • add tdrPatm()
  • make readTdr() gather serial no. info; show this on plot.pt()
  • switch to recommended version-number format
  • remove section.subset(), replaced by subset()
  • improve log items in functions that read and assemble oce objects
  • add subset.oce()
  • add header()
  • add argument which to read.rbrdtr()
  • make read.rbrdtr() understand headers better
  • add arguments xtype' andytypetoplot.section()`
  • improve accuracy of bottom drawn by plot.section()
  • add section.smooth()
  • fix bug making section.smooth() fail if <4 good data at a level
  • fix bug making summary.ctd() fail for results of section.smooth()
  • fix bug making sw.dynamic.height() choke on empty stations
  • fix bug making plot.section() die if x is unordered
  • rename rbrpt functions to tdr functions, improving generality
  • add argument “src” to as.ctd()
  • plot.section() RHS axis needs tics
  • trim axis whitespace in plot.profile() and plot.TS()
  • make read.oce() understand WOCE section type
  • speed up swSpice()
  • add read.pt(), summary.pt(), plot.pt(), and ptTrim()
  • make plot.TS() isopycnal label size be same on top and right sides
  • add lwd argument to plot.profile()
  • give plot.section() ability to control contour levels and labels
  • give plot.section() tics for station-location
  • plot.topo() narrows autoscale to xlim-ylim region, if provided
  • add plot.ctd() arg textpanel, and put the profiles in the same row
  • fix bug in plot.profile() to let it take Slim,…, as args
  • fix bug in plot.profile() font size
  • fix bug in plot.profile(type="S_T") positioning
  • fix bug in section plot (bottom was missing)
  • fix bug in size of salinity axis label for plot.ctd()
  • use pch=21 for TS plots (so data density is more visible)
  • add interp.barnes()
  • 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() andctd.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 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
  • keep swTheta() from complaining if length(p) equals 1
  • 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
  • add name option to plot.ctd.scan()
  • add lapse.rate()
  • fix B27 (header not updated for columns added during read.ctd)
  • add write.ctd()
  • add ctdAddColumn()
  • add ctdUpdateHeader()
  • add plot.ctd.scan()
  • add swConductivity()
  • 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)
  • add oceCoriolis(), oceDepth(), oceGravity(), oceTFreeze()
  • add oceSpecificHeat() and 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 spice() function
  • permit all eos functions to handle missing values
  • fix bug B4
  • 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