def test_all(timer=False): for file in generate_paths(): from iotbx.detectors.pilatus_minicbf import PilatusImage if timer: print os.path.basename(file) P = PilatusImage(file) if timer: G = Profiler("cbflib no-opt read") P.read(algorithm="cbflib") read1 = P.linearintdata if timer: G = Profiler("cbflib optimized read") P.linearintdata = None #won't read again without resetting first P.read(algorithm="cbflib_optimized") read2 = P.linearintdata if timer: G = Profiler("buffer-based read") P.linearintdata = None #won't read again without resetting first P.read(algorithm="buffer_based") read3 = P.linearintdata if timer: del G expected_image_size = {"Pilatus-6M":(2527,2463), "Pilatus-2M":(1679,1475), "Pilatus-300K":(619,487)}[P.vendortype] assert read1.accessor().focus() == read2.accessor().focus() == expected_image_size from cbflib_adaptbx import assert_equal #print "Equality of arrays from two decompress methods", assert_equal(read1,read2), "\n" assert assert_equal(read1,read2) assert assert_equal(read1,read3)
def test_all(dirpath, timer=False): for file in generate_paths(dirpath): from iotbx.detectors.pilatus_minicbf import PilatusImage if timer: print(os.path.basename(file)) P = PilatusImage(file) if timer: G = Profiler("cbflib no-opt read") P.read(algorithm="cbflib") read1 = P.linearintdata if timer: G = Profiler("cbflib optimized read") P.linearintdata = None #won't read again without resetting first P.read(algorithm="cbflib_optimized") read2 = P.linearintdata if timer: G = Profiler("buffer-based read") P.linearintdata = None #won't read again without resetting first P.read(algorithm="buffer_based") read3 = P.linearintdata if timer: del G expected_image_size = { "Pilatus-6M": (2527, 2463), "Pilatus-2M": (1679, 1475), "Pilatus-300K": (619, 487) }[P.vendortype] assert read1.accessor().focus() == read2.accessor().focus( ) == expected_image_size from cbflib_adaptbx import assert_equal #print "Equality of arrays from two decompress methods", assert_equal(read1,read2), "\n" assert assert_equal(read1, read2) assert assert_equal(read1, read3)
linearintdata = flex.int( self.object.linearintdata[start_index:stop_index]) linearintdata.reshape(flex.grid((195, 2463))) del self.object #once the data are copied, no need to keep the original return linearintdata def read(self): if self.already_read_data: return self.bin_safe_set_data(self.slice_callback()) self.already_read_data = True if __name__ == '__main__': import sys full_path_to_file = sys.argv[1] a = PilatusImage(testing_file) a.read() print a print a.parameters print a.rawdata, len(a.rawdata), a.size1 * a.size2 for dataitem in [ 'bin', 'filename', 'header', 'headerlines', 'linearintdata', 'parameters', 'vendortype' ]: print dataitem, exec("print a.%s" % dataitem) print pilatus_slice_from_object_and_slicenumber(a, 5) P = pilatus_slice_from_file_url(url="file://%s?slice=5" % full_path_to_file)
return linearintdata def slice_callback_with_object_data(self): self.object.read() start_index = 2463*((195+17)*self.sliceindex) stop_index = start_index + 2463*195 linearintdata = flex.int(self.object.linearintdata[start_index:stop_index]) linearintdata.reshape(flex.grid((195,2463))) del self.object #once the data are copied, no need to keep the original return linearintdata def read(self): if self.already_read_data: return self.bin_safe_set_data( self.slice_callback() ) self.already_read_data = True if __name__=='__main__': import sys full_path_to_file = sys.argv[1] a = PilatusImage(testing_file) a.read() print a print a.parameters print a.rawdata, len(a.rawdata), a.size1*a.size2 for dataitem in ['bin', 'filename', 'header', 'headerlines', 'linearintdata', 'parameters', 'vendortype']: print dataitem, exec("print a.%s"%dataitem) print pilatus_slice_from_object_and_slicenumber(a,5) P = pilatus_slice_from_file_url(url="file://%s?slice=5"%full_path_to_file)