Exemplo n.º 1
0
 def define_parameters(self):
     self.refine_parameters = GridParameters()
     defaults = self.settings.settings['nxrefine']
     for p in defaults:
         self.refine_parameters.add(p, defaults[p], p)
     self.reduce_parameters = GridParameters()
     defaults = self.settings.settings['nxreduce']
     for p in defaults:
         self.reduce_parameters.add(p, defaults[p], p)
     if self.layout.count() == 2:
         self.layout.insertLayout(
             1, self.refine_parameters.grid(header=False, title='NXRefine'))
         self.layout.insertLayout(
             2, self.reduce_parameters.grid(header=False, title='NXReduce'))
Exemplo n.º 2
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.plotview = None
        self.data = None
        self.counts = None
        self.points = []
        self.pattern_geometry = None
        self.cake_geometry = None
        self.polarization = None
        self.is_calibrated = False
        self.phi_max = -np.pi

        cstr = str(ALL_CALIBRANTS)
        calibrants = sorted(cstr[cstr.index(':')+2:].split(', '))
        self.parameters = GridParameters()
        self.parameters.add('calibrant', calibrants, 'Calibrant')
        self.parameters['calibrant'].value = 'CeO2'
        self.parameters.add('wavelength', 0.5, 'Wavelength (Ang)', False)
        self.parameters.add('distance', 100.0, 'Detector Distance (mm)', True)
        self.parameters.add('xc', 512, 'Beam Center - x', True)
        self.parameters.add('yc', 512, 'Beam Center - y', True)
        self.parameters.add('yaw', 0.0, 'Yaw (degrees)', True)
        self.parameters.add('pitch', 0.0, 'Pitch (degrees)', True)
        self.parameters.add('roll', 0.0, 'Roll (degrees)', True)
        self.parameters.add('search_size', 10, 'Search Size (pixels)')
        self.rings_box = self.select_box([f'Ring{i}' for i in range(1, 21)])
        self.set_layout(self.select_entry(self.choose_entry),
                        self.progress_layout(close=True))
        self.set_title('Calibrating Powder')
Exemplo n.º 3
0
 def setup_secondary_grid(self):
     ps_angle = self.refine.angle_peaks(self.primary, self.secondary)
     n_phkl = len(self.ring_list[self.refine.rp[self.primary]])
     self.hkl_parameters = [GridParameters() for i in range(n_phkl)]
     min_diff = self.get_peak_tolerance()
     min_p = None
     min_hkl = None
     for i in range(n_phkl):
         phkl = eval(self.peak_parameters['primary_hkl'].box.items()[i])
         for hkls in self.rings[self.refine.rp[self.secondary]][1]:
             for hkl in hkls:
                 hkl_angle = self.refine.angle_hkls(phkl, hkl)
                 diff = abs(ps_angle - hkl_angle)
                 if diff < self.get_peak_tolerance():
                     self.hkl_parameters[i].add(str(hkl),
                                                hkl_angle,
                                                str(hkl),
                                                vary=False,
                                                readonly=True)
                     if diff < min_diff:
                         min_diff = diff
                         min_p = i
                         min_hkl = str(hkl)
         self.orient_box.insert_layout(
             i + 1, self.hkl_parameters[i].grid(
                 header=['HKL', 'Angle (deg)', 'Select'], spacing=5))
     if min_hkl is None:
         raise NeXusError("No matching peaks found")
     self.peak_parameters['primary_hkl'].box.setCurrentIndex(min_p)
     self.hkl_parameters[min_p][min_hkl].vary = True
     self.choose_secondary_grid()
