Source code for pint.models.phase_offset

"""Explicit phase offset"""

from pint.models.timing_model import PhaseComponent
from pint.models.parameter import floatParameter
from astropy import units as u
import numpy as np


[docs]class PhaseOffset(PhaseComponent): """Explicit pulse phase offset between physical TOAs and the TZR TOA. See `examples/phase_offset_example.py` for example usage. Parameters supported: .. paramtable:: :class: pint.models.phase_offset.PhaseOffset """ register = True category = "phase_offset" def __init__(self): super().__init__() self.add_param( floatParameter( name="PHOFF", value=0.0, units="", description="Overall phase offset between physical TOAs and the TZR TOA.", ) ) self.phase_funcs_component += [self.offset_phase] self.register_deriv_funcs(self.d_offset_phase_d_PHOFF, "PHOFF")
[docs] def offset_phase(self, toas, delay): """An overall phase offset between physical TOAs and the TZR TOA.""" return ( (np.zeros(len(toas)) * self.PHOFF.quantity).to(u.dimensionless_unscaled) if toas.tzr else (-np.ones(len(toas)) * self.PHOFF.quantity).to( u.dimensionless_unscaled ) )
[docs] def d_offset_phase_d_PHOFF(self, toas, param, delay): """Derivative of the pulse phase w.r.t. PHOFF""" return ( np.zeros(len(toas)) * u.Unit("") if toas.tzr else -np.ones(len(toas)) * u.Unit("") )