def sdss_redshifts(): """ Enter the directory and build a redshift table based on the spectra present Returns: """ embed(header='THIS NEEDS HELP') # all_folders = glob.glob(db_path + '/SDSS/*') for folder in all_folders: Jnames = [] # Grab the list of spectra files spec_files = glob.glob(os.path.join(folder, 'J*_spec.fits')) # Generate the name list Jnames += [ os.path.basename(ifile).split('_')[0] for ifile in spec_files ] # Coords coords = SkyCoord(Jnames, unit=(units.hourangle, units.deg)) # from DES # Setup done = np.zeros_like(coords.ra.value, dtype=bool) zs = np.zeros_like(coords.ra.value) # Loop me while np.any(~done): # Grab the first not done i0 = np.where(~done)[0][0] coord = coords[i0] # Grab the SDSS data sdssSurvey = sdss.SDSS_Survey(coord, 10 * units.arcmin) # sub_coords = coords[~done] sep = coord.separation(sub_coords) doidx = np.where(sep < 10 * units.arcmin)[0] dothem = coords[doidx] # Now match catalog = sdssSurvey.get_catalog() sdss_coords = SkyCoord(ra=catalog['ra'], dec=catalog['dec'], unit='deg') idx, d2d, d3d = match_coordinates_sky(dothem, sdss_coords, nthneighbor=1) # Fill zs[doidx] = catalog['z_spec'][idx] done[np.where(dothem)] = True # Write the catalog tbl = Table() tbl['RA'] = coords.ra.value tbl['DEC'] = coords.dec.value tbl['ZEM'] = zs tbl['ZEM_SOURCE'] = 'SDSS' tbl['ZQ'] = 4 tbl.write(os.path.join(folder, 'z_SDSS.ascii'), overwrite=True, format='ascii.fixed_width')
def build_host_180916(run_ppxf=False, build_photom=False, build_cigale=False): """ Build the host galaxy data for FRB 180916 All of the data currently comes from Marcote et al. 2020 https://ui.adsabs.harvard.edu/abs/2020Natur.577..190M/abstract CIGALE will be published in Kasper et al. 2020 Args: build_photom (bool, optional): """ frbname = '180916' gal_coord = SkyCoord('J015800.28+654253.0', unit=(units.hourangle, units.deg)) # Instantiate host180916 = frbgalaxy.FRBHost(gal_coord.ra.value, gal_coord.dec.value, frbname) # Load redshift table #ztbl = Table.read(os.path.join(db_path, 'CRAFT', 'Bhandari2019', 'z_SDSS.ascii'), # format='ascii.fixed_width') #z_coord = SkyCoord(ra=ztbl['RA'], dec=ztbl['DEC'], unit='deg') #idx, d2d, _ = match_coordinates_sky(gal_coord, z_coord, nthneighbor=1) #if np.min(d2d) > 0.5*units.arcsec: # embed(header='190608') # Redshift -- SDSS #host180916.set_z(ztbl[idx]['ZEM'], 'spec') # Redshift host180916.set_z(0.0337, 'spec') # Morphology #host190608.parse_galfit(os.path.join(photom_path, 'CRAFT', 'Bannister2019', # 'HG180924_galfit_DES.log'), 0.263) # Photometry EBV = nebular.get_ebv(gal_coord)['meanValue'] # print("EBV={} for the host of {}".format(EBV, frbname)) # SDSS # Grab the table (requires internet) photom_file = os.path.join(db_path, 'CHIME', 'Marcote2020', 'marcote2020_photom.ascii') if build_photom: # SDSS search_r = 1 * units.arcsec sdss_srvy = sdss.SDSS_Survey(gal_coord, search_r) sdss_tbl = sdss_srvy.get_catalog(print_query=True) sdss_tbl['Name'] = host180916.name photom = frbphotom.merge_photom_tables(sdss_tbl, photom_file) # WISE wise_srvy = wise.WISE_Survey(gal_coord, search_r) wise_tbl = wise_srvy.get_catalog(print_query=True) wise_tbl['Name'] = host180916.name photom = frbphotom.merge_photom_tables(wise_tbl, photom, debug=True) # Write photom.write(photom_file, format=frbphotom.table_format, overwrite=True) # Parse photom = Table.read(photom_file, format=frbphotom.table_format) # Dust correction frbphotom.correct_photom_table(photom, EBV) # Parse host180916.parse_photom(photom) # CIGALE cigale_file = os.path.join(db_path, 'CHIME', 'Marcote2020', 'HG180619_CIGALE.fits') if build_cigale: cut_photom = photom.copy() # Remove WISE #for column in cut_photom.keys(): # if 'WISE' in column: # cut_photom.remove_column(column) # Run cigale.host_run(cut_photom, host180916, cigale_file=cigale_file) host180916.parse_cigale(cigale_file) # PPXF #results_file = os.path.join(db_path, 'CRAFT', 'Bhandari2019', 'HG190608_SDSS_ppxf.ecsv') #if run_ppxf: # meta, spectrum = host190608.get_metaspec(instr='SDSS') # spec_fit = None # ppxf.run(spectrum, 2000., host190608.z, results_file=results_file, spec_fit=spec_fit, chk=True) #host190608.parse_ppxf(results_file) # Derived quantities # AV #host190608.calc_nebular_AV('Ha/Hb') # SFR #host190608.calc_nebular_SFR('Ha') #host.derived['SFR_nebular_err'] = -999. # Vet all host180916.vet_all() # Write -- BUT DO NOT ADD TO REPO (YET) path = resource_filename('frb', 'data/Galaxies/{}'.format(frbname)) host180916.write_to_json(path=path)
def build_host_190608(run_ppxf=False, build_photom=False): """ Build the host galaxy data for FRB 190608 All of the data comes from Bhandrari+2020, ApJL, in press Args: build_photom (bool, optional): """ frbname = '190608' gal_coord = SkyCoord('J221604.90-075356.0', unit=(units.hourangle, units.deg)) # Cherie; 07-Mar-2019 # Instantiate host190608 = frbgalaxy.FRBHost(gal_coord.ra.value, gal_coord.dec.value, frbname) # Load redshift table ztbl = Table.read(os.path.join(db_path, 'CRAFT', 'Bhandari2019', 'z_SDSS.ascii'), format='ascii.fixed_width') z_coord = SkyCoord(ra=ztbl['RA'], dec=ztbl['DEC'], unit='deg') idx, d2d, _ = match_coordinates_sky(gal_coord, z_coord, nthneighbor=1) if np.min(d2d) > 0.5 * units.arcsec: embed(header='190608') # Redshift -- SDSS host190608.set_z(ztbl[idx]['ZEM'], 'spec') # Morphology #host190608.parse_galfit(os.path.join(photom_path, 'CRAFT', 'Bannister2019', # 'HG180924_galfit_DES.log'), 0.263) # Photometry # SDSS # Grab the table (requires internet) photom_file = os.path.join(db_path, 'CRAFT', 'Bhandari2019', 'bhandari2019_photom.ascii') if build_photom: # VLT search_r = 1 * units.arcsec # SDSS sdss_srvy = sdss.SDSS_Survey(gal_coord, search_r) sdss_tbl = sdss_srvy.get_catalog(print_query=True) sdss_tbl['Name'] = 'HG190608' photom = frbphotom.merge_photom_tables(sdss_tbl, photom_file) # WISE wise_srvy = wise.WISE_Survey(gal_coord, search_r) wise_tbl = wise_srvy.get_catalog(print_query=True) wise_tbl['Name'] = 'HG190608' # Write photom = frbphotom.merge_photom_tables(wise_tbl, photom, debug=True) photom.write(photom_file, format=frbphotom.table_format, overwrite=True) # Parse host190608.parse_photom( Table.read(photom_file, format=frbphotom.table_format)) # PPXF results_file = os.path.join(db_path, 'CRAFT', 'Bhandari2019', 'HG190608_SDSS_ppxf.ecsv') if run_ppxf: meta, spectrum = host190608.get_metaspec(instr='SDSS') spec_fit = None ppxf.run(spectrum, 2000., host190608.z, results_file=results_file, spec_fit=spec_fit, chk=True) host190608.parse_ppxf(results_file) # Derived quantities # AV host190608.calc_nebular_AV('Ha/Hb') # SFR host190608.calc_nebular_SFR('Ha') #host.derived['SFR_nebular_err'] = -999. # CIGALE host190608.parse_cigale( os.path.join(db_path, 'CRAFT', 'Bhandari2019', 'HG190608_CIGALE.fits')) # Vet all host190608.vet_all() # Write path = resource_filename('frb', 'data/Galaxies/{}'.format(frbname)) host190608.write_to_json(path=path)