Ejemplo n.º 1
0
 def add_LLS(self, z, NHI=17.3, bval=20. * u.km / u.s):
     '''Generate a new LLS
     '''
     #
     new_sys = LLSSystem(NHI=NHI)
     new_sys.zabs = z
     new_sys.fill_lls_lines(bval=bval)
     # Name
     self.count_lls += 1
     new_sys.label = 'LLS_Sys_{:d}'.format(self.count_lls)
     # Add
     self.abssys_widg.add_fil(new_sys.label)
     self.abssys_widg.all_abssys.append(new_sys)
     self.abssys_widg.abslist_widget.item(len(
         self.abssys_widg.all_abssys)).setSelected(True)
Ejemplo n.º 2
0
 def add_LLS(self,z,NHI=17.3,bval=20.*u.km/u.s):
     '''Generate a new LLS
     '''
     #
     new_sys = LLSSystem(NHI=NHI)
     new_sys.zabs = z
     new_sys.fill_lls_lines(bval=bval)
     # Name
     self.count_lls += 1
     new_sys.label = 'LLS_Sys_{:d}'.format(self.count_lls)
     # Add
     self.abssys_widg.add_fil(new_sys.label)
     self.abssys_widg.all_abssys.append(new_sys)
     self.abssys_widg.abslist_widget.item(
         len(self.abssys_widg.all_abssys)).setSelected(True)
Ejemplo n.º 3
0
 def add_LLS(self, z, NHI=17.3, bval=20.0 * u.km / u.s, comment="None"):
     """Generate a new LLS
     """
     #
     new_sys = LLSSystem(NHI=NHI)
     new_sys.zabs = z
     new_sys.bval = bval  # This is not standard, but for convenience
     new_sys.comment = comment
     new_sys.fill_lls_lines(bval=bval)
     # Name
     self.count_lls += 1
     new_sys.label = "LLS_Sys_{:d}".format(self.count_lls)
     # Add
     self.abssys_widg.add_fil(new_sys.label)
     self.abssys_widg.all_abssys.append(new_sys)
     self.abssys_widg.abslist_widget.item(len(self.abssys_widg.all_abssys)).setSelected(True)
Ejemplo n.º 4
0
 def add_LLS(self, z, NHI=17.3, bval=20. * u.km / u.s, comment='None'):
     '''Generate a new LLS
     '''
     #
     new_sys = LLSSystem(NHI=NHI)
     new_sys.zabs = z
     new_sys.bval = bval  # This is not standard, but for convenience
     new_sys.comment = comment
     new_sys.fill_lls_lines(bval=bval)
     # Name
     self.count_lls += 1
     new_sys.label = 'LLS_Sys_{:d}'.format(self.count_lls)
     # Add
     self.abssys_widg.add_fil(new_sys.label)
     self.abssys_widg.all_abssys.append(new_sys)
     self.abssys_widg.abslist_widget.item(len(
         self.abssys_widg.all_abssys)).setSelected(True)
Ejemplo n.º 5
0
def xq100_plls_ex(outfil='fig_xq100_plls_ex.pdf'):

    # Load spectrum
    spec_fil = os.getenv('DROPBOX_DIR') + '/XQ-100/data/J0030-5159_uvb.fits'
    spec = load_spectrum(spec_fil)

    # Generate model
    model_file = os.getenv(
        'DROPBOX_DIR') + '/XQ-100/LLS/convg_J0030-5159_llsfit.json'
    with open(model_file) as data_file:
        lls_dict = json.load(data_file)
    # Continuum
    basec = Quantity(lls_dict['conti'])
    telfer_spec = XSpectrum1D.from_tuple((spec.dispersion.value, basec.value))

    # Start the plot
    if outfil is not None:
        pp = PdfPages(outfil)

    plt.figure(figsize=(8, 4))
    plt.clf()
    gs = gridspec.GridSpec(1, 1)
    fsz = 17.

    # Read and plot full spectrum
    ax_full = plt.subplot(gs[0])

    # Limits
    wvmnx = [3600., 5000.]
    gdpix = np.where(spec.dispersion < wvmnx[1] * u.AA)[0]
    perc = xsb.perc(spec.flux[gdpix])
    ax_full.set_xlim(wvmnx)
    #ax_full.set_ylim(-0.05*perc[1], 1.1*perc[1])
    ax_full.set_ylim(-1e-18, 4e-17)

    # Plot
    ax_full.plot(spec.dispersion, spec.flux, color='black', lw=1.0)
    ax_full.plot(wvmnx, [0., 0.], '--', color='green')

    # Label
    ax_full.set_xlabel('Wavelength')
    ax_full.set_ylabel('Relative Flux')
    ax_full.text(0.05,
                 0.9,
                 'XQ100 J0030-5159',
                 transform=ax_full.transAxes,
                 color='black',
                 size='x-large',
                 ha='left',
                 va='center',
                 bbox={'facecolor': 'white'})

    all_ills = []
    all_lls = []
    all_zlls = []
    for key in lls_dict['LLS'].keys():
        new_sys = LLSSystem(NHI=lls_dict['LLS'][key]['NHI'])
        new_sys.zabs = lls_dict['LLS'][key]['z']
        new_sys.fill_lls_lines(bval=lls_dict['LLS'][key]['bval'] * u.km / u.s)
        #
        all_ills.append(new_sys)
        all_lls.append(new_sys)
        all_zlls.append(new_sys.zabs)
    # Model
    norm_flux = lls_model(spec.dispersion, all_ills, smooth=lls_dict['smooth'])
    continuum = telfer_spec.flux * lls_dict['conti_model']['Norm'] * (
        spec.dispersion.value /
        lls_dict['conti_model']['piv_wv'])**lls_dict['conti_model']['tilt']

    #  Model
    ax_full.plot(spec.dispersion, continuum * norm_flux)

    # Font size
    xputils.set_fontsize(ax_full, fsz)

    # Finish page
    plt.tight_layout(pad=0.2, h_pad=0.3, w_pad=0.0)
    pp.savefig()
    plt.close()
    print('Wrote: {:s}'.format(outfil))
    # Finish
    pp.close()