_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#

3.16.0 (2023-12-06)#

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 (PR77).

  • 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 RubendeBruin (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 RubendeBruin. 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 RubendeBruin (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 RubendeBruin (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.

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 RubendeBruin.

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 (GH20).

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.