def dxtbx_spotfinder_factory(phil_params): from dxtbx.format.Registry import Registry reader = Registry.find(phil_params.distl.image[0]) from spotfinder.dxtbx_toolbox.practical_heuristics import heuristics_base Spotfinder = heuristics_base(phil_params) return Spotfinder
def dxtbx_spotfinder_factory(phil_params): import dxtbx.format.Registry reader = dxtbx.format.Registry.get_format_class_for_file( phil_params.distl.image[0]) from spotfinder.dxtbx_toolbox.practical_heuristics import heuristics_base Spotfinder = heuristics_base(phil_params) return Spotfinder
def spotfinder_factory(absrundir,frames,phil_params): local_frames=frames.frames() A = frames.images[0] #A.readHeader()--deprecate this because it squashes any overrides # from dataset_preferences processed in imagefiles.py pd = {'directory':frames.filenames.FN[0].cwd, 'template': frames.filenames.FN[0].template, 'identifier':frames.filenames.FN[0].fileroot, 'vendortype':A.vendortype, 'binning':'%d'%A.bin, 'distance':'%f'%A.distance, 'wavelength':'%f'%A.wavelength, 'deltaphi':'%f'%A.deltaphi, } #temp values for getting coordinate convention pd['pixel_size']='%f'%A.pixel_size pd['size1']='%f'%A.size1 pd['size2']='%f'%A.size2 pd['ybeam'] = '%f'%A.beamy pd['xbeam'] = '%f'%A.beamx try: pd['twotheta'] = '%f'%A.twotheta except Exception: pd['twotheta'] = '0.0' from spotfinder.applications.practical_heuristics import heuristics_base Spotfinder = heuristics_base(pd,phil_params) from libtbx import easy_mp def run_spotfinder(args): assert len(args) == 2 framenumber, frames = args try: assert Spotfinder.images.has_key(framenumber) except Exception: Spotfinder.register_frames(framenumber,frames) if phil_params.spotfinder_verbose: Spotfinder.show() return Spotfinder iterable = [(framenumber, frames) for framenumber in local_frames] results = easy_mp.parallel_map( func=run_spotfinder, iterable=iterable, processes=phil_params.distl.nproc, method="multiprocessing", preserve_order=True ) for result in results: Spotfinder.images.update(result.images) return Spotfinder
def get_spotfinder(self, distl_params ): #following heuristics_base.register_frames() example #application-specific adjustments to parameters #XXX this should probably be a deep copy of parameters. if distl_params.distl.res.inner != None: distl_params.distl_lowres_limit = distl_params.distl.res.inner if distl_params.distl.res.outer != None: distl_params.force_method2_resolution_limit = distl_params.distl.res.outer distl_params.distl_highres_limit = distl_params.distl.res.outer distl_params.distl_force_binning = False distl_params.distl_permit_binning = False distl_params.wedgelimit = 1 distl_params.spotfinder_header_tests = False #unusual location for min spot area tests... from iotbx.detectors.context.config_detector import beam_center_convention_from_image_object beam_center_convention_from_image_object(self, distl_params) # end special min spot area treatment from spotfinder.applications.practical_heuristics import heuristics_base from spotfinder.diffraction.imagefiles import file_names class empty: pass E = empty() E.argv = ["Empty", self.filename] names = file_names(E) this_frame = names.frames()[0] process_dictionary = dict( twotheta="%f" % self.twotheta, ybeam="%f" % self.beamy, xbeam="%f" % self.beamx, distance="%f" % self.distance, wavelength="%f" % self.wavelength, template=[ item.template for item in names.FN if item.number == this_frame ][0], ) Spotfinder = heuristics_base(process_dictionary, distl_params) Spotfinder.images[this_frame] = Spotfinder.oneImage( this_frame, Spotfinder.pd, self) Spotfinder.determine_maxcell(this_frame, Spotfinder.pd) Spotfinder.images[this_frame]['spotoutput']['relpath'] = self.filename from spotfinder.applications.stats_distl import pretty_image_stats pretty_image_stats(Spotfinder, this_frame) return Spotfinder, this_frame
def get_spotfinder(self,distl_params): #following heuristics_base.register_frames() example #application-specific adjustments to parameters #XXX this should probably be a deep copy of parameters. if distl_params.distl.res.inner!=None: distl_params.distl_lowres_limit = distl_params.distl.res.inner if distl_params.distl.res.outer!=None: distl_params.force_method2_resolution_limit = distl_params.distl.res.outer distl_params.distl_highres_limit = distl_params.distl.res.outer distl_params.distl_force_binning = False distl_params.distl_permit_binning = False distl_params.wedgelimit = 1 distl_params.spotfinder_header_tests = False #unusual location for min spot area tests... from iotbx.detectors.context.config_detector import beam_center_convention_from_image_object beam_center_convention_from_image_object(self,distl_params) # end special min spot area treatment from spotfinder.applications.practical_heuristics import heuristics_base from spotfinder.diffraction.imagefiles import file_names class empty:pass E = empty() E.argv = ["Empty",self.filename] names = file_names(E) this_frame = names.frames()[0] process_dictionary = dict(twotheta = "%f"%self.twotheta, ybeam = "%f"%self.beamy, xbeam = "%f"%self.beamx, distance = "%f"%self.distance, wavelength = "%f"%self.wavelength, template = [item.template for item in names.FN if item.number==this_frame][0], ) Spotfinder = heuristics_base(process_dictionary,distl_params) Spotfinder.images[this_frame] = Spotfinder.oneImage(this_frame, Spotfinder.pd, self) Spotfinder.determine_maxcell(this_frame,Spotfinder.pd) Spotfinder.images[this_frame]['spotoutput']['relpath']=self.filename from spotfinder.applications.stats_distl import pretty_image_stats pretty_image_stats(Spotfinder,this_frame) return Spotfinder,this_frame
def spotfinder_factory(absrundir, frames, phil_params): local_frames = frames.frames() A = frames.images[0] #A.readHeader()--deprecate this because it squashes any overrides # from dataset_preferences processed in imagefiles.py pd = { 'directory': frames.filenames.FN[0].cwd, 'template': frames.filenames.FN[0].template, 'identifier': frames.filenames.FN[0].fileroot, 'vendortype': A.vendortype, 'binning': '%d' % A.bin, 'distance': '%f' % A.distance, 'wavelength': '%f' % A.wavelength, 'deltaphi': '%f' % A.deltaphi, } #temp values for getting coordinate convention pd['pixel_size'] = '%f' % A.pixel_size pd['size1'] = '%f' % A.size1 pd['size2'] = '%f' % A.size2 pd['ybeam'] = '%f' % A.beamy pd['xbeam'] = '%f' % A.beamx try: pd['twotheta'] = '%f' % A.twotheta except Exception: pd['twotheta'] = '0.0' from spotfinder.applications.practical_heuristics import heuristics_base Spotfinder = heuristics_base(pd, phil_params) for framenumber in local_frames: try: assert framenumber in Spotfinder.images except Exception: Spotfinder.register_frames(framenumber, frames) if phil_params.spotfinder_verbose: Spotfinder.show() return Spotfinder
def spotfinder_factory(absrundir,frames,phil_params): local_frames=frames.frames() A = frames.images[0] #A.readHeader()--deprecate this because it squashes any overrides # from dataset_preferences processed in imagefiles.py pd = {'directory':frames.filenames.FN[0].cwd, 'template': frames.filenames.FN[0].template, 'identifier':frames.filenames.FN[0].fileroot, 'vendortype':A.vendortype, 'binning':'%d'%A.bin, 'distance':'%f'%A.distance, 'wavelength':'%f'%A.wavelength, 'deltaphi':'%f'%A.deltaphi, } #temp values for getting coordinate convention pd['pixel_size']='%f'%A.pixel_size pd['size1']='%f'%A.size1 pd['size2']='%f'%A.size2 pd['ybeam'] = '%f'%A.beamy pd['xbeam'] = '%f'%A.beamx try: pd['twotheta'] = '%f'%A.twotheta except Exception: pd['twotheta'] = '0.0' from spotfinder.applications.practical_heuristics import heuristics_base Spotfinder = heuristics_base(pd,phil_params) for framenumber in local_frames: try: assert Spotfinder.images.has_key(framenumber) except Exception: Spotfinder.register_frames(framenumber,frames) if phil_params.spotfinder_verbose: Spotfinder.show() return Spotfinder