table: utilities for operations with tables
Code author: Peter Kraus
Provides convenience functions for operating with tables, including
combine_namespaces()
for combining ->
-separated
namespaces of values or chemicals into a single namespace;
combine_columns()
for combining individual columns
into a single column; set_uncertainty()
for
stripping or replacing uncertainties from data, and apply_linear()
and apply_inverse()
for applying linear corrections to
columns or namespaces.
Functions
|
Sums all entries within the provided namespace into one column, defined by |
|
Combines two namespaces into one, either summing or merging entries. |
|
Combines two columns into one, by summing or replacing missing elements. |
|
Allows for stripping or replacing uncertainties using absolute and relative values. |
|
Allows for applying linear functions / corrections to columns and namespaces. |
|
Allows for applying inverse linear functions / corrections to columns and namespaces. |
- dgpost.transform.table.sum_namespace(namespace: dict[str, Quantity], output: str = 'output', fillnan: bool = True, _inp: dict = {}) dict[str, Quantity]
Sums all entries within the provided namespace into one column, defined by
output
.- Parameters:
namespace – Namespace to be summed.
fillnan – Toggle whether
NaN
values within the columns ought to be treated as zeroes (whenTrue
) or asNaN
. Default isTrue
.output – Namespace of the returned dictionary. Defaults to
output
.
- dgpost.transform.table.combine_namespaces(a: dict[str, Quantity], b: dict[str, Quantity], conflicts: str = 'sum', output: str = None, fillnan: bool = True, chemicals: bool = False, _inp: dict = {}) dict[str, Quantity]
Combines two namespaces into one, either summing or merging entries.
Unit checks are performed, with the resulting units corresponding to the units in namespace
a
. By default, the output namespace is set toa
. Optionally, the keys in each namespace can be treated as chemicals instead of strings (i.e. “C2H6” and “ethane” would be summed / merged).- Parameters:
a – Namespace
a
.b – Namespace
b
.conflicts – Name resolution scheme. Can be either
"sum"
where conflicts are summed, or"replace"
, where conflicting values ina
are overwritten byb
.fillnan – Toggle whether
NaN
values within the columns ought to be treated as zeroes or asNaN
. Default isTrue
.chemicals – Treat keys within
a
andb
as chemicals, and combine them accordingly. Default isFalse
.output – Namespace of the returned dictionary. Defaults to the namespace of
a
.
- dgpost.transform.table.combine_columns(a: Quantity, b: Quantity, conflicts: str = 'sum', fillnan: bool = True, output: str = None, _inp: dict = {}) dict[str, Quantity]
Combines two columns into one, by summing or replacing missing elements.
Unit checks are performed, with the resulting units corresponding to the units in column
a
. By default, the output column is set toa
.- Parameters:
a – Column
a
.b – Column
b
.conflicts – Conflict resolution scheme. Can be either
"sum"
where the two columns are summed, or"replace"
, where values in columna
are overwritten by non-np.nan
values in columnb
.fillnan – Toggle whether
NaN
values within the columns ought to be treated as zeroes or asNaN
. Default isTrue
. Note thatconflicts="replace"
andfillnan="true"
will lead to allNaN``s in column ``a
to be set to zero.output – Namespace of the returned dictionary. By defaults to the name of column
a
.
- dgpost.transform.table.set_uncertainty(namespace: dict[str, Quantity] = None, column: Quantity = None, abs: Quantity | float = None, rel: Quantity | float = None, _inp: dict = {}) dict[str, Quantity]
Allows for stripping or replacing uncertainties using absolute and relative values. Can target either namespaces, or individual columns. If both
abs
andrel
uncertainty is provided, the higher of the two values is set. If neitherabs
norrel
are provided, the uncertainties are stripped.- Parameters:
namespace – The prefix of the namespace for which uncertainties are to be replaced or stripped. Cannot be supplied along with
column
.column – The name of the column for which uncertainties are to be replaced or stripped. Cannot be supplied along with
namespace
abs – The absolute value of the uncertainty. If units are not supplied, the units of the column/namespace will be used. If both
abs
andrel
areNone
, the existing uncertainties will be stripped.rel – The relative value of the uncertainty, should be in dimensionless units. If both
abs
andrel
areNone
, the existing uncertainties will be stripped.
- dgpost.transform.table.apply_linear(namespace: dict[str, Quantity] = None, column: Quantity = None, slope: Quantity | float = None, intercept: Quantity | float = None, nonzero_only: bool = True, minimum: Quantity | float = None, maximum: Quantity | float = None, output: str = 'output', _inp: dict = {}) dict[str, Quantity]
Allows for applying linear functions / corrections to columns and namespaces.
Given the linear formula, \(y = m \times x + c\), this function returns \(y\) calculated from the input, where \(m\) is the provided
slope
and \(c\) is the providedintercept
.The arguments
slope
andintercept
can be provided without units, in which case the units ofcolumn
ornamespace
are preserved. If units ofslope
andintercept
are provided, they have to be dimensionally consistent.The arguments
slope
andintercept
can be provided with uncertainties, in which case the uncertainty of the output value is calculated from linear uncertainty propagation.- Parameters:
namespace – The prefix of the namespace for which uncertainties are to be replaced or stripped. Cannot be supplied along with
column
.column – The name of the column for which uncertainties are to be replaced or stripped. Cannot be supplied along with
namespace
slope – The slope \(m\).
intercept – The intercept \(c\).
nonzero_only – Whether the linear function should be applied to nonzero values of \(x\) only, defaults to
True
.minimum – The minimum of the returned value. If the calculate value is below the minimum, the minimum is returned.
maximum – The maximum of the returned value. If the calculate value is above the maximum, the maximum is returned.
output – Name of the output column or the namespace of the output columns.
- dgpost.transform.table.apply_inverse(namespace: dict[str, Quantity] = None, column: Quantity = None, slope: Quantity | float = None, intercept: Quantity | float = None, nonzero_only: bool = True, minimum: Quantity | float = None, maximum: Quantity | float = None, output: str = 'output', _inp: dict = {}) dict[str, Quantity]
Allows for applying inverse linear functions / corrections to columns and namespaces.
Given the linear formula, \(y = m \times x + c\), this function returns \(x\), calculated from the input, i.e. \(x = (y - c) / m\), where \(m\) is the provided
slope
and \(c\) is the providedintercept
.The arguments
slope
andintercept
can be provided without units, in which case the units ofcolumn
ornamespace
are preserved. If units ofslope
andintercept
are provided, they have to be dimensionally consistent.The arguments
slope
andintercept
can be provided with uncertainties, in which case the uncertainty of the output value is calculated from linear uncertainty propagation.- Parameters:
namespace – The prefix of the namespace for which uncertainties are to be replaced or stripped. Cannot be supplied along with
column
.column – The name of the column for which uncertainties are to be replaced or stripped. Cannot be supplied along with
namespace
slope – The slope \(m\).
intercept – The intercept \(c\).
nonzero_only – Whether the linear function should be applied to nonzero values of \(x\) only, defaults to
True
.minimum – The minimum of the returned value. If the calculate value is below the minimum, the minimum is returned.
maximum – The maximum of the returned value. If the calculate value is above the maximum, the maximum is returned.
output – Name of the output column or the namespace of the output columns.