def cgmsurvey_from_sightlines_fields(fields, sightlines, rho_max=300 * u.kpc, name=None, dummysys=True, embuffer=None, **kwargs): """Instantiate CGMAbsSurvey object from lists fo IgmGalaxyFields and IGMSightlines Parameters ---------- fields: list of IgmGalaxyFields sightlines : list of IGMSightlines name : str, optional Name for the survey dummysys : bool, optional Passed on to 'cgm_from_galaxy_igmsystems()'. If True, create CGMAbsSys even if no matching IGMSystem is found in any sightline for some galaxy embuffer : Quantity, optional Velocity buffer between background source (e.g., QSO) and CGMAbsSys Returns ------- cgmsurvey: CGMAbsSurvey """ if ((not isinstance(fields, list)) | (not isinstance(sightlines, list)) | (len(fields) != len(sightlines))): raise IOError( "Inputs fields and sightlines must lists of the same length") if dummysys is True: from linetools.spectralline import AbsLine ismlist = LineList('ISM') from pyigm.cgm.cgmsurvey import CGMAbsSurvey cgmsys = [] for i, ff in enumerate(fields): print(ff.name) thiscgmlist = cgmabssys_from_sightline_field(ff, sightlines[i], rho_max=rho_max, dummysys=dummysys, linelist=ismlist, embuffer=embuffer, **kwargs) cgmsys.extend(thiscgmlist) if name is not None: cgmsurvey = CGMAbsSurvey.from_cgmabssys(cgmsys, survey=name) else: cgmsurvey = CGMAbsSurvey.from_cgmabssys(cgmsys) return cgmsurvey