tardis.visualization.widgets.line_info module¶
Class to create and display Line Info Widget.
- class tardis.visualization.widgets.line_info.LineInfoWidget(lines_data, line_interaction_analysis, spectrum_wavelength, spectrum_luminosity_density_lambda, virt_spectrum_wavelength, virt_spectrum_luminosity_density_lambda)[source]¶
Bases:
object
Widget to explore atomic lines that produced features in the simulated spectrum.
It allows selection of a wavelength range in the spectrum to display a table giving the fraction of packets that experienced their last interaction with each species. Using toggle buttons, users can specify whether to filter the selected range by emitted or absorbed wavelengths of packets. Clicking on a row in the fractional species interactions table shows packet counts for each last line interaction of the selected species, which can be grouped in several ways using the dropdown menu.
Initialize the LineInfoWidget with line interaction and spectrum data.
- Parameters:
- lines_datapd.DataFrame
Data about the atomic lines present in simulation model’s plasma
- line_interaction_analysisdict of tardis.analysis.LastLineInteraction
Dictionary in which keys are the FILTER_MODES and values are the LastLineInteraction objects initialized with corresponding modes
- spectrum_wavelengthastropy.Quantity
Wavelength values of a real spectrum, having unit of Angstrom
- spectrum_luminosity_density_lambdaastropy.Quantity
Luminosity density lambda values of a real spectrum, having unit of (erg/s)/Angstrom
- virt_spectrum_wavelengthastropy.Quantity
Wavelength values of a virtual spectrum, having unit of Angstrom
- virt_spectrum_luminosity_density_lambdaastropy.Quantity
Luminosity density lambda values of a virtual spectrum, having unit of (erg/s)/Angstrom
- COLORS = {'selection_area': 'lightpink', 'selection_border': 'salmon'}¶
- FILTER_MODES = ('packet_out_nu', 'packet_in_nu')¶
- FILTER_MODES_DESC = ('Emitted Wavelength', 'Absorbed Wavelength')¶
- GROUP_MODES = ('both', 'exc', 'de-exc')¶
- GROUP_MODES_DESC = ('Both excitation line (absorption) and de-excitation line (emission)', 'Only excitation line (absorption)', 'Only de-excitation line (emission)')¶
- display()[source]¶
Display the fully-functional line info widget.
It puts together all component widgets nicely together and enables interaction between all the components.
- Returns:
- ipywidgets.Box
Line info widget containing all component widgets
- classmethod from_simulation(sim)[source]¶
Create an instance of LineInfoWidget from a TARDIS simulation object.
- Parameters:
- simtardis.simulation.Simulation
TARDIS Simulation object produced by running a simulation
- Returns:
- LineInfoWidget object
- get_last_line_counts(selected_species, filter_mode='packet_out_nu', group_mode='both')[source]¶
Get packet counts of each last line interaction of a species.
- Parameters:
- selected_speciesstr
Valid symbol of a species (e.g Si II) selected from the species data returned by
get_species_interactions
(see Notes section)- filter_modestr, optional
Filter mode of the LastLineInteraction object to use for fetching the data of last lines interacted (more details in Notes section). Allowed values are given by the class variable
FILTER_MODES
(default value isFILTER_MODES[0]
)- group_modestr, optional
Group mode to use for grouping last line interactions by excitation lines, de-excitation lines or both. Allowed values are given by the class variable
GROUP_MODES
(default value isGROUP_MODES[0]
i.e. both)
- Returns:
- pd.DataFrame
DataFrame containing last line interactions and corresponding packet counts.
Notes
This method depends on tardis.analysis.LastLineInteraction object for doing computations. So there is a member variable in this class -
line_interaction_analysis
which is a dictionary of such objects (each of them differ in how they filter the selected wavelength range). Thus we have to specify which object to use by specifying the filter_mode parameter.This method should always be called after calling
get_species_interactions
method which sets a wavelength range on LastLineInteraction object. So selected_species should be one present within that range, otherwise it will result an error.
- static get_middle_half_edges(arr)[source]¶
Get edges of the middle half range of an array.
- Parameters:
- arrnp.array
- Returns:
- list
- get_species_interactions(wavelength_range, filter_mode='packet_out_nu')[source]¶
Get fractional species interactions in specified wavelength range.
Fractional species interactions means fraction of packets present in the specified wavelength range which experienced their last interaction with a species. The packets to consider are filtered by the specified filter mode.
- Parameters:
- wavelength_rangelist-like or None
A list of two float values to specify the wavelength range - first for the range start and second for the range end. None specifies that no wavelength range is selected and will return empty dataframe
- filter_modestr, optional
Filter mode of the LastLineInteraction object to use for filtering the selected wavelength range (more details in Notes section). Allowed values are given by the class variable
FILTER_MODES
(default value isFILTER_MODES[0]
)
- Returns:
- pandas.DataFrame
Dataframe containing species symbols and corresponding fractions of packets interacting with them
Notes
This method depends on tardis.analysis.LastLineInteraction object for doing computations. So there is a member variable in this class -
line_interaction_analysis
which is a dictionary of such objects (each of them differ in how they filter the selected wavelength range). Thus we have to specify which object to use by specifying the filter_mode parameter.
- plot_spectrum(wavelength, luminosity_density_lambda, virt_wavelength, virt_luminosity_density_lambda)[source]¶
Produce a plotly figure widget by plotting the spectrum of model.
- Parameters:
- wavelengthastropy.Quantity
Wavelength values of a real spectrum, having unit of Angstrom
- luminosity_density_lambdaastropy.Quantity
Luminosity density lambda values of a real spectrum, having unit of (erg/s)/Angstrom
- virt_wavelengthastropy.Quantity
Wavelength values of a virtual spectrum, having unit of Angstrom
- virt_luminosity_density_lambdaastropy.Quantity
Luminosity density lambda values of a virtual spectrum, having unit of (erg/s)/Angstrom
- Returns:
- plotly.graph_objects.FigureWidget