from collections import OrderedDict from cam_server.pipeline.data_processing import functions from logging import getLogger _logger = getLogger(__name__) def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata): ret = OrderedDict() prefix = parameters["camera_name"] (x_profile, y_profile) = functions.get_x_y_profile(image) _, _, _, x_fit_mean, x_fit_standard_deviation, _, _ = functions.gauss_fit(x_profile, x_axis) _, _, _, y_fit_mean, y_fit_standard_deviation, _, _ = functions.gauss_fit(y_profile, y_axis) x_fwhm = functions.get_fw(x_axis,x_profile) y_fwhm = functions.get_fw(y_axis,y_profile) intensity = x_profile.sum() ret[prefix+":intensity"] = intensity ret[prefix+":x_fit_mean"] = x_fit_mean ret[prefix+":y_fit_mean"] = y_fit_mean ret[prefix+":x_fwhm"] = x_fwhm ret[prefix+":y_fwhm"] = y_fwhm ret[prefix+":x_fit_standard_deviation"] = x_fit_standard_deviation ret[prefix+":y_fit_standard_deviation"] = y_fit_standard_deviation return ret """ from collections import OrderedDict from cam_server.pipeline.data_processing import functions, processor from logging import getLogger import numpy as np _logger = getLogger(__name__) def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata): r = processor.process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata) ret = OrderedDict() channels = ["intensity","x_fit_mean","y_fit_mean"] prefix = parameters["camera_name"] for c in channels: value = r[c] if value is None: _logger.warning("None:" + str(c)) return None if value == float('nan'): _logger.warning("NAN:" + str(c)) return None if isinstance(value,np.floating): value=float(value) if isinstance(value,np.integer): value=int(value) ret[prefix+":"+c] = value return ret """