fastwater.general.statsTools module

Tools to calculate statisitcal parameters for model validation.

fastwater.general.statsTools.bias(model, obs)[source]

Validation Metric: Bias

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

bias (b)

Return type

float

fastwater.general.statsTools.circ_corr(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Correlation Coefficient

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular correlation coefficient (c_corr)

Return type

float

fastwater.general.statsTools.circ_goodness_of_fit(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Goodness-of-fit

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular goodness-of-fit R2

Return type

float

fastwater.general.statsTools.circ_mean(theta, degrees=True)[source]

Calculate mean of angular data for range (-180 to 180)

Parameters
  • theta (numpy.array, float) – vector of angular values.

  • degrees (bool, optional) – angular data units flag. The default is degrees = True.

Returns

mean_theta – mean of the angular data in same units as passed in.

Return type

float

fastwater.general.statsTools.circ_mean_abs_error(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Mean absolute error

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular mean absolute error (mae)

Return type

float

fastwater.general.statsTools.circ_mean_bias(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Mean Bias

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular mean bias (mb)

Return type

float

fastwater.general.statsTools.circ_mod_pi(theta)[source]

Fix angular range in radians to -pi <= theta <= pi

Parameters

theta (numpy.array, float) – vector of angular values in radians

Returns

theta in range -pi to pi

Return type

numpy.array, float

fastwater.general.statsTools.circ_norm_ma_error(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Normalised mean absolute error

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular normalised mean absolute error (mae) as a percentage.

Return type

float

fastwater.general.statsTools.circ_norm_mean_bias(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Normalised mean Bias

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular normalised mean bias (nmb) as a percentage

Return type

float

fastwater.general.statsTools.circ_norm_rmse(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Normalised root-mean-square error

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular normalised RMS error (circ)nrmse as a percentage

Return type

float

fastwater.general.statsTools.circ_rms_error(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Root-mean-square error

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular RMS error (circ_rmse)

Return type

float

fastwater.general.statsTools.circ_scatter_index(theta1, theta2, degrees=True)[source]

Validation Metric (Circular): Scatter index

Parameters
  • theta1 (numpy.array,float) – vector of angular data (modelled)

  • theta1 – vector of angualr data (observed)

  • degrees (bool) – angular data units flag. The default is degrees = True

Returns

circular scatter index (circ_si)

Return type

float

fastwater.general.statsTools.circ_std(theta, degrees=True)[source]

Calculate standard deviation of angular data for range (-180 to 180)

Parameters
  • theta (numpy.array, float) – vector of angular values.

  • degrees (bool, optional) – angular data units flag. The default is degrees = True.

Returns

std_theta – stanadrd deviation of the angular data in same units as passed in.

Return type

float

fastwater.general.statsTools.corr_coef(model, obs)[source]

Validation Metric: Correlation Coefficient

Parameters
  • model (numpy.array, float) – model data time series

  • floatobs (numpy.array,) – observation time series mapped onto model time stamps

Returns

correlation coefficient (R)

Return type

float

fastwater.general.statsTools.display_metrics(metrics, paramName, testName=None)[source]

Display validation results as a table on the standard output

fastwater.general.statsTools.goodness_of_fit(model, obs)[source]

Validation Metric: Goodness-of-fit

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

R2

Return type

float

fastwater.general.statsTools.initialize_results()[source]

Initialise a dictionary for collecting validation results

fastwater.general.statsTools.mean_absolute_error(model, obs)[source]

Validation Metric: Mean absolute error

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

mae

Return type

float

fastwater.general.statsTools.mean_bias(model, obs)[source]

Validation Metric: Mean Bias

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

mb

Return type

float

fastwater.general.statsTools.model_efficiency(model, obs)[source]

Validation Metric: Model efficiency

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

mef

Return type

float

fastwater.general.statsTools.norm_ma_error(model, obs)[source]

Validation Metric: Normalised mean absolute error

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

nmae

Return type

float

fastwater.general.statsTools.norm_mean_bias(model, obs)[source]

Validation Metric: Normalised mean bias

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

nmb

Return type

float

fastwater.general.statsTools.norm_rmse(model, obs)[source]

Validation Metric: Normalised root-mean-square error

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

nrmse

Return type

float

fastwater.general.statsTools.reliability_index(model, obs)[source]

Validation Metric: Reliability index

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

ri

Return type

float

fastwater.general.statsTools.rms_error(model, obs)[source]

Validation Metric: Root-mean-square error

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

rmse

Return type

float

fastwater.general.statsTools.save_results(store, prefix, paramName, outpath)[source]

Save tabulated validation results as an ASCII file

fastwater.general.statsTools.scatter_index(model, obs)[source]

Validation Metric: Scatter index

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

si

Return type

float

fastwater.general.statsTools.skill_score(model, obs)[source]

Validation Metric: Skill score

Parameters
  • model (numpy.array, float) – model data time series

  • obs (numpy.array, float) – observation time series mapped onto model time stamps

Returns

ss

Return type

float

fastwater.general.statsTools.stats_metrics(model, obs, varName)[source]

Calculate standard validation metrics for a pair of modelled and observation time series

fastwater.general.statsTools.stats_metrics_circular(model, obs, varName, degrees=True)[source]

Calculate circlar validation metrics for a pair of modelled and observation time series

fastwater.general.statsTools.store_results(store, results)[source]

Store validation results record in the results dictionary