Exemplo n.º 4
0
 def setup_instrument(self):
     entry = self.experiment_file['entry']
     entry.instrument = NXinstrument()
     entry.instrument.monochromator = NXmonochromator()
     entry.instrument.detector = NXdetector()
     entry['instrument/monochromator/wavelength'] = NXfield(
         0.5, dtype=np.float32)
     entry['instrument/monochromator/wavelength'].attrs[
         'units'] = 'Angstroms'
     entry['instrument/monochromator/energy'] = NXfield(12.398419739640717 /
                                                        0.5,
                                                        dtype=np.float32)
     entry['instrument/monochromator/energy'].attrs['units'] = 'keV'
     entry['instrument/detector/distance'] = NXfield(100.0,
                                                     dtype=np.float32)
     entry['instrument/detector/distance'].attrs['units'] = 'mm'
     self.instrument = GridParameters()
     self.instrument.add('experiment', 'experiment', 'Experiment Name')
     self.instrument.add('wavelength',
                         entry['instrument/monochromator/wavelength'],
                         'Wavelength (Ang)')
     self.instrument.add('distance', entry['instrument/detector/distance'],
                         'Detector Distance (mm)')
     detector_list = sorted(
         list(set([detector().name
                   for detector in ALL_DETECTORS.values()])))
     self.instrument.add('detector', detector_list, 'Detector')
     self.instrument['detector'].value = 'Pilatus CdTe 2M'
     self.instrument.add('positions', [0, 1, 2, 3, 4],
                         'Number of Detector Positions',
                         slot=self.set_entries)
     self.instrument['positions'].value = '0'
Exemplo n.º 5
0
    def __init__(self, parent=None):
        super(FindDialog, self).__init__(parent)

        self.select_entry(self.choose_entry)

        self.parameters = GridParameters()
        self.parameters.add('threshold', '', 'Threshold')
        self.parameters.add('first', '', 'First Frame')
        self.parameters.add('last', '', 'Last Frame')
        find_layout = QtWidgets.QHBoxLayout()
        self.find_button = QtWidgets.QPushButton('Find Peaks')
        self.find_button.clicked.connect(self.find_peaks)
        self.peak_count = QtWidgets.QLabel()
        self.peak_count.setVisible(False)
        find_layout.addStretch()
        find_layout.addWidget(self.find_button)
        find_layout.addWidget(self.peak_count)
        find_layout.addStretch()
        self.set_layout(self.entry_layout, 
                        self.parameters.grid(),
                        find_layout,
                        self.progress_layout(save=True))
        self.progress_bar.setVisible(False)
        self.progress_bar.setValue(0)
        self.set_title('Find Peaks')
        self.reduce = None
Exemplo n.º 6
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.select_entry(self.choose_entry)

        default = NXSettings().settings['nxreduce']
        self.parameters = GridParameters()
        self.parameters.add('first', default['first'], 'First Frame')
        self.parameters.add('last', default['last'], 'Last Frame')
        self.parameters.add('threshold1', '2', 'Threshold 1')
        self.parameters.add('horizontal1', '11', 'Horizontal Size 1')
        self.parameters.add('threshold2', '0.8', 'Threshold 2')
        self.parameters.add('horizontal2', '51', 'Horizontal Size 2')
        self.parameters.grid()
        self.prepare_button = NXPushButton('Prepare Mask', self.prepare_mask)
        self.plot_button = NXPushButton('Plot Mask', self.plot_mask)
        self.prepare_layout = self.make_layout(self.prepare_button,
                                               self.plot_button,
                                               align='center')
        self.plot_button.setVisible(False)
        self.set_layout(self.entry_layout,
                        self.close_layout(save=True, progress=True))
        self.set_title('Prepare 3D Mask')
        self.reduce = None
        self.mask = None
        self.plotview = None
Exemplo n.º 7
0
 def setup_entry(self, position):
     default = self.settings['nxrefine']
     entry = NXentry()
     self.detectors[position] = GridParameters()
     self.detectors[position].add('x', default['x'], 'Translation - x (mm)')
     self.detectors[position].add('y', default['y'], 'Translation - y (mm)')
     self.detectors[position].add('omega', default['omega'], 'Omega (deg)')
     self.configuration_file[f'f{position}'] = entry
