_images/wavespectra_logo.png

History#

Wavespectra is an open source project that was started at MetOcean Solutions and open sourced in April 2018. In July 2019 it was moved into the wavespectra github open source organisation and transitioned into a fully community developed project. This changelog covers the release history since v3.0 when wavespectra was open-sourced.

Releases#

5.0.0 (unreleased)#

Breaking Changes#

  • The dataset_transforms behaviour introduced in 4.7.0 becomes the default: methods that transform the spectral variable (interp, interp_like, smooth, split, oned, rotate, to_energy, scale_by_hs and the partitioning methods in the spec.partition namespace) return a Dataset instead of a DataArray when called from the Dataset accessor, carrying the non-spectral variables (e.g. wspd, wdir, dpt) from the source dataset which were previously silently dropped. The DataArray accessor is unchanged, e.g. dset.efth.spec.oned() still returns a DataArray. Variables that depend on the spectral dims other than the spectral variable itself are dropped from the output since their coordinates may no longer be consistent with the transformed spectra. Methods that reduce the spectra into parameters such as hs and tp are unaffected and still return a named DataArray from both accessors.

  • The wspd, wdir and dpt arguments of the hp01 and track partitioning methods now default to the variables with those names in the underlying dataset when partitioning from a Dataset.

4.7.0 (2026-07-09)#

New Features#

  • New wavespectra.set_options / wavespectra.get_options functions to set package-level options globally or within a context block. The first supported option is dataset_transforms which opts in to the future behaviour where methods that transform the spectral variable (interp, interp_like, smooth, split, oned, rotate, to_energy, scale_by_hs and the partitioning methods in the spec.partition namespace) return a Dataset preserving the non-spectral variables when called from the Dataset accessor. This will become the default behaviour in wavespectra 5.0; until then, calling these methods from the Dataset accessor without the option set emits a FutureWarning and returns the bare spectral DataArray as before.

  • The wspd, wdir and dpt arguments of the ptm1, ptm2 and ptm4 partitioning methods now default to the variables with those names in the underlying dataset when partitioning from a Dataset, e.g. dset.spec.partition.ptm1(). The same defaults apply to hp01 and track only when the dataset_transforms option is set, since falling back on dataset wind would change the wind sea classification of existing code calling these methods without wind arguments.

