WaveVal: Wave Model Validation

ResourceCode WaveVal Output.

What is WaveVal?

The WaveVal software package was developed to support the validation of the ResourceCode waves hindcast database against the CMEMS In Situ TAC multi-year wavebuoy data archive. The waves hindcast database was generated using WaveWatch III, and covers the European Shelf waters for the period from 1994 to 2020. The ResourceCode web site is the front-end portal providing access to the hindcast data and a set of data analysis tools.

The validation data generated by the WaveVal package are limited to the following subset of the integerated wave parameters:

Wave Parameter

Description

\(H_{m0}\)

Significant wave height

\(T_p\)

Peak wave period

\(T_{m02}\)

Mean zero-crossing period

\(\theta_p\)

Peak wave direction

\(\theta_{sp}\)

Peak wave directional spreading

Validation metrics are provided in the form of monthly statistical measures of the differences between overlapping time series of the modelled and observed integrated wave parameters. The metrics used are:

Metric

Description

\(R\)

Pearson Correlation Coefficient

\(MB\)

Mean Bias

\(NMB\)

Normalised Mean Bias

\(MAE\)

Mean Absolute Error

\(NMAE\)

Normalised Mean Absolute Error

\(RMSE\)

Root-Mean-Square Error

\(NRMSE\)

Normalised Root-Mean-Square Error

\(SI\)

Scatter Index

Separate functions are provided to calculate the above validation metrics for circular variables (e.g. wave direction).

The validation process is described on the Validation workflow information page, and examples of using the tools are given on the Examples information page.

Full source code is available from the GitLab repository held at The University of Edinburgh.

While WaveVal is still under development, users should pull the newest code from the GitLab repository regularly. If you have installed the package using the instructions below, you should not need to re-install after pulling new code.

WaveVal is still under development and is intended to be a research tool, not production-level code. Please submit questions as GitLab issues if you encounter unexpected behaviour or need help using WaveVal. As of the current release, basic functionality is complete and has been tested.

Installation

First, pull down the current source code from GitLab either by downloading a zip file or using git clone.

Included in the repository is an environment.yml file that can be used to build a conda environment for installing the WaveVal package. To build the conda environment in an Anaconda shell change to the WaveVal directory where the source code has be downloaded, then run the command:

conda env create -f environment.yml

This will build a conda environment called wavevalenv. To check that the environment has been built use:

conda env list

The environment wavevalenv should be in the list.

To activate this environment use:

conda activate wavevalenv

The WaveVal`_ package is install from the from the command line as follows: while in the main WaveVal directory, use the command:

pip install -e .[waveval]

The -e flag signals developer mode, meaning that if you update the code from Gitlab, your installation will automatically take those changes into account without requiring re-installation. Some other essential packages used in WaveVal may be installed if they do not exist in your system or environment.

If you encounter problems with the above install method, you may try to install dependencies manually before installing WaveVal. First, ensure you have a recent version of Python (greater than 3.5). Then, install packages numpy, scipy, matplotlib, netCDF4, and cartopy.

Information Pages

WaveVal Package Content

Indices and tables