コード例 #1
0
    def configuration(self):
        # bring file dialog to locate where the file will be saved
        base_folder = Path(self.parent.working_dir)
        directory = str(base_folder.parent)
        _export_folder = QFileDialog.getExistingDirectory(
            self.parent,
            directory=directory,
            caption="Select Output Folder",
            options=QFileDialog.ShowDirsOnly)

        if _export_folder:
            data, metadata = self.get_data_metadata_from_selection_tab()

            # collect initial selection size (x0, y0, width, height)
            o_get = Get(parent=self.parent)
            [x0, y0, x1, y1, width, height] = o_get.selection_roi_dimension()

            name_of_ascii_file = ExportHandler.makeup_name_of_profile_ascii_file(
                base_name=str(base_folder.name),
                export_folder=_export_folder,
                x0=x0,
                y0=y0,
                width=width,
                height=height)

            make_ascii_file(metadata=metadata,
                            data=data,
                            output_file_name=name_of_ascii_file,
                            dim='1d')

            self.parent.ui.statusbar.showMessage(
                "{} has been created!".format(name_of_ascii_file),
                10000)  # 10s
            self.parent.ui.statusbar.setStyleSheet("color: green")
コード例 #2
0
    def update_selection_profile_plot(self):

        if self.parent.is_file_imported:
            self.update_selection_plot()
            self.parent.update_vertical_line_in_profile_plot()

        else:
            o_get = Get(parent=self.parent)
            x_axis, x_axis_label = o_get.x_axis()
            self.parent.ui.profile.clear()

            # large selection region
            [x0, y0, x1, y1, _, _] = o_get.selection_roi_dimension()
            profile = o_get.profile_of_roi(x0, y0, x1, y1)
            x_axis, y_axis = check_size(x_axis=x_axis, y_axis=profile)
            self.parent.ui.profile.plot(x_axis,
                                        y_axis,
                                        pen=(self.parent.selection_roi_rgb[0],
                                             self.parent.selection_roi_rgb[1],
                                             self.parent.selection_roi_rgb[2]))

            # shrinkable region
            shrinking_roi = self.get_coordinates_of_new_inside_selection_box()
            x0 = shrinking_roi['x0']
            y0 = shrinking_roi['y0']
            x1 = shrinking_roi['x1']
            y1 = shrinking_roi['y1']
            profile = o_get.profile_of_roi(x0, y0, x1, y1)
            x_axis, y_axis = check_size(x_axis=x_axis, y_axis=profile)
            self.parent.ui.profile.plot(x_axis,
                                        y_axis,
                                        pen=(self.parent.shrinking_roi_rgb[0],
                                             self.parent.shrinking_roi_rgb[1],
                                             self.parent.shrinking_roi_rgb[2]))
            self.parent.ui.profile.setLabel("bottom", x_axis_label)
            self.parent.ui.profile.setLabel("left", 'Mean transmission')

            # vertical line showing peak to fit
            bragg_edge_range = [
                x_axis[self.parent.bragg_edge_range[0]],
                x_axis[self.parent.bragg_edge_range[1]]
            ]

            self.parent.bragg_edge_range_ui = pg.LinearRegionItem(
                values=bragg_edge_range,
                orientation=None,
                brush=None,
                movable=True,
                bounds=None)
            self.parent.bragg_edge_range_ui.sigRegionChanged.connect(
                self.parent.bragg_edge_range_changed)
            self.parent.bragg_edge_range_ui.setZValue(-10)
            self.parent.ui.profile.addItem(self.parent.bragg_edge_range_ui)