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
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
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