Source code for microcalorimetry.math.trig
"""Module for trigonometry analysis functions."""
import xarray as xr
import numpy as np
[docs]
def angle_diff(phase1: xr.DataArray, phase2: xr.DataArray, deg=False) -> xr.DataArray:
"""
Calculate the minimum difference between two angles.
Parameters
----------
angle1 : xr.DataArray
Phase array 1 in radians or deg.
angle2 : xr.DataArray
Phase array 1 in radians or deg.
deg: bool, optional
If true, calculates in degrees
Returns
-------
out : xr.DataArray
Phase difference between two angles.
"""
const = np.pi
if deg:
const = 180
diff = (phase1 - phase2).values
diff[diff > const] -= 2 * const
diff[diff < -const] += 2 * const
# return the minimum possible phase difference
out = phase1.copy()
out.values = diff
return out