Bug Fixes#

  • read_triaxys now returns a Dataset as documented when reading with magnetic_variation and regrid_dir=True (previously it returned a DataArray in that case).

  • read_swans now appends the winds and depth from tab files when the ntimes option is used, previously the tab data were dropped with a warning since they were not sliced consistently with the spectra (#51).

Internal Changes#

  • rmse now accepts a Dataset in the other argument.

  • The ndays and ntimes options of read_swans now share a common early-stopping reading loop so ndays also stops parsing each file once the requested period is read, and the two options can be combined with whichever limit is reached first stopping the reading. The ndays cutoff now keeps records up to the exact end of the period instead of the record nearest to it.

4.6.0 (2026-07-08)#

New Features#

  • New track partitioning method replacing ptm1_track, tracking wave systems in time from partitions produced by any of the ptm1, ptm2, ptm3 or hp01 methods (method argument, default "ptm1"). Wind-sea matching thresholds are applied to the leading wind sea partitions of each method (both wind seas in ptm2) and swell thresholds to the remaining ones; ptm3 partitions are unclassified so they are all matched with swell thresholds and wind inputs are not required.

  • The partition tracker now evaluates the time step for each pair of consecutive spectra, so records with gaps or irregular sampling use matching thresholds consistent with the actual time elapsed.

  • Candidate partition pairs are now matched globally in ascending order of their distance in frequency-direction space, making the tracking independent of partition ordering.

  • New systems option in the track method to remap the tracked partitions onto a wave_system dimension in place of part, so each tracked wave system occupies its own index and carries values along the entire time axis, null where the system does not exist. Systems spanning fewer time steps than min_duration can be excluded. The remapping is lazy on dask datasets and is also available as the standalone wave_systems function.

  • Rewritten hp01 partitioning method implementing the swell combining criteria of Hanson and Phillips (2001) and Hanson et al. (2009) from scratch. Swell partitions belonging to the same wave system are combined based on the saddle point between adjacent partitions (zeta), the separation between partition peaks relative to their spectral spread (kappa, renamed from k) and the angle between partition mean directions (angle_max). The criteria are evaluated on an adjacency graph of the watershed partitions with statistics recomputed after every merge and the strongest candidate pairs combined first, so results are independent of partition ordering; spectral variance is conserved throughout. Small partitions are merged onto their most connected neighbours based on the hs_min threshold or the optional Hanson and Phillips (2001) noise floor (noise_a, noise_b). The method supports prescribing an exact number of output partitions, with extra swells either combined or dropped.

  • Support swells=None (parts=None in ptm3) in all watershed partitioning methods, sizing the output part dimension from the largest number of partitions detected across all spectra by an extra counting pass over the data.

  • New awac, datawell and obscape engines for xr.open_dataset, completing the xarray backend registration of all wavespectra readers.

  • Binary wheels published for CPython 3.9-3.13 on Linux (x86_64, aarch64), macOS (x86_64, arm64) and Windows (amd64), so installing wavespectra no longer requires a C compiler.

Breaking Changes#

  • The ptm1_track method has been replaced by track (use method="ptm1" for the previous behaviour). The output variables have been renamed for clarity: part_id is now track_id and npart_id is now ntracks.

  • match_consecutive_partitions now takes per-partition threshold arrays and np_track_partitions / track_partitions take an nsea argument defining the number of leading wind sea partitions; times must be strictly increasing and wspd is only required when nsea > 0.

  • The experimental wstype argument of hp01 and the associated np_hp01_wseabins and np_hp01_wseafrac_wseabins variants have been removed; the wind sea is now always defined by the wind-sea fraction criterion as in ptm1. The k argument of hp01 has been renamed kappa and the internals of the hanson_and_phillips_2001 module have been rewritten, removing the previous helper functions. These changes are confined to the hp01 method, which was previously documented as under development.

Bug Fixes#

  • Fix DatawellBackendEntrypoint passing an unsupported filetype argument to read_datawell, which made xr.open_dataset(..., engine="datawell") unusable.

  • Fix silent corruption of watershed partitions for spectra that are not C-contiguous in memory, e.g. datasets stored with dims (..., dir, freq). The specpart C extension wrapper now converts any input dtype and memory layout at the boundary, matching the behaviour of the f2py wrapper around the pre-v4 Fortran code. Reported by daniel-caichac-DHI (GH142, PR160).

  • Fix intermittent deadlock when writing dask-backed spectra to netCDF in to_ww3 and to_netcdf by forcing the single-threaded dask scheduler during the write, avoiding cross-thread contention on the netCDF4/HDF5 global lock.

  • Fix as_site argument silently ignored when reading ERA5 spectra through the xarray backend entrypoint (xr.open_dataset(..., engine="era5", as_site=True)).

  • Fix wrong default upper direction bound dmax in the bbox partition method.

Internal Changes#

  • Rewrite the specpart C extension without global state, making it reentrant and thread-safe under dask’s threaded scheduler; release the GIL during computation, validate inputs, raise proper Python exceptions instead of exiting, and fix a memory leak. The rewritten kernel is verified to produce partition maps bit-identical to the pre-v4 Fortran implementation over 1420 comparison cases (see wavespectra/partition/specpart/ANALYSIS.md).

  • Run ruff linting and coverage reporting in CI; add pip caching and a per-test timeout so hanging tests fail fast with a traceback; remove the unused tox and flake8 configurations.

  • Clean up lint findings across the source and test suite; restore disabled test assertions (HP01 Hs conservation, peak_directional_spread) and fix Pierson-Moskowitz test tolerances that previously asserted nothing.

  • Documentation fixes: correct JONSWAP sigma_a/sigma_b values in the Zieger reconstruction page, fix broken imports in the reconstruction examples, remove the orphaned library page and enable sphinx.ext.napoleon so Google-style docstrings render properly in the API reference.

  • Report reader import failures with warnings.warn instead of printing to stdout, including the module name and the original error; new parity tests ensure every reader module keeps a top-level read_* function, a registered xarray engine and a backend signature consistent with its reader.

  • Reconcile the reader listings in the API documentation with the available readers (add missing read_awac, read_datawell, read_obscape and read_wavespectra entries, remove a duplicate).

4.5.1 (2026-06-27)#

Bug Fixes#

  • Clip energy to non-negative before the sqrt in the to_funwave and to_funwave_new writers so that tiny negative energy left by interpolation or rotation (float cancellation, ~1e-21) no longer produces NaN amplitudes.

4.5.0 (2026-06-16)#

New Features#

  • New to_funwave_new writer to save spectra as individual wave components in the format expected by the FUNWAVE-TVD WK_NEW_DATA2D wavemaker (WaveCompFile), supporting optional phases, direction clipping, 1D spectra and zip archives for multiple spectra.

  • New read_funwave_new reader to reconstruct gridded spectra from FUNWAVE-TVD WK_NEW_DATA2D wave component files, also available as the funwave_new engine in xr.open_dataset.

4.4.3 (2026-06-02)#

Bug Fixes#

  • Fix ValueError when reading SWAN spectra files with optional location names in the LONLAT/LOCATIONS header block by gaoflow (PR156)

Internal Changes#

  • Fix pandas 4 deprecation warning in NDBC ASCII reader by passing include=["object", "str"] to select_dtypes instead of bare object

4.4.2 (2025-10-30)#

Bug Fixes#

  • Replace np.trapzoid with scipy’s version in the awac reader to avoid issues with numpy 2.0 (PR152)

  • Fix broken cli tests

Internal Changes#

  • Add deepwiki badge

  • Remove incompatible autodoc dependency to support Python 3.11+

  • Address deprecation warnings

  • Several improvements to the README file

4.4.1 (2025-04-18)#

Bug Fixes#

  • Fix issue with writing coordinates to swan ascii file by Murex93 (PR150)

Internal Changes#

  • Replace np.trapz with np.trapzoid to remove deprecation warning

  • Set float64 dtype in time encoding when writing ww3 netcdf files to silence warning

  • Support Python 3.13

  • Drop support for Python 3.8

4.4.0 (2025-03-25)#

New Features#

  • Support ERA5 netcdf files from the new cds api which have different naming conventions.

  • New utils function to calculate a logarithmic frequency array.

  • Generalise the generation of the spectral coordinates in read_era5 to support different spectral grids, e.g., files from the operational ECMWF wave model.

Breaking Changes#

  • read_era5 no longer supports the freqs and dirs arguments. It now accepts f0 and df arguments, defaulting to 0.03453 and 1.1, respectively.

Internal Changes#

  • Update documentation to include missing util functions.

4.3.0 (2024-12-20)#

New Features#

  • New weight_coeff option in the ndbc readers to avoid negative energy density in the 2D spectra by lubyant (PR143).

4.2.1 (2024-11-26)#

Internal Changes#

  • Bug fixes to allow writing swan ascii files from spectra with no time or site dims.

4.2.0 (2024-11-13)#

Breaking Changes#

  • Remove dset_lons / dset_lats variables from the select methods. These variables were not necessary and were only defined to support some legacy chunking issues.

Internal Changes#

  • Support datasets with different coordinate names in the select module.

  • Support lons/lats specified as scalars in the SpecDataset.sel method.

  • Add new github workflow to test the package on push on different OS with different python versions.

4.1.1 (2024-09-18)#

Internal Changes#

  • Rename specpartc to specpart to try and fix inconsistencies in module definition.

4.1.0 (2024-09-09)#

New Features#

  • New reader for Nortec AWAC files by Ruben de Bruin (PR137).

  • New reader for Datawell buoy files (PR135).

  • Allow reading spotter buoy files as 2D spectra (PR134).

Internal Changes#

  • Changes to the csv and json spotter readers to optimise and standardise them.

4.0.3 (2024-06-19)#

Internal Changes#

  • Declare integers in specpart.c to fix compilation on macOS.

4.0.2 (2024-06-18)#

Internal Changes#

  • Changes to specpart.c to fix compilation on Windows by Sebastien Dealaux (PR130)

  • Fix sel tests that started to break after numpy 2.0 upgrade due to float precision.

  • Fix ncswan test that started to break after numpy 2.0 upgrade due to f5py error.

4.0.1 (2024-06-14)#

Bug Fixes#

  • Fix path of specpart data files so they are packaged properly.

4.0.0 (2024-06-14)#

This major release brings several new features and improvements including spectra construction capability, a new partitioning api and replacement of the fortran watershed algorithm with a new translated version in C freeing wavespectra from the fortran dependency. The release also includes new methods for spectral statistics, backend engines to open spectra files directly in xarray, and a new command line interface to convert between spectra file formats and create netcdf files with integrated spectral parameters from spectra files.

New Features#

Spectra construction#
Partitioning#
  • New partition api with several new methods:

    • ptm1

    • ptm2

    • ptm3

    • ptm4

    • ptm5

    • bbox

    • hp01

  • New method to track watershed partitions ptm1_track by Sebastien Dealaux (PR5).

Stats#
  • Method for non-linear gaussian fit in SpecArray by Paul Branson (PR3).

  • Methods to calculate stokes drift and the mean squared slope by Paul Branson (PR1).

  • Gaussian frequency width method gw in SpecArray.

  • Jonswap peak enhancement factor method gamma in SpecArray.

  • Jonswap fetch scaling coefficient method alpha in SpecArray.

  • Peak directional spread method dpspr in SpecArray.

  • Peak frequency method fp in SpecArray.

  • Root-mean-square wave height method hrms in SpecArray.

  • Root-mean-square error method rmse in SpecArray.

IO#
  • New xarray backend entrypoints for reading wavespectra datasets with xr.open_dataset.

  • New input function to read xwaves mat format.

  • New input function to read obscape buoy spectra by Ruben de Bruin. (PR116).

Command line interface#
  • New CLI to convert between spectra file formats.

  • New CLI to create netcdf file with integrated spectral parameters from spectra file.

  • New CLI to Partition and reconstruct spectra from file

Other#
  • New Spectra smoothing capability.

  • New method in SpecArray to rotate spectra.

Bug Fixes#

  • Fix reading of ndbc-type dataset in read_dataset.

  • Fix bug in the spec.split() method where direction slicing was not working correctly.

Internal Changes#

  • Watershed partitioning algorithm translated from fortran to C by Sebastien Dealaux (PR121). Fortran is no longer required to install wavespectra. This also fixes a problem with trying to install wavespectra in development mode.

  • SpecArray.partition now longer is a method but a namespace to access the different partitioning options.

  • Change ihmax default from 200 to 100 in specpart (in line with WAVEWATCHIII), options to redefine ihmax in the partition methods.

  • Allow reading WW3 and SWAN files without winds and depth available.

  • Optimised and simplified calculations in frequency and directional moments methods.

  • Rename SpecArray.dfarr as SpecArray.df.

  • wavenuma function now takes the cyclic frequency (Hz) instead of the angular frequency omega.

  • Ensure spectral attributes are defined in the interp method of SpecArray.

  • Make read_ndbc return 1D spectra if any of the directional variables are missing.

  • Support arbitrary kwargs in the read_dataset reader.

Deprecation#

  • Removed wavespectra.SpecArray.dfarr method, replaced by wavespectra.SpecArray.df.

  • Removed the unused wavespectra.core.utils.GAMMA lambda function.

  • Removed the deprecated SpecArray.partition() method; SpecArray.partition is now a new namespace to access the different partitioning options. The legacy partition method is now equivalent to spec.partition.ptm1() with the ihmax argument set to 200.

3.19.0 (2024-05-02)#

Internal Changes#

  • Remove numba dependency (PR122)

  • Remove other dependencies already installed by xarray.

3.18.0 (2024-02-01)#

New Features#

  • Support gzip writing in octopus writer and reader (PR110).

  • New option to set compression level when writing gzipped swan ascii file.

Internal Changes#

  • Gzipped swan ascii files are written with compresslevel=6 by default instead of 9.

  • Explicitly set text mode when reading / writing swan ascii files.

3.17.0 (2024-01-09)#

New Features#

  • Support ERA5 and NDBC netcdf file types in read_dataset reader.

  • Support datasets with no lat / lon variables when writing octopus and swan ascii. There is now an option to specify the coordinates manually or skip specifying them.

Internal Changes#

  • Stop relying on lon/lat coordinates in order to identify file types in read_dataset.

  • Ensure octopus writer can handle lon/lat defined as coordinates in dataset rather than data_vars.

  • Fix octopus writer to support datasets without site as a dimension.

  • Fix swan ascii writer for bug in cases where lon/lat are dimensions and site is not.

3.16.0 (2023-12-14)#

New Features#

  • Allow ignoring missing sites within tolerance in the nearest method (PR102).

Internal Changes#

  • Ensure at least one site is found in nearest method.

  • Ensure sites are returned in the same order as the input dataset in nearest method when the unique option is selected.

3.15.2 (2023-12-01)#

New Features#

  • Docker image based on ubuntu:22.04 built and push to github packages (PR100).

Internal Changes#

  • Stop pinning netcdf4, opendap issue seems to be fixed.

  • Remove numpy from pyproject.toml since numba installs specific versions (Fixes GH95)

  • Move content of tox.ini into pyproject.toml.

3.15.1 (2023-08-29)#

New Features#

Internal Changes#

  • Changes to all netcdf- and zarr-based, and some ascii-based reader functions to allow providing file objects. This allows reading from remote files without downloading them first, e.g. from Google Cloud Storage or AWS S3 by providing a fsspec file object. By Matthew Iannucci (PR92).

  • Replace deprecated date_parser argument in pandas.read_csv calls by date_format (GH90).

3.15.0 (2023-08-14)#

This release adds deprecation warnings to functions and modules that will be removed or redesigned in the next major release.

Bug Fixes#

  • Fix reading of gzipped swan ascii files.

Internal Changes#

  • Add deprecation warnings to prepare for the next major release.

3.14.0 (2023-07-03)#

Internal Changes#

  • Redefine packaging via pyproject.toml to conform to PEP517/518 (PR87).

  • All packaging metadata removed from setup.py and moved to pyproject.toml. The setup.py file is now only used to build the Fortran module.

  • Removed the MANIFEST.in file, package data now handled in pyproject.toml.

  • Removed the requirements folder, requirements now handled in pyproject.toml.

  • Removed some packaging attributes from wavespectra.__init__.py, now handled in pyproject.toml.

  • Replace docs the RTD by the PYDATA docs theme, this fixes issue with rtd not working with sphinx>=7.0.

  • Add readthedocs config.

3.13.0 (2023-01-09)#

New Features#

Bug Fixes#

  • Fix bug in 2D spectra construction in read_ndbc_ascii due to wrong scaling (GH70).

  • Ensure directions are continuous when reading from Funwave file with split directions.

Internal Changes#

  • New github action to test and publish package on new releases.

Deprecation#

  • Replace previous NDBC ASCII reader read_ndbc by read_ndbc_ascii.

3.12.1 (2022-10-27)#

Internal Changes#

3.12.0 (2022-08-19)#

New Features#

  • Improve installation section in the docs to mention pre-install requirements of numpy and Fortran compiler.

Bug Fixes#

  • Fix bug caused by fixed numpy version (PR72).

Internal Changes#

  • Import Fortran partition code inside function so the library can still be imported if the module does not build.

  • Remove Hypothesis from requirements.

3.11.0 (2022-05-04)#

New Features#

Bug Fixes#

  • Fix bug in direction calculation caused by changes in xr ufuncs (PR59).

  • Fix nrecs in test octopus file.

  • Fix to zarr testing by Ruben de Bruin (PR55).

Internal Changes#

  • Only interpolate with inverse distance weighting if 2 or more neighbour sites are found within tolerance (PR62).

  • Allow pathlib objects in read_swan (PR64).

  • Increase float precision in Octopus writer.

  • Make zarr, fsspec and gcsfs extra dependencies instead of default.

  • Remove get_mapper call from zarr opener.

3.10.0 (2021-08-21)#

New Features#

  • New option in read_triaxys to allow providing the magnitic declination to correct.

  • New spectral regridding capability by Ruben de Bruin. The function is wrapped in SpecArray.interp and SpecArray.interp_by which mimic the behaviour in the respective counterparts from xarray.

  • Replace plot api by a simple wrapper around xarray plotting capability. The new wrapper no longer duplicate internal functions from xarray and should better integrate any upstream changes. The new api also handles logarithmic axes and masking in a more natural way (PR48).

  • New Orcaflex export function by Ruben de Bruin (PR37).

  • New wavespectra.core.utils.unique_indices function (unique_times will be deprecated in future releases.

Bug Fixes#

  • Fix plot bug with the new plot api (GH44).

  • Fix bug in scale_by_hs when run on dask datasets.

Internal Changes#

  • Fixed sphinx-gallery dependency by by Ruben de Bruin (PR41).

  • Add new funwave functiont to docs.

  • Update authors list.

  • Allow pathlib objects in read_triaxys.

Deprecation#

  • Calling the plot kind as a method from SpecArray.plot, e.g. SpecArray.plot.contourf is deprecated with the new plotting api. Now kind needs to be provided as an argument.

  • Arguments show_radius_label and show_direction_label are deprecated from SpecArray.plot. Labels are no longer drawn as they fall on top of ticks. In order to show it the axes properties now must be manually defined from the axis.

  • Argument as_log10 from the old plot api to plot the log10(efth) is deprecated in the new api. Similar result can be achieved in the new api by manually converting efth before plotting.

  • Remove deprecated methods _strictly_increasing and _collapse_array and _twod.

  • Remove dfarr attribute from SpecArray, replaced by df.

  • Remove unused functions to_datetime and dnum_to_datetime.

  • The “mask” argument has been removed from SpecArray.sw method.

3.9.0 (2021-05-29)#

New Features#

3.8.1 (2021-04-06)#

Bug Fixes#

  • Add numba to setup.py, not installed properly from requirements/default.txt for some reason.

3.8.0 (2021-03-30)#

New Features#

  • Watershed partitioning now supports dask (PR27).

  • Spectral splitting now supports dask.

  • The following spectral parameters now support dask (PR11):
    • tp

    • dp

    • dpm

    • dspr

  • Wavespectra conda recipe by Ruben de Bruin.

Internal Changes#

  • Core watershed partitioning code organised into watershed module.

  • max_swells replaced by swells in watershed partition to return fixed number of swells.

  • Renamed module wavespectra.core.misc by wavespectra.core.utils.

  • Removed deprecated method _same_dims, _inflection and _product from SpecArray.

  • Get rid of simpy dependency.

  • New daskable stats defined as ufuncs using numba.

  • SpecArray attributes redefined as property methods.

Bug Fixes#

deprecation#

  • Drop support for python < 3.7

  • Dropped args hs_min and nearest in SpecArray.partition.

3.7.2 (2021-01-12)#

New Features#

  • Handle ndbc spectra files with no minutes column (PR25).

  • Writers to_swan and to_octopus now deal with extra non-supported dimensions.

Internal Changes#

  • Stop fixing pandas and xarray versions.

  • Remove attrdict dependency.

  • Define _FillValue in to_netcdf.

Bug Fixes#

  • Fix bug in sel with “nearest” option.

  • Ensure last time chunk is written in to_swan when the dataset time size is not divisible by ntime (GH24).

3.7.1 (2020-08-26)#

Internal Changes#

  • Optimise to_swan (over 100x improvements when writing very large spectra).

  • Optimise to_octopus (over 10x improvements when writing very large spectra).

  • Allow loading time chunks when writing swan and octopus files.

3.7.0 (2020-07-16)#

New Features#

  • New json reader and writer (PR21).

Internal Changes#

  • Raise exception when trying to compute directional methods on 1d, frequency spectra.

3.6.5 (2020-07-10)#

Bug Fixes#

  • Fix bug in sel methods.

3.6.4 (2020-06-29)#

Bug Fixes#

  • Ensure yml config is shipped with distribution.

3.6.3 (2020-06-28)#

Internal Changes#

  • Increase time resolution in netcdf outptu from to_netcdf.

3.6.2 (2020-06-28)#

Internal Changes#

  • Make netcdf packing work for datasets in zarr format.

3.6.1 (2020-06-28)#

Internal Changes#

  • Packing output netcdf files as int32 dtype by default.

3.6.0 (2020-06-27)#

New Features#

  • New method to construct spectra from NDBC buoy data (PR17).

  • New method to output spectra in native WW3 format.

Bug Fixes#

  • Fix bug with selecting circular longitudes in different conventions (GH20).

  • Ensure directions in coming-from convention in read_era5 (PR18).

  • Fix radian convertions in read_era5 (PR19).

  • Fix coordinate values assignment errors with xarray>=0.15.1 (GH16).

  • Ensure coordinates attributes are kept with certain readers.

deprecation#

  • Deprecated legacy read_ww3_msl reader.

  • Deprecated read_dictionary in favour of using xarray’s to_dict and from_dict methods.

Internal Changes#

  • Remove curly brackets from units.

  • Remove original variable attributes from files hidden with underscores (_units and _variable_name).

  • Remove xarray version limitation to <0.15.0.

3.5.3 (2020-04-14)#

Fix xarray version until breaking changes with 0.15.1 are taken care of.

Bug Fixes#

  • Avoid index duplication when merging datasets in to_octopus function.

Internal Changes#

  • Fix xarray at 0.15.0 for now as 0.15.1 introduces many breaking changes.

3.5.2 (2020-03-09)#

New Features#

3.5.1 (2019-12-12)#

Bug Fixes#

  • Import accessors within try block in __init__.py so install won’t break.

Internal Changes#

  • Implemented coveralls.

  • Added some more tests.

3.5.0 (2019-12-09)#

The first PyPI release from new wavespectra github organisation.

Breaking Changes#

  • Drop support for Python 2.

  • Drop support for Python < 3.6.

New Features#

  • Add method in SpecDataset accessor to plot polar wave spectra, api borrowed from xarray.

  • New sel method in SpecDataset accessor to select sites using different methods.

  • Support for zarr wave spectra datasets from either local or remote sources.

  • New read_spotter function to read spectra from Spotter file format, currently only reading as 1D.

  • Add read_dataset function to convert existing dataset from unknown file into SpecDataset.

  • Python Notebooks split into a new notebooks repository within the wavespectra organisation.

  • New branch pure-python with fortran watershed algorithm replaced by python. This code is ~3x slower than the fortran one but it is easier to install particularly if the system does not have fortran compiler. We will make an effort to keep this branch in sync with Master.

  • Redefined autodocs.

Bug Fixes#

  • Consolidate history to link to github commits from all contributors.

  • Fix error in partition with dask array not supportting item assignment.

  • Fix docs building, currently working from pure-python branch due to gfortran dependency.

Internal Changes#

  • Decouple file reading from accessor definition in input functions so existing datasets can be converted.

  • Compute method _twod lazily.

  • Replace drop calls to fix deprecation warnings.

  • Consolidate changelog in history file.

  • Building with travis and tox.

  • Adopt black code formatting.

  • Set up flake8.

3.4.0 (2019-03-28)#

The last PyPI release from old metocean github organisation.

New Features#

  • Add support to Python 3.

3.3.1 (2019-03-19)#

New Features#

  • Support SWAN Cartesian locations.

  • Support energy unit in SWAN ASCII spectra.

3.3.0 (2019-02-21)#

New Features#

  • Add dircap_270 option in read_swan.

Bug Fixes#

  • Ensure lazy computations in swe method.

Internal Changes#

  • Remove inplace calls that will deprecate in xarray.

3.2.5 (2019-01-25)#

Bug Fixes#

  • Ensure datasets are loaded lazily in read_swan and read_wwm.

3.2.4 (2019-01-23)#

Bug Fixes#

  • Fix tp-smooth bug caused by float32 dtype.

3.2.3 (2019-01-08)#

New Features#

  • Function read_triaxys to read spectra from TRIAXYS file format.

Bug Fixes#

  • Fix bug with frequency and energy units in read_wwm.

3.2.2 (2018-12-04)#

Bug Fixes#

  • Ensure dataset from swan netcdf has site coordinate.

3.2.1 (2018-11-14)#

New Features#

  • Function read_wwm to read spectra from WWM model format.

Bug Fixes#

  • Convert direction to degree in read_ncswan.

3.2.0 (2018-11-04)#

New Features#

  • Function read_ncswan to read spectra from SWAN netcdf model format.

Bug Fixes#

  • Ensure lazy computation in uv_to_spddir.

Internal changes#

  • Unify library PyPI release versions.

3.1.4 (2018-08-29)#

Bug Fixes#

  • Fix bug in read_swans when handling swan bnd files with ntimes argument.

3.1.3 (2018-07-27)#

Changes#

  • Use 10m convention in default wind standard names.

3.1.2 (2018-07-05)#

Changes#

  • Adjust default standard name for dm.

Bug Fixes#

  • Fix renaming option in stats method.

3.1.1 (2018-05-17)#

Bug Fixes#

New Features#

  • Allow choosing maximum number of partitions in partition method.

3.1.0 (2018-05-09)#

New Features#

  • Function to read spectra in cf-json formatting.

Bug Fixes#

  • Fix but in read_swan when files have no timestamp.

3.0.2 (2018-05-03)#

Bug Fixes#

  • Ensure data is not loaded into memory in read_ww3.

3.0.1 (2018-04-28)#

New Features#

  • Sphinx autodoc.

  • Method read_dictionary to define SpecDataset from python dictionary.

  • Set pytest as the testing framework and add several new testings.

  • Add notebooks.

Bug Fixes#

  • Get rid of left over freq coordinate in hs method.

  • Fix calculation in _peak method.

  • Stop misleading warning in tp method.

  • Fix to hs method.

Internal Changes#

  • Replace obsolete sort method by xarray’s sortby.

  • Falster calculation in tp.

  • Improvements to SpecDataset wrapper.

3.0 (2018-03-05)#

This major release marks the migration from the predecessor pyspectra library, as well as the open-sourcing of wavespectra and first PyPI release.

New Features#

  • Library restructured with plugins input / output modules .

  • New _peak method to return the true peak instead of the maxima.

  • Making reading functions available at module level.

Bug Fixes#

  • Ensure slicing won’t break due to precision (xarray bug).

Internal Changes#

  • Rename package.