Example #1
0
 def test_08e_rotate_map(self):
     # there and back again
     for i in range(5):
         _inmap = hpt.dipole_pdf(16, a=0.5, v=1, y=0, z=0, pdf=False)
         rot_axis = coord.rand_vec(1)
         rot_angle = 4 * np.pi * np.random.random(1) - 2 * np.pi
         _rot_map = hpt.rotate_map(_inmap, rot_axis, rot_angle)
         # should be different after rotation
         self.assertTrue(not np.allclose(_inmap, _rot_map))
         again_inmap = hpt.rotate_map(_rot_map, rot_axis, -rot_angle)
         # should be the same again after rotating back
         self.assertTrue(np.allclose(_inmap, again_inmap, rtol=1e-2))
         self.assertTrue(np.abs(np.mean(_inmap - again_inmap)) < 1e-10)
         self.assertTrue(np.std(_inmap - again_inmap) < 1e-3)
Example #2
0
def rotate_to_top(cmb_map, lon, lat):
    og_vec = hp.pixelfunc.ang2vec(lon, lat, lonlat=True)
    z_vec = np.array([0, 0, 1])

    rot_vec = np.cross(z_vec, og_vec)

    rot_ang = np.arccos(
        np.dot(og_vec, z_vec) /
        (np.linalg.norm(og_vec) * np.linalg.norm(z_vec)))

    cmb_map_2 = hpt.rotate_map(cmb_map, rot_vec, rot_ang)

    return cmb_map_2
Example #3
0
    def test_08a_rotate_map(self):
        # size(rot_axis) = 1 and size(rot_angle) = 1
        nside = 64
        npix = hpt.nside2npix(nside)
        for i in range(10):
            ipix = np.random.randint(npix)
            _inmap = np.zeros(npix)
            _inmap[ipix] = 1
            rot_axis = np.squeeze(
                coord.rand_vec(1)) if i < 5 else coord.rand_vec(1)
            rot_angle = 4 * np.pi * np.random.random() - 2 * np.pi
            _rot_map = hpt.rotate_map(_inmap, rot_axis, rot_angle)
            v_hpt = hpt.pix2vec(nside, np.argmax(_rot_map))

            # compare with well tested coord rotate function
            v_coord = coord.rotate(hpt.pix2vec(nside, ipix), rot_axis,
                                   rot_angle)
            self.assertTrue(
                coord.angle(v_hpt, v_coord) < hpt.max_pixrad(nside))
Example #4
0
    def test_08d_rotate_map(self):
        # size(rot_axis) = n and size(rot_angle) = 1
        nside = 64
        npix = hpt.nside2npix(nside)
        for i in range(10):
            ipix = np.random.randint(npix)
            _inmap = np.zeros(npix)
            _inmap[ipix] = 1
            rot_axis = coord.rand_vec(5)
            rot_angle = 4 * np.pi * np.random.random(1) - 2 * np.pi
            _rot_map = hpt.rotate_map(_inmap, rot_axis, rot_angle)

            # compare with well tested coord rotate function
            for j in range(5):
                v_hpt = hpt.pix2vec(nside, np.argmax(_rot_map[j]))
                v_coord = coord.rotate(hpt.pix2vec(nside, ipix),
                                       rot_axis[:, j], rot_angle)
                self.assertTrue(
                    coord.angle(v_hpt, v_coord) < hpt.max_pixrad(nside))
Example #5
0
cs_lon = 207.8
cs_lat = -56.3
cs_vec = hp.pixelfunc.ang2vec(cs_lon, cs_lat, lonlat=True)
vec_lon = 207.8
vec_lat = cs_lat + 90
vec = hp.pixelfunc.ang2vec(vec_lon, vec_lat, lonlat=True)

no_dir = 12
rot_ang = np.pi / no_dir

ang_rad = np.linspace((1 / 360) * 2 * np.pi, np.pi / 2, 90)
no_circles = len(ang_rad)
x_corr = np.zeros((no_dir, no_circles), dtype=complex)

start = time.time()

cmb_map = rotate_to_top(cmb_map_og * mask_ring, vec_lon, vec_lat)

for i in range(no_dir):
    for j in range(len(ang_rad)):
        rad_lag = 0
        strip_finder(cmb_map, ang_rad[j], NSIDE)
        circle_a = load_file('strip_a', bins)
        circle_b = load_file('strip_b', bins)
        x_corr[i, j] = match_circle_s(circle_a, circle_b, rad_lag, bins, 720)
    np.savetxt('/opt/local/l4astro/rbbg94/data/cs_dir_' + str(i) + '.csv',
               x_corr[i],
               delimiter=',')
    print time.time() - start
    cmb_map = hpt.rotate_map(cmb_map, cs_vec, rot_ang)