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.

  1. Using Make. If you compile the main slug code by doing Make in 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.

  2. Using setup.py. The slug distribution comes with a setup.py script 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.

draw(*d)[source]

Draw from the PDF

Parameters:
d0, d1, …, dnint, optional

Dimensions of the returned array; if left unspecified, a single python float is returned

Returns:
xfloat or array

One or more numbers drawn from the PDF

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