Exemplo n.º 8
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.parameters = GridParameters()
        self.parameters.add('experiment', 'experiment', 'Experiment')

        self.set_layout(
            self.directorybox('Choose Home Directory', default=False),
            self.parameters.grid(header=False), self.close_layout(save=True))
        self.set_title('New Experiment')
Exemplo n.º 9
0
 def setup_position(self, position):
     self.entries[position] = GridParameters()
     self.entries[position].add('chi', -90.0, 'Chi (deg)')
     self.entries[position].add('omega', 0.0, 'Omega (deg)')
     self.entries[position].add('x', 0.0, 'Translation - x (mm)')
     self.entries[position].add('y', 0.0, 'Translation - y (mm)')
     self.entries[position].add('linkfile', 'f%d.h5' % position,
                                'Detector Filename')
     self.entries[position].add('linkpath', '/entry/data/data',
                                'Detector Data Path')
Exemplo n.º 10
0
    def setup_scans(self):
        self.scan = GridParameters()
        self.scan.add('scan', 'scan', 'Scan Label')
        self.scan.add('temperature', 300.0, 'Temperature (K)')
        self.scan.add('phi_start', -5.0, 'Phi Start (deg)')
        self.scan.add('phi_end', 360.0, 'Phi End (deg)')
        self.scan.add('phi_step', 0.1, 'Phi Step (deg)')
        self.scan.add('frame_rate', 10, 'Frame Rate (Hz)')

        for position in range(1, 6):
            self.setup_position(position)
Exemplo n.º 11
0
    def __init__(self, parent=None):
        super(SampleDialog, self).__init__(parent)

        self.sample = GridParameters()
        self.sample.add('sample', 'sample', 'Sample Name')
        self.sample.add('label', 'label', 'Sample Label')

        self.set_layout(
            self.directorybox('Choose Experiment Directory', default=False),
            self.sample.grid(header=False), self.close_buttons(save=True))

        self.set_title('New Sample')
Exemplo n.º 12
0
    def setup_scans(self):
        default = self.settings['nxrefine']
        self.scan = GridParameters()
        self.scan.add('scan', 'scan', 'Scan Label')
        self.scan.add('temperature', 300.0, 'Temperature (K)')
        self.scan.add('phi_start', default['phi'], 'Phi Start (deg)')
        self.scan.add('phi_end', default['phi_end'], 'Phi End (deg)')
        self.scan.add('phi_step', default['phi_step'], 'Phi Step (deg)')
        self.scan.add('frame_rate', default['frame_rate'], 'Frame Rate (Hz)')

        for position in range(1, self.positions+1):
            self.setup_position(position)
Exemplo n.º 13
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.select_root(self.choose_entry)

        self.refine = NXRefine()

        self.parameters = GridParameters()
        self.parameters.add('space_group',
                            self.refine.space_group,
                            'Space Group',
                            slot=self.set_groups)
        self.parameters.add('laue_group', self.refine.laue_groups,
                            'Laue Group')
        self.parameters.add('symmetry',
                            self.refine.symmetries,
                            'Symmetry',
                            slot=self.set_lattice_parameters)
        self.parameters.add('centring', self.refine.centrings, 'Cell Centring')
        self.parameters.add('a',
                            self.refine.a,
                            'Unit Cell - a (Ang)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('b',
                            self.refine.b,
                            'Unit Cell - b (Ang)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('c',
                            self.refine.c,
                            'Unit Cell - c (Ang)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('alpha',
                            self.refine.alpha,
                            'Unit Cell - alpha (deg)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('beta',
                            self.refine.beta,
                            'Unit Cell - beta (deg)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('gamma',
                            self.refine.gamma,
                            'Unit Cell - gamma (deg)',
                            slot=self.set_lattice_parameters)
        self.parameters['laue_group'].value = self.refine.laue_group
        self.parameters['symmetry'].value = self.refine.symmetry
        self.parameters['centring'].value = self.refine.centring
        self.import_button = NXPushButton('Import CIF', self.import_cif)
        self.import_checkbox = NXCheckBox('Update Lattice Parameters')
        self.set_layout(self.root_layout, self.close_buttons(save=True))
        self.set_title('Defining Lattice')
