Exemple #1
0
 def write_parameters(self):
     if self.entry.nxfilemode == 'r':
         display_message("NeXus file opened as readonly")
         return
     elif ('nxrefine' in self.entry
           or 'orientation_matrix' in self.entry['instrument/detector']):
         if not self.confirm_action('Overwrite existing refinement?'):
             return
     self.transfer_parameters()
     polar_angles, azimuthal_angles = self.refine.calculate_angles(
         self.refine.xp, self.refine.yp)
     self.refine.write_angles(polar_angles, azimuthal_angles)
     self.refine.write_parameters()
     reduce = NXReduce(self.entry)
     reduce.record_start('nxrefine')
     reduce.record('nxrefine', fit_report='\n'.join(self.fit_report))
     reduce.logger.info('Orientation refined in NeXpy')
     reduce.record_end('nxrefine')
     root = self.entry.nxroot
     entries = [
         entry for entry in root.entries
         if entry != 'entry' and entry != self.entry.nxname
     ]
     if entries and self.confirm_action(
             f'Copy orientation to other entries? ({", ".join(entries)})',
             answer='yes'):
         om = self.entry['instrument/detector/orientation_matrix']
         for entry in entries:
             root[entry]['instrument/detector/orientation_matrix'] = om
     self.define_data()
     if len(self.paths) > 0:
         self.update_scaling()
Exemple #2
0
 def choose_root(self):
     self.checkbox['overwrite'].setVisible(False)
     for entry in [e for e in self.root if e != 'entry']:
         reduce = NXReduce(self.root[entry])
         if not reduce.not_complete('nxcopy'):
             self.checkbox['overwrite'].setVisible(True)
     self._selected = True
Exemple #3
0
 def choose_entry(self):
     if self.layout.count() == 2:
         self.insert_layout(1, self.parameters.grid_layout)
         self.insert_layout(2, self.prepare_layout)
     self.reduce = NXReduce(self.entry)
     self.parameters['first'].value = self.reduce.first
     self.parameters['last'].value = self.reduce.last
