seas-package: Seasonal statistics: the 'seas' package for R

Description Author(s) References Examples


The seas package for the R programming environment is capable of conveying descriptive statistics and graphics for seasonal variables, as found in climatology, hydrology and ecology. Seasonal variables can be continuous (i.e., temperature) or discontinuous (i.e., precipitation). An annum can be partitioned into many arbitrary divisions, or seasonal components, such as by month or into other fixed intervals. Boxplots are used to describe the seasonal distributions of continuous variables. Discontinuous variables need to be summed over time to smooth the irregularities before the variable can evaluated and visualized. Statistics, such as precipitation normals, may be derived from the summed variables, using the mean or median methods. Other tools and utilities provided in the package can calculate precipitation interarrivals, cumulative precipitation departures, find changes between two normals, and import data from archive formats.

To get started, try some examples, such as seas.sum, seas.norm. There will be more help added here someday!

Source code and issues are at


Mike Toews


Toews, M.W., Whitfield, P.H., and Allen, D.M. 2007. Seasonal statistics: The ‘seas’ package for R. Computers & Geosciences, 33 (7), 944–951, doi: 10.1016/j.cageo.2006.11.011


# Show a list of changes to the package:"ChangeLog", package="seas"))

Example output

This is a summary of changes to the 'seas' package for R.
Please submit any suggestions, additions, or errors to:
	Mike Toews <>

Version 0.4-3
 - fix a clang warning for potentially insecure formatting in help.c
 - change license from BSD to GPL (>= 2)

Version 0.4-2
 - repackage source without seas_0.4-0.tar.gz
 - move 'mscstn' data frame to R/sysdata.rda

Version 0.4-1
 - further syntax improvements in R code
 - update man pages, remove \synopsis sections
 - removed hidden (older?) function in seas.norm.R
 - rename non-S3 functions:
  - plot.year -> year.plot
  - plot.seas.temp -> seas.temp.plot
  - plot.seas.var -> seas.var.plot

Version 0.4-0
 - update code-base for R 2.14.0
 - improve syntax structure
 - move non-R data to inst/extdata
 - create a NAMESPACE file
 - use .onLoad and useDynLib instead of .First.lib
 - update documented URLs, where possible

Version 0.3-9
 - update documentation and examples for R 2.11

Version 0.3-8
 - fix bug with for Visual HELP precipitation file
 - fix partial matching errors in 'dathomog', identified by BDR
 - other documentation fixes identified using 2.7.0 devel series

Version 0.3-7
 - update to new email address
 - using original items for 'par("yaxt")' in 'plot.seas.var'
 - fixed bug in ''

Version 0.3-6
 - added an 'ann' option in 'seas.label' for 'image.seas.sum'
 - modified 'conv365toGregorian' to copy attributes from 'x' into output
 - fixed precipitation unit in 'plot.year'
 - 'seas.df.check' now looks for ''
 - '' now calculates 'year' to 'dat'
 - updated citation; paper now published

Version 0.3-5
 - rewrote '' to use C-code for speed, also have load/unload
    functions for the dynamic library
 - added 'conv365toGregorian' function
 - rearranged functions that used a 'year.length' attribute or parameter
    to instead use a 'calendar' attribute or parameter
 - added 'year.length' function to determine the number of days per year
 - modified the behaviour of 'mksub' a bit, so it doesn't strip attributes
    from arrays used in data frames; instead certain attributes are not
 - casting integers for 'sprintf' calls for significant speed gains, in
    particular in 'read.lars'
 - simplified 'change' by removing the first 'var' parameter

Version 0.3-4
 - fixed minor error with named attributes for R 2.5.0
 - fixed error in 'plot.seas.temp' when 't_mean' is missing
 - 'read.sdsm' now considers units
 - 'read.lars' rewritten - now reads 'st' file for meta-data, then reads
    'sr/dat' file from the meta-data in 'st'
 - added doi from Elsevier to paper/package 'citation("seas")'
 - brought back 'ylog' parameter to 'plot.seas.var', now does
    log-transformed boxplots, and can be used with 'add.alt=TRUE'
 - removed 'yaxs="i"' from a few functions; these can be set normally
    through 'par', if desired
 - allowed 'par("ylog")' to work with 'plot.seas.sum'

