From 5cef03e33a071afa3a412f003dfb147c5b7bce03 Mon Sep 17 00:00:00 2001 From: Simon Perkins Date: Thu, 6 Jul 2017 10:46:29 +0200 Subject: [PATCH] Revert "Try not going through the CIRS frame" This reverts commit 0c0849ca57f59aba933f10042567ea865db5c9ed. This makes things much slower, almost 10x. This is likely because the scalar pole and field centre are broadcast against all antenna positions and times. --- montblanc/util/parallactic_angles.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/montblanc/util/parallactic_angles.py b/montblanc/util/parallactic_angles.py index 25bad6b0a..51110704d 100644 --- a/montblanc/util/parallactic_angles.py +++ b/montblanc/util/parallactic_angles.py @@ -118,9 +118,13 @@ def _parallactic_angle_astropy(times, ap, fc): fc = SkyCoord(ra=fc[0], dec=fc[1], unit=units.rad, frame='fk5') pole = SkyCoord(ra=0, dec=90, unit=units.deg, frame='fk5') + cirs_frame = CIRS(obstime=times) + pole_cirs = pole.transform_to(cirs_frame) + fc_cirs = fc.transform_to(cirs_frame) + altaz_frame = AltAz(location=ap[None,:], obstime=times[:,None]) - pole_altaz = pole.transform_to(altaz_frame) - fc_altaz = fc.transform_to(altaz_frame) + pole_altaz = pole_cirs[:,None].transform_to(altaz_frame) + fc_altaz = fc_cirs[:,None].transform_to(altaz_frame) return fc_altaz.position_angle(pole_altaz) if __name__ == "__main__":