def test_covdict_apply_mask(self): msk = np.random.randint(0, 2, 2 * mpisize).reshape(1, -1) mskdict = Masks() comm.Bcast(msk, root=0) mskdict.append(('test', 'nan', str(2 * mpisize), 'nan'), msk, True) cov = np.random.rand(2, 2 * mpisize) covdict = Covariances() covdict.append(('test', 'nan', str(2 * mpisize), 'nan'), cov, True) covdict.apply_mask(mskdict) pix_num = msk.sum() self.assertTrue(('test', 'nan', str(pix_num), 'nan') in covdict.keys())
def test_covdict_apply_mask(self): msk = np.array([0, 1, 0, 1, 1]).reshape(1, 5) mskdict = Masks() mskdict.append(('test', 'nan', '5', 'nan'), msk, True) cov_field = Field.from_global_data(RGSpace(shape=(5, 5)), np.random.rand(5, 5)) arr = cov_field.local_data covdict = Covariances() covdict.append(('test', 'nan', '5', 'nan'), arr, True) covdict.apply_mask(mskdict) arr = np.delete(cov_field.to_global_data(), [0, 2], 0) arr = np.delete(arr, [0, 2], 1) for i in range(arr.shape[0]): self.assertListEqual( list((covdict[('test', 'nan', '3', 'nan')].to_global_data())[i]), list(arr[i]))
def test_maskdict_append_array(self): msk = np.random.randint(0, 2, 48).reshape(1, -1) comm.Bcast(msk, root=0) mskdict = Masks() mskdict.append(('test', 'nan', '2', 'nan'), msk) local_msk = mskdict[('test', 'nan', '2', 'nan')].data self.assertListEqual(list(local_msk[0]), list(msk[0])) mskdict.append(('test', 'nan', '48', 'nan'), msk, True) local_msk = mskdict[('test', 'nan', '48', 'nan')].data self.assertListEqual(list(local_msk[0]), list(msk[0]))
def test_maskdict_append_array(self): msk = np.random.randint(0, 2, 48).reshape(1, 48) mskdict = Masks() mskdict.append(('test', 'nan', '2', 'nan'), msk) raw_msk = mskdict[('test', 'nan', '2', 'nan')].to_global_data() if mpirank == 0: self.assertListEqual(list(raw_msk[0]), list(msk[0])) mskdict.append(('test', 'nan', '48', 'nan'), msk, True) raw_msk = mskdict[('test', 'nan', '48', 'nan')].to_global_data() if mpirank == 0: self.assertListEqual(list(raw_msk[0]), list(msk[0]))
def mask_map(_nside, _freq): """ return mask map dictionary for synchrotron Q, U at given nside and frequency """ msk_map = np.zeros(hp.nside2npix(_nside)) for _ipix in range(hp.nside2npix(_nside)): l, b = hp.pix2ang(_nside, _ipix, lonlat=True) R = np.pi / 180. msk_map[_ipix] = 1 L = [329, 100, 124, 315] B = [17.5, -32.5, 15.5, 48.5] D = [116, 91, 65, 39.5] #LOOP I if (np.arccos( np.sin(b * R) * np.sin(B[0] * R) + np.cos(b * R) * np.cos(B[0] * R) * np.cos(l * R - L[0] * R)) < 0.5 * D[0] * R): msk_map[_ipix] = 0 #LOOP II elif (np.arccos( np.sin(b * R) * np.sin(B[1] * R) + np.cos(b * R) * np.cos(B[1] * R) * np.cos(l * R - L[1] * R)) < 0.5 * D[1] * R): msk_map[_ipix] = 0 #LOOP III elif (np.arccos( np.sin(b * R) * np.sin(B[2] * R) + np.cos(b * R) * np.cos(B[2] * R) * np.cos(l * R - L[2] * R)) < 0.5 * D[2] * R): msk_map[_ipix] = 0 #LOOP IV elif (np.arccos( np.sin(b * R) * np.sin(B[3] * R) + np.cos(b * R) * np.cos(B[3] * R) * np.cos(l * R - L[3] * R)) < 0.5 * D[3] * R): msk_map[_ipix] = 0 #STRIPE elif (abs(b) < 60.): msk_map[_ipix] = 0 msk_dict = Masks() msk_dict.append(('sync', str(_freq), str(_nside), 'Q'), np.vstack([msk_map])) msk_dict.append(('sync', str(_freq), str(_nside), 'U'), np.vstack([msk_map])) return msk_dict
def test_meadict_apply_mask(self): msk = np.array([0, 1, 0, 1, 1]).reshape(1, 5) mskdict = Masks() comm.Bcast(msk, root=0) mskdict.append(('test', 'nan', '5', 'nan'), msk, True) arr = np.array([0., 1., 2., 3., 4.]).reshape(1, 5) meadict = Measurements() meadict.append(('test', 'nan', '5', 'nan'), arr, True) meadict.apply_mask(mskdict) self.assertListEqual( list((meadict[('test', 'nan', '3', 'nan')].data)[0]), [1., 3., 4.]) # HEALPix map msk = np.random.randint(0, 2, 48).reshape(1, 48) comm.Bcast(msk, root=0) mskdict.append(('test', 'nan', '2', 'nan'), msk) arr = np.random.rand(1, 48) meadict.append(('test', 'nan', '2', 'nan'), arr) pix_num = msk.sum() meadict.apply_mask(mskdict) self.assertTrue(('test', 'nan', str(pix_num), 'nan') in meadict.keys())