Source code for ewoksid02.utils.mathutils
import numexpr
import numpy
[docs]
def get_variance_from_sigma(
dataset_sigma: numpy.ndarray, Dummy: float = 0.0
) -> numpy.ndarray:
return numexpr.evaluate("where(dataset_sigma <= 0.0, Dummy, dataset_sigma ** 2)")
[docs]
def is_dataset(dataset: numpy.ndarray) -> bool:
if dataset is None:
return False
if isinstance(dataset, numpy.ndarray):
if dataset.size == 0:
return False
return True
[docs]
def calculate_dataset_variance(
dataset_signal: numpy.ndarray,
variance_formula: str = None,
dark: numpy.ndarray = None,
):
if not variance_formula:
return
variance_function = numexpr.NumExpr(
variance_formula, [("data", numpy.float64), ("dark", numpy.float64)]
)
dataset_variance = variance_function(dataset_signal, 0 if dark is None else dark)
return dataset_variance