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, spec_units='ergscma', phot_units='mujy', spectrum_exists=True, photometry_exists=True, filt_list=None, out_units='ergscma', 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”.
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.