trident.absorption_spectrum.absorption_spectrum_fit.generate_total_fit
- trident.absorption_spectrum.absorption_spectrum_fit.generate_total_fit(x, fluxData, orderFits, speciesDicts, minError=0.0001, complexLim=0.995, fitLim=0.97, minLength=3, maxLength=1000, splitLim=0.99, maxNumComps=8, output_file=None)[source]
Fit an absorption-line spectrum into line profiles.
Fits the spectrum into absorption complexes and iteratively adds and optimizes voigt profiles for each complex.
Parameters
- X
ndarray
1d array of wavelengths
- FluxData
ndarray
array of flux corresponding to the wavelengths given in x. (needs to be the same size as x)
- OrderFits
list
list of the names of the species in the order that they should be fit. Names should correspond to the names of the species given in speciesDicts. (ex: [‘lya’,’OVI’])
- SpeciesDicts
dictionary
Dictionary of dictionaries (I’m addicted to dictionaries, I confess). Top level keys should be the names of all the species given in orderFits. The entries should be dictionaries containing all relevant parameters needed to create an absorption line of a given species (f,Gamma,lambda0) as well as max and min values for parameters to be fit
- ComplexLim
float, optional
Maximum flux to start the edge of an absorption complex. Different from fitLim because it decides extent of a complex rather than whether or not a complex is accepted.
- FitLim
float,optional
Maximum flux where the level of absorption will trigger identification of the region as an absorption complex. Default = .98. (ex: for a minSize=.98, a region where all the flux is between 1.0 and .99 will not be separated out to be fit as an absorbing complex, but a region that contains a point where the flux is .97 will be fit as an absorbing complex.)
- MinLength
int, optional
number of cells required for a complex to be included. default is 3 cells.
- MaxLength
int, optional
number of cells required for a complex to be split up. Default is 1000 cells.
- SplitLim
float, optional
if attempting to split a region for being larger than maxlength the point of the split must have a flux greater than splitLim (ie: absorption greater than splitLim). Default= .99.
- MaxNumComps
int, optional
maximum number of voigt profiles to fit at once. Default is 8 total components.
- Output_file
string, optional
location to save the results of the fit.
Returns
- AllSpeciesLines
dictionary
Dictionary of dictionaries representing the fit lines. Top level keys are the species given in orderFits and the corresponding entries are dictionaries with the keys ‘N’,’b’,’z’, and ‘group#’. Each of these corresponds to a list of the parameters for every accepted fitted line. (ie: N[0],b[0],z[0] will create a line that fits some part of the absorption spectrum). ‘group#’ is a similar list but identifies which absorbing complex each line belongs to. Lines with the same group# were fit at the same time. group#’s do not correlate between species (ie: an lya line with group number 1 and an OVI line with group number 1 were not fit together and do not necessarily correspond to the same region)
- YFit
ndarray
array of flux corresponding to the combination of all fitted absorption profiles. Same size as x.