METAS B LEAST is a Python implementation of the B LEAST program of the ISO 6143:2001 norm. The derivations of the different fit functions have been explicitly programmed, see metas_b_lest.py. The program has been verified against METAS UncLib which is using automatic differentiation.
The following link will launch an interactive Python environment where you can you use METAS B LEAST:
Take a look at the following code example for the usage of the METAS B LEAST Python package:
from metas_b_least import *
# Calibration and measurement data
cal_data = b_read_cal_data(os.path.join(data_dir, 'b_least_1_data_cal.txt'))
meas_data = b_read_meas_data(os.path.join(data_dir, 'b_least_1_data_meas.txt'))
b_disp_cal_data(cal_data)
# Fit coefficients of the fit function using the calibration data
b, b_cov, b_res = b_least(cal_data, b_linear_func)
b_disp_cal_results(b, b_cov, b_res)
# Evaluate the fit function with the coefficients at the measurement data
x, x_cov = b_eval(meas_data, b, b_cov, b_linear_func)
b_disp_meas_results(x, x_cov, meas_data)
# Plot calibration data, measurement data and fit function
b_plot(cal_data, meas_data, b, b_cov, b_linear_func)
See as well the following Jupyter Notebooks:
b_read_cal_data reads calibration data from tabular separated text file where the first column are the x
values, the second column are the standard uncertainties of x
, the third column are the y
values and the forth column are the standard uncertainties of y
.
b_read_meas_data reads measurement data from tabular separated text file where the first column are the y
values and the second column are the standard uncertainties of y
.
b_least fits the coefficients b
of the fit function func
using the calibration data cal_data
.
b_eval evaluates the fit function func
with the coefficients b
at the measurement data meas_data
.
The following fit functions are available:
Name | Function |
---|---|
b_linear_func | $$x = b_0 + b_1y$$ |
b_second_order_poly | $$x = b_0 + b_1y + b_2y^2$$ |
b_third_order_poly | $$x = b_0 + b_1y + b_2y^2 + b_3y^3$$ |
b_power_func | $$x = b_0 + b_1y^{(1 + b_2)}$$ |
b_exp_func | $$x = b_0 + b_1e^{b_2y}$$ |
b_disp_cal_data displays the calibration data cal_data
.
b_disp_cal_results displays the coefficients b
, the uncertainties of b
, the covariance matrix of b
, the residual and the maximum absolute value of weighted deviations.
b_disp_meas_results displays the measurement data x
and meas_data
.
b_plot plots the calibration data cal_data
, the measurement data meas_data
and the fit function using the coefficients b
.
https://github.com/wollmich/metas-b-least/
https://pypi.org/project/metas-b-least/
Michael Wollensack METAS - 19.11.2024