Source code for frb.builds.build_fg

""" Top-level module to build or re-build the JSON files for
FRB host galaxies.  This is only for a few persons with access."""

import importlib_resources
import os
import warnings

from IPython import embed

import numpy as np

from astropy.coordinates import SkyCoord
from astropy import units
from astropy.table import Table

from frb.galaxies import frbgalaxy
from frb.surveys import des
from frb.frb import FRB
from frb.galaxies import photom as frbphotom

db_path = os.getenv('FRB_GDB')
if db_path is None:
    print("Warning, you need to set $FRB_GDB to build hosts")
    #embed(header='You need to set $FRB_GDB')


[docs] def build_fg_181112(build_photom=False): """ Data taken from Prochaska et al. 2019, Science, in press Args: build_photom (bool, optional): Generate the photometry table """ # Coord from DES fg_coord = SkyCoord('J214923.89-525810.43', unit=(units.hourangle, units.deg)) # from DES frb181112 = FRB.by_name('FRB181112') # Instantiate fg_13_5 = frbgalaxy.FGGalaxy(fg_coord.ra.value, fg_coord.dec.value, '181112') fg_13_5.frb_coord = frb181112.coord # Redshift fg_13_5.set_z(0.36738, 'spec', err=7e-5) # Photometry photom_file = os.path.join(db_path, 'CRAFT', 'Prochaska2019', 'prochaska2019_photom.ascii') if build_photom: # DES # Grab the table (requires internet) search_r = 2 * units.arcsec des_srvy = des.DES_Survey(fg_coord, search_r) des_tbl = des_srvy.get_catalog(print_query=True) fg_13_5.parse_photom(des_tbl) # VLT -- Lochlan 2019-05-02 # VLT -- Lochlan 2019-06-18 fg_13_5.photom['VLT_g'] = 21.20 fg_13_5.photom['VLT_g_err'] = 0.04 fg_13_5.photom['VLT_I'] = 19.20 fg_13_5.photom['VLT_I_err'] = 0.02 # Build a Table photom = Table() photom['Name'] = ['FG181112_13_5'] # JXP internal name photom['ra'] = fg_13_5.coord.ra.value photom['dec'] = fg_13_5.coord.dec.value # Add in for key in fg_13_5.photom.keys(): photom[key] = fg_13_5.photom[key] # Merge # Merge/write photom = frbphotom.merge_photom_tables(photom, photom_file) photom.write(photom_file, format=frbphotom.table_format, overwrite=True) # Either way read it fg_13_5.parse_photom(Table.read(photom_file, format=frbphotom.table_format)) # Nebular lines fg_13_5.parse_ppxf(os.path.join(db_path, 'CRAFT', 'Prochaska2019', 'FG181112_13_5_FORS2_ppxf.ecsv')) # Derived quantities fg_13_5.calc_nebular_AV('Ha/Hb') # This will be an upper limit fg_13_5.calc_nebular_SFR('Ha') fg_13_5.derived['SFR_nebular_err'] = -999. # CIGALE fg_13_5.parse_cigale(os.path.join(db_path, 'CRAFT', 'Prochaska2019', 'FG181112_13_5_CIGALE.fits')) # Write path = importlib_resources.files('frb.data.Galaxies.181112') fg_13_5.write_to_json(path=path)
[docs] def main(inflg='all', options=None): # Options build_photom, build_cigale = False, False if options is not None: if 'photom' in options: build_photom=True if 'cigale' in options: build_cigale=True if inflg == 'all': flg = np.sum(np.array( [2**ii for ii in range(25)])) else: flg = int(inflg) # 121102 if flg & (2**0): build_fg_181112(build_photom=build_photom)