Version 0.20220204.2 (Mar 3, 2022)
	* Fixed  a bug with rotated grids.  They were not properly oriented for
	  the particular case where the rlon values didn't cross the numerical
	  dateline for the coordinate.
	* Added --quiet option to suppress messages from the converter.

Version 0.20220204.1 (Feb 14, 2022)
	* Fixed regression where some data records were being identified as
	  (unused) coordinate records, causing them to be omitted from the
	  netCDF file.
	* Metadata can now be applied based on forced-renamed variable names.
	  E.g., can have sections [SSH_vgrid0] and [SSH_vgrid3] in the metadata
	  file to control the attributes separately for each vertical
	  coordinate type of an SSH variable.
	* Fixed the handling of strings in --filter option.  It should now work
	  with normal (not byte) strings without any padding.
	* Also added 'np' shortcut to filters to allow numpy functions to be
	  used in the filter criteria (such as np.isin).

Version 0.20220204.0 (Feb 4, 2022)
	* New 'fstdump' command for displaying the structure of an FSTD file
	  in the same layout as would go into netCDF.
	* Some support for 'M' and '#' grids.
	* Improved startup time for the converter by avoiding imports of large
	  packages like pandas, xarray and dask unless actually needed.
	* Removed pydap interface (no known use case, extra work to maintain).
	* Much better threading performance for xarray/dask interface.
	* Fixed 'interp' argument when used from Python interface.
	* Internally, changed Buffer._headers to be a dictionary instead of a
	  structured array.  No impacted expected for user-facing functions.
	* Fixed a crash in vcoord mixin when encountering a degenerate '0 hy'
	  level.
	* Also, removed the above-mentioned '0 hy' coordinate from the output
	  file (treat as 2D field).
	* Improved the speed of querying multiple FSTD files by using multi-
	  processing.
	* Added new --serial option to disable the aforementioned multi-
	  processing.
	* Added proper depth coordinate for WSOL and ISOL surface fields, with
	  new option --soil-depths to override the default values.
	* Added support for missing values encoded using the datyp+64 flag.

Version 0.20211202.0 (Dec 3, 2021)
	* Changed the earth_radius grid attribute from 6371229 to 6370997, to
	  be consistent with librmn.
	* Modified the pressure parameterization to be defined in units of hPa,
	  for consistency with the surface pressure (P0) field.
	* Added 'formula' attribute to all vertical coordinates.  Note that
	  this attribute is not part of the CF standard.
	* Added support for more vertical coordinates (1002, 5100, 5999, 21001,
	  21002).
	* Support for SLEVE coordinates (and corresponding C coefficients).
	* New command-line options --momentum-levels (--mlev) and
	  --vertical-velocity-levels (--wlev) to subset the data on those
	  levels.
	* In metadata files, allow an attribute to be explicitly *removed*
	  from a variable by omitting a value after the '=' delimiter.
	  Useful for turning off attributes that were automagically added
	  somewhere else in the code.
	* Use 32-bit precision for integer values from the metadata files.
	* Fix bug in from_fstpy, which was causing a crash if the resulting
	  dask arrays were sliced.
	* Also updated from_fstpy to handle fstpy dask arrays constructed from
	  compound operations.
	* Fix bug in to_fstpy - deleted records were being included in the
	  final table by mistake.  This would cause problems if those records
	  were ever accessed.
	* Allow variable names that already start with an underscore.  Do not
	  prepend a second underscore to them.
	* Bug fix in detecting direct grids with 1D lat/lon coordinates.
	* Buf fix in extracting lat/lon fields for some trajectory data.

Version 0.20211013.2 (Nov 5, 2021)
	* Handle case where series of points have the degenerate (length 1)
	  dimension of ni,nj transposed between the data and lat/lon fields.
	* Fix crash when decoding a polar stereographic projection when the
	  pole is outside the domain.
	* Fix decoding of INFO record for MLDPn (should be interpreted as text).

Version 0.20211013.1 (Oct 28, 2021)
	* Various bug fixes for from_fstpy and to_fstpy methods.
	* Fix duplicate grid_mappings when converting data from GEM LAM grids.
	* Check for vertical velocity diagnostic level in addition to usual
	  momentum / thermodynamic diagnostic levels.

Version 0.20211013.0 (Oct 13, 2021)
	* The --exclude option now works on attribute names.
	* Add axis="X" and axis="Y" attributes for all projection types.
	* More compatibility updates for Python 3.
	* Add "grid_mapping" metadata to degenerate file (when no data records).
	* Axis and coordinate attributes can now be controlled with the
	  metadata-file structure.
	* New functions .to_fstpy() and .from_fstpy() for interoperability with
	  fstpy package.
	* Fix warning message with 'O' grids.
	* More user-friendly suffixes when splitting variables across different
	  coordinate types (e.g. model_levels/diag_level and
	  depth_levels/bottom_level).
	* Better error handling for malformed / unsupported vertical !! records.

