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.