Loading observational data: galaxy
This section will introduce you to loading observational data. This is stored in the galaxy object. Check out the second iPython notebook example for a quick-start guide to loading data.
API documentation: galaxy
- class bagpipes.galaxy(ID, load_data=None, spec_units='ergscma', phot_units='mujy', spectrum_exists=True, photometry_exists=True, filt_list=None, out_units='ergscma', load_line_fluxes=None, load_indices=None, index_list=None, index_redshift=None, input_spec_cov_matrix=False)
A container for observational data loaded into Bagpipes.
- Parameters:
ID (str) – string denoting the ID of the object to be loaded. This will be passed to load_data.
load_data (function) – User-defined function which should take ID as an argument and return spectroscopic and/or photometric data. Spectroscopy should come first and be an array containing a column of wavelengths in Angstroms, then a column of fluxes and finally a column of flux errors. Photometry should come second and be an array containing a column of fluxes and a column of flux errors.
filt_list (list - optional) – A list of paths to filter curve files, which should contain a column of wavelengths in angstroms followed by a column of transmitted fraction values. Only needed for photometric data.
spectrum_exists (bool - optional) – If you do not have a spectrum for this object, set this to False. In this case, load_data should only return photometry.
photometry_exists (bool - optional) – If you do not have photometry for this object, set this to False. In this case, load_data should only return a spectrum.
spec_units (str - optional) – Units of the input spectrum, defaults to ergs s^-1 cm^-2 A^-1, “ergscma”. Other units (microjanskys; mujy) will be converted to ergscma by default within the class (see out_units).
phot_units (str - optional) – Units of the input photometry, defaults to microjanskys, “mujy” The photometry will be converted to ergscma by default within the class (see out_units).
out_units (str - optional) – Units to convert the inputs to within the class. Defaults to ergs s^-1 cm^-2 A^-1, “ergscma”.
load_line_fluxes (function - optional) – Load observed line fluxes for a galaxy. The function should return a list of line labels in Cloudy format, as well as an array with a column of flux values in erg/s/cm^2/AA and a column of corresponding uncertainties in the same units. It is not recommended to use this functionality at the same time as loading and fitting observed spectroscopic data with the code.
index_list (list - optional) – list of dicts containining definitions for spectral indices.
load_indices (function or str - optional) – Load spectral index information for the galaxy. This can either be a function which takes the galaxy ID and returns index values in the same order as they are defined in index_list, or the str “from_spectrum”, in which case the code will measure the indices from the observed spectrum for the galaxy.
index_redshift (float - optional) – Observed redshift for this galaxy. This is only ever used if the user requests the code to calculate spectral indices from the observed spectrum.
The load_data function
The most important argument passed to galaxy is the load_data function, which you will need to write to access your data files and return your data. load_data should take an ID string and return observed spectroscopic and/or photometric data in the correct format and units (see below).
For example:
import bagpipes as pipes
eg_filt_list = ["list", "of", "filters"]
def load_data(ID):
# Do some stuff to load up data for the object with the correct ID number
return spectrum, photometry
ID_number = "0001"
galaxy = pipes.galaxy(ID_number, load_data, filt_list=eg_filt_list)
galaxy.plot()
This will plot the data returned by the load_data function.
By default, Bagpipes expects spectroscopic and photometric data to be returned by load_data in that order. If you do not have both, you must pass a keyword argument to galaxy, either spectrum_exists=False or photometry_exists=False.
The format of the spectrum returned by load_data should be a 2D array with three columns: wavelengths in Angstroms, fluxes in erg/s/cm^2/A and flux errors in the same units (can be changed to microJansksys with the spec_units keyword argument). These will be stored in galaxy.spectrum.
The format of the photometry returned by load_data should be a 2D array with a column of fluxes in microJanskys and a column of flux errors in the same units (can be changed to erg/s/cm^2/A with the phot_units keyword argument). The fluxes should be in the same order as the filters in your filt_list. Bagpipes will calculate effective wavelengths for each filter and store these along with the input data in galaxy.photometry.
For information about filter lists (filt_list), see the model_galaxy page.