Version 0.20210305.1 (Jul 8, 2021)
	* Detect when multiple '!!' records have identical coordinate systems.
	  Allow unstrict matching to one of these records if there are no exact
	  ig1/ig2/ig3 matches available.
	* Fix filesize for netCDF4 header when using compatibility mode.

Version 0.20210305.0 (Mar 5, 2021)
	* Added "101010101" to list of known dummy dates, to avoid a crash in
	  HRDLPS file conversion.
	* Added "TRAF" to the list of known surface fields, so it gets
	  annotated with the appropriate surface types.
	* Renamed "sea_ice" to "lake_ice_or_sea_ice" in the list of surface
	  types, which is a more accurate description for the model data.
	* Removed the "units" attribute for unitless level types.  This was
	  originally added for COARDS compatibility, but is causing issues with
	  some netCDF utilities like Iris.
	* When using --vardict or --opdict, put the definition string in an
	  attribute named "definition_opdict" instead of "description".
	  Suggested by Daniel Deacu.
	* Fix a bug in metadata files which give units of "1" - it was getting
	  encoded as a numeral 1 instead of a string, causing grief with some
	  netCDF tools.

Version 0.20210205.0 (Feb 5, 2021)
	* Fix a bug when a fill value was trying to be applied to integer data.
	* Fix a bug with negative integer values in netCDF3 encoding.
	* Add support for "META" record from GenPhysX, which now gets converted
	  to a string type.
	* New --opdict option to extract useful metadata from the operational
	  dictionary (on systems where $AFSISIO is available).
	* New --vardict option for providing a custom CMC-RPN variable
	  dictionary (in their XML format) to extract metadata from.
	* Can now override the "Conventions" attribute by passing in a value
	  with the new --conventions option.
	* Can now easily disable "Conventions" attribute entirely by using the
	  new --no-conventions option.
	* The keys in the metadata file passed in by --metadata-file are now
	  case sensitive, so can define attributes that use upper-case letters.
	* Preliminary support for "underwater" levels defined by level type 7.
	* New --thermodynamic-levels option to select only data on the
	  thermodynamic levels of a staggered vertical coordinate.
	* New --no-adjust-rlon option for rotated grids, which disables the
	  value shift that's usually done to the rlon coordinate when it passes
	  over the dateline.  Instead, the original (unshifted) coordinate is
	  used.
	* Experimental new --fstd-compat option which allows the output file to
	  be used as both a netCDF and FSTD file (for compatibility with both
	  sets of tools).

Version 0.20200717.1 (Jul 27, 2020)
	* Fix a caching bug in dask wrapper.  The cache was being shared among
	  all Buffer objects, so the wrong record may be returned under some
	  circumstances.

Version 0.20200717.0 (Jul 17, 2020)
	* Tweak the handling of metadata records to avoid erroneously treating
	  data records as metadata (such as when "SV" is actually a 2D field).
	* Fix stack space for threads (default too small on science network).
	  Affects the xarray interface, not the command-line invocation.
	* Metadata files now work better when using --rename argument.  Both
	  the old and new names are valid section headers for the metadata.
	* Treat diagnostic-level height (e.g. 1.5m) as a bottom model level
	  when it appears in conjunction with 3D model levels.  The default
	  was to split it into a separate variable.  The old behaviour can be
	  restored by using new argument --split-diag-level.

Version 0.20190903.1 (Dec 16, 2019)
	* Fixed a crash in recent versions of "progress" module when there are
	  no records to convert.
	* Warn if no data was converted.
	* Add an option to keep the 'LA' and 'LO' records instead of pruning
	  them as redundant information (e.g. if ^^ and >> are also available).
	* For special case were ONLY lat/lon information is in the FST file,
	  produce a netCDF file with the lat/lon fields.  These coordinates
	  were being stripped out (leaving an empty netCDF file) due to
	  aggressive pruning.

Version 0.20190903.0 (Sep 3, 2019)
	* New --compression parameter, to control the compression level for
	  netCDF4.  Used in conjunction with --zlib parameter.  Thanks to
	  David Landry for the patch.
	* Fixed a crash when printing the progress bar in a locale that does
	  not support unicode.

Version 0.20180821.1 (Dec 31, 2018)
	* Loosen horizontal coordinate matching criteria for series data.
	* Blacklist numpy 1.15.3, which had a bug that caused a fatal crash.

