From 3dde1d78ebf32763872fd5e4beb72f4e0de1ff9b Mon Sep 17 00:00:00 2001 From: Chris Meyer <34664+cmeyer@users.noreply.github.com> Date: Sun, 28 Dec 2025 09:42:26 -0800 Subject: [PATCH] Clean up access to data item (only xdata, data_metadata). --- .../nion_experimental_tools/AlignMultiSI.py | 10 +++++---- .../AlignSequenceOfMultiDimensionalData.py | 22 +++++++++++++------ .../MultiDimensionalProcessing.py | 14 +++++++----- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/nionswift_plugin/nion_experimental_tools/AlignMultiSI.py b/nionswift_plugin/nion_experimental_tools/AlignMultiSI.py index e229ef2..f835b93 100755 --- a/nionswift_plugin/nion_experimental_tools/AlignMultiSI.py +++ b/nionswift_plugin/nion_experimental_tools/AlignMultiSI.py @@ -289,15 +289,17 @@ def menu_item_execute(self, window: Facade.DocumentWindow) -> None: assert selected_display_items[1][0] is not None, error_msg assert selected_display_items[0][0].data_item is not None, error_msg assert selected_display_items[1][0].data_item is not None, error_msg - assert selected_display_items[0][0].data_item.is_sequence, error_msg - assert selected_display_items[1][0].data_item.is_sequence, error_msg + assert selected_display_items[0][0].data_item.data_metadata is not None, error_msg + assert selected_display_items[1][0].data_item.data_metadata is not None, error_msg + assert selected_display_items[0][0].data_item.data_metadata.is_sequence, error_msg + assert selected_display_items[1][0].data_item.data_metadata.is_sequence, error_msg assert selected_display_items[1][0] != selected_display_items[0][0], error_msg - if selected_display_items[0][0].data_item.is_collection: + if selected_display_items[0][0].data_item.data_metadata.is_collection: si_sequence_data_item = Facade.DataItem(selected_display_items[0][0].data_item) haadf_sequence_data_item = Facade.DataItem(selected_display_items[1][0].data_item) align_region = Facade.Graphic(selected_display_items[1][1]) if selected_display_items[1][1] else None - elif selected_display_items[1][0].data_item.is_collection: + elif selected_display_items[1][0].data_item.data_metadata.is_collection: si_sequence_data_item = Facade.DataItem(selected_display_items[1][0].data_item) haadf_sequence_data_item = Facade.DataItem(selected_display_items[0][0].data_item) align_region = Facade.Graphic(selected_display_items[0][1]) if selected_display_items[0][1] else None diff --git a/nionswift_plugin/nion_experimental_tools/AlignSequenceOfMultiDimensionalData.py b/nionswift_plugin/nion_experimental_tools/AlignSequenceOfMultiDimensionalData.py index c66d250..4e1ae6d 100755 --- a/nionswift_plugin/nion_experimental_tools/AlignSequenceOfMultiDimensionalData.py +++ b/nionswift_plugin/nion_experimental_tools/AlignSequenceOfMultiDimensionalData.py @@ -108,12 +108,18 @@ def align_multi_si(api: API_1_0.API, window: API_1_0.DocumentWindow, data_item1: align_collection_index = 0 aligned_haadf = None + di_1_data_metadata = di_1.data_metadata + di_2_data_metadata = di_2.data_metadata + + assert di_1_data_metadata is not None, error_msg + assert di_2_data_metadata is not None, error_msg + if di_1 != di_2: haadf_footprint = (2, True, 0, True) - di_1_footprint = (di_1.datum_dimension_count, di_1.is_sequence, di_1.collection_dimension_count, - di_1.metadata.get("hardware_source", {}).get("harwdare_source_id", "") == "superscan") - di_2_footprint = (di_2.datum_dimension_count, di_2.is_sequence, di_2.collection_dimension_count, - di_2.metadata.get("hardware_source", {}).get("harwdare_source_id", "") == "superscan") + di_1_footprint = (di_1_data_metadata.datum_dimension_count, di_1_data_metadata.is_sequence, di_1_data_metadata.collection_dimension_count, + di_1_data_metadata.metadata.get("hardware_source", {}).get("harwdare_source_id", "") == "superscan") + di_2_footprint = (di_2_data_metadata.datum_dimension_count, di_2_data_metadata.is_sequence, di_2_data_metadata.collection_dimension_count, + di_2_data_metadata.metadata.get("hardware_source", {}).get("harwdare_source_id", "") == "superscan") di_1_points = 0 di_2_points = 0 @@ -136,7 +142,7 @@ def align_multi_si(api: API_1_0.API, window: API_1_0.DocumentWindow, data_item1: outputs = {"aligned_haadf": aligned_haadf, "aligned_si": aligned_si} else: - assert di_1.collection_dimension_count == 1, error_msg + assert di_1_data_metadata.collection_dimension_count == 1, error_msg haadf_sequence_data_item = api._new_api_object(di_1) si_sequence_data_item = haadf_sequence_data_item align_collection_index = haadf_sequence_data_item.display._display.display_data_channel.collection_index[0] @@ -190,8 +196,10 @@ def menu_item_execute(self, window: Facade.DocumentWindow) -> None: assert selected_display_items[1][0] is not None, error_msg assert selected_display_items[0][0].data_item is not None, error_msg assert selected_display_items[1][0].data_item is not None, error_msg - assert selected_display_items[0][0].data_item.is_sequence, error_msg - assert selected_display_items[1][0].data_item.is_sequence, error_msg + assert selected_display_items[0][0].data_item.data_metadata is not None, error_msg + assert selected_display_items[1][0].data_item.data_metadata is not None, error_msg + assert selected_display_items[0][0].data_item.data_metadata.is_sequence, error_msg + assert selected_display_items[1][0].data_item.data_metadata.is_sequence, error_msg data_item1 = Facade.DataItem(selected_display_items[0][0].data_item) data_item2 = Facade.DataItem(selected_display_items[1][0].data_item) align_multi_si(self.__api, window, data_item1, data_item2) diff --git a/nionswift_plugin/nion_experimental_tools/MultiDimensionalProcessing.py b/nionswift_plugin/nion_experimental_tools/MultiDimensionalProcessing.py index 99abd79..f1a0a5f 100755 --- a/nionswift_plugin/nion_experimental_tools/MultiDimensionalProcessing.py +++ b/nionswift_plugin/nion_experimental_tools/MultiDimensionalProcessing.py @@ -485,14 +485,18 @@ def menu_item_execute(self, window: Facade.DocumentWindow) -> None: di_2 = display_2.data_item assert di_1 is not None, error_msg assert di_2 is not None, error_msg - assert di_1.data_shape is not None, error_msg - assert di_2.data_shape is not None, error_msg - - if len(di_1.data_shape) < len(di_2.data_shape): + di_1_data_metadata = di_1.data_metadata + di_2_data_metadata = di_2.data_metadata + assert di_1_data_metadata is not None, error_msg + assert di_2_data_metadata is not None, error_msg + assert di_1_data_metadata.data_shape is not None, error_msg + assert di_2_data_metadata.data_shape is not None, error_msg + + if len(di_1_data_metadata.data_shape) < len(di_2_data_metadata.data_shape): shifts_di = self.__api._new_api_object(di_1) shifts_display = display_1 input_di = self.__api._new_api_object(di_2) - elif len(di_2.data_shape) < len(di_1.data_shape): + elif len(di_2_data_metadata.data_shape) < len(di_1_data_metadata.data_shape): shifts_di = self.__api._new_api_object(di_2) shifts_display = display_2 input_di = self.__api._new_api_object(di_1)