def create_processing_input_file(self, processing_input_filename): """Creates dozor input file base on data collection parameters :param processing_input_filename :type : str """ input_file = XSDataInputControlDozor() input_file.setTemplate(XSDataString(self.params_dict["template"])) input_file.setFirst_image_number( XSDataInteger(self.params_dict["first_image_num"]) ) input_file.setLast_image_number(XSDataInteger(self.params_dict["images_num"])) input_file.setFirst_run_number(XSDataInteger(self.params_dict["run_number"])) input_file.setLast_run_number(XSDataInteger(self.params_dict["run_number"])) input_file.setLine_number_of(XSDataInteger(self.params_dict["lines_num"])) input_file.setReversing_rotation( XSDataBoolean(self.params_dict["reversing_rotation"]) ) input_file.setPixelMin(XSDataInteger(self.detector_hwobj.get_pixel_min())) input_file.setPixelMax(XSDataInteger(self.detector_hwobj.get_pixel_max())) input_file.setBeamstopSize(XSDataDouble(self.beamstop_hwobj.get_size())) input_file.setBeamstopDistance(XSDataDouble(self.beamstop_hwobj.get_distance())) input_file.setBeamstopDirection( XSDataString(self.beamstop_hwobj.get_direction()) ) input_file.exportToFile(processing_input_filename)
def create_processing_input_file(self, processing_input_filename): """Creates dozor input file base on data collection parameters :param processing_input_filename :type : str """ input_file = XSDataInputControlDozor() input_file.setTemplate(XSDataString(self.params_dict["template"])) input_file.setFirst_image_number( XSDataInteger(self.params_dict["first_image_num"])) input_file.setLast_image_number( XSDataInteger(self.params_dict["images_num"])) input_file.setFirst_run_number( XSDataInteger(self.params_dict["run_number"])) input_file.setLast_run_number( XSDataInteger(self.params_dict["run_number"])) input_file.setLine_number_of( XSDataInteger(self.params_dict["lines_num"])) input_file.setReversing_rotation( XSDataBoolean(self.params_dict["reversing_rotation"])) input_file.setPixelMin( XSDataInteger(self.detector_hwobj.get_pixel_min())) input_file.setPixelMax( XSDataInteger(self.detector_hwobj.get_pixel_max())) input_file.setBeamstopSize(XSDataDouble( self.beamstop_hwobj.get_size())) input_file.setBeamstopDistance( XSDataDouble(self.beamstop_hwobj.get_distance())) input_file.setBeamstopDirection( XSDataString(self.beamstop_hwobj.get_direction())) input_file.exportToFile(processing_input_filename)
def create_processing_input(self, data_collection): """Creates dozor input file base on data collection parameters :param data_collection: data collection object :type : queue_model_objects.DataCollection """ acquisition = data_collection.acquisitions[0] acq_params = acquisition.acquisition_parameters input_file = XSDataInputControlDozor() image_file_template = "%s_%%d_%%05d.cbf" % ( acquisition.path_template.get_prefix()) template = os.path.join(acquisition.path_template.directory, image_file_template) first_image_num = acq_params.first_image images_num = acq_params.num_images last_image_num = first_image_num + images_num - 1 run_number = acquisition.path_template.run_number lines_num = acq_params.num_lines pixel_min = 0 pixel_max = 0 beamstop_size = 0 beamstop_distance = 0 beamstop_direction = 0 pixel_min = self.detector_hwobj.get_pixel_min() pixel_max = self.detector_hwobj.get_pixel_max() beamstop_size = self.beamstop_hwobj.get_size() beamstop_distance = self.beamstop_hwobj.get_distance() beamstop_direction = self.beamstop_hwobj.get_direction() if data_collection.grid: grid_params = data_collection.grid.get_properties() reversing_rotation = grid_params["reversing_rotation"] else: reversing_rotation = False self.params_dict["template"] = template self.params_dict["first_image_num"] = first_image_num self.params_dict["images_num"] = images_num self.params_dict["lines_num"] = lines_num self.params_dict["images_per_line"] = images_num / lines_num self.params_dict["run_number"] = run_number self.params_dict["pixel_min"] = pixel_min self.params_dict["pixel_max"] = pixel_max self.params_dict["beamstop_size"] = beamstop_size self.params_dict["beamstop_distance"] = beamstop_distance self.params_dict["beamstop_direction"] = beamstop_direction self.params_dict["status"] = "Started" self.params_dict["title"] = "%s_%d_#####.cbf (%d - %d)" % \ (acquisition.path_template.get_prefix(), acquisition.path_template.run_number, first_image_num, last_image_num) self.params_dict["comments"] = "Scan lines: %d, frames per line: %d" % \ (lines_num, images_num / lines_num) if lines_num > 1: self.params_dict["dx_mm"] = grid_params["dx_mm"] self.params_dict["dy_mm"] = grid_params["dy_mm"] self.params_dict["steps_x"] = grid_params["steps_x"] self.params_dict["steps_y"] = grid_params["steps_y"] self.params_dict["xOffset"] = grid_params["xOffset"] self.params_dict["yOffset"] = grid_params["yOffset"] else: self.params_dict["steps_y"] = 1 input_file.setTemplate(XSDataString(template)) input_file.setFirst_image_number(XSDataInteger(first_image_num)) input_file.setLast_image_number(XSDataInteger(last_image_num)) input_file.setFirst_run_number(XSDataInteger(run_number)) input_file.setLast_run_number(XSDataInteger(run_number)) input_file.setLine_number_of(XSDataInteger(lines_num)) input_file.setReversing_rotation(XSDataBoolean(reversing_rotation)) input_file.setPixelMin(XSDataInteger(pixel_min)) input_file.setPixelMax(XSDataInteger(pixel_max)) input_file.setBeamstopSize(XSDataDouble(beamstop_size)) input_file.setBeamstopDistance(XSDataDouble(beamstop_distance)) input_file.setBeamstopDirection(XSDataString(beamstop_direction)) return input_file
def create_processing_input(self, data_collection): """Creates dozor input file base on data collection parameters :param data_collection: data collection object :type : queue_model_objects.DataCollection """ acquisition = data_collection.acquisitions[0] acq_params = acquisition.acquisition_parameters input_file = XSDataInputControlDozor() image_file_template = "%s_%%d_%%05d.cbf" % ( acquisition.path_template.get_prefix()) template = os.path.join(acquisition.path_template.directory, image_file_template) first_image_num = acq_params.first_image images_num = acq_params.num_images last_image_num = first_image_num + images_num - 1 run_number = acquisition.path_template.run_number lines_num = acq_params.num_lines pixel_min = 0 pixel_max = 0 beamstop_size = 0 beamstop_distance = 0 beamstop_direction = 0 pixel_min = self.detector_hwobj.get_pixel_min() pixel_max = self.detector_hwobj.get_pixel_max() #?utilite du beamstop ??????????????? beamstop_size = self.beamstop_hwobj.get_size() beamstop_distance = self.beamstop_hwobj.get_distance() beamstop_direction = self.beamstop_hwobj.get_direction() if data_collection.grid: grid_params = data_collection.grid.get_properties() reversing_rotation = grid_params["reversing_rotation"] else: reversing_rotation = False self.params_dict["template"] = template self.params_dict["first_image_num"] = first_image_num self.params_dict["images_num"] = images_num self.params_dict["lines_num"] = lines_num self.params_dict["images_per_line"] = images_num / lines_num self.params_dict["run_number"] = run_number self.params_dict["pixel_min"] = pixel_min self.params_dict["pixel_max"] = pixel_max self.params_dict["beamstop_size"] = beamstop_size self.params_dict["beamstop_distance"] = beamstop_distance self.params_dict["beamstop_direction"] = beamstop_direction self.params_dict["status"] = "Started" self.params_dict["title"] = "%s_%d_#####.cbf (%d - %d)" % \ (acquisition.path_template.get_prefix(), acquisition.path_template.run_number, first_image_num, last_image_num) self.params_dict["comments"] = "Scan lines: %d, frames per line: %d" % \ (lines_num, images_num / lines_num) if lines_num > 1: self.params_dict["dx_mm"] = grid_params["dx_mm"] self.params_dict["dy_mm"] = grid_params["dy_mm"] self.params_dict["steps_x"] = grid_params["steps_x"] self.params_dict["steps_y"] = grid_params["steps_y"] self.params_dict["xOffset"] = grid_params["xOffset"] self.params_dict["yOffset"] = grid_params["yOffset"] else: self.params_dict["steps_y"] = 1 input_file.setTemplate(XSDataString(template)) input_file.setFirst_image_number(XSDataInteger(first_image_num)) input_file.setLast_image_number(XSDataInteger(last_image_num)) input_file.setFirst_run_number(XSDataInteger(run_number)) input_file.setLast_run_number(XSDataInteger(run_number)) input_file.setLine_number_of(XSDataInteger(lines_num)) input_file.setReversing_rotation(XSDataBoolean(reversing_rotation)) input_file.setPixelMin(XSDataInteger(pixel_min)) input_file.setPixelMax(XSDataInteger(pixel_max)) input_file.setBeamstopSize(XSDataDouble(beamstop_size)) input_file.setBeamstopDistance(XSDataDouble(beamstop_distance)) input_file.setBeamstopDirection(XSDataString(beamstop_direction)) return input_file
def create_processing_input(self, data_collection, processing_params, grid_object): """ Descript. : Creates dozor input file base on data collection parameters Args. : data_collection (object) Return. : processing_input_file (object) """ acquisition = data_collection.acquisitions[0] acq_params = acquisition.acquisition_parameters processing_input_file = XSDataInputControlDozor() _run = "_%d_" % acquisition.path_template.run_number image_file_template = "%s_%%d_%%05d.cbf" % (acquisition.path_template.get_prefix()) template = os.path.join(acquisition.path_template.directory, image_file_template) first_image_num = acq_params.first_image images_num = acq_params.num_images last_image_num = first_image_num + images_num - 1 run_number = acquisition.path_template.run_number lines_num = acq_params.num_lines grid_params = grid_object.get_properties() pixel_min = self.detector_hwobj.get_pixel_min() pixel_max = self.detector_hwobj.get_pixel_max() beamstop_size = self.beamstop_hwobj.get_beamstop_size() beamstop_distance = self.beamstop_hwobj.get_beamstop_distance() beamstop_direction = self.beamstop_hwobj.get_beamstop_direction() reversing_rotation = grid_params["reversing_rotation"] processing_params["template"] = template processing_params["first_image_num"] = first_image_num processing_params["images_num"] = images_num processing_params["lines_num"] = lines_num processing_params["images_per_line"] = images_num / lines_num processing_params["run_number"] = run_number processing_params["pixel_min"] = pixel_min processing_params["pixel_max"] = pixel_max processing_params["beamstop_size"] = beamstop_size processing_params["beamstop_distance"] = beamstop_distance processing_params["beamstop_direction"] = beamstop_direction processing_params["status"] = "Started" processing_params["title"] = "%s_%d_xxxxx.cbf (%d - %d)" % ( acquisition.path_template.get_prefix(), acquisition.path_template.run_number, first_image_num, last_image_num, ) processing_params["comments"] = "Scan lines: %d, frames per line: %d" % (lines_num, images_num / lines_num) if lines_num > 1: processing_params["dx_mm"] = grid_params["dx_mm"] processing_params["dy_mm"] = grid_params["dy_mm"] processing_params["steps_x"] = grid_params["steps_x"] processing_params["steps_y"] = grid_params["steps_y"] processing_params["xOffset"] = grid_params["xOffset"] processing_params["yOffset"] = grid_params["yOffset"] processing_input_file.setTemplate(XSDataString(template)) processing_input_file.setFirst_image_number(XSDataInteger(first_image_num)) processing_input_file.setLast_image_number(XSDataInteger(last_image_num)) processing_input_file.setFirst_run_number(XSDataInteger(run_number)) processing_input_file.setLast_run_number(XSDataInteger(run_number)) processing_input_file.setLine_number_of(XSDataInteger(lines_num)) processing_input_file.setReversing_rotation(XSDataBoolean(reversing_rotation)) processing_input_file.setPixelMin(XSDataInteger(pixel_min)) # should be -1 for real data processing_input_file.setPixelMax(XSDataInteger(pixel_max)) processing_input_file.setBeamstopSize(XSDataDouble(beamstop_size)) processing_input_file.setBeamstopDistance(XSDataDouble(beamstop_distance)) processing_input_file.setBeamstopDirection(XSDataString(beamstop_direction)) return processing_input_file, processing_params
def create_processing_input(self, data_collection, processing_params, grid_object): """ Descript. : Creates dozor input file base on data collection parameters Args. : data_collection (object) Return. : processing_input_file (object) """ acquisition = data_collection.acquisitions[0] acq_params = acquisition.acquisition_parameters processing_input_file = XSDataInputControlDozor() _run = "_%d_" % acquisition.path_template.run_number image_file_template = "%s_%%d_%%05d.cbf" % ( acquisition.path_template.get_prefix()) template = os.path.join(acquisition.path_template.directory, image_file_template) first_image_num = acq_params.first_image images_num = acq_params.num_images last_image_num = first_image_num + images_num - 1 run_number = acquisition.path_template.run_number lines_num = acq_params.num_lines pixel_min = 0 pixel_max = 0 beamstop_size = 0 beamstop_distance = 0 beamstop_direction = 0 try: pixel_min = self.detector_hwobj.get_pixel_min() pixel_max = self.detector_hwobj.get_pixel_max() except: pass try: beamstop_size = self.beamstop_hwobj.get_beamstop_size() beamstop_distance = self.beamstop_hwobj.get_beamstop_distance() beamstop_direction = self.beamstop_hwobj.get_beamstop_direction() except: pass grid_params = grid_object.get_properties() reversing_rotation = grid_params["reversing_rotation"] processing_params["template"] = template processing_params["first_image_num"] = first_image_num processing_params["images_num"] = images_num processing_params["lines_num"] = lines_num processing_params["images_per_line"] = images_num / lines_num processing_params["run_number"] = run_number processing_params["pixel_min"] = pixel_min processing_params["pixel_max"] = pixel_max processing_params["beamstop_size"] = beamstop_size processing_params["beamstop_distance"] = beamstop_distance processing_params["beamstop_direction"] = beamstop_direction processing_params["status"] = "Started" processing_params["title"] = "%s_%d_xxxxx.cbf (%d - %d)" % \ (acquisition.path_template.get_prefix(), acquisition.path_template.run_number, first_image_num, last_image_num) processing_params["comments"] = "Scan lines: %d, frames per line: %d" % \ (lines_num, images_num / lines_num ) if lines_num > 1: processing_params["dx_mm"] = grid_params["dx_mm"] processing_params["dy_mm"] = grid_params["dy_mm"] processing_params["steps_x"] = grid_params["steps_x"] processing_params["steps_y"] = grid_params["steps_y"] processing_params["xOffset"] = grid_params["xOffset"] processing_params["yOffset"] = grid_params["yOffset"] processing_input_file.setTemplate(XSDataString(template)) processing_input_file.setFirst_image_number( XSDataInteger(first_image_num)) processing_input_file.setLast_image_number( XSDataInteger(last_image_num)) processing_input_file.setFirst_run_number(XSDataInteger(run_number)) processing_input_file.setLast_run_number(XSDataInteger(run_number)) processing_input_file.setLine_number_of(XSDataInteger(lines_num)) processing_input_file.setReversing_rotation( XSDataBoolean(reversing_rotation)) processing_input_file.setPixelMin( XSDataInteger(pixel_min)) # should be -1 for real data processing_input_file.setPixelMax(XSDataInteger(pixel_max)) processing_input_file.setBeamstopSize(XSDataDouble(beamstop_size)) processing_input_file.setBeamstopDistance( XSDataDouble(beamstop_distance)) processing_input_file.setBeamstopDirection( XSDataString(beamstop_direction)) return processing_input_file, processing_params