def do_stage(self, image): master_calibration_filename = self.get_calibration_filename(image) if master_calibration_filename is None: self.on_missing_master_calibration(image) return image master_calibration_image = FRAME_CLASS( self.runtime_context, filename=master_calibration_filename) try: image_utils.check_image_homogeneity( [image, master_calibration_image], self.master_selection_criteria) except image_utils.InhomogeneousSetException as e: logger.error( 'Master calibration was not the same format as the input: {0}'. format(e), image=image, extra_tags={ 'master_calibration': os.path.basename(master_calibration_filename) }) return None logger.info('Applying master calibration', image=image, extra_tags={ 'master_calibration': os.path.basename(master_calibration_filename) }) return self.apply_master_calibration(image, master_calibration_image)
def throws_inhomogeneous_set_exception(image1, image2, keyword, additional_group_by_attributes=None): with pytest.raises( image_utils.InhomogeneousSetException) as exception_info: image_utils.check_image_homogeneity([image1, image2], additional_group_by_attributes) assert 'Images have different {0}s'.format(keyword) == str( exception_info.value)
def do_stage(self, image): master_calibration_filename = self.get_calibration_filename(image) if master_calibration_filename is None: self.on_missing_master_calibration(image) return image master_calibration_image = FRAME_CLASS(self.runtime_context, filename=master_calibration_filename) try: image_utils.check_image_homogeneity([image, master_calibration_image], self.master_selection_criteria) except image_utils.InhomogeneousSetException: logger.error(logs.format_exception(), image=image) return None return self.apply_master_calibration(image, master_calibration_image)
def do_stage(self, images): if len(images) < self.min_images: # Do nothing self.logger.warning('Not enough images to combine.') return [] else: image_config = image_utils.check_image_homogeneity(images) logging_tags = logs.image_config_to_tags(image_config, self.group_by_keywords) return self.make_master_calibration_frame(images, image_config, logging_tags)
def do_stage(self, images): try: min_images = settings.CALIBRATION_MIN_FRAMES[self.calibration_type.upper()] except KeyError: msg = 'The minimum number of frames required to create a master calibration of type ' \ '{calibration_type} has not been specified in the settings.' logger.error(msg.format(calibration_type=self.calibration_type.upper())) return [] if len(images) < min_images: # Do nothing msg = 'Number of images less than minimum requirement of {min_images}, not combining' logger.warning(msg.format(min_images=min_images)) return [] try: image_utils.check_image_homogeneity(images, self.group_by_attributes()) except image_utils.InhomogeneousSetException: logger.error(logs.format_exception()) return [] return [self.make_master_calibration_frame(images)]
def do_stage(self, images): try: min_images = settings.CALIBRATION_MIN_FRAMES[ self.calibration_type.upper()] except KeyError: msg = 'The minimum number of frames required to create a master calibration of type ' \ '{calibration_type} has not been specified in the settings.' logger.error( msg.format(calibration_type=self.calibration_type.upper())) return [] if len(images) < min_images: # Do nothing msg = 'Number of images less than minimum requirement of {min_images}, not combining' logger.warning(msg.format(min_images=min_images)) return [] try: image_utils.check_image_homogeneity(images, self.group_by_attributes()) except image_utils.InhomogeneousSetException: logger.error(logs.format_exception()) return [] return [self.make_master_calibration_frame(images)]
def do_stage(self, images): if len(images) == 0: # Abort! return [] else: image_config = image_utils.check_image_homogeneity(images) logging_tags = logs.image_config_to_tags(image_config, self.group_by_keywords) master_calibration_filename = self.get_calibration_filename(images[0]) if master_calibration_filename is None: self.logger.error('Master Calibration file does not exist for {stage}'.format(stage=self.stage_name), extra=logging_tags) raise MasterCalibrationDoesNotExist master_calibration_image = Image(self.pipeline_context, filename=master_calibration_filename) return self.apply_master_calibration(images, master_calibration_image, logging_tags)
def throws_inhomogeneous_set_exception(image1, image2, keyword, additional_group_by_attributes=None): with pytest.raises(image_utils.InhomogeneousSetException) as exception_info: image_utils.check_image_homogeneity([image1, image2], additional_group_by_attributes) assert 'Images have different {0}s'.format(keyword) == str(exception_info.value)