Version 0.3-3
 - Modified 'read.sdsm' to adapt to year.length=360 better, added attr too
 - fixed documentation for 'mkseas' usage
 - fixed handling of '.seasylab' in 'hidden.R[d]'; using 'var', not 'orig'
 - 'change' now stores 'p.cut' attributes
 - 'interarrival' now stores 'p.cut' and 'inv' attributes
 - fixed problem with character encoding in 'mscdata'
Version 0.3-2
 - several fixes from 0.3-1
 - 'plot.seas.norm' no longer re-sets the options, and now 'leg' can
   use c(x,y) to place legend
 - fixed par(ylog=TRUE) for 'plot.seas.var'
 - fixed 'mscdata' example
 - fix in 'mkseas' with proper order of 'days' (or 'bin.lengths')
 - re-added 'ylab' into a few plotting functions
 - fixed 'mksub' error if data.frame element is 'array'
 - made axises for most plotting functions to respect par('lwd')
 - new option 'seas.bxp' for boxplot fill colour and outlier size

Version 0.3-1
 - lots of changes in this release: some functions added, or renamed
 - moved 'mkfact' to 'mkseas', and it is more flexible, and can start
   on different dates, such as 'Aug 1'
 - added 'mkann' to complement 'mkseas', which finds the annual breaks
   between seasons; this is simple if '' is January 1st, but
   seasons don't need to star here anymore
 - more use of 'attr' to pass meta-data between objects; such as 'units'
   and '' for variables in data frames
 - 'mscdata' and 'read.msc' now uses attributes for storing long names
   and units for each variable
 - data must be subdivided by 'mksub', as the plotting functions have
   changed or removed 'start', 'end', and 'id'
 - 'mksub's 'start' and 'end' parameters now either accept an integer
   year or a 'Date' class
 - plotting functions now use 'start' to designate a starting bin, and
   'rep' to repeat some bins 
 - the grid from '.seasmonthgrid' is more exact to the actual month

Version 0.2-1
 - removed 'degday' and 'growday' since they were not needed
 - fixed 'plot.seas.norm' for plotting non-precipitation items
 - renamed 'param*' to 'var*' and 'parameter*' to 'variable*' (where
      appropriate); this is to reduce confusion between the two names,
      however it may lead to further confusion with the 'var' function
 - increased contrast in grey-scale theme
 - moved the null theme in 'hidden.R' from 3 to 0
 - added 'read.sdsm' and 'write.sdsm' functions
 - added 'plot' method for 'seas.sum' objects, which shows boxplots
 - submitted article for 'seas' package to 'Computers & Geosciences'

Version 0.1-3
 - added .seascol and changed hplot functions to accommodate modular
	colouring styles
 - re-tabbed everything in Emacs
 - renamed package from 'climate.plot' to 'seas'
 - made 'mkfact' a bit more flexible, looks for Date/POSIXct classes
 - made '.seasmonthgrid' in hidden.R
 - added new style to accommodate no title
 - restructured 'seas.sum' object:
   - 'days', 'na' are separate 2D arrays (used to be part of 'seas')
   - 'active' is 3D, and only present if 'a.cut' is non-zero or FALSE
 - fixed a few bugs in 'seas.norm'; added '...' to 'precip.norm'

Version 0.1-2
 - added 'ZipData: no' for Windows packaging of non-R data

Version 0.1.1
 - removed Unicode for 'mkfact' in-order to work for R CMD check on C locale

Version	0.1
 - first personal version, and submitted to CRAN

seas documentation built on May 2, 2019, 4:16 a.m.