diff --git a/src/hyperctui/__init__.py b/src/hyperctui/__init__.py index d121e5d..74dc509 100644 --- a/src/hyperctui/__init__.py +++ b/src/hyperctui/__init__.py @@ -81,6 +81,8 @@ class EvaluationRegionKeys: id = "id of the pg horizontal line" name = 'name of the region' label_id = "id of the label naming the region" + from_index = "from file index" + to_index = "to file index" def load_ui(ui_filename, baseinstance): diff --git a/src/hyperctui/autonomous_reconstruction/event_handler.py b/src/hyperctui/autonomous_reconstruction/event_handler.py index ea72683..57bed4d 100644 --- a/src/hyperctui/autonomous_reconstruction/event_handler.py +++ b/src/hyperctui/autonomous_reconstruction/event_handler.py @@ -145,14 +145,21 @@ def init_autonomous_table(self): tof_regions = self.parent.tof_regions list_tof_region_collected = [] + list_tof_region_index = [] for _index in tof_regions.keys(): if tof_regions[_index][EvaluationRegionKeys.state]: _from = str(tof_regions[_index][EvaluationRegionKeys.from_value]).replace(".", "_") _to = str(tof_regions[_index][EvaluationRegionKeys.to_value]).replace(".", "_") + + _from_index = tof_regions[_index][EvaluationRegionKeys.from_index] + _to_index = tof_regions[_index][EvaluationRegionKeys.to_index] + list_tof_region_collected.append(f"from_{_from}Ang_to_{_to}Ang") + list_tof_region_index.append(f"from index: {_from_index} to index: {_to_index}") print(f"{formatted2_list_golden_ratio =}") print(f"{list_tof_region_collected =}") + print(f"{list_tof_region_index =}") def refresh_table_clicked(self): """refresh button next to the table has been clicked""" diff --git a/src/hyperctui/autonomous_reconstruction/select_tof_regions.py b/src/hyperctui/autonomous_reconstruction/select_tof_regions.py index 59e0e80..9b47bb0 100644 --- a/src/hyperctui/autonomous_reconstruction/select_tof_regions.py +++ b/src/hyperctui/autonomous_reconstruction/select_tof_regions.py @@ -12,6 +12,7 @@ from neutronbraggedge.experiment_handler.experiment import Experiment from hyperctui.utilities.table import TableHandler +from hyperctui.utilities.array import get_nearest_index from hyperctui import load_ui, EvaluationRegionKeys from hyperctui.session import SessionKeys from hyperctui.utilities.check import is_float, is_int @@ -190,18 +191,28 @@ def save_table(self): _name = o_table.get_item_str_from_cell(row=_row, column=ColumnIndex.name) _from = float(o_table.get_item_str_from_cell(row=_row, - column=ColumnIndex.from_value)) + column=ColumnIndex.from_value)) _to = float(o_table.get_item_str_from_cell(row=_row, - column=ColumnIndex.to_value)) + column=ColumnIndex.to_value)) _from, _to = self.sort(_from, _to) + _from_index = self.get_corresponding_index(lambda_value=_from, + lambda_array=self.lambda_array) + _to_index = self.get_corresponding_index(lambda_value=_to, + lambda_array=self.lambda_array) + tof_regions[_row] = {EvaluationRegionKeys.state: _state, EvaluationRegionKeys.name: _name, EvaluationRegionKeys.from_value: float(_from), EvaluationRegionKeys.to_value: float(_to), - EvaluationRegionKeys.id: None} + EvaluationRegionKeys.id: None, + EvaluationRegionKeys.from_index: _from_index, + EvaluationRegionKeys.to_index: _to_index} self.parent.tof_regions = tof_regions + def get_corresponding_index(self, lambda_value=None, lambda_array=None): + return get_nearest_index(lambda_array, lambda_value) + def check_table_content(self): """ make sure 'from' and 'to' values are int diff --git a/src/hyperctui/ui/main_application.ui b/src/hyperctui/ui/main_application.ui index 5d17b8e..4e25e10 100644 --- a/src/hyperctui/ui/main_application.ui +++ b/src/hyperctui/ui/main_application.ui @@ -1378,25 +1378,6 @@ - - - - - 50 - 0 - - - - - 100 - 16777215 - - - - Kill process - - - @@ -2572,22 +2553,6 @@ - - pushButton - clicked() - MainWindow - autonomous_reconstruction_stop_process_button_clicked() - - - 1026 - 444 - - - 1128 - 581 - - - step1_instrument_changed() @@ -2636,6 +2601,5 @@ action_step5_clicked() action_settings_clicked() refresh_list_of_obs_button_clicked() - autonomous_reconstruction_stop_process_button_clicked() diff --git a/src/hyperctui/utilities/array.py b/src/hyperctui/utilities/array.py new file mode 100644 index 0000000..8468a46 --- /dev/null +++ b/src/hyperctui/utilities/array.py @@ -0,0 +1,6 @@ +import numpy as np + + +def get_nearest_index(array, value): + idx = int((np.abs(np.array(array) - value)).argmin()) + return idx