anaflow.tools.mean.annular_gmean

annular_gmean(func, val_arr, ann_dim=2, arg_dict=None, **kwargs)[source]

Calculating the annular geometric mean.

Calculating the annular geometric mean of a radial symmetric function for given consecutive radii defining annuli by the following formula

\[\varphi_i=\exp\left(\frac{d}{r_{i+1}^d-r_i^d} \intop^{r_{i+1}}_{r_i} r^{d-1}\cdot \ln(\varphi(r))\, dr \right)\]
Parameters
  • func (callable) – Function that should be used (\(\varphi\) in the formula). The first argument needs to be the radial variable: func(r, **kwargs)

  • val_arr (numpy.ndarray) – Radii defining the annuli.

  • ann_dim (float, optional) – The dimension of the annuli. Default: 2.0

  • arg_dict (dict or None, optional) – Keyword-arguments given as a dictionary that are forwarded to the function given in func. Will be merged with **kwargs. This is designed for overlapping keywords in annular_gmean and func. Default: None

  • **kwargs – Keyword-arguments that are forwarded to the function given in func. Will be merged with arg_dict

Returns

Array with all calculated geometric means

Return type

numpy.ndarray

Raises
  • ValueError – If func is not callable.

  • ValueError – If val_arr has less than 2 values.

  • ValueError – If val_arr is not sorted in incresing order.

Notes

If the last value in val_arr is “inf”, the given function should provide a value for “inf” as input: func(float("inf"))

Examples

>>> f = lambda x: x**2
>>> annular_gmean(f, [1,2,3])
array([ 2.33588885,  6.33423311])