slugpy – The Python Helper Library¶
Installing slugpy¶
SLUG comes with the python module slugpy, which contains an extensive set of routines for reading, writing, and manipulating SLUG outputs. You can install slugpy one of two ways.
Using
Make. If you compile the main slug code by doingMakein the main slug directory, the c slugpy extensions will be build automatically. Once that is done, you will be able to use slugpy just by importing it, provided that the slugpy directory is in your python import path.Using
setup.py. The slug distribution comes with asetup.pyscript that follows the standard python package convensions. Just do:python setup.py build
to build the c extensions in place, which will let you import slugpy from the directory where it is located. Alternately, do:
python setup.py install
to install as a site package. Installing as a site package often requires root permissions, in which case you should do:
sudo python setup.py install
or:
python setup.py install --user
instead.
A note on compiling slugpy with setup.py: the slugpy c extensions require the GNU Scientific Library; to build or install slugpy, the appropriate headers must be in your default include path, and the appropriate libraries in your default link path. If they are not, you can tell setup where they are located by creating a file named setup.cfg in the slug2 directory, which contains the lines:
[build_ext]
include_dirs=/PATH/TO/GSL/HEADER
library_dirs=/PATH/TO/GSL/LIBRARIES
Then you should be able to build and install slugpy with setup.py.
Basic Usage¶
The most common task is to read a set of SLUG outputs into memory so that they can be processed. To read the data from a SLUG run using slugpy, one can simply do the following:
from slugpy import *
idata = read_integrated('SLUG_MODEL_NAME')
cdata = read_cluster('SLUG_MODEL_NAME')
The read_integrated function reads all the integrated-light data (i.e., the data stored in the _integrated_* files – see Output Files and Format) for a SLUG output whose name is given as the argument. This is the base name specified by the model_name keyword (see Basic Keywords), without any extensions; the slugpy library will automatically determine which outputs are available and in what format, and read the appropriate files. It returns a namedtuple containing all the output data available for that simulation. Note that some of these fields will only be present if the cloudy-slug interface (see cloudy_slug: An Automated Interface to cloudy) was used to process the SLUG output through cloudy to predict nebular emission, and some will be present only if extinction was enabled when SLUG was run. The fields returned are as follows:
time: output times
target_mass: target stellar mass at each time
actual_mass: actual stellar mass at each time
live_mass: mass of currently-alive stars
cluster_mass: mass of living stars in non-disrupted clusters
num_clusters: number of non-disrupted clusters
num_dis_clusters: number of disrupted clusters
num_fld_stars: number of still-living stars that formed in the field
wl: wavelengths of output stellar spectra (in Angstrom)
spec: integrated spectrum of all stars, expressed as a specific luminosity (erg/s/Angstrom)
filter_names: list of photometric filter names
filter_units: list of units for photometric outputs
filter_wl_eff: effective wavelength for each photometric filter
filter_wl: list of wavelengths for each filter at which the response function is given (in Angstrom)
filter_response: photon response function for each filter at each wavelength (dimensionless)
filter_beta: index \(\beta\) used to set the normalization for each filter – see Spectra and Photometry
filter_wl_c: pivot wavelength used to set the normalization for each filter for which \(\beta \neq 0\) – see Spectra and Photometry
phot: photometry of the stars in each filter
isotope_name: element symbols for the isotopes whose yields are reported
isotope_Z: atomic numbers for the isotopes whose yields are reported
isotope_A: atomic numbers for the isotopes whose yields are reported
yld: yield of each isotope at each time
The following fields are present only if SLUG was run with nebular processing enabled:
wl_neb: same as wl, but for the spectrum that emerges after the starlight has passed through the nebulae around the emitting clusters and field stars. The nebular grid is finer than the stellar grid, because it contains wavelength extra entries around prominent lines so that the lines are resolved on the grid
spec_neb: same as spec, but for the nebular-processed spectrum
phot_neb: same as phot, but for the nebular-processed spectrum
The following fields are present only if SLUG was run with extinction enabled:
wl_ex: wavelengths of output stellar spectra after extinction has been applied(in Angstrom). Note that wl_ex will generally cover a smaller wavelength range than wl, because the extinction curve used may not cover the full wavelength range of the stellar spectra. Extincted spectra are computed only over the range covered by the extinction curve.
spec_ex: same as spec, but for the extincted spectrum
phot_ex: same as phot, but for the extincted spectrum. Note that some values may be
NaN. This indicates that photometry of the extincted spectrum could not be computed for that filter, because the filter response curve extends to wavelengths outside the range covered by the extinction curve.
The following fields are present only if SLUG was run with both nebular processing and extinction enabled:
wl_neb_ex: same as wl_neb, but for the extincted, nebular-processed spectrum. Will be limited to the same wavelength range as wl_ex.
spec_neb_ex: same as spec_neb, but with extinction applied
phot_neb_ex: same as phot_neb, but wtih extinction applied. Note that some values may be
NaN. This indicates that photometry of the extincted spectrum could not be computed for that filter, because the filter response curve extends to wavelengths outside the range covered by the extinction curve.
The following fields are present only for runs that have been processed through the cloudy_slug interface (see cloudy_slug: An Automated Interface to cloudy):
cloudy_wl: wavelengths of the output nebular spectra (in Angstrom)
cloudy_inc: incident stellar radiation field, expressed as a specific luminosity (erg/s/Angstrom) – should be the same as spec, but binned onto cloudy’s wavelength grid; provided mainly as a bug-checking diagnostic
cloudy_trans: the transmitted stellar radiation field computed by cloudy, expressed as a specific luminosity (erg/s/Angstrom) – this is the radiation field of the stars after it has passed through the HII region, and is what one would see in an observational aperture centered on the stars with negligible contribution from the nebula
cloudy_emit: the emitted nebular radiation field computed by cloudy, expressed as a specific luminosity (erg/s/Angstrom) – this is the radiation emitted by the nebula excluding the stars, and is what one would see in an observational aperture that included the nebula but masked out the stars
cloudy_trans_emit: the sum of the transmitted stellar and emitted nebular radiation, expressed as a specific luminosity (erg/s/Angstrom) – this is what one would see in an observational aperture covering the both the stars and the nebula
cloudy_linelabel: list of emitting species for the line luminosities computed by cloudy, following cloudy’s 4-letter notation
cloudy_linewl: wavelengths of all the lines computed by cloudy (in Angstrom)
cloudy_linelum: luminosities of the lines computed by cloudy (in erg/s)
cloudy_filter_names, cloudy_filter_units, cloudy_filter_wl_eff, cloudy_filter_wl, cloudy_filter_response, cloudy_filter_beta, cloudy_filter_wl_c: exactly the same as the corresponding fields without the cloudy prefix, but for the photometric filters applied to the cloudy output
cloudy_phot_trans, cloudy_phot_emit, and cloudy_phot_trans_emit: photometry of the transmitted, emitted, and transmitted+emitted radiation field provided by cloudy_trans, cloudy_emit, and cloudy_trans_emit
For the above fields, quantities that are different for each trial and each time are stored as numpy arrays with a shape (N_times, N_trials) for scalar quantities (e.g., actual_mass), or a shape (N, N_times, N_trials) for quantities that are vectors of length N (e.g., the spectrum).
The read_cluster function is analogous, except that instead of reading the whole-galaxy data, it reads data on the individual star clusters, as stored in the _cluster_* output files. It returns the following fields:
id: a unique identifier number for each cluster; this is guaranteed to be unique across both times and trials, so that if two clusters in the list have the same id number, that means that the data given are for the same cluster at two different times in its evolution
trial: the trial number in which that cluster appeared
time: the time at which the data for that cluster are computed
form_time: the time at which that cluster formed
lifetime: the between when the cluster formed and when it will disrupt
target_mass: the target stellar mass of the cluster
actual_mass: the actual stellar mass of the cluter
live_mass: the mass of all still-living stars in the cluster
num_star: the number of stars in the cluster
max_star_mass: the mass of the single most massive still-living star in the cluster
A_V: the visual extinction for this cluster, in mag; present only if SLUG was run with extinction enabled
All the remaining fields are identical to those listed above for integrated quantities, starting with wl
For all these fields, scalar quantities that are different for each cluster (e.g., actual_mass) will be stored as arrays of shape (N_cluster); vector quantities that are different for each cluster (e.g., spec) will be stored as arrays of shape (N_cluster, N).
The following fields are present only if SLUG was run with a Variable Mode IMF:
VPx: The value drawn for variable parameter x (0,1,2…) in each trial. The parameters are numbered in the order they are defined in the IMF definition file.
These fields are present in both the cluster and integrated outputs if a simulation has been run using the variable mode IMF.
Full Documentation of slugpy¶
- slugpy.combine_cluster(data)[source]¶
Function to combine cluster data from multiple SLUG2 runs, treating each input run as a separate set of trials. Trial and cluster unique ID numbers are altered as necessary to avoid duplication between the merged data sets.
- Parameters:
- datalist_like
A list containing the cluster data for each run, as returned by read_cluster
- Returns:
- combined_datanamedtuple
The combined data, in the same format as each object in data
- slugpy.combine_integrated(data)[source]¶
Function to combine integrated data from multiple SLUG2 runs, treating each input run as a separate set of trials.
- Parameters
- datalist_like
A list containing the integrated data for each run, as returned by read_integrated
- Returns
- combined_datanamedtuple
The combined data, in the same format as each object in data
- slugpy.compute_photometry(wl, spec, filtername, photsystem='L_nu', filter_wl=None, filter_response=None, filter_beta=None, filter_wl_c=None, filter_dir=None)[source]¶
This function takes an input spectrum and a set of response functions for photometric filters, and returns the photometry through those filters.
- Parameters
- wlarray
Wavelength of input spectrum in Angstrom
- specarray
Specific luminosity per unit wavelength for input spectrum, in erg/s/A
- filternamestring or iterable of strings
Name or list of names of the filters to be used. Filter names can also include the special filters Lbol, QH0, QHe0, and QHe1; the values returned for these will be the bolometric luminosity (in erg/s) and the photon luminosities (in photons/s) in the H, He, and He+ ionizing-continua, respectively.
- photsystemstring
The photometric system to use for the output. Allowable values are ‘L_nu’, ‘L_lambda’, ‘AB’, ‘STMAG’, and ‘Vega’, corresponding to the options defined in the SLUG code.
- filter_wlarray or iterable of arrays
Array giving the wavelengths in Angstrom at which the filter is response function is given. If this object is an iterable of arrays rather than a single array, it is assumed to represent the wavelengths for a set of filters. If this is set, no data is read from disk. Default behavior is to read the filter information from disk.
- filter_responsearray or iterable of arrays
Array giving the filter response function at each wavelenght and for each filter in filter_wl. Must be set if filter_wl is set, ignored otherwise.
- filter_betaiterable
Array-like object containing the index beta for each filter. Must be set if filter_wl is set, ignored otherwise.
- filter_wl_citerable
Array-like object containing the pivot wavelength for each filter. Must be set if filter_wl is set, ignored otherwise.
- filter_dirstring
Directory where the filter data files can be found. If left as None, filters will be looked for in the $SLUG_DIR/lib/filters directory. This parameter is used only if filtername is not None.
- Returns
- photarray
Photometric values in the requested filters. Units depend on the choice of photometric system: L_nu –> erg/s/Hz; L_lambda –> erg/s/A; AB –> absolute AB magnitude; STMAG –> absolute ST magnitude; Vega –> absolute Vega magnitude;
- slugpy.photometry_convert(photsystem, phot, units, wl_cen=None, filter_last=False, filter_names=None, filter_dir=None)[source]¶
Function to convert photometric data between photometric systems.
- Parameters
- photsystemstring
The photometric system to which to convert. Allowable values are ‘L_nu’, ‘L_lambda’, ‘AB’, ‘STMAG’, and ‘Vega’, corresponding to the options defined in the SLUG code. If this is set and the conversion requested involves a conversion from a wavelength-based system to a frequency-based one, wl_cen must not be None.
- photarray
array of photometric data; if the array has more than one dimension, the first dimension is assumed to represent the different photometric filters (unless filter_last is True, in which case the last dimension is represents the array of filters)
- unitsiterable of strings
iterable listing the units of the input photometric data. On return, strings will be changed to the units of the new system.
- wl_cenarray
central wavelengths of the filters, in Angstrom; can be left as None if the requested conversion doesn’t require going between wavelength- and frequency-based systems.
- filter_lastbool
If the input data have more than one dimension, by default it is assumed that the first dimension contains values for the different photometric filters. If this keyword is set to True, it will instead be assumed that the last dimension contains the values for the different filters.
- filter_namesiterable of strings
Names of all filters, used to read the filter response functions from disk; only needed for conversions to and from Vega magnitudes, and ignored otherwise
- filter_dirstring
Directory where the filter data files can be found. If left as None, filters will be looked for in the $SLUG_DIR/lib/filters directory. This parameter is used only for conversions to and from Vega magnitudes.
- Returns
Nothing
- Raises
ValueError, if wl_cen is None but the requested conversion requires going between wavelength- and frequency-based systems
- slugpy.read_cluster(model_name, output_dir=None, fmt=None, nofilterdata=False, photsystem=None, verbose=False, read_filters=None, read_nebular=None, read_extinct=None, read_info=None, read_lines=None, no_stellar_mass=False)[source]¶
Function to read all cluster data for a SLUG2 run.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmtstring
Format for the file to be read. Allowed values are ‘ascii’, ‘bin’ or ‘binary, and ‘fits’. If one of these is set, the code will only attempt to open ASCII-, binary-, or FITS-formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- nofilterdatabool
If True, the routine does not attempt to read the filter response data from the standard location
- photsystemNone or string
If photsystem is None, the data will be returned in the same photometric system in which they were read. Alternately, if it is a string, the data will be converted to the specified photometric system. Allowable values are ‘L_nu’, ‘L_lambda’, ‘AB’, ‘STMAG’, and ‘Vega’, corresponding to the options defined in the SLUG code. If this is set and the conversion requested involves a conversion from a wavelength-based system to a frequency-based one, nofilterdata must be False so that the central wavelength of the photometric filters is available.
- verbosebool
If True, verbose output is printed as code runs
- read_filtersNone | string | listlike containing strings
If this is None, photometric data on all filters is read. Otherwise only filters whose name(s) match the input filter names ar read.
- read_nebularNone | bool
If True, only photometric data with the nebular contribution is read; if False, only data without it is read. Default behavior is to read all data.
- read_extinctNone | bool
If True, only photometric data with extinction applied is read; if False, only data without it is read. Default behavior is to read all data.
- read_infodict
On return, this dict will contain the keys ‘prop_name’, ‘phot_name’, ‘spec_name’, ‘cloudyspec_name’, ‘cloudylines_name’ and ‘format’, giving the names of the files read and the format they were in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’. If one of the files is not present, the corresponding _name key will be omitted from the dict.
- no_stellar_massbool
Prior to 7/15, output files did not contain the stellar_mass field; this can be detected automatically for ASCII and FITS formats, but not for binary format; if True, this specifies that the binary file being read does not contain a stellar_mass field; it has no effect for ASCII or FITS files
- no_neb_extinctbool
Prior to 2/17, SLUG did not support differential nebular extinction, and thus there was no output field for it; this is detected and handled automatically for ASCII and FITS files; for binary outputs, this flag must be set for pre 2/17 output files to be read correctly
- read_linesNone | string | listlike containing strings
If this is None, data for all the available lines will be read. Default is to read all data.
- Returns
A namedtuple containing the following fields:
(Always present)
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
time at which cluster’s properties are being evaluated
- A_Varray
A_V value for each cluster, in mag (present only if SLUG was run with extinction enabled)
- A_Vnebarray
value of A_V applied to the nebular light for each cluster (present only if SLUG was run with both nebular emission and extinction enabled)
(Present if the run being read contains a cluster_prop file)
- form_timearray
time when cluster formed
- lifetimearray
time at which cluster will disrupt
- target_massarray
target cluster mass
- actual_massarray
actual mass at formation
- live_massarray
mass of currently living stars
- stellar_massarray
mass of all stars, living and stellar remnants
- num_stararray, dtype ulonglong
number of living stars in cluster being treated stochastically
- max_star_massarray
mass of most massive living star in cluster
- vpn_tupletuple
tuple containing arrays for any variable parameters we have (eg: VP0, VP1,VP2…) in the IMF. Each element of the tuple is an array. Present only if variable parameters were enables when SLUG was run.
(Present if the run being read contains a cluster_spec file)
- wlarray
wavelength, in Angstrom
- specarray, shape (N_cluster, N_wavelength)
specific luminosity of each cluster at each wavelength, in erg/s/A
- wl_nebarray
wavelength for the nebular spectrum, in Angstrom (present only if SLUG was run with nebular emission enabled)
- spec_nebarray, shape (N_cluster, N_wavelength)
specific luminosity at each wavelength and each time for each trial, including emission and absorption by the HII region, in erg/s/A (present only if SLUG was run with nebular emission enabled)
- wl_exarray
wavelength for the extincted spectrum, in Angstrom (present only if SLUG was run with extinction enabled)
- spec_exarray, shape (N_cluster, N_wavelength)
specific luminosity at each wavelength in wl_ex and each time for each trial after extinction has been applied, in erg/s/A (present only if SLUG was run with extinction enabled)
- wl_neb_exarray
wavelength for the extincted spectrum with nebular emission, in Angstrom (present only if SLUG was run with both nebular emission and extinction enabled)
- spec_neb_exarray, shape (N_cluster, N_wavelength)
specific luminosity at each wavelength in wl_ex and each time for each trial including emission and absorption by the HII region, after extinction has been applied, in erg/s/A (present only if SLUG was run with nebular emission and extinction both enabled)
(Present if the run being read contains a cluster_phot file)
- filter_nameslist of string
a list giving the name for each filter
- filter_unitslist of string
a list giving the units for each filter
- filter_wl_cenlist
central wavelength of each filter; this is set to None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- filter_wllist of arrays
a list giving the wavelength table for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- filter_responselist of arrays
a list giving the photon response function for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- photarray, shape (N_cluster, N_filter)
photometric value in each filter for each cluster; units are as indicated in the units field; this is the true photometric output of the stars alone
- phot_exarray, shape (N_cluster, N_filter)
photometry of the stars after extinction is applied (only present if SLUG was run with extinction enabled)
- phot_nebarray, shape (N_cluster, N_filter)
photometry of the stars plus nebular emission (only present if SLUG was run with nebular emission enabled)
- phot_neb_exarray, shape (N_cluster, N_filter)
photometry of the stars plus nebular emission after extinction is applied (only present if SLUG was run with both nebular emission and extinction enabled)
(Present is the run being read contains a cluster_sn file)
- tot_snarray, shape (N_cluster)
cumulative number of type II supernovae that have occurred in that cluster up to the present time
- stoch_snarray of int, shape (N_cluster)
cumulative number of stochastically-treated supernovae that have occurred in that cluster up to the present time; this differs from tot_sn only if SLUG was run with min_stoch_mass > 0
(Present if the run being read contains a cluster_yield file)
- isotope_namearray of strings
Atomic symbols of the isotopes included in the yield table
- isotope_Zarray of int
Atomic numbers of the isotopes included in the yield table
- isotope_Aarray of int
Atomic mass number of the isotopes included in the yield table
- yldarray
Yield of each isotope, defined as the instantaneous amount produced up to that time; for unstable isotopes, this includes the effects of decay since production
(Present if the run being read contains a cluster_cloudyspec file)
- cloudy_wlarray
wavelength, in Angstrom
- cloudy_incarray, shape (N_cluster, N_wavelength)
specific luminosity of the cluster’s stellar radiation field at each wavelength, in erg/s/A
- cloudy_transarray, shape (N_cluster, N_wavelength)
specific luminosity of the stellar radiation field after it has passed through the HII region, at each wavelength, in erg/s/A
- cloudy_emitarray, shape (N_cluster, N_wavelength)
specific luminosity of the radiation field emitted by the HII region, at each wavelength, in erg/s/A
- cloudy_trans_emitarray, shape (N_cluster, N_wavelength)
the sum of the emitted and transmitted fields; this is what would be seen by an observer looking at both the star cluster and its nebula
(Present if the run being read contains a cluster_cloudylines file)
- cloudy_linelabelarray, dtype=’S4’, shape (N_lines)
labels for the lines, following cloudy’s 4 character line label notation
- cloudy_linewlarray, shape (N_lines)
rest wavelength for each line, in Angstrom
- cloudy_linelumarray, shape (N_cluster, N_lines)
luminosity of each line at each time for each trial, in erg/s
(Present if the run being read contains a cluster_cloudyphot file)
- cloudy_filter_nameslist of string
a list giving the name for each filter
- cloudy_filter_unitslist of string
a list giving the units for each filter
- cloudy_filter_wl_efflist
effective wavelength of each filter; this is set to None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- cloudy_filter_wllist of arrays
a list giving the wavelength table for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- cloudy_filter_responselist of arrays
a list giving the photon response function for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- cloudy_filter_betalist
powerlaw index beta for each filter; used to normalize the photometry
- cloudy_filter_wl_clist
pivot wavelength for each filter; used to normalize the photometry
- cloudy_phot_transarray, shape (N_cluster, N_filter)
photometric value for each cluster in each filter for the transmitted light (i.e., the starlight remaining after it has passed through the HII region); units are as indicated in the units field
- cloudy_phot_emitarray, shape (N_cluster, N_filter)
photometric value for each cluster in each filter for the emitted light (i.e., the diffuse light emitted by the HII region); units are as indicated in the units field
- cloudy_phot_trans_emitarray, shape (N_cluster, N_filter)
photometric value in each filter for each cluster for the transmitted plus emitted light (i.e., the light coming directly from the stars after absorption by the HII region, plus the diffuse light emitted by the HII region); units are as indicated in the units field
(Present if the run being read contains a cluster_cloudyparams file)
- cloudy_hdenarray
number density of H nuclei at the inner edge of the ionized region simulated by cloudy
- cloudy_r0array
inner radius of the ionized region simulated by cloudy
- cloudy_rSarray
outer radius of the ionized region simulated by cloudy (approximate!)
- cloudy_QH0array
ionizing luminosity used in the cloudy computation
- cloudy_covFacarray
covering factor assumed in the cloudy computation; only a fraction covFac of the ionizing photons are assumed to produce emission within the HII region, while the remainder are assumed to escape
- cloudy_Uarray
volume-averaged ionization parameter of the HII region simulated by cloudy; note that this value is approximate, not exact, and the approximation can be very poor if radiation pressure effects are significant
- cloudy_Omegaarray
Yeh & Matzner (2012) wind parameter for the HII region simulated by cloudy; as with U, this value is approximate, and the approximation is valid only if radiation pressure effects are small
(Present if the run being read contains a cluster_ew file)
- line_nameslist of string
a list giving the name for each line
- line_unitslist of string
a list giving the units for the equivalent width of each line
- ewarray, shape (N_cluster, N_lines)
equivalent width value of each line for each cluster; units are as indicated in the units field
- Raises
IOError, if no photometry file can be opened ValueError, if photsystem is set to an unknown values
- slugpy.read_cluster_ew(model_name, output_dir=None, fmt=None, verbose=False, read_info=None, lines_only=False, read_lines=None, ew_only=False)[source]¶
Function to read a SLUG2 cluster_ew file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files. Only FITS files are supported for the Equivalent Width data file.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- lines_onlybool
If True, the code only reads the data on the lines, not any of the equivalent widths.
- read_linesNone | string | listlike containing strings
If this is None, data on all lines is read. Otherwise only liness whose name(s) match the input line names are read.
- ew_onlybool
If true, id, trial, time, and line information are not read, only the equivalent widths
- Returns
A namedtuple, which can contain the following fields depending on the input options, and depending on which fields are present in the file being read:
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
times at which cluster spectra are output, in yr
- line_nameslist of string
a list giving the name for each line
- line_unitslist of string
a list giving the units for the equivalent width of each line
- ewarray, shape (N_cluster, N_lines)
equivalent width value of each line for each cluster; units are as indicated in the units field
- Raises
IOError, if no photometry file can be opened ValueError, if photsystem is set to an unknown value
- slugpy.read_cluster_phot(model_name, output_dir=None, fmt=None, nofilterdata=False, photsystem=None, verbose=False, read_info=None, filters_only=False, read_filters=None, read_nebular=None, read_extinct=None, phot_only=False)[source]¶
Function to read a SLUG2 cluster_phot file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- nofilterdatabool
If True, the routine does not attempt to read the filter response data from the standard location
- photsystemNone or string
If photsystem is None, the data will be returned in the same photometric system in which they were read. Alternately, if it is a string, the data will be converted to the specified photometric system. Allowable values are ‘L_nu’, ‘L_lambda’, ‘AB’, ‘STMAG’, and ‘Vega’, corresponding to the options defined in the SLUG code. If this is set and the conversion requested involves a conversion from a wavelength-based system to a frequency-based one, nofilterdata must be False so that the central wavelength of the photometric filters is available.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- filters_onlybool
If True, the code only reads the data on the filters, not any of the actual photometry. If combined with nofilterdata, this can be used to return the list of available filters and nothing else.
- read_filtersNone | string | listlike containing strings
If this is None, data on all filters is read. Otherwise only filters whose name(s) match the input filter names ar read.
- read_nebularNone | bool
If True, only data with the nebular contribution is read; if False, only data without it is read. Default behavior is to read all data.
- read_extinctNone | bool
If True, only data with extinction applied is read; if False, only data without it is read. Default behavior is to read all data.
- phot_onlybool
If true, id, trial, time, and filter information are not read, only photometry
- Returns
A namedtuple, which can contain the following fields depending on the input options, and depending on which fields are present in the file being read:
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
times at which cluster spectra are output, in yr
- filter_nameslist of string
a list giving the name for each filter
- filter_unitslist of string
a list giving the units for each filter
- filter_wl_efflist
effective wavelength of each filter; this is set to None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- filter_wllist of arrays
a list giving the wavelength table for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1
- filter_responselist of arrays
a list giving the photon response function for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1
- filter_betalist
powerlaw index beta for each filter; used to normalize the photometry
- filter_wl_clist
pivot wavelength for each filter; used to normalize the photometry
- photarray, shape (N_cluster, N_filter)
photometric value in each filter for each cluster; units are as indicated in the units field
- phot_nebarray, shape (N_filter, N_times, N_trials)
same as phot, but for the light after it has passed through the HII region
- phot_exarray, shape (N_filter, N_times, N_trials)
same as phot, but after extinction has been applied
- phot_neb_exarray, shape (N_filter, N_times, N_trials)
same as phot, but for the light after it has passed through the HII region and then had extinction applied
- Raises
IOError, if no photometry file can be opened ValueError, if photsystem is set to an unknown value
- slugpy.read_cluster_prop(model_name, output_dir=None, fmt=None, verbose=False, read_info=None, no_stellar_mass=False, no_neb_extinct=False)[source]¶
Function to read a SLUG2 cluster_prop file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- no_stellar_massbool
Prior to 7/15, output files did not contain the stellar_mass field; this can be detected automatically for ASCII and FITS formats, but not for binary format; if True, this specifies that the binary file being read does not contain a stellar_mass field; it has no effect for ASCII or FITS files
- no_neb_extinctbool
Prior to 2/17, SLUG did not support differential nebular extinction, and thus there was no output field for it; this is detected and handled automatically for ASCII and FITS files; for binary outputs, this flag must be set for pre 2/17 output files to be read correctly
- Returns
A namedtuple containing the following fields:
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
time at which cluster’s properties are being evaluated
- form_timearray
time when cluster formed
- lifetimearray
time at which cluster will disrupt
- target_massarray
target cluster mass
- actual_massarray
actual mass at formation
- live_massarray
mass of currently living stars
- stellar_massarray
mass of all stars, living and stellar remnants
- num_stararray, dtype ulonglong
number of living stars in cluster being treated stochastically
- max_star_massarray
mass of most massive living star in cluster
- A_Varray
A_V value for each cluster, in mag (present only if SLUG was run with extinction enabled)
- A_Vnebarray
value of A_V applied to the nebular light for each cluster (present only if SLUG was run with both nebular emission and extinction enabled)
- vpn_tupletuple
tuple containing arrays for any variable parameters we have (eg: VP0, VP1,VP2…) in the IMF. Each element of the tuple is an array. Present only if variable parameters were enables when SLUG was run.
- slugpy.read_cluster_sn(model_name, output_dir=None, fmt=None, verbose=False, read_info=None)[source]¶
Function to read a SLUG2 cluster_sn file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- Returns
A namedtuple containing the following fields:
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
times at which cluster spectra are output, in yr
- tot_snarray, shape (N_cluster)
total number of supernovae produced by each cluster up to the indicated time
- stoch_snarray, shape (N_cluster)
total number of supernovae produced by stars being treated stochastically in each cluster up to the indicated time
- Raises
IOError, if no sn file can be opened
- slugpy.read_cluster_spec(model_name, output_dir=None, fmt=None, verbose=False, read_info=None)[source]¶
Function to read a SLUG2 cluster_spec file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- Returns
A namedtuple containing the following fields:
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
times at which cluster spectra are output, in yr
- wlarray
wavelength, in Angstrom
- specarray, shape (N_cluster, N_wavelength)
specific luminosity of each cluster at each wavelength, in erg/s/A
- wl_nebarray
wavelength for the nebular spectrum, in Angstrom (present only if SLUG was run with nebular emission enabled)
- spec_nebarray, shape (N_cluster, N_wavelength)
specific luminosity at each wavelength and each time for each trial, including emission and absorption by the HII region, in erg/s/A (present only if SLUG was run with nebular emission enabled)
- wl_exarray
wavelength for the extincted spectrum, in Angstrom (present only if SLUG was run with extinction enabled)
- spec_exarray, shape (N_cluster, N_wavelength)
specific luminosity at each wavelength in wl_ex and each time for each trial after extinction has been applied, in erg/s/A (present only if SLUG was run with extinction enabled)
- wl_neb_exarray
wavelength for the extincted spectrum with nebular emission, in Angstrom (present only if SLUG was run with both nebular emission and extinction enabled)
- spec_neb_exarray, shape (N_cluster, N_wavelength)
specific luminosity at each wavelength in wl_ex and each time for each trial including emission and absorption by the HII region, after extinction has been applied, in erg/s/A (present only if SLUG was run with nebular emission and extinction both enabled)
- Raises
IOError, if no spectrum file can be opened
- slugpy.read_cluster_winds(model_name, output_dir=None, fmt=None, verbose=False, read_info=None)[source]¶
Function to read a SLUG cluster_winds file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- Returns
A namedtuple containing the following fields:
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
time at which cluster’s properties are being evaluated
- mdotarray
wind mass flux, in Msun / yr
- pdotarray
wind momentum flux, in (Msun/yr) * (km/s)
- Lmecharray
wind mechanical luminosity, in Lsun
- Raises
IOError, if no wind file can be opened
- slugpy.read_cluster_yield(model_name, output_dir=None, fmt=None, verbose=False, read_info=None)[source]¶
Function to read a SLUG2 cluster_spec file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- Returns
A namedtuple containing the following fields:
- isotope_namearray of strings, shape (N_iso)
Atomic symbols of the isotopes included in the yield table
- isotope_Zarray of int, shape (N_iso)
Atomic numbers of the isotopes included in the yield table
- isotope_Aarray of int, shape (N_iso)
Atomic mass number of the isotopes included in the yield table
- idarray, dtype uint
unique ID of cluster
- trial: array, dtype uint
which trial was this cluster part of
- timearray
times at which cluster spectra are output, in yr
- yldarray, shape (N_cluster, N_iso)
Yield of each isotope, defined as the instantaneous amount produced up to that time; for unstable isotopes, this includes the effects of decay since production
- slugpy.read_filter(filtername, filter_dir=None)[source]¶
Function to read a filter or set of filters for SLUG2. By default this function searches the SLUG_DIR/lib/filter directory, followed by the current working directory. This can be overridden by the filter_dir keyword.
- Parameters
- filternamestring or iterable containing strings
Name or names of filters to be read; for the special filters Lbol, QH0, QHe0, and QHe1, the return value will be None
- filter_dirstring
Directory where the filter data files can be found
- Returns
A namedtuple containing the following fields:
- wl_efffloat or array
Central wavelength of the filter, defined by wl_eff = exp(int R ln lambda dln lambda / int R dln lambda)
- wlarray or list of arrays
Wavelength table for each filter, in Ang
- responsearray or list of arrays
Response function per photon for each filter
- betafloat or array
Index beta for the filter
- wl_cfloat or array
Pivot wavelength for the filter; used when beta != 0 to normalize the photometry
- Raises
IOError, if the filter data files cannot be opened, or if the requested filter cannot be found
- slugpy.read_integrated(model_name, output_dir=None, fmt=None, nofilterdata=False, photsystem=None, verbose=False, read_info=None, no_stellar_mass=False)[source]¶
Function to read all integrated light data for a SLUG2 run.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmtstring
Format for the file to be read. Allowed values are ‘ascii’, ‘bin’ or ‘binary, and ‘fits’. If one of these is set, the code will only attempt to open ASCII-, binary-, or FITS-formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- nofilterdatabool
If True, the routine does not attempt to read the filter response data from the standard location
- photsystemNone or string
If photsystem is None, the data will be returned in the same photometric system in which they were read. Alternately, if it is a string, the data will be converted to the specified photometric system. Allowable values are ‘L_nu’, ‘L_lambda’, ‘AB’, ‘STMAG’, and ‘Vega’, corresponding to the options defined in the SLUG code. If this is set and the conversion requested involves a conversion from a wavelength-based system to a frequency-based one, nofilterdata must be False so that the central wavelength of the photometric filters is available.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘prop_name’, ‘phot_name’, ‘spec_name’, ‘cloudyspec_name’, ‘cloudylines_name’ and ‘format’, giving the names of the files read and the format they were in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’. If one of the files is not present, the corresponding _name key will be omitted from the dict.
- no_stellar_massbool
Prior to 7/15, output files did not contain the stellar_mass field; this can be detected automatically for ASCII and FITS formats, but not for binary format; if True, this specifies that the binary file being read does not contain a stellar_mass field; it has no effect for ASCII or FITS files
- Returns
A namedtuple containing the following fields:
(Always present)
- time: array
Times at which data are output
(Only present if an integrated_prop file is found)
- target_massarray, shape (N_times, N_trials)
Target stellar mass at each time in each trial
- actual_massarray, shape (N_times, N_trials)
Actual mass of stars created up to each time in each trial
- live_massarray, shape (N_times, N_trials)
Mass of currently-alive stars at each time in each trial
- stellar_massarray
mass of all stars, living and stellar remnants
- cluster_massarray, shape (N_times, N_trials)
Mass of living stars in non-disrupted clusters at each time in each trial
- num_clustersarray, shape (N_times, N_trials), dtype ulonglong
Number of non-disrupted clusters present at each time in each trial
- num_dis_clustersarray, shape (N_times, N_trials), dtype ulonglong
Number of disrupted clusters present at each time in each trial
- num_fld_starsarray, shape (N_times, N_trials), dtype ulonglong
Number of living field stars (excluding those in disrupted clusters and those being treated non-stochastically) present at each time in each trial
(Only present if an integrated_spec file is found)
- wlarray
wavelengths, in Angstrom
- specarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength and each time for each trial, in erg/s/A
- wl_nebarray
wavelength for the nebular spectrum, in Angstrom (present only if SLUG was run with nebular emission enabled)
- spec_nebarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength and each time for each trial, including emission and absorption by the HII region, in erg/s/A (present only if SLUG was run with nebular emission enabled)
- wl_exarray
wavelength for the extincted spectrum, in Angstrom (present only if SLUG was run with extinction enabled)
- spec_exarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength in wl_ex and each time for each trial after extinction has been applied, in erg/s/A (present only if SLUG was run with extinction enabled)
- wl_neb_exarray
wavelength for the extincted spectrum with nebular emission, in Angstrom (present only if SLUG was run with both nebular emission and extinction enabled)
- spec_neb_exarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength in wl_ex and each time for each trial including emission and absorption by the HII region, after extinction has been applied, in erg/s/A (present only if SLUG was run with nebular emission and extinction both enabled)
(Only present if an integrated_phot file is found)
- filter_nameslist of string
a list giving the name for each filter
- filter_unitslist of string
a list giving the units for each filter
- filter_wl_cenlist
central wavelength of each filter; this is set to None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- filter_wllist of arrays
a list giving the wavelength table for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- filter_responselist of arrays
a list giving the photon response function for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- photarray, shape (N_filter, N_times, N_trials)
photometric value in each filter at each time in each trial; units are as indicated in the units field
- phot_exarray, shape (N_filter, N_times, N_trials)
photometry of the stars after extinction is applied (only present if SLUG was run with extinction enabled)
- phot_nebarray, shape (N_filter, N_times, N_trials)
photometry of the stars plus nebular emission (only present if SLUG was run with nebular emission enabled)
- phot_neb_exarray, shape (N_filter, N_times, N_trials)
photometry of the stars plus nebular emission after extinction is applied (only present if SLUG was run with both nebular emission and extinction enabled)
(Only present if an integrated_sn file is found)
- tot_snarray, shape (N_times, N_trials)
total number of type II supernovae that have occurred up to the given time
- stoch_snarray of int, shape (N_times, N_trials)
total number of type II supernovae that have occurred up to the given time among stars being treated stochastically; only differs from tot_sn if SLUG was run with min_stoch_mass > 0
(Only present if an integrated_yield file is found)
- isotope_namearray of strings
Atomic symbols of the isotopes included in the yield table
- isotope_Zarray of int
Atomic numbers of the isotopes included in the yield table
- isotope_Aarray of int
Atomic mass number of the isotopes included in the yield table
- yldarray
Yield of each isotope, defined as the instantaneous amount produced up to that time; for unstable isotopes, this includes the effects of decay since production
(Only present if an integrated_cloudyspec file is found)
- cloudy_wlarray
wavelength, in Angstrom
- cloudy_incarray, shape (N_wavelength, N_times, N_trials)
specific luminosity of the stellar radiation field at each wavelength and each time for each trial, in erg/s/A
- cloudy_transarray, shape (N_wavelength, N_times, N_trials)
specific luminosity of the stellar radiation field after it has passed through the HII region, at each wavelength and each time for each trial, in erg/s/A
- cloudy_emitarray, shape (N_wavelength, N_times, N_trials)
specific luminosity of the radiation field emitted by the HII region, at each wavelength and each time for each trial, in erg/s/A
- cloudy_trans_emitarray, shape (N_wavelength, N_times, N_trials)
the sum of emitted and transmitted; this is what would be seen by an observer looking at both the star cluster and its nebula
(Only present if an integrated_cloudylines file is found)
- cloudy_linelabelarray, dtype=’S4’, shape (N_lines)
labels for the lines, following cloudy’s 4 character line label notation
- cloudy_linewlarray, shape (N_lines)
rest wavelength for each line, in Angstrom
- cloudy_linelumarray, shape (N_lines, N_times, N_trials)
luminosity of each line at each time for each trial, in erg/s
(Only present if an integrated_cloudyphot file is found)
- cloudy_filter_nameslist of string
a list giving the name for each filter
- cloudy_filter_unitslist of string
a list giving the units for each filter
- cloudy_filter_wl_efflist
effective wavelength of each filter; this is set to None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- cloudy_filter_wllist of arrays
a list giving the wavelength table for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- cloudy_filter_responselist of arrays
a list giving the photon response function for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- cloudy_filter_betalist
powerlaw index beta for each filter; used to normalize the photometry
- cloudy_filter_wl_clist
pivot wavelength for each filter; used to normalize the photometry
- cloudy_phot_transarray, shape (N_filter, N_times, N_trials)
photometric value in each filter at each time in each trial for the transmitted light (i.e., the starlight remaining after it has passed through the HII region); units are as indicated in the units field
- cloudy_phot_emitarray, shape (N_filter, N_times, N_trials)
photometric value in each filter at each time in each trial for the emitted light (i.e., the diffuse light emitted by the HII region); units are as indicated in the units field
- cloudy_phot_trans_emitarray, shape (N_filter, N_times, N_trials)
photometric value in each filter at each time in each trial for the transmitted plus emitted light (i.e., the light coming directly from the stars after absorption by the HII region, plus the diffuse light emitted by the HII region); units are as indicated in the units field
(Only present if an integrated_cloudyparams file is found)
- cloudy_hdenarray
number density of H nuclei at the inner edge of the ionized region simulated by cloudy
- cloudy_r0array
inner radius of the ionized region simulated by cloudy
- cloudy_rSarray
outer radius of the ionized region simulated by cloudy (approximate!)
- cloudy_QH0array
ionizing luminosity used in the cloudy computation
- cloudy_covFacarray
covering factor assumed in the cloudy computation; only a fraction covFac of the ionizing photons are assumed to produce emission within the HII region, while the remainder are assumed to escape
- cloudy_Uarray
volume-averaged ionization parameter of the HII region simulated by cloudy; note that this value is approximate, not exact, and the approximation can be very poor if radiation pressure effects are significant
- cloudy_Omegaarray
Yeh & Matzner (2012) wind parameter for the HII region simulated by cloudy; as with U, this value is approximate, and the approximation is valid only if radiation pressure effects are small
- slugpy.read_integrated_phot(model_name, output_dir=None, fmt=None, nofilterdata=False, photsystem=None, verbose=False, read_info=None, filters_only=False, read_filters=None, read_nebular=None, read_extinct=None)[source]¶
Function to read a SLUG2 integrated_phot file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- nofilterdatabool
If True, the routine does not attempt to read the filter response data from the standard location
- photsystemNone or string
If photsystem is None, the data will be returned in the same photometric system in which they were read. Alternately, if it is a string, the data will be converted to the specified photometric system. Allowable values are ‘L_nu’, ‘L_lambda’, ‘AB’, ‘STMAG’, and ‘Vega’, corresponding to the options defined in the SLUG code. If this is set and the conversion requested involves a conversion from a wavelength-based system to a frequency-based one, nofilterdata must be False so that the central wavelength of the photometric filters is available.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- filters_onlybool
If True, the code only reads the data on the filters, not any of the actual photometry. If combined with nofilterdata, this can be used to return the list of available filters and nothing else.
- read_filtersNone | string | listlike containing strings
If this is None, data on all filters is read. Otherwise only filters whose name(s) match the input filter names ar read.
- read_nebularNone | bool
If True, only data with the nebular contribution is read; if False, only data without it is read. Default behavior is to read all data.
- read_extinctNone | bool
If True, only data with extinction applied is read; if False, only data without it is read. Default behavior is to read all data.
- Returns
A namedtuple , which can contain the following fields depending on the input options, and depending on which fields are present in the file being read:
- timearray, shape (N_times) or shape (N_trials)
Times at which data are output; shape is either N_times (if the run was done with fixed output times) or N_trials (if the run was done with random output times)
- filter_nameslist of string
a list giving the name for each filter
- filter_unitslist of string
a list giving the units for each filter
- filter_wl_efflist
effective wavelength of each filter; this is set to None for the filters Lbol, QH0, QHe0, and QHe1; omitted if nofilterdata is True
- filter_wllist of arrays
a list giving the wavelength table for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1
- filter_responselist of arrays
a list giving the photon response function for each filter; this is None for the filters Lbol, QH0, QHe0, and QHe1
- filter_betalist
powerlaw index beta for each filter; used to normalize the photometry
- filter_wl_clist
pivot wavelength for each filter; used to normalize the photometry
- photarray, shape (N_filter, N_times, N_trials)
photometric value in each filter at each time in each trial; units are as indicated in the units field
- phot_nebarray, shape (N_filter, N_times, N_trials)
same as phot, but for the light after it has passed through the HII region
- phot_exarray, shape (N_filter, N_times, N_trials)
same as phot, but after extinction has been applied
- phot_neb_exarray, shape (N_filter, N_times, N_trials)
same as phot, but for the light after it has passed through the HII region and then had extinction applied
- Raises
IOError, if no photometry file can be opened ValueError, if photsystem is set to an unknown value
- slugpy.read_integrated_prop(model_name, output_dir=None, fmt=None, verbose=False, read_info=None, no_stellar_mass=False)[source]¶
Function to read a SLUG2 integrated_prop file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- no_stellar_massbool
Prior to 7/15, output files did not contain the stellar_mass field; this can be detected automatically for ASCII and FITS formats, but not for binary format; if True, this specifies that the binary file being read does not contain a stellar_mass field; it has no effect for ASCII or FITS files
- Returns
A namedtuple containing the following fields:
- timearray, shape (N_times) or shape (N_trials)
Times at which data are output; shape is either N_times (if the run was done with fixed output times) or N_trials (if the run was done with random output times)
- target_massarray, shape (N_times, N_trials)
Target stellar mass at each time
- actual_massarray, shape (N_times, N_trials)
Actual mass of stars created up to each time in each trial
- live_massarray, shape (N_times, N_trials)
Mass of currently-alive stars at each time in each trial
- stellar_massarray
mass of all stars, living and stellar remnants
- cluster_massarray, shape (N_times, N_trials)
Stellar mass in non-disrupted clusters at each time in each trial
- num_clustersarray, shape (N_times, N_trials), dtype ulonglong
Number of non-disrupted clusters present at each time in each trial
- num_dis_clustersarray, shape (N_times, N_trials), dtype ulonglong
Number of disrupted clusters present at each time in each trial
- num_fld_starsarray, shape (N_times, N_trials), dtype ulonglong
Number of living field stars (excluding those in disrupted clusters and those being treated non-stochastically) present at each time in each trial
- slugpy.read_integrated_sn(model_name, output_dir=None, fmt=None, verbose=False, read_info=None)[source]¶
Function to read a SLUG2 integrated_sn file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- Returns
A namedtuple containing the following fields:
- timearray, shape (N_times) or shape (N_trials)
Times at which data are output; shape is either N_times (if the run was done with fixed output times) or N_trials (if the run was done with random output times)
- tot_snarray, shape (N_cluster)
total number of supernovae produced by each cluster up to the indicated time
- stoch_snarray, shape (N_cluster)
total number of supernovae produced by stars being treated stochastically in each cluster up to the indicated time
- Raises
IOError, if no sn file can be opened
- slugpy.read_integrated_spec(model_name, output_dir=None, fmt=None, verbose=False, read_info=None)[source]¶
Function to read a SLUG2 integrated_spec file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- Returns
A namedtuple containing the following fields:
- timearray, shape (N_times) or shape (N_trials)
Times at which data are output; shape is either N_times (if the run was done with fixed output times) or N_trials (if the run was done with random output times)
- wlarray
wavelength, in Angstrom
- specarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength and each time for each trial, in erg/s/A
- wl_nebarray
wavelength for the nebular spectrum, in Angstrom (present only if SLUG was run with nebular emission enabled)
- spec_nebarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength and each time for each trial, including emission and absorption by the HII region, in erg/s/A (present only if SLUG was run with nebular emission enabled)
- wl_exarray
wavelength for the extincted spectrum, in Angstrom (present only if SLUG was run with extinction enabled)
- spec_exarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength in wl_ex and each time for each trial after extinction has been applied, in erg/s/A (present only if SLUG was run with extinction enabled)
- wl_neb_exarray
wavelength for the extincted spectrum with nebular emission, in Angstrom (present only if SLUG was run with both nebular emission and extinction enabled)
- spec_neb_exarray, shape (N_wavelength, N_times, N_trials)
specific luminosity at each wavelength in wl_ex and each time for each trial including emission and absorption by the HII region, after extinction has been applied, in erg/s/A (present only if SLUG was run with nebular emission and extinction both enabled)
- slugpy.read_integrated_yield(model_name, output_dir=None, fmt=None, read_info=None, verbose=False)[source]¶
Function to read a SLUG2 integrated_yield file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- verbosebool
If True, verbose output is printed as code runs
- read_infodict
On return, this dict will contain the keys ‘fname’ and ‘format’, giving the name of the file read and the format it was in; ‘format’ will be one of ‘ascii’, ‘binary’, or ‘fits’
- Returns
A namedtuple containing the following fields:
- timearray, shape (N_times) or shape (N_trials)
Times at which data are output; shape is either N_times (if the run was done with fixed output times) or N_trials (if the run was done with random output times)
- isotope_namearray of strings, shape (N_iso)
Atomic symbols of the isotopes included in the yield table
- isotope_Zarray of int, shape (N_iso)
Atomic numbers of the isotopes included in the yield table
- isotope_Aarray of int, shape (N_iso)
Atomic mass number of the isotopes included in the yield table
- yldarray, shape (N_iso, N_times) or (N_iso, N_trials)
Yield of each isotope, defined as the instantaneous amount produced up to that time; for unstable isotopes, this includes the effects of decay since production
- slugpy.read_summary(model_name, output_dir=None)[source]¶
Function to open a SLUG output summary file.
- Parameters
- model_namestring
The name of the model to be read
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR directory if that environment variable is set
- Returns
- summarydict
A dict containing all the keywords stored in the output file
- Raises
IOError, if a summary file for the specified model cannot be found
- slugpy.slug_open(filename, output_dir=None, fmt=None)[source]¶
Function to open a SLUG2 output file.
- Parameters
- filenamestring
Name of the file to open, without any extension. The following extensions are tried, in order: .txt, .bin, .fits
- output_dirstring
The directory where the SLUG2 output is located; if set to None, the current directory is searched, followed by the SLUG_DIR/output directory if the SLUG_DIR environment variable is set
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the file to be read. If one of these is set, the function will only attempt to open ASCII-(‘txt’ or ‘ascii’), binary (‘bin’ or ‘binary’), or FITS (‘fits’ or ‘fits2’) formatted output, ending in .txt., .bin, or .fits, respectively. If set to None, the code will try to open ASCII files first, then if it fails try binary files, and if it fails again try FITS files.
- Returns
- fpfile or astropy.io.fits.hdu.hdulist.HDUList
A file object pointing the file that has been opened
- fnamestring
Name of the file that was opened
- Raises
IOError, if a file of the specified name cannot be found
- class slugpy.slug_pdf(pdffile=None)[source]¶
A class that implements the SLUG PDF drawing method. This class contains a method to parse slug-formatted PDF files and then draw values from the PDFs they specify. This class is thread-safe, in the sense that if multiple slug_pdf instances are instantiated in different threads, the random streams they generate will not be identical.
- slugpy.write_cluster(data, model_name, fmt)[source]¶
Function to write a set of output cluster files in SLUG2 format, starting from a cluster data set as returned by read_cluster.
- Parameters
- datanamedtuple
Cluster data to be written, in the namedtuple format returned by read_cluster
- model_namestring
Base file name to give the model to be written. Can include a directory specification if desired.
- fmt‘txt’ | ‘ascii’ | ‘bin’ | ‘binary’ | ‘fits’ | ‘fits2’
Format for the output file; ‘txt’ and ‘ascii’ produce ASCII text files, ‘bin’ or ‘binary’ produce binary files, and ‘fits’ or ‘fits2’ product FITS files; ‘fits2’ uses an ordering that allows for more efficient querying of outputs too large to fit in memory
- Returns
Nothing
- slugpy.write_integrated(data, model_name, fmt)[source]¶
Function to write a set of output integrated files in SLUG2 format, starting from an integrated data set as returned by read_integrated.
- Parameters
- datanamedtuple
Integrated data to be written, in the namedtuple format returned by read_integrated
- model_namestring
Base file name to give the model to be written. Can include a directory specification if desired.
- fmtstring
Format for the output file. Allowed values are ‘ascii’, ‘bin’ or ‘binary, and ‘fits’.
- Returns
Nothing