- qspec.inverse_doppler ( f_atom , f_lab , alpha , mode = 'raise-raise' , return_mask = False )[source]
The velocity $$\begin{aligned}v &= \frac{c}{s}\left[\cos(\alpha) \pm (f_\mathrm{atom}/f_\mathrm{lab})\sqrt{s - 1}\right]\\[2ex] s &= (f_\mathrm{atom}/f_\mathrm{lab})^2 + \cos(\alpha)^2\end{aligned}.$$ For angles $-\pi/2 < \alpha < \pi/2$, there can be two solutions. Depending on the combination of
f_atom,f_labandalpha, the situation may be physically impossible. Specifymodeto choose the desired behavior.- Parameters:
-
- f_atomarray_like
The frequency of light $f_\mathrm{atom}$ in the atom's rest frame (arb. units).
- f_labarray_like
The frequency of light $f_\mathrm{lab}$ in the laboratory frame ([
f_atom]).- alphaarray_like
The angle $\alpha$ between the velocity- and the light-vector in the laboratory frame (rad).
- modestr
The mode how to handle
nanvalues and ambiguous velocities. Available options are:-
"raise-raise": Raise an error if there arenanvalues or if the velocity is ambiguous. -
"raise-small": Raise an error if there arenanvalues and return the smaller velocity. -
"raise-large": Raise an error if there arenanvalues and return the larger velocity. -
"isnan-raise": Ignorenanvalues and raise an error if the velocity is ambiguous. -
"isnan-small": Ignorenanvalues and return the smaller velocity. -
"isnan-large": Ignorenanvalues and return the larger velocity.
-
- return_maskbool
Whether the mask where the velocity is ambiguous is returned as a second argument.
- Returns:
-
- vndarray | tuple[ndarray, ndarray]
The velocity $v$ required to shift
f_labtof_atom. Optionally returns the mask where the velocity is ambiguous (m/s).
- Raises:
-
- ValueError
modemust be"raise-raise","raise-small","raise-large","isnan-raise","isnan-small", or"isnan-large". For additionally raised errors, see the description of themodeparameter.