Table of Contents
Fetching ...

PyNeb: a new tool for analyzing emission lines. I. Code description and validation of results

Valentina Luridiana, Christophe Morisset, Richard A. Shaw

TL;DR

PyNeb is an innovative code for analyzing emission lines, designed to be portable, modular, and largely customizable in aspects such as the atomic data used, the format of the observational data to be analyzed, and the graphical output.

Abstract

Analysis of emission lines in gaseous nebulae yields direct measures of physical conditions and chemical abundances and is the cornerstone of nebular astrophysics. Although the physical problem is conceptually simple, its practical complexity can be overwhelming since the amount of data to be analyzed steadily increases; furthermore, results depend crucially on the input atomic data, whose determination also improves each year. To address these challenges we created PyNeb, an innovative code for analyzing emission lines. PyNeb computes physical conditions and ionic and elemental abundances, and produces both theoretical and observational diagnostic plots. It is designed to be portable, modular, and largely customizable in aspects such as the atomic data used, the format of the observational data to be analyzed, and the graphical output. It gives full access to the intermediate quantities of the calculation, making it possible to write scripts tailored to the specific type of analysis one wants to carry out. In the case of collisionally excited lines, PyNeb works by solving the equilibrium equations for an n-level atom; in the case of recombination lines, it works by interpolation in emissivity tables. The code offers a choice of extinction laws and ionization correction factors, which can be complemented by user-provided recipes. It is entirely written in the python programming language and uses standard python libraries. It is fully vectorized, making it apt for analyzing huge amounts of data. The code is stable and has been benchmarked against IRAF/NEBULAR. It is public, fully documented, and has already been satisfactorily used in a number of published papers.

PyNeb: a new tool for analyzing emission lines. I. Code description and validation of results

TL;DR

PyNeb is an innovative code for analyzing emission lines, designed to be portable, modular, and largely customizable in aspects such as the atomic data used, the format of the observational data to be analyzed, and the graphical output.

Abstract

Analysis of emission lines in gaseous nebulae yields direct measures of physical conditions and chemical abundances and is the cornerstone of nebular astrophysics. Although the physical problem is conceptually simple, its practical complexity can be overwhelming since the amount of data to be analyzed steadily increases; furthermore, results depend crucially on the input atomic data, whose determination also improves each year. To address these challenges we created PyNeb, an innovative code for analyzing emission lines. PyNeb computes physical conditions and ionic and elemental abundances, and produces both theoretical and observational diagnostic plots. It is designed to be portable, modular, and largely customizable in aspects such as the atomic data used, the format of the observational data to be analyzed, and the graphical output. It gives full access to the intermediate quantities of the calculation, making it possible to write scripts tailored to the specific type of analysis one wants to carry out. In the case of collisionally excited lines, PyNeb works by solving the equilibrium equations for an n-level atom; in the case of recombination lines, it works by interpolation in emissivity tables. The code offers a choice of extinction laws and ionization correction factors, which can be complemented by user-provided recipes. It is entirely written in the python programming language and uses standard python libraries. It is fully vectorized, making it apt for analyzing huge amounts of data. The code is stable and has been benchmarked against IRAF/NEBULAR. It is public, fully documented, and has already been satisfactorily used in a number of published papers.

Paper Structure

This paper contains 26 sections, 8 equations, 12 figures, 7 tables.

Figures (12)

  • Figure 1: Schematic view of PyNeb's structure in terms of its classes (rectangular boxes) and output quantities (red octagons). The first slot of each box contains the class name, the second the class arguments, and the third the class methods. The description is abridged and only meant for illustrative purposes.
  • Figure 2: EmisGrid object for O iii. Each layer in the stack represents the emissivity of an O iii line in the chosen $T_\mathrm{e}$, $N_\mathrm{e}$ range.
  • Figure 3: Left: map of the [O iii] $\lambda$4363/$\lambda$5007 intensity ratio as a function of electron density and temperature, obtained with the plotImage() command. Right: theoretical contour plot for the simultaneous determination of $T_\mathrm{e}$ and $N_\mathrm{e}$ with the [O iii] $\lambda\lambda 4959, 5007$/$\lambda 4363$ (mainly horizontal curves) and [O iii] $\lambda 52\mu$/$\lambda 88\mu$ (vertical curves) intensity ratios as a function of electronic density and temperature, obtained with the plotContours() command. The levels are numbered with the log of the ratio.
  • Figure 4: Plot of the built-in extinction laws included in PyNeb. Details on the laws can be displayed by typing pn.RedCorr().printLaws(). Additional laws can be provided by the user, either in tabular form or as an analytical formula. The plot has been obtained with the RC.plot(laws='all') command, where RC is an instance of pn.RedCorr().
  • Figure 5: Emission-line diagnostic plot of the planetary nebula IC 418. Each band represents the $N_\mathrm{e}, T_\mathrm{e}$ locus consistent with the observed ratio and its uncertainty. The observational data have been taken from the compilation in 2009AA...507.1517M and an analysis of the object is given in 2012IAUS..283..350E. A sample script that produces this kind of diagnostic plots is given in the Appendix.
  • ...and 7 more figures