Exemple #4
0
def main():

    parser = argparse.ArgumentParser(
        description="Link data and metadata to NeXus file")
    parser.add_argument('-d', '--directory', required=True,
                        help='scan directory')
    parser.add_argument('-e', '--entries', nargs='+',
                        help='names of entries to be searched')
    parser.add_argument('-o', '--overwrite', action='store_true',
                        help='overwrite existing peaks')
    parser.add_argument('-q', '--queue', action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    if args.entries:
        entries = args.entries
    else:
        entries = NXMultiReduce(args.directory).entries

    for entry in entries:
        reduce = NXReduce(entry, args.directory, link=True,
                          overwrite=args.overwrite)
        if args.queue:
            reduce.queue('nxlink', args)
        else:
            reduce.nxlink()
Exemple #5
0
 def choose_entry(self):
     self.reduce = NXReduce(self.entry)
     self.maximum = self.reduce.maximum
     if self.reduce.first:
         self.parameters['first'].value = self.reduce.first
     if self.reduce.last:
         self.parameters['last'].value = self.reduce.last
Exemple #6
0
    def sum_scans(self):
        server = NXServer(self.experiment_directory)
        if not server.is_running():
            raise NeXusError('Server not running')
        scan_filter = ';;'.join(("NeXus Files (*.nxs)", "Any Files (*.* *)"))
        preferred_name = os.path.join(self.sample_directory,
                                      self.sample + '_' + 'sum.nxs')
        scan_file = getSaveFileName(self, 'Choose Summed File Name',
                                    preferred_name, scan_filter)
        if not scan_file:
            return
        prefix = self.sample + '_'
        if not os.path.basename(scan_file).startswith(prefix):
            raise NeXusError("Summed file name must start with '%s'" % prefix)

        self.scan_label = self.get_label(scan_file)
        scan_dir = os.path.join(self.sample_directory, self.scan_label)
        scan_file = os.path.join(self.sample_directory,
                                 self.sample + '_' + self.scan_label + '.nxs')
        copy_file = os.path.join(self.sample_directory, self.scan_files[0])
        if os.path.exists(scan_dir):
            if not confirm_action(
                    "New scan directory already exists. Overwrite?"):
                return
        else:
            os.mkdir(scan_dir)
        copyfile(copy_file, scan_file)
        self.clean_scan(scan_file)
        self.treeview.tree.load(scan_file, 'rw')
        reduce = NXReduce(directory=scan_dir)
        for entry in reduce.entries:
            server.add_task('nxsum -d %s -e %s -o -s %s' %
                            (scan_dir, entry, self.scan_list))
Exemple #7
0
def main():

    parser = argparse.ArgumentParser(description="Perform CCTW transform")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')
    parser.add_argument('-e',
                        '--entries',
                        default=['f1', 'f2', 'f3'],
                        nargs='+',
                        help='names of entries to be processed')
    parser.add_argument('-m',
                        '--mask',
                        action='store_true',
                        help='use 3D mask')
    parser.add_argument('-qh', nargs=3, help='Qh - min, step, max')
    parser.add_argument('-qk', nargs=3, help='Qk - min, step, max')
    parser.add_argument('-ql', nargs=3, help='Ql - min, step, max')
    parser.add_argument('-r',
                        '--radius',
                        default=200,
                        help='radius of mask around each peak (in pixels)')
    parser.add_argument('-w',
                        '--width',
                        default=3,
                        help='width of masked region (in frames)')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing transforms')
    parser.add_argument('-q',
                        '--queue',
                        action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    for entry in args.entries:
        reduce = NXReduce(entry,
                          args.directory,
                          transform=True,
                          mask=args.mask,
                          Qh=args.qh,
                          Qk=args.qk,
                          Ql=args.ql,
                          radius=args.radius,
                          width=args.width,
                          overwrite=args.overwrite)
        if args.mask:
            if args.queue:
                reduce.queue()
            else:
                reduce.nxmasked_transform()
        else:
            if args.queue:
                reduce.queue()
            else:
                reduce.nxtransform()
Exemple #8
0
def main():

    parser = argparse.ArgumentParser(
        description="Find peaks within the NeXus data")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')
    parser.add_argument('-e',
                        '--entries',
                        nargs='+',
                        help='names of entries to be searched')
    parser.add_argument('-t', '--threshold', type=float, help='peak threshold')
    parser.add_argument('-f', '--first', type=int, help='first frame')
    parser.add_argument('-l', '--last', type=int, help='last frame')
    parser.add_argument('-P',
                        '--pixels',
                        type=int,
                        help='minimum pixels in a peak')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing peaks')
    parser.add_argument('-p',
                        '--parent',
                        default=None,
                        help='The parent .nxs file to use')
    parser.add_argument('-m',
                        '--monitor',
                        action='store_true',
                        help='monitor progress in the command line')
    parser.add_argument('-q',
                        '--queue',
                        action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    if args.entries:
        entries = args.entries
    else:
        entries = NXMultiReduce(args.directory).entries

    for entry in entries:
        reduce = NXReduce(entry,
                          args.directory,
                          find=True,
                          threshold=args.threshold,
                          first=args.first,
                          last=args.last,
                          min_pixels=args.pixels,
                          overwrite=args.overwrite,
                          monitor_progress=args.monitor)
        if args.queue:
            reduce.queue('nxfind', args)
        else:
            reduce.nxfind()
 def make_parent(self):
     reduce = NXReduce(directory=self.get_scan(self.get_filename()),
                       overwrite=True)
     reduce.make_parent()
     nxdb.update_file(reduce.wrapper_file)
     if self.parent_file:
         nxdb.update_file(self.parent_file)
     self.parent_file = reduce.wrapper_file
     self.filename.setText(os.path.basename(self.parent_file))
     self.update()
Exemple #10
0
def main():

    parser = argparse.ArgumentParser(description="Perform CCTW transform")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')
    parser.add_argument('-e',
                        '--entries',
                        nargs='+',
                        help='names of entries to be processed')
    parser.add_argument('-qh', nargs=3, help='Qh - min, step, max')
    parser.add_argument('-qk', nargs=3, help='Qk - min, step, max')
    parser.add_argument('-ql', nargs=3, help='Ql - min, step, max')
    parser.add_argument('-R',
                        '--regular',
                        action='store_true',
                        help='perform regular transform')
    parser.add_argument('-M',
                        '--mask',
                        action='store_true',
                        help='perform transform with 3D mask')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing transforms')
    parser.add_argument('-q',
                        '--queue',
                        action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    if args.entries:
        entries = args.entries
    else:
        entries = NXMultiReduce(args.directory).entries

    for entry in entries:
        reduce = NXReduce(entry,
                          args.directory,
                          transform=True,
                          Qh=args.qh,
                          Qk=args.qk,
                          Ql=args.ql,
                          regular=args.regular,
                          mask=args.mask,
                          overwrite=args.overwrite)
        if args.queue:
            reduce.queue('nxtransform', args)
        else:
            if reduce.regular:
                reduce.nxtransform()
            if reduce.mask:
                reduce.nxtransform(mask=True)
Exemple #11
0
 def accept(self):
     if not self._selected:
         raise NeXusError("Need to select output file before saving")
     elif self.root.nxfilemode == 'r':
         raise NeXusError("NeXus file is locked")
     if self.overwrite:
         for entry in [e for e in self.root if e != 'entry']:
             reduce = NXReduce(self.root[entry], copy=True, overwrite=True)
             reduce.nxcopy()
     else:
         raise NeXusError("Much check 'overwrite' to save parameters")
     super(CopyDialog, self).accept()
 def add_tasks(self):
     if self.grid is None:
         raise NeXusError('Need to update status')
     for scan in [s for s in self.enabled_scans if self.any_selected(s)]:
         for i, entry in enumerate(self.enabled_scans[scan]['entries']):
             if self.only_combined(scan):
                 if i == 0:
                     reduce = NXMultiReduce(scan)
                     reduce.regular = reduce.mask = False
                 else:
                     break
             else:
                 reduce = NXReduce(entry, scan)
                 reduce.regular = reduce.mask = False
                 if self.selected(scan, 'link'):
                     reduce.link = True
                 if self.selected(scan, 'copy'):
                     reduce.copy = True
                 if self.selected(scan, 'max'):
                     reduce.maxcount = True
                 if self.selected(scan, 'find'):
                     reduce.find = True
                 if self.selected(scan, 'refine'):
                     reduce.refine = True
                 if self.selected(scan, 'prepare'):
                     reduce.prepare = True
                 if self.selected(scan, 'transform'):
                     reduce.transform = True
                     reduce.regular = True
                 if self.selected(scan, 'masked_transform'):
                     reduce.transform = True
                     reduce.mask = True
             if self.selected(scan, 'combine'):
                 reduce.combine = True
                 reduce.regular = True
             if self.selected(scan, 'masked_combine'):
                 reduce.combine = True
                 reduce.mask = True
             if self.selected(scan, 'pdf'):
                 reduce.pdf = True
                 reduce.regular = True
             if self.selected(scan, 'masked_pdf'):
                 reduce.pdf = True
                 reduce.mask = True
             if self.selected(scan, 'overwrite'):
                 reduce.overwrite = True
             reduce.queue('nxreduce')
             time.sleep(0.5)
         for task in self.tasks:
             if self.selected(scan, task):
                 self.queued(scan, task)
     self.deselect_all()
Exemple #13
0
 def find_peaks(self):
     self.check_lock(self.reduce.data_file)
     self.start_thread()
     self.reduce = NXReduce(self.entry, threshold=self.threshold, 
                            first=self.first, last=self.last,
                            find=True, overwrite=True, gui=True)
     self.reduce.moveToThread(self.thread)
     self.reduce.start.connect(self.start_progress)
     self.reduce.update.connect(self.update_progress)
     self.reduce.result.connect(self.get_peaks)
     self.reduce.stop.connect(self.stop)
     self.thread.started.connect(self.reduce.nxfind)
     self.thread.start(QtCore.QThread.LowestPriority)
Exemple #14
0
def main():

    parser = argparse.ArgumentParser(
        description="Set scan file as parent by creating a symbolic link")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')

    args = parser.parse_args()

    reduce = NXReduce(directory=args.directory)
    reduce.make_parent()
Exemple #15
0
 def choose_entry(self):
     self.reduce = NXReduce(self.entry)
     if self.reduce.first:
         self.parameters['first'].value = self.reduce.first
     if self.reduce.last:
         self.parameters['last'].value = self.reduce.last
     else:
         try:
             self.parameters['last'].value = len(self.entry.data.nxaxes[0])
         except Exception:
             pass
     if self.reduce.threshold:
         self.parameters['threshold'].value = self.reduce.threshold
 def add_tasks(self):
     if self.grid is None:
         raise NeXusError('Need to update status')
     for scan in self.enabled_scans:
         for entry in self.entries:
             reduce = NXReduce(entry, scan)
             if self.selected(scan, 'link'):
                 reduce.link = True
             if self.selected(scan, 'max'):
                 reduce.maxcount = True
             if self.selected(scan, 'find'):
                 reduce.find = True
             if self.selected(scan, 'copy'):
                 reduce.copy = True
             if self.selected(scan, 'refine'):
                 reduce.refine = True
             if self.selected(scan, 'transform'):
                 reduce.transform = True
             if self.selected(scan, 'masked_transform'):
                 reduce.mask = True
             if self.selected(scan, 'overwrite'):
                 reduce.overwrite = True
             reduce.queue()
         if self.selected(scan, 'link'):
             self.queued(scan, 'link')
         if self.selected(scan, 'max'):
             self.queued(scan, 'max')
         if self.selected(scan, 'find'):
             self.queued(scan, 'find')
         if self.selected(scan, 'copy'):
             self.queued(scan, 'copy')
         if self.selected(scan, 'refine'):
             self.queued(scan, 'refine')
         if self.selected(scan, 'transform'):
             self.queued(scan, 'transform')
         if self.selected(scan, 'masked_transform'):
             self.queued(scan, 'masked_transform')
         if self.selected(scan, 'combine'):
             reduce = NXMultiReduce(scan, self.entries)
             if self.selected(scan, 'overwrite'):
                 reduce.overwrite = True
             reduce.queue()
             self.queued(scan, 'combine')
         if self.selected(scan, 'masked_combine'):
             reduce = NXMultiReduce(scan, self.entries, mask=True)
             if self.selected(scan, 'overwrite'):
                 reduce.overwrite = True
             reduce.queue()
             self.queued(scan, 'masked_combine')
         self.scans[scan]
     self.deselect_all()
 def update_parameters(self):
     reduce = NXReduce(self.entries[0])
     if reduce.first:
         self.parameters['first'].value = reduce.first
     if reduce.last:
         self.parameters['last'].value = reduce.last
     if reduce.threshold:
         self.parameters['threshold'].value = reduce.threshold
     if reduce.radius:
         self.parameters['radius'].value = reduce.radius
     if reduce.width:
         self.parameters['width'].value = reduce.width        
     if reduce.norm:
         self.parameters['norm'].value = reduce.norm
 def calculate_mask(self):
     self.check_lock(self.reduce.wrapper_file)
     self.thread = QtCore.QThread()
     self.reduce = NXReduce(self.entry,
                            radius=self.radius,
                            width=self.width,
                            mask=True,
                            overwrite=True,
                            gui=True)
     self.reduce.moveToThread(self.thread)
     self.reduce.start.connect(self.start_progress)
     self.reduce.update.connect(self.update_progress)
     self.reduce.result.connect(self.calculate_mask)
     self.reduce.stop.connect(self.stop)
     self.thread.started.connect(self.reduce.nxfind)
     self.thread.start(QtCore.QThread.LowestPriority)
Exemple #19
0
 def write_parameters(self):
     self.transfer_parameters()
     polar_angles, azimuthal_angles = self.refine.calculate_angles(
         self.refine.xp, self.refine.yp)
     self.refine.write_angles(polar_angles, azimuthal_angles)
     self.refine.write_parameters()
     reduce = NXReduce(self.entry)
     reduce.record('nxrefine', fit_report='\n'.join(self.fit_report))
     root = self.entry.nxroot
     entries = [entry for entry in root.entries if entry != 'entry']
     if entries and self.confirm_action(
             'Copy orientation to other entries? (%s)' %
         (', '.join(entries))):
         om = self.entry['instrument/detector/orientation_matrix']
         for entry in entries:
             root[entry]['instrument/detector/orientation_matrix'] = om
Exemple #20
0
def main():

    parser = argparse.ArgumentParser(
        description="Refine lattice parameters and goniometer angles")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')
    parser.add_argument('-e',
                        '--entries',
                        nargs='+',
                        help='names of entries to be processed')
    parser.add_argument('-l',
                        '--lattice',
                        action='store_true',
                        help='refine lattice parameters')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing maximum')
    parser.add_argument('-q',
                        '--queue',
                        action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    if args.entries:
        entries = args.entries
    else:
        entries = NXMultiReduce(args.directory).entries

    for i, entry in enumerate(entries):
        if i == 0:
            lattice = args.lattice
        else:
            lattice = False
        reduce = NXReduce(entry,
                          args.directory,
                          refine=True,
                          lattice=lattice,
                          overwrite=args.overwrite)
        if args.queue:
            reduce.queue('nxrefine', args)
        else:
            reduce.nxrefine()
Exemple #21
0
def main():

    parser = argparse.ArgumentParser(
        description="Find peaks within the NeXus data")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')
    parser.add_argument('-e',
                        '--entries',
                        default=['f1', 'f2', 'f3'],
                        nargs='+',
                        help='names of entries to be searched')
    parser.add_argument('-t',
                        '--threshold',
                        type=float,
                        help='peak threshold - defaults to maximum counts/10')
    parser.add_argument('-f', '--first', type=int, help='first frame')
    parser.add_argument('-l', '--last', type=int, help='last frame')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing peaks')
    parser.add_argument('-p',
                        '--parent',
                        default=None,
                        help='The parent .nxs file to use')
    parser.add_argument('-q',
                        '--queue',
                        action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    for entry in args.entries:
        reduce = NXReduce(entry,
                          args.directory,
                          find=True,
                          threshold=args.threshold,
                          first=args.first,
                          last=args.last,
                          overwrite=args.overwrite)
        if args.queue:
            reduce.queue()
        else:
            reduce.nxfind()
Exemple #22
0
 def find_maximum(self):
     self.check_lock(self.reduce.data_file)
     self.start_thread()
     self.reduce = NXReduce(self.entry,
                            first=self.first,
                            last=self.last,
                            maxcount=True,
                            overwrite=True,
                            gui=True)
     self.reduce.moveToThread(self.thread)
     self.reduce.start.connect(self.start_progress)
     self.reduce.update.connect(self.update_progress)
     self.reduce.result.connect(self.get_maximum)
     self.reduce.stop.connect(self.stop)
     self.thread.started.connect(self.reduce.nxmax)
     self.thread.finished.connect(self.stop)
     self.thread.start(QtCore.QThread.LowestPriority)
Exemple #23
0
def main():

    parser = argparse.ArgumentParser(
        description="Find maximum counts of the signal in the specified path")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')
    parser.add_argument('-e',
                        '--entries',
                        nargs='+',
                        help='names of entries to be processed')
    parser.add_argument('-f', '--first', type=int, help='first frame')
    parser.add_argument('-l', '--last', type=int, help='last frame')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing maximum')
    parser.add_argument('-m',
                        '--monitor',
                        action='store_true',
                        help='monitor progress in the command line')
    parser.add_argument('-q',
                        '--queue',
                        action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    if args.entries:
        entries = args.entries
    else:
        entries = NXMultiReduce(args.directory).entries

    for entry in entries:
        reduce = NXReduce(entry,
                          args.directory,
                          maxcount=True,
                          first=args.first,
                          last=args.last,
                          overwrite=args.overwrite,
                          monitor_progress=args.monitor)
        if args.queue:
            reduce.queue('nxmax', args)
        else:
            reduce.nxmax()
Exemple #24
0
 def choose_entry(self):
     if self.layout.count() == 2:
         self.insert_layout(1, self.parameters.grid_layout)
         self.insert_layout(2, self.find_layout)
     self.reduce = NXReduce(self.entry)
     self.refine = NXRefine(self.entry)
     self.refine.polar_max = self.refine.two_theta_max()
     if self.reduce.first is not None:
         self.parameters['first'].value = self.reduce.first
     if self.reduce.last:
         self.parameters['last'].value = self.reduce.last
     else:
         try:
             self.parameters['last'].value = self.reduce.shape[0]
         except Exception:
             pass
     self.parameters['threshold'].value = self.reduce.threshold
Exemple #25
0
def main():

    parser = argparse.ArgumentParser(
        description="Find peaks within the NeXus data")
    parser.add_argument('-d', '--directory', required=True,
                        help='directory containing summed files')
    parser.add_argument('-e', '--entries', default=['f1', 'f2', 'f3'],
        nargs='+', help='names of entries to be summed')
    parser.add_argument('-s', '--scans', nargs='+', required=True,
                        help='list of scan directories to be summed')
    parser.add_argument('-o', '--overwrite', action='store_true',
                        help='overwrite existing peaks')

    args = parser.parse_args()
    
    for entry in args.entries:
        reduce = NXReduce(entry, args.directory, overwrite=args.overwrite)
        reduce.nxsum(args.scans)
Exemple #26
0
 def find_peaks(self):
     if is_file_locked(self.reduce.data_file):
         return
     self.start_thread()
     self.reduce = NXReduce(self.entry,
                            threshold=self.threshold,
                            first=self.first,
                            last=self.last,
                            min_pixels=self.min_pixels,
                            find=True,
                            overwrite=True,
                            gui=True)
     self.reduce.moveToThread(self.thread)
     self.reduce.start.connect(self.start_progress)
     self.reduce.update.connect(self.update_progress)
     self.reduce.result.connect(self.get_peaks)
     self.reduce.stop.connect(self.stop)
     self.thread.started.connect(self.reduce.nxfind)
     self.thread.start()
Exemple #27
0
 def prepare_mask(self):
     if is_file_locked(self.reduce.data_file):
         return
     self.start_thread()
     self.reduce = NXReduce(self.entry,
                            prepare=True,
                            first=self.first,
                            last=self.last,
                            overwrite=True,
                            gui=True)
     self.reduce.mask_parameters['threshold_1'] = self.threshold1
     self.reduce.mask_parameters['threshold_1'] = self.threshold1
     self.reduce.mask_parameters['horizontal_size_1'] = self.horizontal1
     self.reduce.mask_parameters['threshold_2'] = self.threshold2
     self.reduce.mask_parameters['horizontal_size_2'] = self.horizontal2
     self.reduce.moveToThread(self.thread)
     self.reduce.start.connect(self.start_progress)
     self.reduce.update.connect(self.update_progress)
     self.reduce.result.connect(self.get_mask)
     self.reduce.stop.connect(self.stop)
     self.thread.started.connect(self.reduce.nxprepare)
     self.thread.start()
Exemple #28
0
def main():

    parser = argparse.ArgumentParser(
        description="Choose parameters for NXReduce operations")
    parser.add_argument('-d', '--directory', required=True,
                        help='scan directory')
    parser.add_argument('-t', '--threshold', type=float,
                        help='peak threshold')
    parser.add_argument('-f', '--first', type=int, help='first frame')
    parser.add_argument('-l', '--last', type=int, help='last frame')
    parser.add_argument('-m', '--monitor',
                        help='monitor to use in normalizations')
    parser.add_argument('-n', '--norm', type=float,
                        help='normalization to monitor')
    parser.add_argument('-r', '--radius', type=float,
                        help='radius of punched holes in Å-1')
    parser.add_argument('-Q', '--Qmax', type=float,
                        help='maximum Q in Å-1 used in PDF tapers')
    parser.add_argument('-p', '--print', action='store_true',
                        help='print current parameters')

    args = parser.parse_args()

    reduce = NXReduce(directory=args.directory)
    if args.print:
        print('Current NXReduce parameters\n---------------------------')
        print(f"Threshold = {reduce.threshold:g}")
        print(f"First Frame = {reduce.first}")
        print(f"Last Frame = {reduce.last}")
        print(f"Monitor = {reduce.monitor}")
        print(f"Normalization = {reduce.norm:g}")
        print(f"Radius = {reduce.radius:g}")
        print(f"Qmax = {reduce.Qmax:g}")
    else:
        reduce.write_parameters(threshold=args.threshold,
                                first=args.first, last=args.last,
                                monitor=args.monitor, norm=args.norm,
                                radius=args.radius, qmax=args.Qmax)
Exemple #29
0
def main():

    parser = argparse.ArgumentParser(description="Sum raw data files")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='directory containing summed files')
    parser.add_argument('-c',
                        '--create',
                        action='store_true',
                        help='create the sum file and directory')
    parser.add_argument('-e',
                        '--entries',
                        nargs='+',
                        help='names of entries to be summed')
    parser.add_argument('-s',
                        '--scans',
                        nargs='+',
                        required=True,
                        help='list of scan directories to be summed')
    parser.add_argument('-u',
                        '--update',
                        action='store_true',
                        help='update links to existing summed files')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing summed files')

    args = parser.parse_args()

    if args.create:
        reduce = NXMultiReduce(args.directory, overwrite=True)
        reduce.nxsum(args.scans)
    else:
        for entry in args.entries:
            reduce = NXReduce(entry, args.directory, overwrite=args.overwrite)
            reduce.nxsum(args.scans, update=args.update)
Exemple #30
0
def main():

    parser = argparse.ArgumentParser(
        description="Copy instrument parameters from a parent file")
    parser.add_argument('-d',
                        '--directory',
                        required=True,
                        help='scan directory')
    parser.add_argument('-e',
                        '--entries',
                        default=['f1', 'f2', 'f3'],
                        nargs='+',
                        help='names of entries to be searched')
    parser.add_argument('-p',
                        '--parent',
                        help='file name of file to copy from')
    parser.add_argument('-o',
                        '--overwrite',
                        action='store_true',
                        help='overwrite existing peaks')
    parser.add_argument('-q',
                        '--queue',
                        action='store_true',
                        help='add to server task queue')

    args = parser.parse_args()

    for entry in args.entries:
        reduce = NXReduce(entry,
                          args.directory,
                          parent=args.parent,
                          copy=True,
                          overwrite=args.overwrite)
        if args.queue:
            reduce.queue()
        else:
            reduce.nxcopy()