Exemplo n.º 14
0
 def setup_position(self, position):
     default = self.settings['nxrefine']
     self.entries[position] = GridParameters()
     self.entries[position].add('chi', default['chi'], 'Chi (deg)')
     self.entries[position].add('omega', default['omega'], 'Omega (deg)')
     self.entries[position].add('x', default['x'], 'Translation - x (mm)')
     self.entries[position].add('y', default['y'], 'Translation - y (mm)')
     self.entries[position].add('linkfile', f'f{position:d}.h5',
                                'Detector Filename')
     self.entries[position].add(
         'linkpath', '/entry/data/data', 'Detector Data Path')
     self.entries[position].grid(header=False)
     if position != 1:
         self.entries[position].hide_grid()
Exemplo n.º 15
0
 def __init__(self, parent=None):
     super().__init__(parent)
     self.select_entry()
     self.parameters = GridParameters()
     self.parameters.add('Ei',
                         self.entry['instrument/monochromator/energy'],
                         'Incident Energy')
     self.parameters.add('dQ', self.round(np.sqrt(self.Ei / 2) / 50),
                         'Q Step')
     self.parameters.add('dE', self.round(self.Ei / 50), 'Energy Step')
     self.set_layout(
         self.entry_layout, self.parameters.grid(),
         self.action_buttons(
             ('Plot', self.plot_data), ('Save', self.save_data)),
         self.close_buttons())
     self.setWindowTitle('Converting to (Q,E)')
Exemplo n.º 16
0
    def __init__(self, parent=None):
        super(Mask3DDialog, self).__init__(parent)

        self.select_entry(self.choose_entry)

        self.parameters = GridParameters()
        self.parameters.add('radius', 200, 'Radius')
        self.parameters.add('width', 3, 'Frame Width')
        self.set_layout(
            self.entry_layout, self.parameters.grid(),
            self.action_buttons(('Calculate 3D Mask', self.calculate_mask)),
            self.progress_layout(save=True))
        self.progress_bar.setVisible(False)
        self.progress_bar.setValue(0)
        self.set_title('Calculate 3D Mask')
        self.reduce = None
Exemplo n.º 17
0
 def shape_options(self, shape):
     p = self.parameters[shape] = GridParameters()
     if isinstance(shape, NXrectangle):
         x, y = shape.xy
         w, h = shape.width, shape.height
         p.add('x', x, 'Left Pixel')
         p.add('y', y, 'Bottom Pixel')
         p.add('w', w, 'Width')
         p.add('h', h, 'Height')
     else:
         x, y = shape.center
         r = abs(shape.width) / 2
         p.add('x', x, 'X-Center')
         p.add('y', y, 'Y-Center')
         p.add('r', r, 'Radius')
     return p.grid(header=False)
Exemplo n.º 18
0
    def define_data(self):
        def is_valid(data):
            try:
                valid_axes = [['Ql', 'Qk', 'Qh'], ['l', 'k', 'h'],
                              ['z', 'y', 'x']]
                axis_names = [axis.nxname for axis in data.nxaxes]
                return axis_names in valid_axes
            except Exception:
                return False

        root = self.entry.nxroot
        self.paths = GridParameters()
        i = 0
        for entry in root.NXentry:
            for data in [d for d in entry.NXdata if is_valid(d)]:
                i += 1
                self.paths.add(i, data.nxpath, i, True, width=200)
Exemplo n.º 19
0
    def __init__(self, parent=None):
        super(ParametersDialog, self).__init__(parent)

        self.select_root(self.choose_root)

        self.parameters = GridParameters()
        self.parameters.add('threshold', '', 'Threshold')
        self.parameters.add('first', 25, 'First Frame')
        self.parameters.add('last', 3625, 'Last Frame')
        self.parameters.add('radius', 200, 'Radius')
        self.parameters.add('width', 3, 'Frame Width')
        self.parameters.add('norm', '', 'Normalization')

        self.set_layout(self.root_layout,
                        self.parameters.grid(),
                        self.close_buttons(save=True))
        self.set_title('Choose Parameters')
