def read_phot_files(file): parts = re.split('\.',file) if len(parts) == 2: extension = '.%s' %(parts[1]) elif len(parts) == 3: extension = '.%s.%s' %(parts[1],parts[2]) if extension == '.prob': #if re.search('and09',file): # pdb.set_trace() # ID X Y RA DEC D D_err M M_err T T_err Chi Sharp Flag Stell r l b EBmV EMmT EMmD A_m gprob gerr xerr serr ra, dec, gprob = np.genfromtxt(file, usecols = (3,4,22), unpack=True) good = (gprob > 0.5) & (np.isfinite(gprob)) return ra[good], dec[good] elif (extension == '.RICNgood') | (extension == '.RICNradec'): rh,rm,rs, dh,dm,ds = np.genfromtxt(file, usecols = (1,2,3,4,5,6), unpack=True) ra_hms = ['%02d:%02d:%5.2f' %(r1,r2,r3) for r1,r2,r3 in zip(rh,rm,rs)] dec_hms = ['%02d:%02d:%5.2f' %(d1,d2,d3) for d1,d2,d3 in zip(dh,dm,ds)] ra = np.array([hms2deg(r,d)[0] for r,d in zip(ra_hms, dec_hms)]) dec = np.array([hms2deg(r,d)[1] for r,d in zip(ra_hms, dec_hms)]) return ra, dec elif extension == '.selVI': ra,dec = np.genfromtxt(file, usecols=(1,2), unpack=True) return ra, dec elif extension == '.vimag.fits': hdu = fits.open(file) data = hdu[1].data return data.RA1, data.DEC1 elif extension == '.rawcalib': ra_hms, dec_hms = np.genfromtxt(file, usecols = (1,2), dtype=str, unpack=True) ra = np.array([hms2deg(r,d)[0] for r,d in zip(ra_hms, dec_hms)]) dec = np.array([hms2deg(r,d)[1] for r,d in zip(ra_hms, dec_hms)]) return ra, dec else: raise AttributeError('Unrecognized extension')
def matchDUSTiNGS(type, ra, dec, masks): if type == 'dsph': table = np.genfromtxt('/Users/khamren/M31_Research/splash_data/DUSTiNGS/dsph_goodcat.tsv', delimiter=';', dtype=str, filling_values='9999') elif type == 'de': table = np.genfromtxt('/Users/khamren/M31_Research/splash_data/DUSTiNGS/ngc_goodcat.tsv', delimiter=';', dtype=str, filling_values='9999') else: raise AttributeError('Input type should be dsph or de') dust_fields = np.array([convert_to_mask(m) for m in table[:,0]]) dust_ra = np.array([hms2deg(':'.join(r.strip().split()),':'.join(d.strip().split()))[0] for r,d in zip(table[:,1],table[:,2])]) dust_dec = np.array([hms2deg(':'.join(r.strip().split()),':'.join(d.strip().split()))[1] for r,d in zip(table[:,1],table[:,2])]) n = len(ra) m36 = np.empty(n) em36 = np.empty(n) m45 = np.empty(n) em45 = np.empty(n) splash_fields = np.array([re.split('_',m)[0].lower() for m in masks]) for i,r,d,m in zip(range(n),ra, dec,splash_fields): if m == 'd7bi': m = 'd7' dist = np.array([3600*np.sqrt(((r-rv)*cosdg(d))**2 + (d-dv)**2) for rv, dv in zip(dust_ra[dust_fields == m], dust_dec[dust_fields == m])]) try: if (len(dist) == 0) or (min(dist) > 0.5): m36[i] = np.nan em36[i] = np.nan m45[i] = np.nan em45[i] = np.nan else: j = np.argwhere(dist == min(dist))[0][0] try: m36[i] =(table[j,3].astype(float)) em36[i] =(table[j,4].astype(float)) m45[i] =(table[j,9].astype(float)) em45[i] =(table[j,10].astype(float)) except: try: m36[i] =(table[j,5].astype(float)) em36[i] =(table[j,6].astype(float)) m45[i] =(table[j,11].astype(float)) em45[i] =(table[j,12].astype(float)) except: try: m36[i] =(table[j,7].astype(float)) em36[i] =(table[j,8].astype(float)) m45[i] =(table[j,13].astype(float)) em45[i] =(table[j,14].astype(float)) except: m36[i] = np.nan em36[i] = np.nan m45[i] = np.nan em45[i] = np.nan except: pdb.set_trace() return np.array(m36), np.array(em36), np.array(m45), np.array(em45)