def initialize_camera(self): p = self.parameters.IonsOnCamera from lmfit import Parameters as lmfit_Parameters self.fitter = ion_state_detector(int(p.ion_number)) self.image_region = [ int(p.horizontal_bin), int(p.vertical_bin), int(p.horizontal_min), int(p.horizontal_max), int(p.vertical_min), int(p.vertical_max), ] self.fit_parameters = lmfit_Parameters() self.fit_parameters.add('ion_number', value=int(p.ion_number)) self.fit_parameters.add('background_level', value=p.fit_background_level) self.fit_parameters.add('amplitude', value=p.fit_amplitude) self.fit_parameters.add('rotation_angle', p.fit_rotation_angle) self.fit_parameters.add('center_x', value=p.fit_center_horizontal) self.fit_parameters.add('center_y', value=p.fit_center_vertical) self.fit_parameters.add('spacing', value=p.fit_spacing) self.fit_parameters.add('sigma', value=p.fit_sigma) x_axis = np.arange(self.image_region[2], self.image_region[3] + 1, self.image_region[0]) y_axis = np.arange(self.image_region[4], self.image_region[5] + 1, self.image_region[1]) xx, yy = np.meshgrid(x_axis, y_axis) self.fitter.set_fitted_parameters(self.fit_parameters, xx, yy)
def initialize_camera(self): p = self.parameters.IonsOnCamera from lmfit import Parameters as lmfit_Parameters self.fitter = ion_state_detector(int(p.ion_number)) self.image_region = [ int(p.horizontal_bin), int(p.vertical_bin), int(p.horizontal_min), int(p.horizontal_max), int(p.vertical_min), int(p.vertical_max), ] self.fit_parameters = lmfit_Parameters() self.fit_parameters.add('ion_number', value = int(p.ion_number)) self.fit_parameters.add('background_level', value = p.fit_background_level) self.fit_parameters.add('amplitude', value = p.fit_amplitude) self.fit_parameters.add('rotation_angle', p.fit_rotation_angle) self.fit_parameters.add('center_x', value = p.fit_center_horizontal) self.fit_parameters.add('center_y', value = p.fit_center_vertical) self.fit_parameters.add('spacing', value = p.fit_spacing) self.fit_parameters.add('sigma', value = p.fit_sigma) x_axis = np.arange(self.image_region[2], self.image_region[3] + 1, self.image_region[0]) y_axis = np.arange(self.image_region[4], self.image_region[5] + 1, self.image_region[1]) xx,yy = np.meshgrid(x_axis, y_axis) self.fitter.set_fitted_parameters(self.fit_parameters, xx, yy)
def initialize_camera(self, cxn): self.total_camera_confidences = [] p = self.parameters.IonsOnCamera from lmfit import Parameters as lmfit_Parameters self.camera = cxn.andor_server self.fitter = ion_state_detector(int(p.ion_number)) self.camera_initially_live_display = self.camera.is_live_display_running( ) self.camera.abort_acquisition() self.initial_exposure = self.camera.get_exposure_time() exposure = self.parameters.StateReadout.state_readout_duration self.camera.set_exposure_time(exposure) self.initial_region = self.camera.get_image_region() self.image_region = [ int(p.horizontal_bin), int(p.vertical_bin), int(p.horizontal_min), int(p.horizontal_max), int(p.vertical_min), int(p.vertical_max), ] self.fit_parameters = lmfit_Parameters() self.fit_parameters.add('ion_number', value=int(p.ion_number)) self.fit_parameters.add('background_level', value=p.fit_background_level) self.fit_parameters.add('amplitude', value=p.fit_amplitude) self.fit_parameters.add('rotation_angle', p.fit_rotation_angle) self.fit_parameters.add('center_x', value=p.fit_center_horizontal) self.fit_parameters.add('center_y', value=p.fit_center_vertical) self.fit_parameters.add('spacing', value=p.fit_spacing) self.fit_parameters.add('sigma', value=p.fit_sigma) x_axis = numpy.arange(self.image_region[2], self.image_region[3] + 1, self.image_region[0]) y_axis = numpy.arange(self.image_region[4], self.image_region[5] + 1, self.image_region[1]) xx, yy = numpy.meshgrid(x_axis, y_axis) self.fitter.set_fitted_parameters(self.fit_parameters, xx, yy) self.camera.set_image_region(*self.image_region) self.camera.set_acquisition_mode('Kinetics') self.initial_trigger_mode = self.camera.get_trigger_mode() self.camera.set_trigger_mode('External')
def initialize_camera(self, cxn): self.total_camera_confidences = [] p = self.parameters.IonsOnCamera from lmfit import Parameters as lmfit_Parameters self.camera = cxn.andor_server self.fitter = ion_state_detector(int(p.ion_number)) self.camera_initially_live_display = self.camera.is_live_display_running() self.camera.abort_acquisition() self.initial_exposure = self.camera.get_exposure_time() exposure = self.parameters.StateReadout.state_readout_duration self.camera.set_exposure_time(exposure) self.initial_region = self.camera.get_image_region() self.image_region = [ int(p.horizontal_bin), int(p.vertical_bin), int(p.horizontal_min), int(p.horizontal_max), int(p.vertical_min), int(p.vertical_max), ] self.fit_parameters = lmfit_Parameters() self.fit_parameters.add('ion_number', value = int(p.ion_number)) self.fit_parameters.add('background_level', value = p.fit_background_level) self.fit_parameters.add('amplitude', value = p.fit_amplitude) self.fit_parameters.add('rotation_angle', p.fit_rotation_angle) self.fit_parameters.add('center_x', value = p.fit_center_horizontal) self.fit_parameters.add('center_y', value = p.fit_center_vertical) self.fit_parameters.add('spacing', value = p.fit_spacing) self.fit_parameters.add('sigma', value = p.fit_sigma) #self.fit_parameters.add('sigma', value = 3.5, vary=False) x_axis = numpy.arange(self.image_region[2], self.image_region[3] + 1, self.image_region[0]) y_axis = numpy.arange(self.image_region[4], self.image_region[5] + 1, self.image_region[1]) xx,yy = numpy.meshgrid(x_axis, y_axis) self.fitter.set_fitted_parameters(self.fit_parameters, xx, yy) self.camera.set_image_region(*self.image_region) self.camera.set_acquisition_mode('Kinetics') self.initial_trigger_mode = self.camera.get_trigger_mode() self.camera.set_trigger_mode('External')
def camera_ion_probabilities(images, repetitions, p, readout_mode = 'camera'): """ Method for analyzing camera images. For an N-ion chain, returns an N element list indicating the probability that each ion is excited. """ from lmfit import Parameters as lmfit_Parameters fitter = ion_state_detector(int(p.ion_number)) image_region = [ int(p.horizontal_bin), int(p.vertical_bin), int(p.horizontal_min), int(p.horizontal_max), int(p.vertical_min), int(p.vertical_max), ] fit_parameters = lmfit_Parameters() fit_parameters.add('ion_number', value = int(p.ion_number)) fit_parameters.add('background_level', value = p.fit_background_level) fit_parameters.add('amplitude', value = p.fit_amplitude) fit_parameters.add('rotation_angle', p.fit_rotation_angle) fit_parameters.add('center_x', value = p.fit_center_horizontal) fit_parameters.add('center_y', value = p.fit_center_vertical) fit_parameters.add('spacing', value = p.fit_spacing) fit_parameters.add('sigma', value = p.fit_sigma) x_axis = np.arange(image_region[2], image_region[3] + 1, image_region[0]) y_axis = np.arange(image_region[4], image_region[5] + 1, image_region[1]) xx,yy = np.meshgrid(x_axis, y_axis) fitter.set_fitted_parameters(fit_parameters, xx, yy) x_pixels = int( (image_region[3] - image_region[2] + 1.) / (image_region[0]) ) y_pixels = int( (image_region[5] - image_region[4] + 1.) / (image_region[1]) ) #print "inside the camera readout" #print "x_pixels {}".format(x_pixels) #print "y_pixels {}".format(y_pixels) #print images #np.save('37ions_global', images) #print "repetitions{}".format(repetitions) images = np.reshape(images, (repetitions, y_pixels, x_pixels)) readouts, confidences = fitter.state_detection(images) ion_state = 1 - readouts.mean(axis = 0) #np.save('temp_camera_ion_state', ion_state) #np.save('temp_camera_readout', readouts) if readout_mode == 'camera_states': ion_state=get_states_camera(readouts,int(p.ion_number)) if readout_mode == 'camera_parity': ion_state=get_states_camera(readouts,int(p.ion_number)) parity= Calc_parity(ion_state) ion_state=np.append(ion_state,[parity]) # print "555" # print "readout_mode", readout_mode # print "ion_stste", ion_state # return ion_state, readouts, confidences