def _get_planetssb(self, t2pulsar): planetssb = None if self.planets: for ii in range(1, 10): tag = "DMASSPLANET" + str(ii) self.t2pulsar[tag].val = 0.0 self.t2pulsar.formbats() planetssb = np.zeros((len(self._toas), 9, 6)) planetssb[:, 0, :] = self.t2pulsar.mercury_ssb planetssb[:, 1, :] = self.t2pulsar.venus_ssb planetssb[:, 2, :] = self.t2pulsar.earth_ssb planetssb[:, 3, :] = self.t2pulsar.mars_ssb planetssb[:, 4, :] = self.t2pulsar.jupiter_ssb planetssb[:, 5, :] = self.t2pulsar.saturn_ssb planetssb[:, 6, :] = self.t2pulsar.uranus_ssb planetssb[:, 7, :] = self.t2pulsar.neptune_ssb planetssb[:, 8, :] = self.t2pulsar.pluto_ssb if "ELONG" and "ELAT" in np.concatenate( (t2pulsar.pars(), t2pulsar.pars(which="set"))): for ii in range(9): planetssb[:, ii, :3] = utils.ecl2eq_vec(planetssb[:, ii, :3]) planetssb[:, ii, 3:] = utils.ecl2eq_vec(planetssb[:, ii, 3:]) return planetssb
def _get_planetssb(self, t2pulsar): planetssb = None if self.planets: for ii in range(1, 10): tag = 'DMASSPLANET' + str(ii) self.t2pulsar[tag].val = 0.0 self.t2pulsar.formbats() planetssb = np.zeros((len(self._toas), 9, 6)) planetssb[:, 0, :] = self.t2pulsar.mercury_ssb planetssb[:, 1, :] = self.t2pulsar.venus_ssb planetssb[:, 2, :] = self.t2pulsar.earth_ssb planetssb[:, 3, :] = self.t2pulsar.mars_ssb planetssb[:, 4, :] = self.t2pulsar.jupiter_ssb planetssb[:, 5, :] = self.t2pulsar.saturn_ssb planetssb[:, 6, :] = self.t2pulsar.uranus_ssb planetssb[:, 7, :] = self.t2pulsar.neptune_ssb planetssb[:, 8, :] = self.t2pulsar.pluto_ssb if 'ELONG' and 'ELAT' in np.concatenate((t2pulsar.pars(), t2pulsar.pars( which='set'))): for ii in range(9): planetssb[:,ii,:3] = utils.ecl2eq_vec(planetssb[:,ii,:3]) planetssb[:,ii,3:] = utils.ecl2eq_vec(planetssb[:,ii,3:]) return planetssb
def _get_sunssb(self, t2pulsar): sunssb = None if self.planets: # for ii in range(1, 10): # tag = 'DMASSPLANET' + str(ii) # self.t2pulsar[tag].val = 0.0 self.t2pulsar.formbats() sunssb = np.zeros((len(self._toas), 6)) sunssb[:, :] = self.t2pulsar.sun_ssb if "ELONG" and "ELAT" in np.concatenate((t2pulsar.pars(), t2pulsar.pars(which="set"))): sunssb[:, :3] = utils.ecl2eq_vec(sunssb[:, :3]) sunssb[:, 3:] = utils.ecl2eq_vec(sunssb[:, 3:]) return sunssb
def __init__(self, t2pulsar, sort=True, drop_t2pulsar=True, planets=True): self._sort = sort self.t2pulsar = t2pulsar self.planets = planets self.name = str(t2pulsar.name) self._toas = np.double(t2pulsar.toas()) * 86400 # saving also stoas (e.g., for DMX comparisons) self._stoas = np.double(t2pulsar.stoas) * 86400 self._residuals = np.double(t2pulsar.residuals()) self._toaerrs = np.double(t2pulsar.toaerrs) * 1e-6 self._designmatrix = np.double(t2pulsar.designmatrix()) self._ssbfreqs = np.double(t2pulsar.ssbfreqs()) / 1e6 self._telescope = np.char.decode(t2pulsar.telescope(), encoding="ascii") # fitted parameters self.fitpars = ["Offset"] + [str(p) for p in t2pulsar.pars()] # set parameters spars = [str(p) for p in t2pulsar.pars(which="set")] self.setpars = [sp for sp in spars if sp not in self.fitpars] flags = {} for key in t2pulsar.flags(): flags[key] = t2pulsar.flagvals(key) # new-style storage of flags as a numpy record array (previously, psr._flags = flags) self._flags = np.zeros(len(self._toas), dtype=[(key, val.dtype) for key, val in flags.items()]) for key, val in flags.items(): self._flags[key] = val self._pdist = self._get_pdist() self._raj, self._decj = self._get_radec(t2pulsar) self._pos = self._get_pos() self._planetssb = self._get_planetssb(t2pulsar) self._sunssb = self._get_sunssb(t2pulsar) # gather DM/DMX information if available self._set_dm(t2pulsar) self._pos_t = t2pulsar.psrPos.copy() if "ELONG" and "ELAT" in np.concatenate( (t2pulsar.pars(which="fit"), t2pulsar.pars(which="set"))): self._pos_t = utils.ecl2eq_vec(self._pos_t) self.sort_data() if drop_t2pulsar: del self.t2pulsar
def __init__(self, t2pulsar, sort=True, drop_t2pulsar=True, planets=True): self._sort = sort self.t2pulsar = t2pulsar self.planets = planets self.name = str(t2pulsar.name) self._toas = np.double(t2pulsar.toas()) * 86400 # saving also stoas (e.g., for DMX comparisons) self._stoas = np.double(t2pulsar.stoas) * 86400 self._residuals = np.double(t2pulsar.residuals()) self._toaerrs = np.double(t2pulsar.toaerrs) * 1e-6 self._designmatrix = np.double(t2pulsar.designmatrix()) self._ssbfreqs = np.double(t2pulsar.ssbfreqs()) / 1e6 # fitted parameters self.fitpars = ["Offset"] + [str(p) for p in t2pulsar.pars()] # set parameters spars = [str(p) for p in t2pulsar.pars(which="set")] self.setpars = [sp for sp in spars if sp not in self.fitpars] self._flags = {} for key in t2pulsar.flags(): self._flags[key] = t2pulsar.flagvals(key) self._pdist = self._get_pdist() self._raj, self._decj = self._get_radec(t2pulsar) self._pos = self._get_pos() self._planetssb = self._get_planetssb(t2pulsar) self._sunssb = self._get_sunssb(t2pulsar) # gather DM/DMX information if available self._set_dm(t2pulsar) self._pos_t = t2pulsar.psrPos.copy() if "ELONG" and "ELAT" in np.concatenate( (t2pulsar.pars(which="fit"), t2pulsar.pars(which="set"))): self._pos_t = utils.ecl2eq_vec(self._pos_t) self.sort_data() if drop_t2pulsar: del self.t2pulsar
def __init__(self, t2pulsar, sort=True, drop_t2pulsar=True, planets=True): self._sort = sort self.t2pulsar = t2pulsar self.planets = planets self.name = str(t2pulsar.name) self._toas = np.double(t2pulsar.toas()) * 86400 self._residuals = np.double(t2pulsar.residuals()) self._toaerrs = np.double(t2pulsar.toaerrs) * 1e-6 self._designmatrix = np.double(t2pulsar.designmatrix()) self._ssbfreqs = np.double(t2pulsar.ssbfreqs()) / 1e6 # fitted parameters self.fitpars = ['Offset'] + list(map(str, t2pulsar.pars())) # set parameters spars = list(map(str, t2pulsar.pars(which='set'))) self.setpars = [sp for sp in spars if sp not in self.fitpars] self._flags = {} for key in t2pulsar.flags(): self._flags[key] = t2pulsar.flagvals(key) self._pdist = self._get_pdist() self._raj, self._decj = self._get_radec(t2pulsar) self._pos = self._get_pos() self._planetssb = self._get_planetssb(t2pulsar) self._pos_t = t2pulsar.psrPos.copy() if 'ELONG' and 'ELAT' in np.concatenate((t2pulsar.pars(which='fit'), t2pulsar.pars(which='set'))): self._pos_t = utils.ecl2eq_vec(self._pos_t) self.sort_data() if drop_t2pulsar: del self.t2pulsar