Ionized Hydrogen models

Hydrogen Models

Hydrogen in HII regions is typically assumed to follow Case B recombination theory.

The values for the Case B recombination coefficients are given by Hummer & Storey (1987). They are also computed in Hummer (1994) and tabulated at a wiki. I had to OCR and pull out by hand some of the coefficients.

However, Storey & Hummer 1995 might be a better resource now? https://cdsarc.unistra.fr/viz-bin/cat/VI/64

Module API

pyspeckit.spectrum.models.hydrogen.add_to_registry(sp)[source] [github] [bitbucket]

Add the Hydrogen model to the Spectrum’s fitter registry

pyspeckit.spectrum.models.hydrogen.find_lines(xarr)[source] [github] [bitbucket]

Given a pyspeckit.units.SpectrosopicAxis instance, finds all the lines that are in bounds. Returns a list of line names.

pyspeckit.spectrum.models.hydrogen.hydrogen_fitter(sp, temperature=10000, tiedwidth=False)[source] [github] [bitbucket]

Generate a set of parameters identifying the hydrogen lines in your spectrum. These come in groups of 3 assuming you’re fitting a gaussian to each. You can tie the widths or choose not to.

temperature [ 5000, 10000, 20000 ]

The case B coefficients are computed for 3 temperatures

tiedwidth [ bool ]

Should the widths be tied?

Returns a list of tied and guesses in the xarr’s units

pyspeckit.spectrum.models.hydrogen.hydrogen_model(xarr, amplitude=1.0, width=0.0, velocity=0.0, a_k=0.0, temperature=10000)[source] [github] [bitbucket]

Generate a set of parameters identifying the hydrogen lines in your spectrum. These come in groups of 3 assuming you’re fitting a gaussian to each. You can tie the widths or choose not to.

Parameters

sp : pyspeckit.Spectrum

The spectrum to fit

temperature : [ 5000, 10000, 20000 ]

The case B coefficients are computed for 3 temperatures

a_k : float

The K-band extinction normalized to 2.2 microns. Simple exponential.

width : float

Line width in km/s

velocity : float

Line center in km/s

amplitude : float

arbitrary amplitude of the first line (all other lines will be scaled to this value)

Returns

np.ndarray with same shape as sp.xarr :

pyspeckit.spectrum.models.hydrogen.parse_storey1995(data, e_or_r='E')[source] [github] [bitbucket]

Returns a dictionary with keys like:” (100.0, 1, 1000.0, ‘B’, 2, 124)

where the keys are

dens, Z, temp, case, nmin, nc

dens is the density in cm^-3, Z is the number of electrons, temp is the temperature in K, case is case A or B recombination (Case B, no transitions into n=1, no Lyman transitions, are included) nmin and nc - I don’t know what these are

Each entry contains a mapping from [NU,NL] -> emissivity, where the emissivity is in erg/s/cm^3 and NU, NL are the upper and lower electronic levels

pyspeckit.spectrum.models.hydrogen.retrieve_storey1995(temperature=10000, case='b')[source] [github] [bitbucket]

Retrieve the Hummer and Storey tables from Vizier: https://cdsarc.cds.unistra.fr/viz-bin/cat/VI/64

based on the temperature and recombination case.

The data are parsed into a dictionary using the function parse_storey1995 below

pyspeckit.spectrum.models.hydrogen.rrl(n, dn=1, amu=1.007825, Z=1)[source] [github] [bitbucket]

compute Radio Recomb Line freqs in GHz from Brown, Lockman & Knapp ARAA 1978 16 445

UPDATED:

Gordon & Sorochenko 2009, eqn A6

Parameters

n : int

The number of the lower level of the recombination line (H1a is Lyman alpha, for example)

dn : int

The delta-N of the transition. alpha=1, beta=2, etc.

amu : float

The mass of the central atom

Z : int

The ionization parameter for the atom. Z=1 is neutral, Z=2 is singly ionized, etc. For hydrogen, only z=1 makes sense, since ionized hydrogen has no electrons and therefore cannot have recombination lines.

Returns

frequency in GHz :

[edit this page on github]

[edit this page on bitbucket]