Validation
This module contains the functions for calculating parameter based validation statistics for
a set of matchup records.
- Dependencies [External]:
os, scipy, numpy, copy
- Dependencies [Internal]:
waveval.ModelData, waveval.ObsData, waveval.MatchUpDatabase, waveval.Geometry
-
Validation.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
-
Validation.calculate_circular_metrics(model, obs, nsampl, degrees=True)[source]
Calculate circlar validation metrics for a pair of modelled and observation time series
-
Validation.calculate_metrics(model, obs, nsampl)[source]
Calculate standard validation metrics for a pair of modelled and observation time series
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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 erro (circ)nrmse as a percentage
- Return type:
float
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.display_tabulated_results(store, mVarName)[source]
Display validation results as a table on the standard output
Extract model output for a specified variable
Extract in situ buoy data for a specified data foramt and variable
-
Validation.getSurfaceIndx(record, dataFmt)[source]
Get index of surface layer in depth data
-
Validation.getVarName(record, Options: list)[source]
Get variable names based on processsing options list
-
Validation.initialize_results()[source]
Initialise a dictionary for collecting validation results
-
Validation.load_binary_results(platform, mVarName, datapath)[source]
load binary results from a matlab file
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.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
-
Validation.process_record(rec, buoyFmt: str, platform: str, mVarName: str, varOptions: list, pVarName: str, results_dir: str, angularData=False, plot_results=False)[source]
Process a matched model/buoy data record
-
Validation.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
-
Validation.results_record(modelFileName, obsFileName, obsVarName, year, month, metrics)[source]
Create results recod from calculated validation metrics
-
Validation.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
-
Validation.save_cleaned_ts_data(t, rscd, buoy, platform, mVarName, outpath, year, month)[source]
Save cleaned matched model and buoy timeseries as a matlab *.mat binary file
-
Validation.save_tabulated_results(store, platform, mVarName, outpath)[source]
Save tabulated validation results as an ASCII file
-
Validation.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
-
Validation.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
-
Validation.store_valid_results(store, results)[source]
Store validation results record in the results dictionary
-
Validation.time_interpolate_obs(t_obs, t_var, t_model)[source]
Interpolation of observation data onto the model output timestamps
-
Validation.validate_records(records, dataFmt: str, platform: str, mVarName: str, varOptions: list, pVarName, results_dir, plot_results=False)[source]
Process a set of matched model/buoy data records