Version 0.20180821.0 (Aug 21, 2018)
	* Fixed the --ignore-typvar option, which was crashing.
	* Fixed the encoding of depths shallower than 1m.  These were
	  getting truncated to 0m.
	* Fixed a bug in handling lists of values in attributes.  This was
	  causing problems when using --rpnstd-metadata on files with a
	  "!!" vertical coordinate.
	* Added two new command-line arguments --diag-as-model-level and
	  --ignore-diag-level, to deal with diagnostic-level data in the
	  FSTD file.
	* Detect mixture of diagnostic / model levels and inform the user
	  of how to resolve this using the above commands.
	* Package should now be fully compatible with Python 3.
	* Added docstring to the fstd2nc.Buffer class.

Version 0.20180706.1 (Aug 3, 2018)
	* Fixed .to_pygeode() method, which was failing on xarray > 0.10.0.
	* Added locks to thread-unsafe parts of the code.
	* Fixed a float64 upcasting that was done on some record parameters
	  when using pandas routines.
	* Handle whitespace in list-based command-line arguments, e.g.
	  --vars="VAR1, VAR2, VAR3".
	* Fixed a crash when using --rpnstd-metadata on vertical levels.

Version 0.20180706.0 (Jul 6, 2018)
	* Added 'station' as a coordinate for 'Y' series data.
	* Some incremental speedups in constructing Buffer objects.
	* Command-line option to rename variables.
	* Command-line option to create an 'ensemble' axis over varying
	  etikets.
	* Some new features / improvements geared towards using this package
	  in Python scripts:
	  * Read FST records in their natural order in the xarray interface.
	  * Added an optional 'header_dict' parameter to Buffer, to allow it to
	    remember the headers of files that have been previously scanned.
	  * Added a to_iris() method to generate an Iris CubeList object.
	  * Added a to_pygeode() method to generate a PyGeode Dataset object.

