tardis.visualization.widgets.custom_abundance module¶
Class to create and display Custom Abundance Widget.
- class tardis.visualization.widgets.custom_abundance.CustomAbundanceWidget(widget_data)[source]¶
Bases:
object
Widget to edit abundances and densities of simulation model graphically.
It generates a GUI based on input data. The GUI has a plot section to visualize the profile, an edit section to allow the user directly edit abundance and density profile, and an output section to output the model to CSVY file.
- Attributes:
- shell_noint
The selected shell number.
- no_of_shellsint
The number of shells in the model.
- no_of_elementsint
The number of elements in the model.
- checked_listlist of bool
A list of bool to record whether the checkbox is checked. The index of the bool corresponds to the index of checkbox.
- figplotly.graph_objs._figurewidget.FigureWidget
The figure object of abundance density plot.
- plot_cmapstr, default: “jet”, optional
String defines the colormap used in abundance density plot.
- _triggerbool
If False, disable the callback when abundance input is changed.
Initialize CustomAbundanceWidget with data and generate the widgets and plot.
- Parameters:
- widget_dataCustomAbundanceWidgetData
- apply_to_multiple_shells(item_index)[source]¶
Apply the changed abundances to specified range of shell(s).
- Parameters:
- item_indexint
The index of the widget in the list of abundance inputs.
- bound_locked_sum_to_1(index)[source]¶
Ensure the sum of locked abundances is no more than 1. If the locked sum is more than 1, calculate the maximum with the sum no more than 1 and return it.
- Parameters:
- indexint
The index of the widget in the list of abundance inputs.
- check_eventhandler(obj)[source]¶
Triggered if the checkbox is changed.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- property checked_list¶
- display(cmap='jet')[source]¶
Display the GUI.
- Parameters:
- cmapstr, default: “jet”, optional
String defines the colormap used in abundance density plot.
- Returns:
- ipywidgets.widgets.widget_box.VBox
A box that contains all the widgets in the GUI.
- dpd_shell_no_eventhandler(obj)[source]¶
Make the data in widgets correspond with the selected shell. Triggered if the dropdown value is changed.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- error_view = Output()¶
- classmethod from_csvy(fpath)[source]¶
Create a new CustomAbundanceWidget instance with data from CSVY file.
- Parameters:
- fpathstr
the path of CSVY file.
- Returns:
- CustomAbundanceWidget
- classmethod from_hdf(fpath)[source]¶
Create a new CustomAbundanceWidget instance with data from HDF file.
- Parameters:
- fpathstr
the path of HDF file.
- Returns:
- CustomAbundanceWidget
- classmethod from_simulation(sim)[source]¶
Create a new CustomAbundanceWidget instance from a Simulation object.
- Parameters:
- simSimulation
- Returns:
- CustomAbundanceWidget
- classmethod from_yml(fpath)[source]¶
Create a new CustomAbundanceWidget instance with data from YAML file.
- Parameters:
- fpathstr
The path of YAML file.
- Returns:
- CustomAbundanceWidget
- input_item_eventhandler(obj)[source]¶
Update the data and the widget when it gets new abundance input. Triggered if the abundance input is changed.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- input_symb_eventhandler(**kwargs)¶
- input_v_eventhandler(obj)[source]¶
Judge whether the input velocity range is valid. Triggered if the velocity input is changed.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- irs_shell_range_eventhandler(obj)[source]¶
Select the velocity range of new shell and highlight the range in the plot. Triggered if the shell range slider is changed.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- property no_of_elements¶
- property no_of_shells¶
- on_btn_add_element(obj)[source]¶
Add new element and update the display in the front end. Triggered if the add button is clicked.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- on_btn_add_shell(obj)[source]¶
Add new shell with given boundary velocities. Triggered if the button is clicked.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- on_btn_next(obj)[source]¶
Move to next shell.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- on_btn_norm(obj)[source]¶
Normalize unlocked abundances to 1. Triggered if the normalize button is clicked.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- on_btn_output(obj)[source]¶
Triggered if the output button is clicked.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- on_btn_prev(obj)[source]¶
Move to previous shell.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- overwrite_existing_shells(v_0, v_1)[source]¶
Judge whether the existing shell(s) will be overwritten when inserting a new shell within the entered velocity range.
- Parameters:
- v_0float
The velocity of inner boundary.
- v_1float
The velocity of outer boundary.
- Returns:
- bool
True if the existing shell will be overwritten, False otherwise.
- rbs_multi_apply_eventhandler(obj)[source]¶
Switch to multi-shells editing mode. Triggered if the second radio button is selected.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- rbs_single_apply_eventhandler(obj)[source]¶
Switch to single shell editing mode. Triggered if the first radio button is selected.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- read_abundance()[source]¶
Read abundances data in DataFrame to input items box when shell No. changes.
- property shell_no¶
- tbs_scale_eventhandler(obj)[source]¶
Switch the scale type of y axis between linear mode and log mode. Triggered if the toggle button is changed.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- to_csvy(path, overwrite)[source]¶
Output CSVY file on the specified path.
- Parameters:
- pathstr
Output path.
- overwritebool
True if overwriting, False otherwise.
- update_abundance_plot(index)[source]¶
Update the abundance line of certain element in the plot.
- Parameters:
- indexint
The index of the widget in the list of abundance inputs.
- update_bar_diagonal()[source]¶
Update bar diagonal (and shell no dropdown) when the range of shells changed.
- update_front_end()[source]¶
Update checkbox widgets, input widgets and plot in the front end when selected shell No. is changed.
- update_input_item_value(index, value)[source]¶
Update the value of the widget in the list of abundance inputs.
Keep two decimal places for displayed value and disable
input_item_eventhandler
while changing the value.- Parameters:
- indexint
The index of the widget in the list of abundance inputs.
- valuefloat
New abundance value.
- class tardis.visualization.widgets.custom_abundance.CustomAbundanceWidgetData(density_t_0, density, abundance, velocity)[source]¶
Bases:
object
The model information and data that required in custom abundance widget.
- Attributes:
- elementslist of str
A list of elements or isotopes’ symbols.
Initialize CustomAbundanceWidgetData with model information.
- Parameters:
- density_t_0astropy.units.quantity.Quantity
Initial time for the density in the model.
- densityastropy.units.quantity.Quantity
- abundancepd.DataFrame
- velocityastropy.units.quantity.Quantity
- classmethod from_csvy(fpath)[source]¶
Create a new CustomAbundanceWidgetData instance with data from CSVY file.
- Parameters:
- fpathstr
the path of CSVY file.
- Returns:
- CustomAbundanceWidgetData
- classmethod from_hdf(fpath)[source]¶
Create a new CustomAbundanceWidgetData instance with data from HDF file.
- Parameters:
- fpathstr
the path of HDF file.
- Returns:
- CustomAbundanceWidgetData
- classmethod from_simulation(sim)[source]¶
Create a new CustomAbundanceWidgetData instance from a Simulation object.
- Parameters:
- simSimulation
- Returns:
- CustomAbundanceWidgetData
- class tardis.visualization.widgets.custom_abundance.CustomYAML(name, d_time_0, i_time_0, v_inner_boundary, v_outer_boundary)[source]¶
Bases:
YAMLObject
A custom YAML object generated by required properties.
Initialize CustomYAML object with given properties.
- Parameters:
- namestr
Name of the YAML file.
- d_time_0astropy.units.quantity.Quantity
Initial time for the density in the model.
- i_time_0astropy.units.quantity.Quantity
Initial time for isotope decay. Set to 0 for no isotopes.
- v_inner_boundaryastropy.units.quantity.Quantity
Velocity of the inner boundary.
- v_outer_boundaryastropy.units.quantity.Quantity
Velocity of the outer boundary.
- class tardis.visualization.widgets.custom_abundance.DensityEditor(widget_data, fig, shell_no_widget)[source]¶
Bases:
object
Widget to edit density profile of the model.
It provides an interface to allow the user directly change the density, or calculate the density with given type and parameters.
- Attributes:
- shell_noint
The selected shell number.
- _triggerbool
If False, disable the callback when density input is changed.
Initialize DensityEditor with data and widget components.
- Parameters:
- widget_dataCustomAbundanceWidgetData
Data in the custom abundance widget.
- figplotly.graph_objs._figurewidget.FigureWidget
The figure object of density plot.
- shell_no_widgetipywidgets.widgets.widget_selection.Dropdown
A widget to record the selected shell number.
- create_widgets()[source]¶
Create widget components in density editor GUI and register callbacks for widgets.
- display()[source]¶
Display the GUI.
- Returns:
- ipywidgets.widgets.widget_box.VBox
A box that contains all the widgets in the GUI.
- dpd_dtype_eventhandler(obj)[source]¶
Display the input boxes of the specified density type. Triggered if the density type dropdown is changed.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- Returns:
- ipywidgets.widgets.widget_box.VBox
A box widget that contains the input boxes of certain density type parameters.
- dtype_out = Output()¶
- input_d_eventhandler(obj)[source]¶
Update the data and the widgets when the widget gets new density input.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- input_d_time_0_eventhandler(obj)[source]¶
Update density time 0 data when the widget gets new input.
- Parameters:
- objtraitlets.utils.bunch.Bunch
A dictionary holding the information about the change.
- on_btn_calculate(obj)[source]¶
Calculate density according to density parameters input. Triggered if the density calculate button is clicked.
- Parameters:
- objipywidgets.widgets.widget_button.Button
The clicked button instance.
- property shell_no¶