def __call__(self, imageset): ''' Override the parameters ''' from dxtbx.imageset import ImageSet from dxtbx.imageset import ImageSweep from dxtbx.model import BeamFactory from dxtbx.model import DetectorFactory from dxtbx.model import GoniometerFactory from dxtbx.model import ScanFactory from copy import deepcopy if self.params.geometry.convert_sweeps_to_stills: imageset = ImageSet(reader=imageset.reader()) if not isinstance(imageset, ImageSweep): if self.params.geometry.convert_stills_to_sweeps: imageset = self.convert_stills_to_sweep(imageset) if isinstance(imageset, ImageSweep): beam = BeamFactory.from_phil( self.params.geometry, imageset.get_beam()) detector = DetectorFactory.from_phil( self.params.geometry, imageset.get_detector(), beam) goniometer = GoniometerFactory.from_phil( self.params.geometry, imageset.get_goniometer()) scan = ScanFactory.from_phil( self.params.geometry, deepcopy(imageset.get_scan())) i0, i1 = scan.get_array_range() j0, j1 = imageset.get_scan().get_array_range() imageset.set_beam(beam) imageset.set_detector(detector) imageset.set_goniometer(goniometer) imageset.set_scan(scan) else: for i in range(len(imageset)): beam = BeamFactory.from_phil( self.params.geometry, imageset.get_beam(i)) detector = DetectorFactory.from_phil( self.params.geometry, imageset.get_detector(i), beam) goniometer = GoniometerFactory.from_phil( self.params.geometry, imageset.get_goniometer(i)) scan = ScanFactory.from_phil( self.params.geometry, imageset.get_scan(i)) imageset.set_beam(beam, i) imageset.set_detector(detector, i) imageset.set_goniometer(goniometer, i) imageset.set_scan(scan, i) return imageset
def tst_null_reader_imageset(self): from dxtbx.imageset import NullReader, ImageSet from dxtbx.model import Beam, Detector paths = ['hello_world.cbf'] # Create the null reader reader = NullReader(paths) # Create the imageset imageset = ImageSet(reader) # Try to get an item try: imageset[0] assert(False) except Exception: print 'OK' # Try to slice the imageset imageset2 = imageset[0:1] print 'OK' # Try some functions which should work assert(len(imageset) == 1) assert(imageset == imageset) assert(imageset.indices() == [0]) assert(imageset.is_valid()) print 'OK' # Try to get models (expect failure) try: imageset.get_image_models(0) assert(False) except Exception: print 'OK' # Get the image paths assert(imageset.paths() == paths) assert(imageset.get_path(0) == paths[0]) print 'OK' imageset.set_beam(Beam(), 0) imageset.set_detector(Detector(), 0) assert(isinstance(imageset.get_beam(0), Beam)) assert(isinstance(imageset.get_detector(0), Detector)) print 'OK'