Version 0.20180604.0 (Jun 4, 2018)
	* Re-enabled unlimited time dimension for applicable files.
	* Renamed zaxis,zeta,eta,sigma axes to just 'level'.
	* Removed old anciliary_variables stuff for A/B vertical coeficients.
	* Added formula_terms for vertical coordinates, along with a "pref"
	  (reference pressure) scalar variable.
	* Loosened criteria for matching vertical (!!) record when there's only
	  one vertical record in the file.
	* Fixed bug when there are multiple reftimes in a file (issue #15).
	* Added support for time-dependant lat/lon coordinates from LA/LO
	  records.
	* New --exclude option to remove variables and degenerate axes from
	  the netCDF file.
	* New --profile-momentum-vars and --profile-thermodynamic-vars options
	  to specify which variables are on which type of level.
	  Note: only needed for profile data.
	* New --missing-bottom-profile-level option to work around a bug in
	  profile data coming from rpnphy output.
	* Fixed a bug in the times for profile / series data.

Version 0.20180423.0 (Apr 23, 2018)
	* New --rpnstd-metadata-list to select a subset of RPN metadata
	  attributes to copy to the netCDF file.
	* Made --minimal-metadata the default.  The old behaviour (copying all
	  RPN metadata) can be triggered with a new --rpnstd-metadata option.
	* Coordinate-related RPN metadata is no longer copied, since the values
	  are already encoded in the coordinate variable.
	* Restored support for 'A', 'B', and 'G' grids.
	* Fixed the repeated longitude in global grids - value is now 360
	  instead of wrapping back to 0.
	* Use consistent lat/lon/station coordinates for series data when using
	  a --filter on the ip3 values.
	* Unused axes are now pruned from the file.  Mostly affected series
	  files, which had an extra time axis from the unused datev values.
	* Vertical axes are now encoded as floats, since that's the precision
	  of the original ip1 values.  The pandas version of the iterator was
	  upconverting these to doubles, which would cause different results
	  depending on whether pandas was installed or not.

Version 0.20180220.0 (Feb 20, 2018)
	* Improvements to xarray interface to utilize the CF conventions
	  metadata (such as auxiliary coordinates).
	* Add station, leadtime, and reftime as auxiliary coordinates in series
	  files.
	* Use the date of validity by default.  Old behaviour (date of origin)
	  can be restored by using --dateo or --forecast-axis options.
	* Added 'leadtime' and 'reftime' auxiliary coordinates to encode the
	  forecast information.
	* Progress bar is enabled by default.  Can be turned off with
	  --no-progress option.
	* Added CF metadata for various grid projections (rotated pole, polar
	  stereographic, lat-lon).
	* Decode surface types (ice, land, sea, etc.).
	* Decode depth coordinate for ocean model output.
	* Fix decoding of masked data in raw binary (X32) format.

Version 0.20171130.1 (Feb 13, 2018)
	* Fixed unlimited dimension specification for PyDAP interface.
	* Workaround for bug in numpy 1.14 when using masked structured arrays.
	* Fix forecast times for series files.
	* Don't discard LA/LO fields.  They needed in some circumstances such
	  as trajectory files.

Version 0.20171130.0 (Nov 30, 2017)
	* Faster scanning of input file headers.
	* New --progress option to show a progress bar for long conversions.
	* More speed optimizations for RPN date and IP1 value conversions.
	* Faster determination of dimensions from the record headers, using
	  pandas package.
	* Restructured the package so each feature is in a separate Python
	  module, for easier development.
	* Added xarray interface to facilitate custom netCDF conversions from
	  Python.

Version 0.20171103.0 (Nov 3, 2017)
	* Faster I/O when converting multiple input files.

Version 0.20170922.0 (Sep 22, 2017)
	* Support for ''scale_factor'' and ''offset'' attributes in metadata
	  files, as a rudimentary form of unit conversion.
	* New --zlib option for compression of netCDF files.
	* Some speed optimizations for converting to netCDF4:
	  - Chunk size is set equal to FSTD record size.
	  - FSTD records are read in order, to better utilize buffering /
	    read-ahead on the input file(s).

Version 0.20170908.0 (Sep 8, 2017)
	* ''station_id'' axis for series files.
	* Allow --squash-forecasts to work on series data (only with one date
	  of origin).
	* New --subgrid-axis option for splitting supergrids (e.g. yinyang)
	  into multiple sub-grids that are aligned on a ''subgrid'' axis.
	* Experimental [https://github.com/pydap/pydap pydap] plugin for
	  browsing FSTD files through a web interface.  To test it:
	  python -m pydap.wsgi.app
	* Allow directory names and wildcard patterns (surrounded by quotes)
	  as inputs to the converter.
	* Speed optimizations for RPN date and IP1 value conversions.
	* Speed optimizations for data type detection (dtype_fst2numpy).
	* Speed optimizations for --filter option
	* Experimental (and undocumented) --quick-scan option to quickly
	  extract record headers from input files.  Gives a good speed boost
	  when reading many input files, but relies on some internal structures 
	  of librmn.
	* New --msglvl option to control verbosity of librmn messages.
	  Default is changed to display only warning / error.  Old behaviour
	  can be restored by using --msglvl=INFORM.

Version 0.20170728 (Jul 28, 2017)
	* Make ''time'' dimension unlimited in the netCDF file.
	* New --nc-format parameter to control the type of netCDF file being
	  created.
	* Verify input file(s) are RPN files before trying to convert them.
	* New --force option to overwrite the netCDF file if it already exists.
	* New --filter option to select records based on some criteria
	  (e.g. "--filter ip1==24" to select 24-hour forecasts only).
	* Some decoding of vertical coordinate for series data.
	* Make sure nomvars are valid netCDF variable names, otherwise prepend
	  an underscore to them so the netCDF library doesn't complain.
	* Remove degenerate ni/nj axes from the output file, and remove
	  degenerate time axes which contain dummy RPN dates.
	* Support for 'U' grids ("supergrids").

Version 0.20170712.1 (Jul 13, 2017)
	* Bug fix for station name decoding (series files).
	* New --metadata-file option for adding arbitrary metadata to the
	  netCDF file.
	* Wrap all messages with gettext, to facilitate translation to French.  
	  Note: no actual translations done yet.
	* New --minimal-metadata option to strip out FSTD-specific metadata
	  from the netCDF file (such as kind, datyp, npas, etc.).
	* Support for multiple input files.
	* Write the command invocation into a global "history" attribute of
	  the netCDF file.  Can be disabled by new option --no-history.
	* When fudging variable names to make them unique in the output file,
	  use more context-specific modifiers such as etiket, typvar, etc.
	  instead of an integer counter.
	* Warn when variable / dimension names have to be modified.
	* New --ignore-typvar option to allow records with different typvars
	  to be combined into a single variable.
	* New --reference-date option to control the reference date of the
	  time axis.

Version 0.20170427 (Apr 28, 2017)
	* Check if netCDF output file already exists, and prompt the user
	  before overwriting.
	* Check if input file exists before trying to convert it.
	* Some support for series files.
	* Some more metadata for identifying horizontal and time dimensions.
	* Some support for masked data.  Detects records that have an '@' in
	  their typvar, and looks for a corresponding mask record (typvar='@@').
	* New --ignore-etiket option to allow records with different etikets
	  to be combined into a single output variable.

