visiannot.visiannot.components.AnnotEventWidget¶
Summary¶
Module defining AnnotEventWidget
Classes¶
|
Widget for events annotation |
API¶
Class AnnotEventWidget¶
-
class
visiannot.visiannot.components.AnnotEventWidget.AnnotEventWidget(visi, widget_position, label_dict, annot_dir, flag_annot_overlap=False, **kwargs)[source]¶ Bases:
objectWidget for events annotation
- Parameters
visi – associated instance of
ViSiAnnoTwidget_position (tuple or list) – position of the widget in the layout of the associated instance of
ViSiAnnoTlabel_dict (dict) – key is the label, value is the associated color (RGB or RGBA) ; in case RGB color is provided, then a transparency value of 80 is automatically added
annot_dir (str) – directory where the annotations are saved
flag_annot_overlap (bool) – specify if overlap of events annotations is enabled
kwargs – keyword arguments of
create_widget()
Annotation management:
add(visi)Adds an annotation to the current label
call_push_button(button_id, visi)Callback method for managing annotation with push buttons
call_radio(ev, visi)Callback method for changing label
change_label(visi, new_label)Changes label and loads corresponding annotation file
check_overlap(annot_path, annot_datetime_0, …)delete(visi, annot_id)Deletes a specific annotation for the current label
delete_clicked(visi, position)Deletes an annotion that is clicked on
get_annot_id_from_position(visi, position)Looks for the index of the annotation at the given frame for the current label
get_path(label)Gets path to the annotation file corresponding to the input label
Resets the timestamps of the current unsaved annotation for the current label
set_timestamp(visi, frame_id, annot_position)Sets the start or end timestamp of the current unsaved annotation for the current label
Display management:
add_region(visi, bound_1, bound_2, **kwargs)Displays a region in the progress bar and the signal widgets
clear_regions(visi)Clears the display of annotations for all labels (but does not delete the annotations)
clear_regions_single_label(visi, label_id)Clears the display of annotations for a specific label
display(visi)Mananges the display of annotations (on/off)
plot_regions(visi)Plots events annotations, depending on the display mode selected with
button_group_radio_dispAnnotation description:
clear_descriptions(visi)Clears the display of all the annotations descriptions
description(visi, ev, pos_frame, pos_ms)Creates and displays text items in signal widgets with the description of the annotation that has been clicked on
Widget creation:
create_widget(lay, widget_position[, nb_table])Creates a widget with the events annotation tool and adds it to the layout of the associated instance of
ViSiAnnoTAttributes:
(str) Text for empty annotation timestamp next to push buttons “Start” and “Stop”
(str) Datetime string format of the annotations timestamps
(str) Directory where the annotations are saved
(bool) Specify if overlap of events annotations is enabled
(str) Base name of the annotation files (to which is appended the label)
(list) Labels of the events annotation
(list) Colors of the events annotation labels
(numpy array) Array with unsaved annotated event
(dict) Events annotations descriptions to be displayed
(list) Path to the annotation file of the currently selected label
(int) Index of the currently selected label, with respect to the list
label_list(QtWidgets.QButtonGroup) Set of radio buttons for selecting a label
(QtWidgets.QButtonGroup) Set of radio buttons for selecting a display option
(QtWidgets.QButtonGroup) Set of check boxes for custom display
(QtWidgets.QButtonGroup) Set of push buttons for annotation (Sart, Stop, Add, Delete last, Display)
(list) Instances of QtWidgets.QLabel containing the text next to the push buttons grouped in
button_group_push(dict) Lists of region items (pyqtgraph.LinearRegionItem) for the display of events annotations
-
add(visi)[source]¶ Adds an annotation to the current label
It sets the attribute
path.If the annotation start timestamp or end timestamp is not defined, then nothing happens.
- Parameters
visi – associated instance of
ViSiAnnoT
-
add_region(visi, bound_1, bound_2, **kwargs)[source]¶ Displays a region in the progress bar and the signal widgets
It converts the bounds to frame numbers and then calls the method
ViSiAnnoT.add_region_to_widgets().- Parameters
visi – associated instance of
ViSiAnnoTbound_1 (str) – start datetime of the region
bound_2 (str) – end datetime of the region
kwargs – keyword arguments of
ViSiAnnoT.add_region_to_widgets()
Callback method for managing annotation with push buttons
Connected to the signal
buttonClicked[int]of the attribute attr:.button_group_push.There are 5 buttons and they have an effect on the unsaved current annotation of the current label:
button_id == 0: set start timestamp at the current frameViSiAnnoT.frame_idbutton_id == 1: set ending datetime with the current frame :attr;`.ViSiAnnoT.frame_id`button_id == 2: add annotation defined by the current timestampsbutton_id == 3: delete last annotationbutton_id == 4: on/off display
- Parameters
button_id (int) – index of the button that has been pushed
visi – associated instance of
ViSiAnnoT
-
call_radio(ev, visi)[source]¶ Callback method for changing label
Connected to the signal
buttonClickedofbutton_group_radio_label.- Parameters
visi – associated instance of
ViSiAnnoTev (QtWidgets.QRadioButton) – radio button that has been clicked
-
change_label(visi, new_label)[source]¶ Changes label and loads corresponding annotation file
It sets the value of the following attributes:
current_label_idwith the index of the new label inlabel_listpathwith the new annotation file path (by callingget_path())
It also manages the display of the annotations.
- Parameters
visi – associated instance of
ViSiAnnoTnew_label (str) – new annotation label
-
clear_descriptions(visi)[source]¶ Clears the display of all the annotations descriptions
- Parameters
visi – associated instance of
ViSiAnnoT
-
clear_regions(visi)[source]¶ Clears the display of annotations for all labels (but does not delete the annotations)
- Parameters
visi – associated instance of
ViSiAnnoT
-
clear_regions_single_label(visi, label_id)[source]¶ Clears the display of annotations for a specific label
- Parameters
visi – associated instance of
ViSiAnnoTlabel_id (int) – index of the label in the list
ViSiAnnoT.annotevent_label_list
-
create_widget(lay, widget_position, nb_table=5)[source]¶ Creates a widget with the events annotation tool and adds it to the layout of the associated instance of
ViSiAnnoTMake sure the attribute
label_listis defined before calling this method.It sets the following attributes:
button_group_push(must be initialized)push_text_list(must be initialized)
- Parameters
lay (QtWidgets.QGridLayout) – layout of the associated instance of
ViSiAnnoTwidget_position (list or tuple) – position of the widget in the layout, length 2
(row, col)or 4(row, col, rowspan, colspan)nb_table (int) – maximum number of radio buttons (resp. check boxes) in
button_group_radio_label(resp.button_group_check_custom) on a row
-
delete(visi, annot_id)[source]¶ Deletes a specific annotation for the current label
- Parameters
visi – associated instance of
ViSiAnnoTannot_id (int) – index of the annotation to delete
-
delete_clicked(visi, position)[source]¶ Deletes an annotion that is clicked on
- Parameters
visi – associated instance of
ViSiAnnoTposition (int) – frame number (sampled at the reference frequency
ViSiAnnoT.fps) corresponding to the mouse position on the X axis of the signal widgets
-
description(visi, ev, pos_frame, pos_ms)[source]¶ Creates and displays text items in signal widgets with the description of the annotation that has been clicked on
- Parameters
visi – associated instance of
ViSiAnnoTev (QtWidgets.QRadioButton) – radio button that has been clicked
pos_frame (int) – frame number (sampled at the reference frequency
ViSiAnnoT.fps) corresponding to the mouse position on the X axis of the signal widgetpos_ms (float) – mouse position on the X axis of the signal widget in milliseconds
-
display(visi)[source]¶ Mananges the display of annotations (on/off)
- Parameters
visi – associated instance of
ViSiAnnoT
-
get_annot_id_from_position(visi, position)[source]¶ Looks for the index of the annotation at the given frame for the current label
- Parameters
visi – associated instance of
ViSiAnnoTposition (int) – frame number (sampled at the reference frequency
ViSiAnnoT.fps)
- Returns
index of the annotation (i.e. line number in the annotation file), returns
-1if no annotation atposition- Return type
int
-
get_path(label)[source]¶ Gets path to the annotation file corresponding to the input label
- Parameters
label (str) – events annotation label
- Returns
path
- Return type
str
-
plot_regions(visi)[source]¶ Plots events annotations, depending on the display mode selected with
button_group_radio_dispMake sure that the attribute
region_dictis already created.It checks if the display mode is on before plotting.
Connected to the signal
buttonClickedofbutton_group_radio_dispandbutton_group_check_custom.- Parameters
visi – associated instance of
ViSiAnnoT
-
reset_timestamp()[source]¶ Resets the timestamps of the current unsaved annotation for the current label
It sets
self.annot_array[self.current_label_id]to zeros.
-
set_timestamp(visi, frame_id, annot_position)[source]¶ Sets the start or end timestamp of the current unsaved annotation for the current label
It sets the values of
self.annot_array[self.current_label_id, annot_position].- Parameters
visi – associated instance of
ViSiAnnoTframe_id (int) – frame number of the timestamp (sampled at the reference frequency
ViSiAnnoT.fps)annot_position (int) – specify if start timestamp (
0) or end timestamp (1)
-
annot_array¶ (numpy array) Array with unsaved annotated event
Shape
, where
is the
length of label_list. Each row corresponds to a label and is composed of the beginning datetime and ending datetime of the current annotation not saved yet.
-
annot_dir¶ (str) Directory where the annotations are saved
(QtWidgets.QButtonGroup) Set of check boxes for custom display
(QtWidgets.QButtonGroup) Set of push buttons for annotation (Sart, Stop, Add, Delete last, Display)
(QtWidgets.QButtonGroup) Set of radio buttons for selecting a display option
(QtWidgets.QButtonGroup) Set of radio buttons for selecting a label
-
color_list¶ (list) Colors of the events annotation labels
each element is a list of length 4 with the RGBA color
-
current_label_id¶ (int) Index of the currently selected label, with respect to the list
label_list
-
description_dict¶ (dict) Events annotations descriptions to be displayed
Key is the index of a label in
label_list. Value is a dictionary:Key is an integer with the annotation ID (index in the annotation file)
Value is a list of instances of pyqtgraph.TextItem with the description, same length and order as
ViSiAnnoT.wid_sig_list, so that one element corresponds to one signal widget
-
empty_annotation¶ (str) Text for empty annotation timestamp next to push buttons “Start” and “Stop”
-
file_name_base¶ (str) Base name of the annotation files (to which is appended the label)
It is defined as the basename of the annotation directory
annot_dir.
-
flag_annot_overlap¶ (bool) Specify if overlap of events annotations is enabled
-
label_list¶ (list) Labels of the events annotation
-
path¶ (list) Path to the annotation file of the currently selected label
-
push_text_list¶ (list) Instances of QtWidgets.QLabel containing the text next to the push buttons grouped in
button_group_push
-
region_dict¶ (dict) Lists of region items (pyqtgraph.LinearRegionItem) for the display of events annotations
Key is a label index. Value is a list of lists, each sublist corresponds to one annotation and contains
region items, where
is
the length of ViSiAnnoT.wid_sig_list(number of signal widgets), the additional region item is for the progress bar (ViSiAnnoT.wid_progress).For example, for 3 signal widgets and for a given label with 2 annotations, the value of the dictionary would be:
[ [ annot1_widProgress, annot1_wid1, annot1_wid2, annot1_wid3 ], [ annot2_widProgress, annot2_wid1, annot2_wid2, annot2_wid3 ] ]
-
timestamp_format¶ (str) Datetime string format of the annotations timestamps