firefly library¶
This library contains a variety of small functions needed by the FIREFLY engine.

firefly_library.
airtovac
(wave_air)[source]¶  __author__ = ‘Kyle B. Westfall’
Wavelengths are corrected for the index of refraction of air under standard conditions. Wavelength values below 2000 A will not be altered. Uses formula from Ciddor 1996, Applied Optics 62, 958.
 Args:
 wave_air (int or float): Wavelength in Angstroms, scalar or
 vector. If this is the only parameter supplied, it will be updated on output to contain double precision vacuum wavelength(s).
 Returns:
 numpy.float64 : The wavelength of the line in vacuum.
 Example:
 If the air wavelength is W = 6056.125 (a Krypton line), then
airtovac()
returns vacuum wavelength of W = 6057.8019.  Revision history:
 Written W. Landsman November 1991Use Ciddor (1996) formula for better accuracy in the infraredAdded optional output vector, W Landsman Mar 2011Iterate for better precision W.L./D. Schlegel Mar 2011Transcribed to python, K.B. Westfall Apr 2015
Note
Take care within 1 A of 2000 A. Wavelengths below 2000 A in air are not altered.

firefly_library.
averages_and_errors
(probs, prop, sampling)[source]¶ determines the average and error of a property for a given sampling
returns : an array with the best fit value, +/ 1, 2, 3 sigma values.
Parameters:  probs – probabilities
 property – property
 sampling – sampling of the property

firefly_library.
bisect_array
(array)[source]¶ It takes an array as input and returns the bisected array : bisected array[i] = (array[i] + array[i+1] )/2. Its lenght is one less than the array.
Parameters: array – input array

firefly_library.
calculate_averages_pdf
(probs, light_weights, mass_weights, unnorm_mass, age, metal, sampling, dist_lum)[source]¶ Calculates light and massaveraged age and metallicities. Also outputs stellar mass and masstolight ratios. And errors on all of these properties.
It works by taking the complete set of probsproperties and maximising over the parameter range (such that solutions with equivalent values but poorer probabilities are excluded). Then, we calculate the median and 1/2 sigma confidence intervals from the derived ‘maxpdf’.
NB: Solutions with identical SSP component contributions are rescaled such that the sum of probabilities with that component = the maximum of the probabilities with that component. i.e. prob_age_ssp1 = max(all prob_age_ssp1) / sum(all prob_age_ssp1) This is so multiple similar solutions do not count multiple times.
Outputs a dictionary of:  light_[property], light_[property]_[1/2/3]_sigerror  mass_[property], mass_[property]_[1/2/3]_sigerror  stellar_mass, stellar_mass_[1/2/3]_sigerror  mass_to_light, mass_to_light_[1/2/3]_sigerror  maxpdf_[property]  maxpdf_stellar_mass where [property] = [age] or [metal]
Parameters:  probs – probabilities
 light_weights – light (luminosity) weights obtained when model fitting
 mass_weights – mass weights obtained when normalizing models to data
 unnorm_mass – mass weights obtained from the mass to light ratio
 age – age
 metal – metallicity
 sampling – sampling of the property
 dist_lum – luminosity distance in cm

firefly_library.
convert_chis_to_probs
(chis, dof)[source]¶ Converts chi squares to probabilities.
Parameters:  chis – array containing the chi squares.
 dof – array of degrees of freedom.

firefly_library.
find_closest
(A, target)[source]¶ returns the id of the target in the array A. :param A: Array, must be sorted :param target: target value to be located in the array.

firefly_library.
light_weights_to_mass
(light_weights, mass_factors)[source]¶ Uses the data/model masstolight ratio to convert SSP contribution (weights) by light into SSP contributions by mass.
Parameters:  light_weights – light (luminosity) weights obtained when model fitting
 mass_factors – mass factors obtained when normalizing the spectrum

firefly_library.
match_data_models
(data_wave_int, data_flux_int, data_flags, error_flux_int, model_wave_int, model_flux_int, min_wave_in, max_wave_in, saveDowngradedModel=True, downgradedModelFile='DGmodel.txt')[source]¶  0.Take data and models as inputs
 interpolate data and model to the lowest sampled array.
 1.1. Defines the wavelength range on the model and on the data
 1.2. Downgrades the array, model or data, that has most sampling
 1.3. integrate between them to output a matched resolution array for data and model
 Returns the matched wavelength array, the corresponding data, error and model arrays : matched_wave,matched_data,matched_error,matched_model
Parameters:  data_wave_int – data wavelength array in the restframe
 data_flux_int – data flux array
 data_flags – data quality flag array : 1 for good data
 error_flux_int – data flux error array
 model_wave_int – model wavelength array (in the rest frame)
 model_flux_int – model flux array
 min_wave_in – minimum wavelength to be considered
 max_wave_in – maximum wavelength to be considered
 saveDowngradedModel – if True it will save the downgraded models
 downgradedModelFile – location where downgreaded models will be saved