예제 #1
0
파일: dla_utils.py 프로젝트: nhmc/xastropy
    def __init__(self, dat_file=None, tree=None):
        # Generate with type
        AbslineSystem.__init__(self,'DLA')
        # Over-ride tree?
        if tree != None:
            self.tree = tree
        else:
            self.tree = ''

        # Parse .dat file
        if dat_file != None:
            self.dat_file = self.tree+dat_file
            print('dla_utils: Reading {:s}'.format(self.dat_file))
            self.parse_dat_file(self.dat_file)
            # QSO keys
            self.qso = self.datdict['QSO name']
            self.zqso = float(self.datdict['QSO zem'])
            # Abund
            self.flg_MH = float(self.datdict['flg_mtl'])
            self.MH = float(self.datdict['[M/H]'])
            self.sigMH = float(self.datdict['sig([M/H])'])

        # Init
        self.ions = None
        self.zpeak = None
예제 #2
0
파일: dla_utils.py 프로젝트: nhmc/xastropy
    def __init__(self, dat_file=None, tree=None):
        # Generate with type
        AbslineSystem.__init__(self, 'DLA')
        # Over-ride tree?
        if tree != None:
            self.tree = tree
        else:
            self.tree = ''

        # Parse .dat file
        if dat_file != None:
            self.dat_file = self.tree + dat_file
            print('dla_utils: Reading {:s}'.format(self.dat_file))
            self.parse_dat_file(self.dat_file)
            # QSO keys
            self.qso = self.datdict['QSO name']
            self.zqso = float(self.datdict['QSO zem'])
            # Abund
            self.flg_MH = float(self.datdict['flg_mtl'])
            self.MH = float(self.datdict['[M/H]'])
            self.sigMH = float(self.datdict['sig([M/H])'])

        # Init
        self.ions = None
        self.zpeak = None
예제 #3
0
    def __init__(self, dat_file=None, tree=None, **kwargs):
        # Generate with type
        AbslineSystem.__init__(self,'LLS', **kwargs)
        # Over-ride tree?
        if tree != None:
            self.tree = tree
        else:
            self.tree = ''
        # Parse .dat file
        if dat_file != None:
            self.parse_dat_file(self.tree+dat_file)
            self.dat_file = self.tree+dat_file

        # Set tau_LL
        self.tau_LL = (10.**self.NHI)*6.3391597e-18 # Should replace with photocross
        self.ions = None
        self.zpeak = None
예제 #4
0
    def __init__(self, dat_file=None, tree=None, **kwargs):
        # Generate with type
        AbslineSystem.__init__(self, 'LLS', **kwargs)
        # Over-ride tree?
        if tree != None:
            self.tree = tree
        else:
            self.tree = ''
        # Parse .dat file
        if dat_file != None:
            self.parse_dat_file(self.tree + dat_file)
            self.dat_file = self.tree + dat_file

        # Set tau_LL
        self.tau_LL = (
            10.**self.NHI) * 6.3391597e-18  # Should replace with photocross
        self.ions = None
        self.zpeak = None
예제 #5
0
    def parse_dat_file(self,dat_file):
        # Standard Call
        out_list = AbslineSystem.parse_dat_file(self,dat_file,flg_out=1)

        # LLS keys
        self.bgsrc = self.datdict['QSO name']
        self.zem = float(self.datdict['QSO zem'])  # Was zqso
        self.MH = float(self.datdict['[M/H] ave'])
        self.nsub = int(self.datdict['N subsys'])
        self.cldyfil = self.datdict['Cloudy Grid File']

        # LLS Subsystems
        if self.nsub > 0:
            self.subsys = {}
            lbls= map(chr, range(65, 91))
            # Dict
            keys = (['zabs','NHI','NHIsig','NH','NHsig','log x','sigx','b','bsig','Abund file',
                     'U','Usig','flg_low','flg_alpha','[alpha/H]','sig[a/H]',
                     'flg_Fe','[Fe/H]','sig[Fe/H]','VPFIT file'])
            att = (['zabs','NHI','NHIsig','NH','NHsig','logx','sigx','bval','bsig','clm_file',
                     'U','Usig','flg_low','flg_alpha','alpha_H','sig_a_H',
                     'flg_Fe','Fe_H','sig_Fe_H','VPFIT_file'])
            values = ([0., 0., np.zeros(2), 0., np.zeros(2), 0., np.zeros(2), 0., 0.,
                    '', 0., np.zeros(2), 0, 0, 0., 0., 0, 0., 0., ''])
            null_dict = dict(zip(keys,values))
            # Loop on subsystems
            for i in range(self.nsub):
                # Generate
                self.subsys[lbls[i]] = Abs_Sub_System('LLS')
                self.subsys[lbls[i]].name = self.name+lbls[i]
                self.subsys[lbls[i]].coord = self.coord
                self.subsys[lbls[i]].tree = self.tree
                self.subsys[lbls[i]].linelist = self.linelist
                # Fill in
                for ii,key in enumerate(keys):
                    try:
                        tmpc = self.datdict[lbls[i]+' '+key]
                    except:
                        raise ValueError('lls_utils: Key "{:s}" not found in {:s}'
                                         .format(lbls[i]+key,dat_file))
                    else:  # Convert
                        val = null_dict[key]
                        #pdb.set_trace()
                        if val.__class__ == np.ndarray:  
                            setattr(self.subsys[lbls[i]], att[ii],
                                    np.array(map(float,tmpc.split())) )
                        else: # Single value
                            setattr(self.subsys[lbls[i]], att[ii], (map(type(val),[tmpc]))[0] )
예제 #6
0
    def __init__(self):
        # Generate with type
        AbslineSystem.__init__(self, 'CGM')

        # Init
        self.ions = None
예제 #7
0
    def parse_dat_file(self, dat_file):
        # Standard Call
        out_list = AbslineSystem.parse_dat_file(self, dat_file, flg_out=1)

        # LLS keys
        self.bgsrc = self.datdict['QSO name']
        self.zem = float(self.datdict['QSO zem'])  # Was zqso
        self.MH = float(self.datdict['[M/H] ave'])
        self.nsub = int(self.datdict['N subsys'])
        self.cldyfil = self.datdict['Cloudy Grid File']

        # LLS Subsystems
        if self.nsub > 0:
            self.subsys = {}
            lbls = map(chr, range(65, 91))
            # Dict
            keys = ([
                'zabs', 'NHI', 'NHIsig', 'NH', 'NHsig', 'log x', 'sigx', 'b',
                'bsig', 'Abund file', 'U', 'Usig', 'flg_low', 'flg_alpha',
                '[alpha/H]', 'sig[a/H]', 'flg_Fe', '[Fe/H]', 'sig[Fe/H]',
                'VPFIT file'
            ])
            att = ([
                'zabs', 'NHI', 'NHIsig', 'NH', 'NHsig', 'logx', 'sigx', 'bval',
                'bsig', 'clm_file', 'U', 'Usig', 'flg_low', 'flg_alpha',
                'alpha_H', 'sig_a_H', 'flg_Fe', 'Fe_H', 'sig_Fe_H',
                'VPFIT_file'
            ])
            values = ([
                0., 0.,
                np.zeros(2), 0.,
                np.zeros(2), 0.,
                np.zeros(2), 0., 0., '', 0.,
                np.zeros(2), 0, 0, 0., 0., 0, 0., 0., ''
            ])
            null_dict = dict(zip(keys, values))
            # Loop on subsystems
            for i in range(self.nsub):
                # Generate
                self.subsys[lbls[i]] = Abs_Sub_System('LLS')
                self.subsys[lbls[i]].name = self.name + lbls[i]
                self.subsys[lbls[i]].coord = self.coord
                self.subsys[lbls[i]].tree = self.tree
                self.subsys[lbls[i]].linelist = self.linelist
                # Fill in
                for ii, key in enumerate(keys):
                    try:
                        tmpc = self.datdict[lbls[i] + ' ' + key]
                    except:
                        raise ValueError(
                            'lls_utils: Key "{:s}" not found in {:s}'.format(
                                lbls[i] + key, dat_file))
                    else:  # Convert
                        val = null_dict[key]
                        #pdb.set_trace()
                        if val.__class__ == np.ndarray:
                            setattr(self.subsys[lbls[i]], att[ii],
                                    np.array(map(float, tmpc.split())))
                        else:  # Single value
                            setattr(self.subsys[lbls[i]], att[ii],
                                    (map(type(val), [tmpc]))[0])
예제 #8
0
파일: core.py 프로젝트: nhmc/xastropy
    def __init__(self): 
        # Generate with type
        AbslineSystem.__init__(self,'CGM')

        # Init
        self.ions = None