import numpy as np 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_amplitude, x_fit_mean, _, _, _ = functions.gauss_fit(x_profile, x_axis) _, _, y_fit_amplitude, y_fit_mean, _, _, _ = 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_amplitude"] = x_fit_amplitude ret[prefix+":y_fit_amplitude"] = y_fit_amplitude ret[prefix+":xy_test"] = 42 return ret