Measurements¶
- class pyspeckit.spectrum.measurements.Measurements(Spectrum, z=None, d=None, fluxnorm=None, miscline=None, misctol=10.0, ignore=None, derive=True, debug=False, restframe=False, ptol=2, sort=False)[source] [github] [bitbucket]
Bases:
object
This can be called after a fit is run. It will inherit the specfit object and derive as much as it can from modelpars. Just do: spec.measure(z, xunits, fluxnorm)
Notes: If z (redshift) or d (distance) are present, we can compute integrated line luminosities rather than just fluxes. Provide distance in cm.
- Only works with Gaussians. To generalize:
1. make sure we manipulate modelpars correctly, i.e. read in entries corresponding to wavelength/frequency/whatever correctly.
- Parameters
z: float or None :
redshift
d: float or None :
distance in cm (used for luminosities)
fluxnorm: bool :
Normalize the fluxes?
miscline: dictionary :
miscline = [{‘name’: H_alpha’, ‘wavelength’: 6565}]
misctol: tolerance (in Angstroms) for identifying an unmatched line :
to the line(s) we specify in miscline dictionary.
sort: bool :
Sort the entries in order of observed wavelength (or velocity or frequency)
- bisection(f, x_guess)[source] [github] [bitbucket]
Find root of function using bisection method. Absolute tolerance of 1e-4 is being used.
- bracket_root(f, x_guess, atol=0.0001)[source] [github] [bitbucket]
Bracket root by finding points where function goes from positive to negative.
- compute_amplitude(pars)[source] [github] [bitbucket]
Calculate amplitude of emission line. Should be easy - add multiple components if they exist. Currently assumes multiple components have the same centroid.
- compute_flux(pars)[source] [github] [bitbucket]
Calculate integrated flux of emission line. Works for multi-component fits too. Unnormalized.
- compute_fwhm(pars)[source] [github] [bitbucket]
Determine full-width at half maximum for multi-component fit numerically, or analytically if line has only a single component. Uses bisection technique for the former with absolute tolerance of 1e-4.
- compute_luminosity(pars)[source] [github] [bitbucket]
Determine luminosity of line (need distance and flux units).
- derive()[source] [github] [bitbucket]
Calculate luminosity and FWHM for all spectral lines.
- identify_by_position(ptol)[source] [github] [bitbucket]
Match observed lines to nearest reference line. Don’t use spacing at all.
ptol = tolerance (in angstroms) to accept positional match
- identify_by_spacing()[source] [github] [bitbucket]
Determine identity of lines in self.modelpars. Fill entries of self.lines dictionary.
Note: This method will be infinitely slow for more than 10 or so lines.
- separate()[source] [github] [bitbucket]
For multicomponent lines, separate into broad and narrow components (assume only one of components is narrow).
- to_tex()[source] [github] [bitbucket]
Write out fit results to tex format.