rm_lite.utils.spectra ===================== .. py:module:: rm_lite.utils.spectra .. autoapi-nested-parse:: Physical Burn channel spectra: rad/m^2 units with a polarisation angle. Attributes ---------- .. autoapisummary:: rm_lite.utils.spectra.ComponentKind Functions --------- .. autoapisummary:: rm_lite.utils.spectra._burn_envelope rm_lite.utils.spectra._rotation rm_lite.utils.spectra.faraday_gaussian_spectrum rm_lite.utils.spectra.faraday_simple_spectrum rm_lite.utils.spectra.faraday_slab_spectrum Module Contents --------------- .. py:function:: _burn_envelope(kind: ComponentKind, lambda_sq_arr_m2: numpy.typing.NDArray[numpy.float64], width_radm2: float, sigma_rm_radm2: float = 0.0) -> numpy.typing.NDArray[numpy.complex128] Burn depolarisation factor in physical rad/m^2 units (no rotation, no amp). `width_radm2` is the Gaussian sigma (gauss), the full Faraday depth (slab and turbulent), or unused (delta); `sigma_rm_radm2` is the turbulent RM scatter. A Faraday-thin point returns unity. .. py:function:: _rotation(lambda_sq_arr_m2: numpy.typing.NDArray[numpy.float64], psi0_deg: float, rm_radm2: float) -> numpy.typing.NDArray[numpy.complex128] Faraday rotation phase e^{2i(psi0 + RM lambda^2)}. .. py:function:: faraday_gaussian_spectrum(lambda_sq_arr_m2: numpy.typing.NDArray[numpy.float64], frac_pol: float, psi0_deg: float, rm_radm2: float, sigma_rm_radm2: float) -> numpy.typing.NDArray[numpy.complex128] External-dispersion channel Q + iU: Gaussian RM scatter sigma_rm_radm2. :param lambda_sq_arr_m2: Channel lambda^2 in m^2. :type lambda_sq_arr_m2: NDArray[np.float64] :param frac_pol: Polarised fraction. :type frac_pol: float :param psi0_deg: Intrinsic polarisation angle in degrees. :type psi0_deg: float :param rm_radm2: Central RM in rad/m^2. :type rm_radm2: float :param sigma_rm_radm2: Faraday dispersion sigma in rad/m^2. :type sigma_rm_radm2: float :returns: Channel Q + iU. :rtype: NDArray[np.complex128] .. py:function:: faraday_simple_spectrum(lambda_sq_arr_m2: numpy.typing.NDArray[numpy.float64], frac_pol: float, psi0_deg: float, rm_radm2: float) -> numpy.typing.NDArray[numpy.complex128] Faraday-thin channel Q + iU: a single RM, flat polarised fraction. :param lambda_sq_arr_m2: Channel lambda^2 in m^2. :type lambda_sq_arr_m2: NDArray[np.float64] :param frac_pol: Polarised fraction. :type frac_pol: float :param psi0_deg: Intrinsic polarisation angle in degrees. :type psi0_deg: float :param rm_radm2: RM in rad/m^2. :type rm_radm2: float :returns: Channel Q + iU. :rtype: NDArray[np.complex128] .. py:function:: faraday_slab_spectrum(lambda_sq_arr_m2: numpy.typing.NDArray[numpy.float64], frac_pol: float, psi0_deg: float, rm_radm2: float, delta_rm_radm2: float) -> numpy.typing.NDArray[numpy.complex128] Burn slab channel Q + iU: Faraday-thick, full thickness delta_rm_radm2. :param lambda_sq_arr_m2: Channel lambda^2 in m^2. :type lambda_sq_arr_m2: NDArray[np.float64] :param frac_pol: Polarised fraction. :type frac_pol: float :param psi0_deg: Intrinsic polarisation angle in degrees. :type psi0_deg: float :param rm_radm2: Central RM in rad/m^2. :type rm_radm2: float :param delta_rm_radm2: Full Faraday thickness in rad/m^2. :type delta_rm_radm2: float :returns: Channel Q + iU. :rtype: NDArray[np.complex128] .. py:data:: ComponentKind