Exemplo n.º 20
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.select_entry(self.choose_entry)

        self.parameters = GridParameters()
        self.parameters.add('first', '', 'First Frame')
        self.parameters.add('last', '', 'Last Frame')

        self.output = NXLabel('Maximum Value:')
        self.set_layout(
            self.entry_layout, self.output, self.parameters.grid(),
            self.action_buttons(('Find Maximum', self.find_maximum)),
            self.progress_layout(save=True))
        self.progress_bar.setVisible(False)
        self.progress_bar.setValue(0)
        self.set_title('Find Maximum Value')
        self.reduce = None
Exemplo n.º 21
0
 def setup_instrument(self):
     default = self.settings['nxrefine']
     entry = self.configuration_file['entry']
     entry['instrument/detector/distance'] = NXfield(default['distance'],
                                                     dtype=float)
     entry['instrument/detector/distance'].attrs['units'] = 'mm'
     self.instrument = GridParameters()
     self.instrument.add('distance', entry['instrument/detector/distance'],
                         'Detector Distance (mm)')
     detector_list = sorted(
         list(set([detector().name
                   for detector in ALL_DETECTORS.values()])))
     self.instrument.add('detector', detector_list, 'Detector')
     self.instrument['detector'].value = 'Pilatus CdTe 2M'
     self.instrument.add('positions', [0, 1, 2, 3, 4, 5, 6, 7, 8],
                         'Number of Detector Positions',
                         slot=self.set_entries)
     self.instrument['positions'].value = '0'
Exemplo n.º 22
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.select_entry(self.choose_entry)

        self.refine = NXRefine()

        self.parameters = GridParameters()
        self.parameters.add('wavelength', self.refine.wavelength,
                            'Wavelength (Ang)')
        self.parameters.add('distance', self.refine.distance,
                            'Detector Distance (mm)')
        self.parameters.add('xc', self.refine.xc, 'Beam Center - x')
        self.parameters.add('yc', self.refine.yc, 'Beam Center - y')
        self.parameters.add('pixel', self.refine.pixel_size, 'Pixel Size (mm)')
        self.action_buttons = self.action_buttons(
            ('Plot', self.plot_lattice), ('Save', self.write_parameters))
        self.set_layout(self.entry_layout, self.close_buttons())
        self.set_title('Calculate Angles')
Exemplo n.º 23
0
    def __init__(self, parent=None):
        super(LatticeDialog, self).__init__(parent)

        self.select_entry(self.choose_entry)

        self.refine = NXRefine()

        self.parameters = GridParameters()
        self.parameters.add('symmetry',
                            self.refine.symmetries,
                            'Symmetry',
                            slot=self.set_lattice_parameters)
        self.parameters.add('centring', self.refine.centrings, 'Cell Centring')
        self.parameters.add('a',
                            self.refine.a,
                            'Unit Cell - a (Ang)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('b',
                            self.refine.b,
                            'Unit Cell - b (Ang)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('c',
                            self.refine.c,
                            'Unit Cell - c (Ang)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('alpha',
                            self.refine.alpha,
                            'Unit Cell - alpha (deg)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('beta',
                            self.refine.beta,
                            'Unit Cell - beta (deg)',
                            slot=self.set_lattice_parameters)
        self.parameters.add('gamma',
                            self.refine.gamma,
                            'Unit Cell - gamma (deg)',
                            slot=self.set_lattice_parameters)
        self.parameters['symmetry'].value = self.refine.symmetry
        self.parameters['centring'].value = self.refine.centring
        action_buttons = self.action_buttons(('Plot', self.plot_lattice),
                                             ('Save', self.write_parameters))
        self.set_layout(self.entry_layout, self.parameters.grid(),
                        action_buttons, self.close_buttons())
        self.set_title('Defining Lattice')
