trident.LineDatabase

class trident.LineDatabase(input_file=None)[source]

Class for storing and selecting collections of spectral lines. These lines will be used in the SpectrumGenerator and add_ion_fields() functionality.

Without arguments, the LineDatabase will be empty, and you must manually add individual lines to it using the add_line function. If LineDatabase is provided with an optional :input_file:, it will automatically add spectral lines for each corresponding line in the list.

Once created, you can select a subset of the total lines present in the database for further use. Use the parse_subset function to accomplish this.

Parameters

Input_file:

string, optional

An optional input_file can be provided to pre-store a list of Line objects. input_file should be a tab delimited text file of the format:

element, ion_state, wavelength, gamma, f_value, (name)

H, I, 1215.67, 4.69e8, 4.16e-1, Ly a

Example

>>> # Create a LineDatabase using the lines present in lines.txt
>>> ldb = LineDatabase('lines.txt')
>>> # Parse ldb and only select Lyman alpha, Mg II and Fe lines
>>> lines = ldb.parse_subset(lines=['H I 1216', 'Mg II', 'Fe'])
>>> print(lines)

Methods

__init__ Initialize self.
add_line Manually add a line to the LineDatabase.
load_line_list_from_file Load a line list from a file into the LineDatabase.
parse_subset Select multiple lines based on atom, ion state, identifier, and/or wavelength.
parse_subset_to_ions Select ions based on those needed to create specific lines.
select_lines Select lines based on atom, ion state, identifier, and/or wavelength.