(float(x) for x in line.split()[1:]) t2_epv = utils.PosVel(numpy.asarray([ep0, ep1, ep2]) * ls, numpy.asarray([ev0, ev1, ev2]) * ls/u.s) t2_opv = utils.PosVel(numpy.asarray([tp0, tp1, tp2]) * ls, numpy.asarray([tv0, tv1, tv2]) * ls/u.s) t2_ssb2obs = t2_epv + t2_opv # print utils.time_toq_mjd_string(TOA.mjd.tt), line.split()[-1] tempo_tt = utils.time_from_mjd_string(line.split()[-1], scale='tt') # Ensure that the clock corrections are accurate to better than 0.1 ns assert(math.fabs((oclk*u.s - TOA['flags']["clkcorr"]).to(u.ns).value) < 0.1) log.info("TOA in tt difference is: %.2f ns" % \ ((TOA['mjd'].tt - tempo_tt.tt).sec * u.s).to(u.ns).value) pint_opv = erfautils.topo_posvels(TOA['obs'], TOA)[0] # usually for arrays... #print " obs T2:", t2_opv.pos.to(u.m).value, t2_opv.vel.to(u.m/u.s) #print " obs PINT:", pint_opv.pos.to(u.m), pint_opv.vel.to(u.m/u.s) dopv = pint_opv - t2_opv dpos = numpy.sqrt(numpy.dot(dopv.pos.to(u.m), dopv.pos.to(u.m))) dvel = numpy.sqrt(numpy.dot(dopv.vel.to(u.mm/u.s), dopv.vel.to(u.mm/u.s))) log.info(" obs diff: %.2f m, %.3f mm/s" % (dpos, dvel)) assert(dpos < 2.0 and dvel < 0.02) pint_ssb2obs = PosVel(numpy.asarray(TOA['ssb_obs_pos'])*u.km, numpy.asarray(TOA['ssb_obs_vel'])*u.km/u.s, origin='SSB', obj='OBS') #print " topo T2:", t2_ssb2obs.pos.to(u.km), t2_ssb2obs.vel.to(u.km/u.s) #print " topo PINT:", pint_ssb2obs.pos.to(u.km), pint_ssb2obs.vel.to(u.km/u.s) dtopo = pint_ssb2obs - t2_ssb2obs dpos = numpy.sqrt(numpy.dot(dtopo.pos.to(u.m), dtopo.pos.to(u.m)))
numpy.asarray([ev0, ev1, ev2]) * ls / u.s) t2_opv = utils.PosVel( numpy.asarray([tp0, tp1, tp2]) * ls, numpy.asarray([tv0, tv1, tv2]) * ls / u.s) t2_ssb2obs = t2_epv + t2_opv # print utils.time_toq_mjd_string(TOA.mjd.tt), line.split()[-1] tempo_tt = utils.time_from_mjd_string(line.split()[-1], scale='tt') # Ensure that the clock corrections are accurate to better than 0.1 ns assert (math.fabs( (oclk * u.s - TOA['flags']["clkcorr"]).to(u.ns).value) < 0.1) log.info("TOA in tt difference is: %.2f ns" % \ ((TOA['mjd'].tt - tempo_tt.tt).sec * u.s).to(u.ns).value) pint_opv = erfautils.topo_posvels(TOA['obs'], TOA)[0] # usually for arrays... #print " obs T2:", t2_opv.pos.to(u.m).value, t2_opv.vel.to(u.m/u.s) #print " obs PINT:", pint_opv.pos.to(u.m), pint_opv.vel.to(u.m/u.s) dopv = pint_opv - t2_opv dpos = numpy.sqrt(numpy.dot(dopv.pos.to(u.m), dopv.pos.to(u.m))) dvel = numpy.sqrt( numpy.dot(dopv.vel.to(u.mm / u.s), dopv.vel.to(u.mm / u.s))) log.info(" obs diff: %.2f m, %.3f mm/s" % (dpos, dvel)) assert (dpos < 2.0 and dvel < 0.02) pint_ssb2obs = PosVel(numpy.asarray(TOA['ssb_obs_pos']) * u.km, numpy.asarray(TOA['ssb_obs_vel']) * u.km / u.s, origin='SSB', obj='OBS') #print " topo T2:", t2_ssb2obs.pos.to(u.km), t2_ssb2obs.vel.to(u.km/u.s) #print " topo PINT:", pint_ssb2obs.pos.to(u.km), pint_ssb2obs.vel.to(u.km/u.s)
numpy.asarray([tp0, tp1, tp2]) * ls, numpy.asarray([tv0, tv1, tv2]) * ls / u.s) t2_ssb2obs = t2_epv + t2_opv # print utils.time_toq_mjd_string(TOA.mjd.tt), line.split()[-1] tempo_tt = utils.time_from_mjd_string(line.split()[-1], scale='tt') # Ensure that the clock corrections are accurate to better than 0.1 ns assert (math.fabs( (oclk * u.s + gps_utc * u.s - TOA['flags']["clkcorr"]).to(u.ns).value) < 0.1) log.info("TOA in tt difference is: %.2f ns" % \ ((TOA['mjd'].tt - tempo_tt.tt).sec * u.s).to(u.ns).value) pint_opv = erfautils.topo_posvels(Observatory.get( TOA['obs']).earth_location, TOA, obsname=TOA['obs']) pint_opv = utils.PosVel(pint_opv.pos.T[0], pint_opv.vel.T[0]) #print " obs T2:", t2_opv.pos.to(u.m).value, t2_opv.vel.to(u.m/u.s) #print " obs PINT:", pint_opv.pos.to(u.m), pint_opv.vel.to(u.m/u.s) dopv = pint_opv - t2_opv dpos = numpy.sqrt(numpy.dot(dopv.pos.to(u.m), dopv.pos.to(u.m))) dvel = numpy.sqrt( numpy.dot(dopv.vel.to(u.mm / u.s), dopv.vel.to(u.mm / u.s))) log.info(" obs diff: %.2f m, %.3f mm/s" % (dpos, dvel)) assert (dpos < 2.0 and dvel < 0.02) pint_ssb2obs = PosVel(numpy.asarray(TOA['ssb_obs_pos']) * u.km, numpy.asarray(TOA['ssb_obs_vel']) * u.km / u.s, origin='SSB', obj='OBS')
t2_epv = utils.PosVel(numpy.asarray([ep0, ep1, ep2]) * ls, numpy.asarray([ev0, ev1, ev2]) * ls/u.s) t2_opv = utils.PosVel(numpy.asarray([tp0, tp1, tp2]) * ls, numpy.asarray([tv0, tv1, tv2]) * ls/u.s) t2_ssb2obs = t2_epv + t2_opv # print utils.time_toq_mjd_string(TOA.mjd.tt), line.split()[-1] tempo_tt = utils.time_from_mjd_string(line.split()[-1], scale='tt') # Ensure that the clock corrections are accurate to better than 0.1 ns assert(math.fabs((oclk*u.s + gps_utc*u.s - TOA['flags']["clkcorr"]).to(u.ns).value) < 0.1) log.info("TOA in tt difference is: %.2f ns" % \ ((TOA['mjd'].tt - tempo_tt.tt).sec * u.s).to(u.ns).value) pint_opv = erfautils.topo_posvels( Observatory.get(TOA['obs']).earth_location, TOA, obsname=TOA['obs']) pint_opv = utils.PosVel(pint_opv.pos.T[0], pint_opv.vel.T[0]) #print " obs T2:", t2_opv.pos.to(u.m).value, t2_opv.vel.to(u.m/u.s) #print " obs PINT:", pint_opv.pos.to(u.m), pint_opv.vel.to(u.m/u.s) dopv = pint_opv - t2_opv dpos = numpy.sqrt(numpy.dot(dopv.pos.to(u.m), dopv.pos.to(u.m))) dvel = numpy.sqrt(numpy.dot(dopv.vel.to(u.mm/u.s), dopv.vel.to(u.mm/u.s))) log.info(" obs diff: %.2f m, %.3f mm/s" % (dpos, dvel)) assert(dpos < 2.0 and dvel < 0.02) pint_ssb2obs = PosVel(numpy.asarray(TOA['ssb_obs_pos'])*u.km, numpy.asarray(TOA['ssb_obs_vel'])*u.km/u.s, origin='SSB', obj='OBS') #print " topo T2:", t2_ssb2obs.pos.to(u.km), t2_ssb2obs.vel.to(u.km/u.s) #print " topo PINT:", pint_ssb2obs.pos.to(u.km), pint_ssb2obs.vel.to(u.km/u.s)