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.
- Remove numba dependency (PR122)
- Remove other dependencies already installed by xarray.
- Support gzip writing in octopus writer and reader (PR110).
- New option to set compression level when writing gzipped swan ascii file.
- Gzipped swan ascii files are written with compresslevel=6 by default instead of 9.
- Explicitly set text mode when reading / writing swan ascii files.
- 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.
- 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.
- Allow ignoring missing sites within tolerance in the nearest method
(PR102).
- 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.
- Docker image based on ubuntu:22.04 built and push to github packages (PR100).
- 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.
- New reader read_ww3_station for WW3 stations spectral files from GFS / NOAA by Matthew Iannucci (PR92).
- 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).
This release adds deprecation warnings to functions and modules that will be removed or redesigned in the next major release.
- Fix reading of gzipped swan ascii files.
- Add deprecation warnings to prepare for the next major release.
- 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.
- Support for CSV Spotter files in read_spotter by by ryancoe (PR77).
- New reader read_ndbc for NDBC netcdf datasets (PR80).
- 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.
- New github action to test and publish package on new releases.
- Replace previous NDBC ASCII reader read_ndbc by read_ndbc_ascii.
- Fix numpy pre-install requirement by cmichelenstrofer (PR75).
- Improve installation section in the docs to mention pre-install requirements of numpy and Fortran compiler.
- Fix bug caused by fixed numpy version (PR72).
- Import Fortran partition code inside function so the library can still be imported if the module does not build.
- Remove Hypothesis from requirements.
- New reader for Octopus file format by RubendeBruin (PR65).
- 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).
- 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.
- 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.
- Fix plot bug with the new plot api (GH44).
- Fix bug in scale_by_hs when run on dask datasets.
- Fixed sphinx-gallery dependency by by RubendeBruin (PR41).
- Add new funwave functiont to docs.
- Update authors list.
- Allow pathlib objects in read_triaxys.
- 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.
- Funwave spectra reader read_funwave (PR36).
- Funwave spectra writer to_funwave (PR36).
- Add numba to setup.py, not installed properly from requirements/default.txt for some reason.
- 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.
- 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.
- Drop support for python < 3.7
- Dropped args hs_min and nearest in SpecArray.partition.
- Handle ndbc spectra files with no minutes column (PR25).
- Writers to_swan and to_octopus now deal with extra non-supported dimensions.
- Stop fixing pandas and xarray versions.
- Remove attrdict dependency.
- Define _FillValue in to_netcdf.
- 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).
- 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.
- New json reader and writer (PR21).
- Raise exception when trying to compute directional methods on 1d, frequency spectra.
- Fix bug in sel methods.
- Ensure yml config is shipped with distribution.
- Increase time resolution in netcdf outptu from to_netcdf.
- Make netcdf packing work for datasets in zarr format.
- Packing output netcdf files as int32 dtype by default.
- New method to construct spectra from NDBC buoy data (PR17).
- New method to output spectra in native WW3 format.
- 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.
- Deprecated legacy read_ww3_msl reader.
- Deprecated read_dictionary in favour of using xarray's to_dict and from_dict methods.
- 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.
Fix xarray version until breaking changes with 0.15.1 are taken care of.
- Avoid index duplication when merging datasets in to_octopus function.
- Fix xarray at 0.15.0 for now as 0.15.1 introduces many breaking changes.
- New method read_era5 to read spectra in ERA5 format by John Harrington.
- New method read_wavespectra to read files already in wavespectra convention.
- Import accessors within try block in __init__.py so install won't break.
- Implemented coveralls.
- Added some more tests.
The first PyPI release from new wavespectra github organisation.
- Drop support for Python 2.
- Drop support for Python < 3.6.
- 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.
- 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.
- 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.
The last PyPI release from old metocean github organisation.
- Add support to Python 3.
- Support SWAN Cartesian locations.
- Support energy unit in SWAN ASCII spectra.
- Add dircap_270 option in read_swan.
- Ensure lazy computations in swe method.
- Remove inplace calls that will deprecate in xarray.
- Ensure datasets are loaded lazily in read_swan and read_wwm.
- Fix tp-smooth bug caused by float32 dtype.
- Function read_triaxys to read spectra from TRIAXYS file format.
- Fix bug with frequency and energy units in read_wwm.
- Ensure dataset from swan netcdf has site coordinate.
- Function read_wwm to read spectra from WWM model format.
- Convert direction to degree in read_ncswan.
- Function read_ncswan to read spectra from SWAN netcdf model format.
- Ensure lazy computation in uv_to_spddir.
- Unify library PyPI release versions.
- Fix bug in read_swans when handling swan bnd files with ntimes argument.
- Use 10m convention in default wind standard names.
- Adjust default standard name for dm.
- Fix renaming option in stats method.
- Allow choosing maximum number of partitions in partition method.
- Function to read spectra in cf-json formatting.
- Fix but in read_swan when files have no timestamp.
- Ensure data is not loaded into memory in read_ww3.
- Sphinx autodoc.
- Method read_dictionary to define SpecDataset from python dictionary.
- Set pytest as the testing framework and add several new testings.
- Add notebooks.
- 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.
- Replace obsolete sort method by xarray's sortby.
- Falster calculation in tp.
- Improvements to SpecDataset wrapper.
This major release marks the migration from the predecessor `pyspectra`** library, as well as the open-sourcing of wavespectra and first PyPI release.**
- 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.
- Ensure slicing won't break due to precision (xarray bug).
- Rename package.