本文整理汇总了Python中linetools.spectralline.AbsLine.attrib['EW']方法的典型用法代码示例。如果您正苦于以下问题:Python AbsLine.attrib['EW']方法的具体用法?Python AbsLine.attrib['EW']怎么用?Python AbsLine.attrib['EW']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类linetools.spectralline.AbsLine
的用法示例。
在下文中一共展示了AbsLine.attrib['EW']方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: jenkins2005
# 需要导入模块: from linetools.spectralline import AbsLine [as 别名]
# 或者: from linetools.spectralline.AbsLine import attrib['EW'] [as 别名]
def jenkins2005():
"""Jenkins, E. et al. 2005, ApJ, 2005, 623, 767
PHL 1811
HST/STIS, FUSE
Metals parsed from Table 1
OI taken from text
Had to input error on columns by hand (JXP)
Total NHI from Lyman series. see Fig 3
M/H from O/H
"""
# Grab ASCII file from ApJ
tab_fil = pyigm_path+"/data/LLS/Literature/jenkins2005.tb1.ascii"
chk_fil = glob.glob(tab_fil)
if len(chk_fil) > 0:
tab_fil = chk_fil[0]
else:
url = 'http://iopscience.iop.org/0004-637X/623/2/767/fulltext/61520.tb1.txt'
print('LLSSurvey: Grabbing table file from {:s}'.format(url))
f = urllib2.urlopen(url)
with open(tab_fil, "wb") as code:
code.write(f.read())
# Setup
radec = '215501.5152-092224.688' # SIMBAD
lls = LLSSystem(name='PHL1811_z0.081', radec=radec, zem=0.192,
zabs=0.080923, vlim=[-100., 100.]*u.km/u.s, NHI=17.98, ZH=-0.19,
sig_NHI=np.array([0.05,0.05]))
lls.lines = [] # Probably not used
# AbsLines
ism = LineList('ISM')
Nsig = {'C IV': 0.4, 'N II': 0.4, 'Si II': 0.05, 'Si IV': 0.25,
'S II': 0.2, 'Fe II': 0.12, 'H I': 0.05, 'S III': 0.06}
# Parse Table
with open(tab_fil,'r') as f:
flines = f.readlines()
ion_dict = {}
for iline in flines:
iline = iline.strip()
if (len(iline) == 0):
continue
# Split on tabs
isplit = iline.split('\t')
# Offset?
ioff = 0
if isplit[0][0] in ['1','2']:
ioff = -1
# Catch bad lines
if (isplit[1+ioff][0:6] in ['1442.0','1443.7','1120.9']): # Skip goofy CII line and CII*
continue
if len(isplit[2+ioff]) == 0:
continue
# Ion
if (len(isplit[0].strip()) > 0) & (isplit[0][0] not in ['1','2']):
ionc = isplit[0].strip()
try:
Zion = ltai.name_ion(ionc)
except KeyError:
pdb.set_trace()
# Generate the Line
try:
newline = AbsLine(float(isplit[2+ioff])*u.AA,linelist=ism, closest=True)
except ValueError:
pdb.set_trace()
newline.attrib['z'] = lls.zabs
# Spectrum
newline.analy['datafile'] = 'STIS' if 'S' in isplit[1] else 'FUSE'
# EW
try:
EWvals = isplit[4+ioff].split(' ')
except IndexError:
pdb.set_trace()
newline.attrib['EW'] = float(EWvals[0])*u.AA/1e3
newline.attrib['sig_EW'] = float(EWvals[2])*u.AA/1e3
newline.attrib['flag_EW'] = 1
if len(isplit) < (5+ioff+1):
continue
# Colm?
#xdb.set_trace()
newline.attrib['sig_logN'] = 0.
if (len(isplit[5+ioff].strip()) > 0) & (isplit[5+ioff].strip() != '\\ldots'):
if isplit[5+ioff][0] == '\\':
ipos = isplit[5+ioff].find(' ')
newline.attrib['logN'] = float(isplit[5+ioff][ipos+1:])
newline.attrib['flag_N'] = 2
elif isplit[5+ioff][0] == '<':
ipos = 0
newline.attrib['logN'] = float(isplit[5+ioff][ipos+1:])
newline.attrib['flag_N'] = 3
elif isplit[5+ioff][0] == '1':
try:
newline.attrib['logN'] = float(isplit[5+ioff][0:5])
except ValueError:
pdb.set_trace()
newline.attrib['flag_N'] = 1
try:
newline.attrib['sig_logN'] = Nsig[ionc]
except KeyError:
print('No error for {:s}'.format(ionc))
else:
#.........这里部分代码省略.........
示例2: load_single_fits
# 需要导入模块: from linetools.spectralline import AbsLine [as 别名]
# 或者: from linetools.spectralline.AbsLine import attrib['EW'] [as 别名]
def load_single_fits(self, inp, skip_ions=False, verbose=True, **kwargs):
""" Load a single COS-Halos sightline
Appends to cgm_abs list
Parameters
----------
inp : tuple or str
if tuple -- (field,gal_id)
field: str
Name of field (e.g. 'J0226+0015')
gal_id: str
Name of galaxy (e.g. '268_22')
skip_ions : bool, optional
Avoid loading the ions (not recommended)
verbose : bool, optional
"""
# Parse input
if isinstance(inp, basestring):
fil = inp
elif isinstance(inp, tuple):
field, gal_id = inp
tmp = self.fits_path+'/'+field+'.'+gal_id+'.fits.gz'
fils = glob.glob(tmp)
if len(fils) != 1:
raise IOError('Bad field, gal_id: {:s}'.format(tmp))
fil = fils[0]
else:
raise IOError('Bad input to load_single')
# Read COS-Halos file
if verbose:
print('cos_halos: Reading {:s}'.format(fil))
hdu = fits.open(fil)
summ = Table(hdu[1].data)
galx = Table(hdu[2].data)
# Instantiate the galaxy
gal = Galaxy((galx['RA'][0], galx['DEC'][0]), z=summ['ZFINAL'][0])
gal.field = galx['FIELD'][0]
gal.gal_id = galx['GALID'][0]
# Galaxy properties
gal.halo_mass = summ['LOGMHALO'][0]
gal.stellar_mass = summ['LOGMFINAL'][0]
gal.rvir = galx['RVIR'][0]
gal.MH = galx['ABUN'][0]
gal.flag_MH = galx['ABUN_FLAG'][0]
gal.sdss_phot = [galx[key][0] for key in ['SDSSU','SDSSG','SDSSR','SDSSI','SDSSZ']]
gal.sdss_phot_sig = [galx[key][0] for key in ['SDSSU_ERR','SDSSG_ERR','SDSSR_ERR','SDSSI_ERR','SDSSZ_ERR']]
gal.sfr = (galx['SFR_UPLIM'][0], galx['SFR'][0],
galx['SFR_FLAG'][0]) # FLAG actually gives method used
gal.ssfr = galx['SSFR'][0]
# Instantiate the IGM System
igm_sys = IGMSystem((galx['QSORA'][0], galx['QSODEC'][0]),
summ['ZFINAL'][0], [-600, 600.]*u.km/u.s,
abs_type='CGM')
igm_sys.zqso = galx['ZQSO'][0]
# Instantiate
cgabs = CGMAbsSys(gal, igm_sys, name=gal.field+'_'+gal.gal_id, **kwargs)
# EBV
cgabs.ebv = galx['EBV'][0]
# Ions
if skip_ions is True:
# NHI
dat_tab = Table(hdu[3].data)
#if dat_tab['Z'] != 1:
# raise ValueError("Uh oh")
cgabs.igm_sys.NHI = dat_tab['CLM'][0]
cgabs.igm_sys.sig_NHI = dat_tab['SIG_CLM'][0]
cgabs.igm_sys.flag_NHI = dat_tab['FLG_CLM'][0]
self.cgm_abs.append(cgabs)
return
all_Z = []
all_ion = []
for jj in range(summ['NION'][0]):
iont = hdu[3+jj].data
if jj == 0: # Generate new Table
dat_tab = Table(iont)
else:
try:
dat_tab.add_row(Table(iont)[0])
except:
pdb.set_trace()
all_Z.append(iont['ZION'][0][0])
all_ion.append(iont['ZION'][0][1])
# AbsLines
abslines = []
ntrans = len(np.where(iont['LAMBDA'][0] > 1.)[0])
for kk in range(ntrans):
flg = iont['FLG'][0][kk]
# Fill in
aline = AbsLine(iont['LAMBDA'][0][kk]*u.AA, closest=True)
aline.attrib['flag_origCH'] = int(flg)
aline.attrib['EW'] = iont['WOBS'][0][kk]*u.AA/1e3 # Observed
aline.attrib['sig_EW'] = iont['SIGWOBS'][0][kk]*u.AA/1e3
if aline.attrib['EW'] > 3.*aline.attrib['sig_EW']:
aline.attrib['flag_EW'] = 1
else:
aline.attrib['flag_EW'] = 3
# Force an upper limit (i.e. from a blend)
if (flg == 2) or (flg == 4) or (flg == 6):
aline.attrib['flag_EW'] = 3
#.........这里部分代码省略.........