32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import sys
|
|
import os
|
|
from emittance import calculate_emittance
|
|
from cam_server.pipeline.data_processing import functions, processor
|
|
|
|
def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None):
|
|
ret = processor.process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata)
|
|
|
|
camera = parameters["camera_name"]
|
|
emittance = emittance2 = float("NaN")
|
|
status = "Ok"
|
|
try:
|
|
r = calculate_emittance(image, parameters['fit'])
|
|
if r is not None:
|
|
emittance,emittance2=r
|
|
|
|
except Exception as e:
|
|
status="Error: "
|
|
exc_type, exc_obj, exc_tb = sys.exc_info()
|
|
while exc_tb is not None:
|
|
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
|
|
status = status + fname + " line " + str(exc_tb.tb_lineno) + ": " + str(e) + " | "
|
|
exc_tb = exc_tb.tb_next
|
|
|
|
ret["emittance"] = emittance
|
|
ret["emittance2"] = emittance2
|
|
ret["emittance_status"] = str(status)
|
|
|
|
ret["y_fit_standard_deviation_orig"] = ret["y_fit_standard_deviation"]
|
|
ret["y_fit_standard_deviation"] = emittance
|
|
|
|
return ret |