The wind_validation.validation.validate() method operates on wind statistics in one of the formats that the windkit package is using. These are windkit.time_series_wind_climate, windkit.binned_wind_climate or windkit.weibull_wind_climate.

wind_validation.validation.validate(obs: xarray.core.dataset.Dataset, mod: xarray.core.dataset.Dataset, dtype: Optional[str] = None, stats: str = 'basic', metrics: str = 'basic', **kwargs) xarray.core.dataset.Dataset[source]

Function to validate modelled wind data against observations.

The validation calculates “stats” and “metrics” and outputs them as the results.

Stats are calculated on the modelled and observed data seperately. An example is the mean of the wind speed or the variance of the wind direction.

Metrics are measures that are calculated between the observed and modelled wind data. This can be for example the pearson correlation coefficient, the mean absolute error, and the mean wind direction error.

The data variables in the output xr.dataset are named with the convention obs_VARIABLE_STATISTIC for observations and mod_VARIABLE_STATISTIC for modelled data. The metrics are labelled as VARIABLE_METRIC.

  • obs (xarray.Dataset) – Observed and modelled data to validate.

  • mod (xarray.Dataset) – Observed and modelled data to validate.

  • dtype (str, optional) – Explicitely state the data format. Possible options: ts, hist, weib. By default None.

  • stats (str or list, optional) –

    Stats to be calculated.

    str: if a string is used, it should the name of a suite of stats.

    the available suites and their included stats are:

    • wind speed mean

    • wind speed standard deviation

    • wind direction circular mean

    • wind direction circular standard deviation

    • etc.

    • every available stat (see documentation for stats)

    If a list is used, it must contain tuples in a form of: (‘variable’, ‘stat’). For example: [(‘wind_speed’, ‘mean’), (‘power_density’, ‘mean’), …]. All available option can be found under the respective format folder in the file.

  • metrics (str or list, optional) –

    Metrics to be calculated.

    metrics suites are:

    • wind speed pearson correlation coefficient

    • wind speed spearman correlation coefficient

    • wind speed coefficient of determination

    • wind speed mean error

    • wind speed root-mean-square error

    • wind speed mean-absolute error

    • wind speed mean-absolute-percentage error

    • wind direction circular mean error

    • wind direction circular mean-absolute error

    • every available metric (see documentation for metrics)

    If a list is used, it must contain tuples in a form of: ((‘variable’,’stat’), ‘metric’). For example: [((‘wind_speed’, ‘mean’), ‘me’), ((‘power_density’, ‘mean’), ‘mpe’)]. All available option can be found under the respective format folder in the file.

  • dim (str, optional) – Dimension to calculate timeseries stats and metrics along. By default dim is “time”. It’s important to note that this is only applicable to timeseries data.

  • by (numpy.array or xarray.DataArray, optional) – Optional grouper-array to calculate stats and metrics in groups based on the unique values in the array.


Validation results of stats and metrics.

Return type



ValueError – Raises this in case the automatic inference of data format from “hist”, “ts”, “weib” is unsuccessful, a user should provide it manually in this case.


>>> results = validate(obs, mod, stats='all', metrics='all')