Exemplo n.º 24
0
 def setup_scans(self):
     if self.scans:
         self.scans.delete_grid()
     self.scans = GridParameters()
     all_files = [
         self.sample + '_' + d + '.nxs'
         for d in os.listdir(self.sample_directory)
         if os.path.isdir(os.path.join(self.sample_directory, d))
     ]
     filenames = sorted([
         f for f in all_files
         if os.path.exists(os.path.join(self.sample_directory, f))
     ],
                        key=natural_sort)
     for i, f in enumerate(filenames):
         scan = 'f%d' % i
         self.scans.add(scan, i + 1, f, True, self.update_scans)
         self.scans[scan].checkbox.stateChanged.connect(self.update_scans)
     self.insert_layout(2, self.scans.grid(header=False))
Exemplo n.º 25
0
 def setup_configuration(self):
     default = self.settings['nxrefine']
     entry = self.configuration_file['entry']
     entry['instrument/monochromator/wavelength'] = NXfield(
         default['wavelength'], dtype=np.float32)
     entry['instrument/monochromator/wavelength'].attrs['units'] = (
         'Angstroms')
     entry['instrument/monochromator/energy'] = NXfield(12.398419739640717 /
                                                        0.5,
                                                        dtype=np.float32)
     entry['instrument/monochromator/energy'].attrs['units'] = 'keV'
     entry['instrument/goniometer'] = NXgoniometer()
     entry['instrument/detector'] = NXdetector()
     self.configuration = GridParameters()
     self.configuration.add('configuration', 'configuration',
                            'Configuration Filename')
     self.configuration.add('wavelength',
                            entry['instrument/monochromator/wavelength'],
                            'Wavelength (Å)')
Exemplo n.º 26
0
 def setup_scans(self):
     if self.scans:
         self.scans.delete_grid()
     self.scans = GridParameters()
     all_files = [self.sample+'_'+d+'.nxs'
                  for d in os.listdir(self.sample_directory)
                  if os.path.isdir(os.path.join(self.sample_directory, d))]
     filenames = sorted([f for f in all_files if os.path.exists(
         os.path.join(self.sample_directory, f))], key=natural_sort)
     for i, f in enumerate(filenames):
         scan = f'f{i}'
         self.scans.add(scan, i+1, f, True, self.update_scans)
         self.scans[scan].checkbox.stateChanged.connect(self.update_scans)
     scroll_widget = NXWidget()
     scroll_widget.set_layout(self.scans.grid(header=False))
     scroll_area = NXScrollArea(scroll_widget)
     scroll_area.setMinimumHeight(min(scroll_widget.sizeHint().height(),
                                      600))
     scroll_area.setWidgetResizable(True)
     self.insert_layout(2, scroll_area)
Exemplo n.º 27
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.select_root(self.choose_root)

        default = NXSettings().settings['nxreduce']
        self.parameters = GridParameters()
        self.parameters.add('threshold', default['threshold'],
                            'Peak Threshold')
        self.parameters.add('first', default['first'], 'First Frame')
        self.parameters.add('last', default['last'], 'Last Frame')
        self.parameters.add('monitor', ['monitor1', 'monitor2'],
                            'Normalization Monitor')
        self.parameters['monitor'].value = default['monitor']
        self.parameters.add('norm', default['norm'], 'Normalization Value')
        self.parameters.add('radius', default['radius'], 'Punch Radius (Å)')
        self.parameters.add('qmax', default['qmax'], 'Maximum Taper Q (Å-1)')

        self.set_layout(self.root_layout,
                        self.close_buttons(save=True))
        self.set_title('Choose Parameters')
