def ChangeMapUnits(files, fref): """ Change the units of the maps provides form PLA to K_RJ. The data come in units K_cmb or MJy/sr. Parameters: ----------- - files, list/array. Sequence with the file names of the planck maps as strings. - fref. list/array. The reference frequencies of each map. Returns: ----------- - out_maps, ndarray. List with each of the maps read in and converted to units of K_RJ. """ f, tau = cu.read_freq() U_rj = np.zeros(len(f)) out_maps = [] # use only values close to f_ref since zero else. for j in range(3, len(f)): ind = np.where((f[j] > fref[j] / 2.) & (f[j] < 2 * fref[j]))[0] f_temp = f[j][ind] f[j] = f_temp for i in range(len(f)): # maps are sorted after frequency, from low to high. print('Load frequency map for {} GHz'.format(fref[i])) in_map = load_planck_map(files[i]) dBdTrj = cu.dBdTrj(f[i]) #print(i, dBdTrj) if i < 7: # convert K_cmb to K_RJ dBdTcmb = cu.dBdTcmb(f[i]) dBdTcmb = np.nan_to_num(dBdTcmb) #print('', dBdTcmb) U_rj[i] = cu.UnitConv(f[i], tau[i], dBdTcmb, dBdTrj,\ 'K_CMB', 'K_RJ', fref[i]) else: # Convert MJy/sr to K_RJ dBdTiras = cu.dBdTiras(f[i], f_ref=fref[i]) dBdTiras = np.nan_to_num(dBdTiras) #print('', dBdTiras) U_rj[i] = cu.UnitConv(f[i], tau[i], dBdTiras, dBdTrj,\ 'MJy/sr 1e-20', 'K_RJ', fref[i]) * 1e-20 # #print(U_rj[i]) out_map = in_map * U_rj[i] print('-----------') out_maps.append(out_map) # #print(U_rj) return (out_maps)
def Krj2Kcmb(map, f_ref=353.): # Convert dust units to pol units, uK_RJ -> K_cmb f, tau = cu.read_freq() f = f[6] tau = tau[6] ind = np.where((f > f_ref / 2.) & (f < 2 * f_ref))[0] f_353 = f[ind] dBdTrj = cu.dBdTrj(f_353) dBdTcmb = cu.dBdTcmb(f_353) Ucmb = cu.UnitConv(f_353, tau, dBdTrj, dBdTcmb, 'K_RJ', 'K_CMB', f_ref) return (Ucmb * map * 1e-6)
def Kcmb2Krj(fref, T=19.6): bands = np.array([30, 44, 70, 100, 143, 217, 353, 545, 857]) i = np.where(bands == fref)[0] f, tau = cu.read_freq() #print(f[i][0]) #print(np.shape(f), np.shape(f[i][0]), i) for j in range(3, len(f)): ind = np.where((f[j] > fref / 2.) & (f[j] < 2 * fref))[0] f_temp = f[j][ind] f[j] = f_temp #print(np.shape(f), np.shape(f[i][0])) dBdTrj = cu.dBdTrj(f[i][0]) #print(i, dBdTrj) # convert K_cmb to K_RJ dBdTcmb = cu.dBdTcmb(f[i][0], T) dBdTcmb = np.nan_to_num(dBdTcmb) #print('', dBdTcmb) U_rj = cu.UnitConv(f[i][0], tau[i][0], dBdTcmb, dBdTrj,\ 'K_CMB', 'K_RJ', fref) #print(U_rj) return (U_rj)
def Krj2Kcmb(map, f_ref=353.): """ Function to convert from uK_rj(antenna temp) to K_cmb. Parameters: ----------- - map, array. The map with units in uK_rj which is to be converted. - f_ref, scalar. The reference frequency in GHz, default is 353GHz. Return: - The map with units converted to K_cmb. """ # Convert dust units to pol units, uK_RJ -> K_cmb f, tau = cu.read_freq() f = f[6] tau = tau[6] ind = np.where((f > f_ref / 2.) & (f < 2 * f_ref))[0] f_353 = f[ind] dBdTrj = cu.dBdTrj(f_353) dBdTcmb = cu.dBdTcmb(f_353) Ucmb = cu.UnitConv(f_353, tau, dBdTrj, dBdTcmb, 'K_RJ', 'K_CMB', f_ref) return (Ucmb * map * 1e-6)