-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PintPulsar needs to pull SSB vectors from Pint #238
Comments
@vallis While #244 added the needed vectors, @AaronDJohnson's testing has not been successful. @AaronDJohnson can you resubmit a PR, and link it here, when you get a chance to investigate the issue up close? |
Okay, we've diagnosed one major issue, which is that the # TODO: pos_t not currently implemented
self._pos_t = np.zeros((len(self._toas), 3)) We need to define the vector from Pint, but I am not quite sure how to do that. The 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) @paulray @aarchiba @scottransom is there an easy way to access this? I didn't see anything in the table that seemed pertinent. But I might not be recognizing an obvious name. |
@Hazboun6 What is the |
@scottransom Yes, sorry for not saying that explicitly! |
I'm pretty sure that is the
|
Thanks! Just out of curiosity, how would I translate |
I do think the tempo2 version is a unit vector… you can normalize it in PintPulsar.
Michele
… On Oct 5, 2021, at 1:12 PM, Jeff Hazboun ***@***.***> wrote:
Thanks! Just out of curiosity, how would I translate 'ssb_obs_pos'? I was thinking that was the position vector from the SSB to the observatory.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub <#238 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AADYJME2HZ4LBO7MU6ID7BDUFNL4VANCNFSM4T6INWFA>.
Triage notifications on the go with GitHub Mobile for iOS <https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675> or Android <https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Oh, sorry! I misstated above. Yes, 'ssb_obs_pos' is the topocentric position of the observatory not the pulsar. So if we need the vector for the pulsar, that is gotten from the astrometry modules. See the |
@vallis I'm confused about |
@Hazboun6 Maybe one of them is the position wrt the SSB and the other (that varies) is the pulsar position wrt the observatory? (although with proper motion, I'd think that both should vary!) Seems like those variables need to be better documented! :-) |
You don't think these descriptions would fly in an astrometry paper? ;-) @property
def pos(self):
"""Return unit vector to pulsar."""
return self._pos
@property
def pos_t(self):
"""Return unit vector to pulsar as function of time."""
return self._pos_t[self._isort, :] |
@scottransom That is why I am really confused, because |
Perhaps the proper-motion shift in the vector is so small that is vanishes in double precision? Or perhaps tempo2 is lying about doing that? (You can check by imposing a huge proper motion in the parameters.) Either way, since the pos is dotted into a very small ephemeris delta, I think the time dependence would be negligible. We probably included it because why not... |
Okay, that helps quite a bit. In fact when I look at the first and last values in the array, fully displayed, as opposed to the shorten version you see when calling the array, I do see differences in the values. So for consistency I can then do the same with the PintPulsar. ssb_to_psb_xyz_ICRS(toas.get_mjds()) We convert everything into equatorial coordinates, so it is nice that this ICRS method is in here! |
Basically. Although that method is part of whatever "Astrometry*" model component that you have. So with a model
However, a couple points. Those are topocentric times, and not barycentric times which are probably the correct thing to have. I suspect that will have a very small effect, though. We can easily give you the barycentric times if you want them instead. For example:
|
Great! Thanks @scottransom that is all very useful. The pulsar I had loaded (not a 15 yr) has |
Yeah, that's exactly right. Would be nice if those methods were abstracted out to be part of a generic "Astrometry" interface. Maybe there is a way to do that. Just pinging @luojing1211 to check. |
Internally, all calculation is done under the ICRS coordinate. If the input is ecliptic coordinate, it will first convert the position to the ICRS coordinate. |
@luojing1211 Right. I was just wondering if there wasn't a way that could use a generic astrometry class, rather than the specific Equatorial or Ecliptic component. In otherwords, something like: |
@scottransom I see what you mean. That is a new feature request which is going to be very useful. We can have an issue on PINT github. |
The BE signals are now exactly the same between PINT and TEMPO2. Here is a plot of 5000 points of a 43 pulsar run (w/out J1713 and B1937) with no correlations with BE on the 12.5 year data. Subtracting the two, they appear to have a constant offset. This offset appears both with and without BayesEphem. |
Currently
PintPulsar
populates_get_planetssb
and_get_sunssb
with arrays of zeros. These are the vectors needed from the timing package in order to useBayesEphem
and the solar wind models, respectively. These are available inPint
, but the code inenterprise
needs to be changed in order to be able to do ephemeris and solar wind modeling usingPint
as the basal timing package.https://github.com/nanograv/enterprise/blob/master/enterprise/pulsar.py#L341
The text was updated successfully, but these errors were encountered: