示例#1
0
    def build_sys_from_dict(self, sys_name, llist=None, **kwargs):
        """ Build CGMAbsSys from the internal dict

        Parameters
        ----------
        sys_name : str
          Name of the system
        llist : LineList, optional
        kwargs : passed to CGMAbsSys.from_dict

        Returns
        -------
        CGMAbsSys

        """
        tdict = self._dict[sys_name]
        cgmsys = CGMAbsSys.from_dict(tdict,
                                     chk_vel=False,
                                     chk_sep=False,
                                     chk_data=False,
                                     use_coord=True,
                                     use_angrho=True,
                                     linelist=llist,
                                     **kwargs)
        # Return
        return cgmsys
示例#2
0
    def from_tarball(cls, tfile, debug=False, **kwargs):
        """ Load the COS-Halos survey from a tarball of JSON files
        Parameters
        ----------
        tfile : str

        Returns
        -------

        """
        import tarfile
        import json
        from linetools.lists.linelist import LineList
        llist = LineList('ISM')

        slf = cls(**kwargs)
        # Load
        tar = tarfile.open(tfile)
        for kk, member in enumerate(tar.getmembers()):
            if '.' not in member.name:
                print('Skipping a likely folder: {:s}'.format(member.name))
                continue
            # Debug
            if debug and (kk == 5):
                break
            # Extract
            f = tar.extractfile(member)
            tdict = json.load(f)
            # Generate
            cgmsys = CGMAbsSys.from_dict(tdict,
                                         chk_vel=False,
                                         chk_sep=False,
                                         chk_data=False,
                                         use_coord=True,
                                         use_angrho=True,
                                         linelist=llist,
                                         **kwargs)
            slf.cgm_abs.append(cgmsys)
        tar.close()
        # Return
        return slf
示例#3
0
文件: cgmsurvey.py 项目: pyigm/pyigm
    def from_tarball(cls, tfile, debug=False, **kwargs):
        """ Load the COS-Halos survey from a tarball of JSON files
        Parameters
        ----------
        tfile : str

        Returns
        -------

        """
        import tarfile
        import json
        from linetools.lists.linelist import LineList
        llist = LineList('ISM')

        slf = cls(**kwargs)
        # Load
        tar = tarfile.open(tfile)
        for kk, member in enumerate(tar.getmembers()):
            if '.' not in member.name:
                print('Skipping a likely folder: {:s}'.format(member.name))
                continue
            # Debug
            if debug and (kk == 5):
                break
            # Extract
            f = tar.extractfile(member)
            tdict = json.load(f)
            # Generate
            cgmsys = CGMAbsSys.from_dict(tdict, chk_vel=False, chk_sep=False, chk_data=False,
                                         use_coord=True, use_angrho=True,
                                         linelist=llist, **kwargs)
            slf.cgm_abs.append(cgmsys)
        tar.close()
        # Return
        return slf
示例#4
0
    def load_tarball(self,
                     tfile,
                     build_data=True,
                     build_sys=False,
                     llist=None,
                     verbose=True,
                     **kwargs):
        """
        Parameters
        ----------
        tfile
        build_data
        build_sys
        llist
        kwargs

        Returns
        -------

        """
        import tarfile
        # Load
        tar = tarfile.open(tfile)
        for kk, member in enumerate(tar.getmembers()):
            if '.json' not in member.name:
                print('Skipping a likely folder: {:s}'.format(member.name))
                continue
            # Extract
            f = tar.extractfile(member)
            try:
                tdict = json.load(f)
            except:
                if verbose:
                    print('Unable to load {}'.format(member))
                continue
            # Build dict
            self._dict[tdict['Name']] = tdict
            # Generate
            if build_sys:
                cgmsys = CGMAbsSys.from_dict(tdict,
                                             chk_vel=False,
                                             chk_sep=False,
                                             chk_data=False,
                                             use_coord=True,
                                             use_angrho=True,
                                             linelist=llist,
                                             **kwargs)
                self.cgm_abs.append(cgmsys)
        tar.close()

        # Galaxy coords
        ras = [self._dict[key]['RA'] for key in self._dict.keys()]
        decs = [self._dict[key]['DEC'] for key in self._dict.keys()]
        self.coords = SkyCoord(ra=ras, dec=decs, unit='deg')

        # Sightline coords
        ras = [self._dict[key]['igm_sys']['RA'] for key in self._dict.keys()]
        decs = [self._dict[key]['igm_sys']['DEC'] for key in self._dict.keys()]
        self.scoords = SkyCoord(ra=ras, dec=decs, unit='deg')

        # Data table
        if build_data:
            self.build_data_from_dict()
        # Return
        return