Exemplo n.º 28
0
 def setup_scan(self):
     default = self.settings['nxrefine']
     entry = self.configuration_file['entry']
     entry['instrument/goniometer/chi'] = (NXfield(default['chi'],
                                                   dtype=float))
     entry['instrument/goniometer/chi'].attrs['units'] = 'degree'
     entry['instrument/goniometer/phi'] = (NXfield(default['phi'],
                                                   dtype=float))
     entry['instrument/goniometer/phi'].attrs['step'] = (NXfield(
         default['phi_step'], dtype=float))
     entry['instrument/goniometer/phi'].attrs['end'] = (NXfield(
         default['phi_end'], dtype=float))
     entry['instrument/goniometer/phi'].attrs['units'] = 'degree'
     entry['instrument/detector/frame_time'] = (NXfield(
         1 / float(default['frame_rate']), dtype=float))
     self.scan = GridParameters()
     self.scan.add('chi', default['chi'], 'Chi (deg)')
     self.scan.add('phi_start', default['phi'], 'Phi Start (deg)')
     self.scan.add('phi_end', default['phi_end'], 'Phi End (deg)')
     self.scan.add('phi_step', default['phi_step'], 'Phi Step (deg)')
     self.scan.add('frame_rate', default['frame_rate'], 'Frame Rate (Hz)')
Exemplo n.º 29
0
    def __init__(self, parent=None):
        super(EnergyDialog, self).__init__(parent)

        self.select_entry()
        self.parameters = GridParameters()
        self.parameters.add('m1', self.entry['monitor1/distance'],
                            'Monitor 1 Distance')
        self.parameters.add('m2', self.entry['monitor2/distance'],
                            'Monitor 2 Distance')
        self.parameters.add('Ei',
                            self.entry['instrument/monochromator/energy'],
                            'Incident Energy')
        self.parameters.add('mod', self.entry['instrument/source/distance'],
                            'Moderator Distance')
        action_buttons = self.action_buttons(('Get Ei', self.get_ei))
        self.set_layout(self.entry_layout, self.parameters.grid(),
                        action_buttons, self.close_buttons(save=True))
        self.set_title('Get Incident Energy')

        self.m1 = self.entry['monitor1']
        self.m2 = self.entry['monitor2']
Exemplo n.º 30
0
    def __init__(self, parent=None):
        super(OrientationDialog, self).__init__(parent)

        self.select_entry(self.choose_entry)

        self.refine = NXRefine(self.entry)
        self.refine.read_parameters()

        self.parameters = GridParameters()
        self.parameters.add('phi_start', self.refine.phi, 'Phi Start (deg)')
        self.parameters.add('phi_step', self.refine.phi_step, 'Phi Step (deg)')
        self.parameters.add('chi', self.refine.chi, 'Chi (deg)')
        self.parameters.add('omega', self.refine.omega, 'Omega (deg)')
        self.parameters.add('polar', self.refine.polar_max,
                            'Max. Polar Angle (deg)')
        self.parameters.add('polar_tolerance', self.refine.polar_tolerance,
                            'Polar Angle Tolerance')
        self.parameters.add('peak_tolerance', self.refine.peak_tolerance,
                            'Peak Angle Tolerance')
        action_buttons = self.action_buttons(
            ('Generate Grains', self.generate_grains),
            ('List Peaks', self.list_peaks))
        self.grain_layout = QtWidgets.QHBoxLayout()
        self.grain_combo = QtWidgets.QComboBox()
        self.grain_combo.setSizeAdjustPolicy(
            QtWidgets.QComboBox.AdjustToContents)
        self.grain_combo.currentIndexChanged.connect(self.set_grain)
        self.grain_textbox = QtWidgets.QLabel()
        self.grain_layout.addWidget(self.grain_combo)
        self.grain_layout.addStretch()
        self.grain_layout.addWidget(self.grain_textbox)
        bottom_layout = QtWidgets.QHBoxLayout()
        self.result_textbox = QtWidgets.QLabel()
        bottom_layout.addWidget(self.result_textbox)
        bottom_layout.addStretch()
        bottom_layout.addWidget(self.close_buttons())
        self.set_layout(self.entry_layout, self.parameters.grid(),
                        action_buttons, bottom_layout)
        self.set_title('Defining Orientation')