This commit is contained in:
root
2022-04-26 13:44:34 +02:00
parent 3ba31bebf0
commit 91bceb6c1b
54 changed files with 863 additions and 209 deletions
@@ -20,8 +20,8 @@
"name": "SARES11-SPEC125-M1",
"prefix": "SARES11-SPEC125-M1",
"source": "SARES11-SPEC125-M1",
"connections": 4,
"buffer_size": 100,
"buffer_logs": false,
"protocol": "tcp"
"connections": 2,
"buffer_size": 20,
"debug": true,
"protocol": "ipc"
}
@@ -1,13 +1,13 @@
{
"camera_calibration": {
"reference_marker": [
1120,
876,
1425,
1103
1296,
809,
1395,
912
],
"reference_marker_width": 102.9,
"reference_marker_height": 176.0,
"reference_marker_width": 300.0,
"reference_marker_height": 300.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
@@ -20,7 +20,9 @@
"prefix": "SARES20-CAMS142-C1",
"name": "SARES20-CAMS142-C1",
"source": "SARES20-CAMS142-C1",
"alias": [],
"alias": [
"SAMPLECAM_MICROSCOPE (SARES20-CAMS142-C1)"
],
"group": [
"Photonics",
"Bernina"
@@ -1,13 +1,13 @@
{
"camera_calibration": {
"reference_marker": [
957,
517,
979,
522
854,
461,
956,
563
],
"reference_marker_width": 1.0,
"reference_marker_height": 1.0,
"reference_marker_width": 2000.0,
"reference_marker_height": 2000.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
@@ -24,5 +24,7 @@
"Photonics",
"Bernina"
],
"alias": []
"alias": [
"SAMPLECAM_SIDEVIEW (SARES20-CAMS142-C2)"
]
}
@@ -1,13 +1,13 @@
{
"camera_calibration": {
"reference_marker": [
1457,
673,
1557,
771
1463,
735,
1465,
737
],
"reference_marker_width": 1754.0,
"reference_marker_height": 1030.0,
"reference_marker_width": 2,
"reference_marker_height": 2,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
@@ -1,18 +1,18 @@
{
"camera_calibration": {
"reference_marker": [
1729,
817,
1829,
917
1210,
1102,
1317,
1201
],
"reference_marker_width": 552.0,
"reference_marker_height": 586.0,
"reference_marker_width": 134.0,
"reference_marker_height": 144.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": true,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
@@ -1,10 +1,10 @@
{
"camera_calibration": {
"reference_marker": [
343,
120,
445,
220
379,
72,
487,
159
],
"reference_marker_width": 200.0,
"reference_marker_height": 200.0,
@@ -27,6 +27,6 @@
"Bernina"
],
"alias": [
"TT_KB (SARES20-PROF141-M1)"
"PROF_KB (SARES20-PROF141-M1)"
]
}
@@ -0,0 +1,24 @@
{
"camera_calibration": {
"reference_marker": [
179,
173,
475,
427
],
"reference_marker_width": 4000.0,
"reference_marker_height": 3000.0,
"angle_horizontal": 21.0,
"angle_vertical": 0.0
},
"mirror_x": true,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"name": "SARES30-CAMS156-SMX-OAV",
"source": "SARES30-CAMS156-SMX-OAV",
"group": "Cristallina",
"alias": []
}
@@ -0,0 +1,24 @@
{
"camera_calibration": {
"reference_marker": [
179,
173,
475,
427
],
"reference_marker_width": 4000.0,
"reference_marker_height": 3000.0,
"angle_horizontal": 21.0,
"angle_vertical": 0.0
},
"mirror_x": true,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"name": "SARES30-CAMS156-SMX-XEYE",
"source": "SARES30-CAMS156-SMX-XEYE",
"group": "Cristallina",
"alias": []
}
@@ -0,0 +1,30 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
100,
100
],
"reference_marker_width": 100.0,
"reference_marker_height": 100.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"source_type": "epics",
"name": "SARES30-CAMS156-XE",
"prefix": "SARES30-CAMS156-XE",
"source": "SARES30-CAMS156-XE",
"connections": 1,
"buffer_size": 100,
"buffer_logs": false,
"protocol": "tcp",
"group": [
"Photonics",
"Cristallina"
],
"alias": []
}
@@ -20,8 +20,10 @@
"prefix": "SARFE10-PSSS059",
"source": "SARFE10-PSSS059",
"name": "SARFE10-PSSS059",
"connections": 4,
"connections": 2,
"buffer_size": 100,
"buffer_threshold": 0.5,
"debug": true,
"group": [
"Photonics",
"Alvra",
@@ -29,5 +31,5 @@
"Beamline Aramis"
],
"alias": [],
"protocol": "tcp"
"protocol": "ipc"
}
@@ -16,7 +16,7 @@
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"source_type": "bsread",
"name": "SAROP21-PPRM102",
"source": "SAROP21-PPRM102",
"group": [
@@ -1,10 +1,10 @@
{
"camera_calibration": {
"reference_marker": [
331,
274,
366,
317
334,
277,
369,
320
],
"reference_marker_width": 500.0,
"reference_marker_height": 500.0,
@@ -20,7 +20,8 @@
"name": "SAROP31-PPRM113",
"source": "SAROP31-PPRM113",
"group": [
"Photonics"
"Photonics",
"Cristallina"
],
"alias": []
}
@@ -0,0 +1,27 @@
{
"camera_calibration": {
"reference_marker": [
179,
173,
475,
427
],
"reference_marker_width": 4000.0,
"reference_marker_height": 3000.0,
"angle_horizontal": 21.0,
"angle_vertical": 0.0
},
"mirror_x": true,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"name": "SAROP31-PPRM150",
"source": "SAROP31-PPRM150",
"group": [
"Photonics",
"Cristallina"
],
"alias": []
}
@@ -0,0 +1,27 @@
{
"camera_calibration": {
"reference_marker": [
207,
101,
827,
693
],
"reference_marker_width": 19500.0,
"reference_marker_height": 19500.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 2,
"roi": null,
"image_background": null,
"source_type": "epics",
"source": "SATDI01-DSCR040",
"name": "SATDI01-DSCR040",
"group": [
"Electrons",
"HERO"
],
"alias": []
}
@@ -0,0 +1,27 @@
{
"camera_calibration": {
"reference_marker": [
687,
484,
734,
532
],
"reference_marker_width": 1400.0,
"reference_marker_height": 1400.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 2,
"roi": null,
"image_background": null,
"source_type": "epics",
"source": "SATDI01-DSCR065",
"name": "SATDI01-DSCR065",
"group": [
"Electrons",
"HERO"
],
"alias": []
}
@@ -0,0 +1,30 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
100,
100
],
"reference_marker_width": 100.0,
"reference_marker_height": 100.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"source_type": "bsread",
"name": "SATES31-CAMS187-RIXS1",
"prefix": "SATES31-CAMS187-RIXS1",
"source": "SATES31-CAMS187-RIXS1",
"connections": 2,
"buffer_size": 100,
"buffer_logs": false,
"protocol": "ipc",
"group": [
"Photonics",
"Furka"
],
"alias": []
}
@@ -0,0 +1,37 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
100,
100
],
"reference_marker_width": 100.0,
"reference_marker_height": 100.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "bsread",
"prefix": "SATOP31-PMOS132-1D",
"source": "SATOP31-PMOS132-1D",
"name": "SATOP31-PMOS132-1D",
"connections": 4,
"buffer_size": 100,
"group": [
"Photonics"
],
"alias": [],
"protocol": "tcp",
"reference_marker": [
0,
0,
0,
0
],
"reference_marker_height": 0
}
@@ -1,10 +1,10 @@
{
"camera_calibration": {
"reference_marker": [
596,
384,
796,
602
663,
492,
765,
593
],
"reference_marker_width": 2.0,
"reference_marker_height": 2.0,
@@ -23,8 +23,6 @@
"Laser",
"Bernina"
],
"alias": [
"CAM_NIR_ANGLE (SLAAR21-LCAM-C511)"
],
"alias": [],
"prefix": "SLAAR21-LCAM-C511"
}
@@ -1,10 +1,10 @@
{
"camera_calibration": {
"reference_marker": [
712,
530,
728,
537
725,
539,
738,
546
],
"reference_marker_width": 2.0,
"reference_marker_height": 2.0,
@@ -23,8 +23,6 @@
"Laser",
"Bernina"
],
"alias": [
"CAM_NIR_POSITION (SLAAR21-LCAM-C531)"
],
"alias": [],
"prefix": "SLAAR21-LCAM-C531"
}
@@ -17,4 +17,4 @@
"source_type": "epics",
"source": "SLG-LCAM-C041",
"name": "new_camera_name"
}
}
@@ -1,4 +1,7 @@
{
"#SARES11-SPEC125-M1": "SARES11-SPEC125-M1",
"#SARES11-SPEC125-M2": "SARES11-SPEC125-M2"
"#SARES11-SPEC125-M2": "SARES11-SPEC125-M2",
"#SARES11-XPR125-C4P2": "SARES11-XPR125-C4P2",
"#SARES12-CAMS128-M1": "SARES12-CAMS128-M1",
"SARFE10-PSSS059": "SARFE10-PSSS059"
}
+6 -5
View File
@@ -38,10 +38,11 @@
"instances": [
"SARES11-SPEC125-M1",
"SARES11-SPEC125-M2",
"SARES11-XMI125-C4P1",
"SARES11-XPR125-C4P2",
"SLAAR11-LCAM-C452",
"SLAAR11-LCAM-C421"
"#SARES11-XMI125-C4P1",
"#SARES11-XPR125-C4P2",
"#SLAAR11-LCAM-C452",
"#SLAAR11-LCAM-C421",
"#SARES12-CAMS128-M1"
]
},
"http://sf-daqsync-06.psi.ch:8880": {
@@ -67,4 +68,4 @@
"expanding": true,
"instances": []
}
}
}
@@ -0,0 +1,23 @@
{
"camera_calibration": {
"reference_marker": [
211,
173,
1063,
793
],
"reference_marker_width": 30000.0,
"reference_marker_height": 30000.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"source_type": "simulation",
"name": "simulation_3",
"source": "",
"frame_rate":2,
"protocol": "tcp"
}
@@ -1,30 +1,29 @@
{
"image_background_enable": false,
"image_background": null,
"image_background_enable": "passive",
"image_background": "SARES11-SPEC125-M1_20220411_150342_083919",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
"image_slices": null,
"pipeline_type": "processing",
"function": "psen_min_processing.py",
"function": "SARES11-SPEC125-M1_tt.py",
"camera_name": "SARES11-SPEC125-M1",
"name": "SARES11-SPEC125-M1_psen_db",
"mode": "PUSH",
"roi_signal": [
0,
2048,
260,
100
50,
300
],
"roi_background": [
0,
2048,
1150,
100
],
"processing_threads": 6,
"thread_buffer_size": 30,
"abort_on_error": false,
"no_client_timeout": 0,
"reload": true
"port": "9013",
"pixel_bkg": 0,
"multiprocessing": false,
"_buffer_size": 5,
"processing_threads": 3,
"thread_buffer_size": 20,
"send_buffer_size": 20,
"block": false,
"debug": true
}
@@ -14,16 +14,15 @@
0,
2047,
50,
300
200
],
"roi_signal": [
0,
2047,
550,
300
450,
200
],
"no_client_timeout": 0,
"pixel_bkg": 0,
"port": "9011",
"reload": true
"port": "9011"
}
@@ -10,16 +10,10 @@
"camera_name": "SARES12-CAMS128-M1",
"name": "SARES12-CAMS128-M1_psen_db",
"mode": "PUSH",
"roi_background": [
800,
450,
1300,
450
],
"roi_signal": [
800,
450,
700,
450
0,
2048,
50,
300
]
}
@@ -10,19 +10,18 @@
],
"mode": "PUB",
"function": "pbps.py",
"reload": true,
"no_client_timeout": 0,
"port": "9004",
"up": "SARFE10-CVME-PHO6212:Lnk9Ch12-DATA-SUM",
"down": "SARFE10-CVME-PHO6212:Lnk9Ch13-DATA-SUM",
"right": "SARFE10-CVME-PHO6212:Lnk9Ch14-DATA-SUM",
"left": "SARFE10-CVME-PHO6212:Lnk9Ch15-DATA-SUM",
"up_calib": 0.0396114649477661,
"down_calib": 0.04443745869759186,
"left_calib": 0.1251130741103867,
"right_calib": 0.06045661775892209,
"horiz_calib": -3.145932044592976,
"vert_calib": -8.645746475053746,
"up_calib": 0.0353509790781039,
"down_calib": 0.03683066094728678,
"left_calib": 0.08736011613824678,
"right_calib": 0.0547255642297261,
"horiz_calib": -4.474257539843546,
"vert_calib": -12.781273093267753,
"uJ_calib": 605.9512700123181,
"threshold": 0,
"queue_length": 1000,
@@ -54,4 +53,4 @@
"xpos_dif_w_pvname": "SARFE10-PBPS053:XPOS-DIF-HIST-W",
"ypos_dif_m_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-M",
"ypos_dif_w_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-W"
}
}
@@ -1,6 +1,6 @@
{
"image_background_enable": true,
"image_background": "SARFE10-PSSS059_20211216_185801_521432",
"image_background": "SARFE10-PSSS059_20220411_150327_076737",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
@@ -12,9 +12,11 @@
"mode": "PUSH",
"no_client_timeout": 0,
"port": "8889",
"reload": true,
"processing_threads": 6,
"thread_buffer_size": 30,
"processing_threads": 8,
"thread_buffer_size": 20,
"send_buffer_size": 20,
"debug": true,
"abort_on_error": false,
"block": false,
"pixel_bkg": 1
}
@@ -13,10 +13,11 @@
"port": "9005",
"spectrum_x": "SARFE10-PSSS059:SPECTRUM_X",
"spectrum_y": "SARFE10-PSSS059:SPECTRUM_Y",
"reload": true,
"processing_threads": 6,
"thread_buffer_size": 30,
"thread_buffer_size": 20,
"send_buffer_size": 20,
"abort_on_error": false,
"pixel_bkg": 1,
"block": false,
"queue_length": 100
}
@@ -13,7 +13,6 @@
"name": "SAROP11-ATT01_proc",
"no_client_timeout": 0,
"pipeline_type": "stream",
"reload": true,
"calib": 1,
"step_length": 50,
"edge_type": "falling",
@@ -25,4 +24,4 @@
"filter_window": 51,
"filter": true,
"port": 9001
}
}
@@ -10,7 +10,6 @@
],
"mode": "PUB",
"function": "pbps.py",
"reload": true,
"no_client_timeout": 0,
"port": "9007",
"up": "SAROP11-CVME-PBPS2:Lnk9Ch13-DATA-SUM",
@@ -54,4 +53,4 @@
"xpos_dif_w_pvname": "SAROP11-PBPS117:XPOS-DIF-HIST-W",
"ypos_dif_m_pvname": "SAROP11-PBPS117:YPOS-DIF-HIST-M",
"ypos_dif_w_pvname": "SAROP11-PBPS117:YPOS-DIF-HIST-W"
}
}
@@ -10,7 +10,6 @@
],
"mode": "PUB",
"function": "pbps.py",
"reload": true,
"no_client_timeout": 0,
"port": "9010",
"up": "SAROP11-CVME-PBPS1:Lnk9Ch4-DATA-SUM",
@@ -54,4 +53,4 @@
"xpos_dif_w_pvname": "SAROP11-PBPS122:XPOS-DIF-HIST-W",
"ypos_dif_m_pvname": "SAROP11-PBPS122:YPOS-DIF-HIST-M",
"ypos_dif_w_pvname": "SAROP11-PBPS122:YPOS-DIF-HIST-W"
}
}
@@ -9,12 +9,14 @@
"events": "SAR-CVME-TIFALL5:EvtSet",
"function": "SAROP21-ATT01_proc.py",
"device": "SAROP21-ATT01",
"mode": "PUB",
"mode": "PUSH",
"name": "SAROP21-ATT01_proc",
"no_client_timeout": 0,
"pipeline_type": "stream",
"reload": true,
"calib": 1,
"calib": [
1,
0
],
"step_length": 150,
"edge_type": "rising",
"refinement": 1,
@@ -10,21 +10,20 @@
],
"mode": "PUB",
"function": "pbps.py",
"reload": true,
"no_client_timeout": 0,
"port": "9008",
"up": "SLAAR21-LSCP1-FNS:CH7:VAL_GET",
"down": "SLAAR21-LSCP1-FNS:CH6:VAL_GET",
"right": "SLAAR21-LSCP1-FNS:CH4:VAL_GET",
"left": "SLAAR21-LSCP1-FNS:CH5:VAL_GET",
"up_calib": 5.227803647305459e-05,
"down_calib": 4.348410512443169e-05,
"left_calib": 4.011211152052761e-05,
"right_calib": 9.626135639469406e-05,
"horiz_calib": 5.154915297561473,
"vert_calib": 5.781762629317017,
"up_calib": 0.0003244282457463418,
"down_calib": 0.00029970494517137886,
"left_calib": 0.00020403260875036537,
"right_calib": 0.00023071106308969315,
"horiz_calib": 4.194653639146427,
"vert_calib": -3.9946225385830854,
"uJ_calib": 605.4608924473305,
"threshold": 1,
"threshold": 0,
"queue_length": 3000,
"xpos_all_x_pvname": "SAROP21-PBPS133:XPOS-ALL-HIST-X",
"xpos_all_y_pvname": "SAROP21-PBPS133:XPOS-ALL-HIST-Y",
@@ -54,4 +53,4 @@
"xpos_dif_w_pvname": "SAROP21-PBPS133:XPOS-DIF-HIST-W",
"ypos_dif_m_pvname": "SAROP21-PBPS133:YPOS-DIF-HIST-M",
"ypos_dif_w_pvname": "SAROP21-PBPS133:YPOS-DIF-HIST-W"
}
}
@@ -10,7 +10,6 @@
],
"mode": "PUB",
"function": "pbps.py",
"reload": true,
"no_client_timeout": 0,
"port": "9009",
"up": "SAROP21-CVME-PBPS2:Lnk9Ch4-DATA-SUM",
@@ -54,4 +53,4 @@
"xpos_dif_w_pvname": "SAROP21-PBPS138:XPOS-DIF-HIST-W",
"ypos_dif_m_pvname": "SAROP21-PBPS138:YPOS-DIF-HIST-M",
"ypos_dif_w_pvname": "SAROP21-PBPS138:YPOS-DIF-HIST-W"
}
}
@@ -0,0 +1,11 @@
{
"image_background_enable": false,
"image_background": null,
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
"image_slices": null,
"pipeline_type": "store",
"camera_name": "SAROP21-PPRM102",
"name": "SAROP21-PPRM102_ib"
}
@@ -10,6 +10,8 @@
"name": "SAROP21-PPRM102_proc",
"function": "bernina",
"mode": "PUSH",
"no_client_timeout": 0,
"port": "9016"
"multiprocessing": false,
"processing_threads": 0,
"thread_buffer_size": 5,
"no_client_timeout": 0
}
@@ -0,0 +1,11 @@
{
"image_background_enable": false,
"image_background": null,
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
"image_slices": null,
"pipeline_type": "store",
"camera_name": "SAROP21-PPRM138",
"name": "SAROP21-PPRM138_ib"
}
@@ -0,0 +1,57 @@
{
"pipeline_type": "stream",
"name": "SAROP31-PBPS149_proc",
"bsread_address": "",
"bsread_channels": [
"SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD0",
"SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD1",
"SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD2",
"SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD3",
"SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD4"
],
"mode": "PUSH",
"function": "pbps.py",
"no_client_timeout": 0,
"up": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD1",
"down": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD0",
"right": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD2",
"left": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD3",
"up_calib": 2.503673389597217e-05,
"down_calib": 2.421143360740676e-05,
"left_calib": 1.0534124791624477e-05,
"right_calib": 3.4071828866743713e-05,
"horiz_calib": 64.46583408724379,
"vert_calib": -43.52641852658788,
"uJ_calib": 605.9512700123181,
"threshold": 0,
"queue_length": 1000,
"xpos_all_x_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-X",
"xpos_all_y_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-Y",
"xpos_all_m_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-M",
"xpos_all_w_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-W",
"ypos_all_x_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-X",
"ypos_all_y_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-Y",
"ypos_all_m_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-M",
"ypos_all_w_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-W",
"xpos_evn_x_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-X",
"xpos_evn_y_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-Y",
"xpos_evn_m_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-M",
"xpos_evn_w_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-W",
"ypos_evn_x_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-X",
"ypos_evn_y_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-Y",
"ypos_evn_m_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-M",
"ypos_evn_w_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-W",
"xpos_odd_x_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-X",
"xpos_odd_y_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-Y",
"xpos_odd_m_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-M",
"xpos_odd_w_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-W",
"ypos_odd_x_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-X",
"ypos_odd_y_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-Y",
"ypos_odd_m_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-M",
"ypos_odd_w_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-W",
"xpos_dif_m_pvname": "SARFE10-PBPS053:XPOS-DIF-HIST-M",
"xpos_dif_w_pvname": "SARFE10-PBPS053:XPOS-DIF-HIST-W",
"ypos_dif_m_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-M",
"ypos_dif_w_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-W",
"port": "9011"
}
@@ -26,9 +26,8 @@
"processing_threads": 4,
"thread_buffer_size": 30,
"multiprocessing": true,
"reload": true,
"project_axis": 0,
"no_client_timeout": 0,
"port": "9003",
"threshold": 1000
}
}
@@ -1,6 +1,6 @@
{
"image_background_enable": "passive",
"image_background": "SATES21-CAMS154-M1_20220124_133832_927522",
"image_background": "SATES21-CAMS154-M1_20220311_183200_746851",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
@@ -18,7 +18,6 @@
],
"processing_threads": 4,
"thread_buffer_size": 30,
"reload": true,
"project_axis": 1,
"threshold": 5
}
}
@@ -16,9 +16,8 @@
370,
1540
],
"reload": true,
"processing_threads": 4,
"thread_buffer_size": 30,
"project_axis": 0,
"threshold": 5
}
}
@@ -0,0 +1,11 @@
{
"image_background_enable": false,
"image_background": null,
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
"image_slices": null,
"pipeline_type": "store",
"camera_name": "SATES31-CAMS187-RIXS1",
"name": "SATES31-CAMS187-RIXS1_ib"
}
@@ -0,0 +1,18 @@
{
"image_background_enable": false,
"image_background": null,
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
"image_slices": null,
"pipeline_type": "processing",
"camera_name": "SATES31-CAMS187-RIXS1",
"name": "SATES31-CAMS187-RIXS1_proc",
"function": "SATES31-CAMS187-RIXS1_proc",
"mode": "PUSH",
"copy": false,
"processing_threads": 4,
"thread_buffer_size": 30,
"spawn_send_thread": true,
"multiprocessing": true
}
@@ -6,7 +6,8 @@
"image_good_region": null,
"image_slices": null,
"pipeline_type": "processing",
"camera_name": "SARES20-CAMS142-M5",
"#camera_name": "SARES20-CAMS142-M5",
"camera_name": "SARES11-SPEC125-M1",
"name": "arrival_time_proc",
"bsread_address": "",
"bsread_channels": [
@@ -17,6 +18,5 @@
"mode": "PUSH",
"function": "arrival_time_proc",
"no_client_timeout": 0,
"port": "9008",
"dispatcher_disable_compression": true
}
}
@@ -1,12 +1,15 @@
{
"#SARES11-SPEC125-M2_psen_db": "SARES11-SPEC125-M2_psen_db1",
"#SARES11-SPEC125-M2_psen_ib": "SARES11-SPEC125-M2_psen_ib1",
"#SARES12-CAMS128-M1_psen_db": "SARES12-CAMS128-M1_psen_db",
"#SARES12-CAMS128-M1_psen_ib": "SARES12-CAMS128-M1_psen_ib",
"#SLAAR11-LCAM-C421_sp": "SLAAR11-LCAM-C421_sp",
"#SLAAR11-LCAM-C452_sp": "SLAAR11-LCAM-C452_sp",
"#test_stream": "test_stream",
"#testdb_ib": "testdb_ib",
"SARES11-SPEC125-M1_psen_db": "SARES11-SPEC125-M1_psen_db1",
"SARES11-SPEC125-M1_psen_ib": "SARES11-SPEC125-M1_psen_ib1",
"SARES11-SPEC125-M2_psen_db": "SARES11-SPEC125-M2_psen_db1",
"SARES11-SPEC125-M2_psen_ib": "SARES11-SPEC125-M2_psen_ib1",
"SARES11-SPEC125-M1_test": "SARES11-SPEC125-M1_test",
"SARES11-XMI125-C4P1_sp": "SARES11-XMI125-C4P1_sp",
"SARES11-XMI125-C4P2_sp": "SARES11-XMI125-C4P2_sp",
"SARES20-CAMS142-M1_psen_db": "SARES20-CAMS142-M1_psen_db1",
@@ -29,15 +32,21 @@
"SAROP21-ATT01_proc": "SAROP21-ATT01_proc",
"SAROP21-PBPS133_proc": "SAROP21-PBPS133_proc",
"SAROP21-PBPS138_proc": "SAROP21-PBPS138_proc",
"SAROP21-PPRM102_ib": "SAROP21-PPRM102_ib",
"SAROP21-PPRM102_proc": "SAROP21-PPRM102_proc",
"SAROP21-PPRM138_ib": "SAROP21-PPRM138_ib",
"SAROP21-PPRM138_proc": "SAROP21-PPRM138_proc",
"SAROP31-PBPS149_proc": "SAROP31-PBPS149_proc",
"SATES21-CAMS-PATT1_spec_db": "SATES21-CAMS-PATT1_spec_db",
"SATES21-CAMS-PATT1_spec_ib": "SATES21-CAMS-PATT1_spec_ib",
"SATES21-CAMS154-M1_spec_db": "SATES21-CAMS154-M1_spec_db",
"SATES21-CAMS154-M1_spec_ib": "SATES21-CAMS154-M1_spec_ib",
"SATES24-CAMS161-M1_spec_db": "SATES24-CAMS161-M1_spec_db",
"SATES24-CAMS161-M1_spec_ib": "SATES24-CAMS161-M1_spec_ib",
"SATES31-CAMS187-RIXS1_ib": "SATES31-CAMS187-RIXS1_ib",
"SATES31-CAMS187-RIXS1_proc": "SATES31-CAMS187-RIXS1_proc",
"SATOP31-PMOS132-2D_pmos": "SATOP31-PMOS132-2D_pmos",
"SATOP31-PMOS132-2D_store": "SATOP31-PMOS132-2D_store",
"jungfrau_proc": "jungfrau_proc"
"jungfrau_proc": "jungfrau_proc",
"test_str": "test_str"
}
+27 -12
View File
@@ -31,7 +31,7 @@
"instances": [
"SARFE10-PSSS059_psss:8889",
"SARFE10-PSSS059_store:8890",
"SARFE10-PSSS059_psss_avg:9005"
"#SARFE10-PSSS059_psss_avg:9005"
]
},
"http://sf-daqsync-03.psi.ch:8881": {
@@ -46,11 +46,12 @@
"SARFE10-PBPS053_proc:9004",
"SAROP21-ATT01_proc:9003",
"test_stream:9006",
"SARFE10-PSSS059_psss_avg:9012",
"SAROP21-PBPS138_proc:9009",
"SAROP11-PBPS117_proc:9007",
"SAROP31-PBPS149_proc:9011",
"SAROP11-PBPS122_proc:9010",
"SAROP21-PBPS133_proc:9008",
"SAROP21-PPRM102_proc:9016",
"SATOP31-PMOS132-2D_sp",
"SATOP31-PMOS132-2D_pmos:9001",
"SATOP31-PMOS132-2D_store:9002"
@@ -90,10 +91,11 @@
"instances": [
"SARES11-SPEC125-M1_psen_ib:9000",
"SARES11-SPEC125-M1_psen_db:9001",
"SARES11-SPEC125-M2_psen_ib:9010",
"SARES11-SPEC125-M2_psen_db:9011",
"SARES12-CAMS128-M1_psen_ib:9002",
"SARES12-CAMS128-M1_psen_db:9003"
"SARES11-SPEC125-M1_test:9009",
"#SARES11-SPEC125-M2_psen_ib:9010",
"#SARES11-SPEC125-M2_psen_db:9011",
"#SARES12-CAMS128-M1_psen_ib:9002",
"#SARES12-CAMS128-M1_psen_db:9003"
]
},
"http://sf-daqsync-06.psi.ch:8881": {
@@ -106,6 +108,7 @@
"SARES20-PROF142-M1",
"SARES20-PROF141-M1",
"SARES20-PROF146-M1",
"SAROP21-PPRM102",
"SAROP21-PPRM138",
"SARES20-DSDPPRM"
],
@@ -116,39 +119,51 @@
"SARES20-CAMS142-M4_psen_ib:9000",
"SARES20-CAMS142-M4_psen_db:9001",
"SARES20-CAMS142-M5_psen_ib:9010",
"SAROP21-PPRM138_ib:9004",
"SARES20-CAMS142-M5_psen_db:9011",
"SARES20-PROF142-M1_sp",
"SARES20-PROF142-M1_ib:9005",
"SARES20-PROF142-M1_proc:9017",
"SAROP21-PPRM102_ib:9006",
"SAROP21-PPRM102_proc:9007",
"SAROP21-PPRM138_proc:9015",
"SAROP21-PPRM138_sp",
"SARES20-PROF141-M1_sp",
"SARES20-PROF141-M1_proc:9016",
"#SARES20-PROF141-M1_proc:9016",
"SARES20-PROF141-M1_ib:9013",
"SARES20-PROF146-M1_sp",
"SARES20-PROF146-M1_proc:9018",
"SARES20-DSDPPRM_proc:9014",
"arrival_time_proc:9008",
"#arrival_time_proc:9008",
"test_arrival"
]
},
"http://sf-daqsync-08.psi.ch:8881": {
"cameras": [
"simulation_2",
"simulation"
"simulation",
"SARES30-CAMS156-XE"
],
"enabled": true,
"expanding": false,
"instances": [
"simulation_2_sp",
"simulation2_sp"
"simulation2_sp",
"SARES30-CAMS156-XE_sp",
"test_str:9000"
]
},
"http://sf-daqsync-09.psi.ch:8881": {
"cameras": [],
"cameras": [
"SATES31-CAMS187-RIXS1"
],
"enabled": true,
"expanding": false,
"instances": []
"instances": [
"SATES31-CAMS187-RIXS1_sp",
"SATES31-CAMS187-RIXS1_proc:9000",
"SATES31-CAMS187-RIXS1_ib:9001"
]
},
"http://sf-daqsync-10.psi.ch:8881": {
"cameras": [],
@@ -0,0 +1,133 @@
import sys
import json
from logging import getLogger
from scipy.interpolate import interp1d
from scipy import signal
from scipy.ndimage import gaussian_filter1d
from scipy.ndimage import convolve1d
import numpy as np
_logger = getLogger(__name__)
# Alvra spectral encoder constants/waveforms
px2fs = 1.91 # calibration from ...
lambdas = 528.34 + 0.0261*np.arange(0,2048) # calibration from 2021-10-06
nus = 299792458 / (lambdas * 10**-9) # frequency space, uneven
nus_new = np.linspace(nus[0], nus[-1], num=2048, endpoint=True) # frequency space, even
filters = {
"YAG": np.concatenate((np.ones(20),signal.tukey(40)[20:40], np.zeros(2008), np.zeros(2048))) # back timetool YAG
}
# Functions for image analysis and spectral encoding processing
def get_roi_projection(image, roi, axis):
x_start, x_stop, y_start, y_stop = roi
cropped = image[y_start:y_stop, x_start:x_stop]
project = cropped.sum(axis=axis)
return project.astype("int64")
def interpolate(xold, xnew, vals):
"""
Interpolate vals from xold to xnew
"""
interp = interp1d(xold, vals, kind='cubic')
return interp(xnew)
def fourier_filter(vals, filt):
"""
Fourier transform, filter, inverse fourier transform, take the real part
"""
vals = np.hstack((vals, np.zeros_like(vals))) # pad
transformed = np.fft.fft(vals)
filtered = transformed * filt
inverse = np.fft.ifft(filtered)
invreal = 2 * np.real(inverse)
return invreal
def edge(filter_name, backgrounds, signals, peakback):
"""
returns:
edge positions determined from argmax of peak traces, converted to fs
edge amplitudes determined from the amax of the peak traces
the actual peak traces, which are the derivative of signal traces (below)
the raw signal traces, without any processing or smoothing except for the Fourier filter applied to remove the etalon
"""
ffilter = filters[filter_name]
# background normalization
sig_norm = (signals / backgrounds) - 1
# interpolate to get evenly sampled in frequency space
sig_interp = interpolate(nus, nus_new, sig_norm)
# Fourier filter
sig_filtered = fourier_filter(sig_interp, ffilter)
# interpolate to get unevenly sampled in frequency space (back to original wavelength space)
sig_uninterp = interpolate(nus_new, nus, sig_filtered[..., 0:2048])
# peak via the derivative
sig_deriv = gaussian_filter1d(sig_uninterp, 50, order=1)
sig_deriv -= peakback
peak_pos = 1024 - (np.argmax(sig_deriv[500:1500], axis=-1) + 500)
peak_pos *= px2fs
peak_amp = 15000 * np.amax(sig_deriv[500:1500], axis=-1) # 15000 is the conversion factor to get the correct %
return peak_pos, peak_amp, sig_deriv, sig_uninterp
def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None):
try:
"""
takes an image, processes the signal, sends out the raw data and processed results
"""
image = image.astype(int)
camera_name = parameters["camera_name"]
background = parameters.get("background_data")
background_name = parameters.get("image_background")
background_mode = parameters.get("image_background_enable")
roi_signal = parameters.get("roi_signal")
project_axis = parameters.get("project_axis", 0)
# maintain the structure of processing_parameters
background_shape = None
# maintain the structure of res
projection_signal = projection_background = None
try:
if roi_signal is not None:
projection_background = get_roi_projection(background, roi_signal, project_axis)
projection_signal = get_roi_projection(image, roi_signal, project_axis)
peak_pos, peak_amp, sig_deriv, sig_uninterp = edge("YAG", projection_background, projection_signal, 0)
except Exception as e:
lineno = sys.exc_info()[2].tb_lineno
tn = type(e).__name__
status = f"Error in line number {lineno}: {tn}: {e}"
raise e
else:
status = "OK"
processing_parameters = {
"status": status,
"background_name": background_name,
"roi_signal": roi_signal
}
processing_parameters = json.dumps(processing_parameters)
res = {
camera_name + ".processing_parameters": processing_parameters,
camera_name + ".projection_signal": projection_signal,
camera_name + ".projection_background": projection_background,
camera_name + ".edge_position": peak_pos,
camera_name + ".edge_amplitude": peak_amp,
camera_name + ".edge_derivative": sig_deriv,
camera_name + ".edge_raw": sig_uninterp
}
return res
except:
_logger.exception("Error in processing function")
raise
@@ -1,4 +1,5 @@
from collections import deque
import logging
from logging import getLogger
from scipy.signal import savgol_filter
import numpy as np
@@ -68,55 +69,73 @@ def process(data, pulse_id, timestamp, params):
if not initialized:
initialize(params)
output = {}
try:
# Read stream inputs
prof_sig = data[params["prof_sig"]]
if prof_sig is None:
#TODO
return
prof_sig = prof_sig.astype('l')
prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3)
events = data[params["events"]]
if events[dark_event] and use_dark:
buffer.append(prof_sig)
if prof_sig_savgol.ndim == 1:
prof_sig_savgol = prof_sig_savgol[np.newaxis, :]
if events[dark_event] and use_dark:
buffer_savgol.append(prof_sig_savgol)
edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan}
else:
if events[fel_on_event] and buffer_savgol:
prof_sig_norm = prof_sig_savgol / np.mean(buffer_savgol, axis=0)
edge_results = find_edge(prof_sig_norm, step_length, edge_type, refinement)
elif events[fel_on_event] and not use_dark:
edge_results = find_edge(prof_sig_savgol, step_length, edge_type, refinement)
else:
edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan}
# calib edge
edge_results["arrival_time"] = np.polyval(calib,edge_results["edge_pos"])
# sort edge by parity
if pulse_id %2 ==0:
edge_results["arrival_time_even"] = np.nan if np.isnan(edge_results["edge_pos"]) else edge_results["edge_pos"] * calib
edge_results["arrival_time_odd"] = np.nan
else:
edge_results["arrival_time_even"] = np.nan
edge_results["arrival_time_odd"] = np.nan if np.isnan(edge_results["edge_pos"]) else edge_results["edge_pos"] * calib
# push pulse ID for debuging
edge_results["pulse_id"] = pulse_id
# Set bs outputs
for key, value in edge_results.items():
if key in ("pulse_id", "arrival_time", "edge_pos", "xcorr_ampl"):
output[f"{device}:{key}"] = value
# Read stream inputs
prof_sig = data[params["prof_sig"]]
prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3)
events = data[params["events"]]
if events[dark_event] and use_dark:
buffer.append(prof_sig)
if prof_sig_savgol.ndim == 1:
prof_sig_savgol = prof_sig_savgol[np.newaxis, :]
if events[dark_event] and use_dark:
buffer_savgol.append(prof_sig_savgol)
edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan}
else:
if events[fel_on_event] and buffer_savgol:
prof_sig_norm = prof_sig_savgol / np.mean(buffer_savgol, axis=0)
edge_results = find_edge(prof_sig_norm, step_length, edge_type, refinement)
elif events[fel_on_event] and not use_dark:
edge_results = find_edge(prof_sig_savgol, step_length, edge_type, refinement)
else:
edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan}
# calib edge
edge_results["arrival_time"] = edge_results["edge_pos"] * calib
# Set bs outputs
for key, value in edge_results.items():
output[f"{device}:{key}"] = value
output[f"{device}:raw_wf"] = prof_sig
output[f"{device}:raw_wf_savgol"] = prof_sig_savgol
if events[dark_event]:
output[f"{device}:dark_wf"] = prof_sig
output[f"{device}:dark_wf_savgol"] = prof_sig_savgol
else:
output[f"{device}:dark_wf"] = np.nan
output[f"{device}:dark_wf_savgol"] = np.nan
if buffer:
output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0)
else:
output[f"{device}:avg_dark_wf"] = np.nan
if buffer_savgol:
output[f"{device}:avg_dark_wf_savgol"] = np.mean(buffer_savgol, axis=0)
else:
output[f"{device}:avg_dark_wf_savgol"] = np.nan
return output
output[f"{device}:raw_wf"] = prof_sig
output[f"{device}:raw_wf_savgol"] = prof_sig_savgol
if events[dark_event]:
output[f"{device}:dark_wf"] = prof_sig
output[f"{device}:dark_wf_savgol"] = prof_sig_savgol
else:
output[f"{device}:dark_wf"] = np.zeros(len(prof_sig), prof_sig.dtype) #np.nan
output[f"{device}:dark_wf_savgol"] = np.zeros(len(prof_sig), prof_sig_savgol.dtype) #np.nan
if buffer:
output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0)
else:
output[f"{device}:avg_dark_wf"] = np.nan
if buffer_savgol:
output[f"{device}:avg_dark_wf_savgol"] = np.mean(buffer_savgol, axis=0)
else:
output[f"{device}:avg_dark_wf_savgol"] = np.nan
return output
except Exception as e:
#_logger.debug("Error in " + __name__ + ": "+ str(e))
logging.exception("message")
#raise
return None
@@ -0,0 +1,118 @@
import numpy as np
#from skimage.feature import peak_local_max
#from scipy.optimize import curve_fit
from cam_server.pipeline.data_processing import functions, processor
initialized = False
prefix=None
curvature=None
def initialize(parameters, image):
global initialized, prefix, curvature
prefix = parameters["camera_name"]+":"
curv_pars = [6.57905502e-05, -1.06989268e-01, 1.58730770e+02]
xxx = np.arange(image.shape[0])
curvature = xxx ** 2 * curv_pars[0] + xxx * curv_pars[1] + curv_pars[2]
curvature -= np.min(curvature)
initialized = True
def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None):
if not initialized:
initialize(parameters, image)
#ret = processor.process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata)
ret = dict()
#image = np.array(image) #Remove this copy if pipeline parameter "copy" is set to true or multiprocessed
Spectrum = evt_list = SPC = SPC_wgt = SPC_gauss = None
try:
# 1 Apply Threshold
low, high = 128, 400 # threshold values
mask = (image < high) * (image > low) # image is the single frame from the camera
mask = np.logical_not(mask)
image[mask] = 0
# 2 Correct Curvature
#Do only once in initialization
"""
curv_pars = [6.57905502e-05, -1.06989268e-01, 1.58730770e+02]
xxx = np.arange(image.shape[0])
curvature = xxx ** 2 * curv_pars[0] + xxx * curv_pars[1] + curv_pars[2]
curvature -= np.min(curvature)
"""
image_corr = np.zeros(image.shape)
for j in range(image.shape[0]):
image_corr[j] = np.roll(image[j], -int(curvature[j]))
# 3 Binning
Spectrum = np.sum(image_corr, axis=0)
"""
# 4 SPC
def gauss2D(M, mx, my, sx, sy, amp):
x, y = M
den = 2 * np.pi * sx * sy
exparg = -(((x - mx) / sx) ** 2 + ((y - my) / sy) ** 2) / 2.
return amp * np.exp(exparg) / den
size = 10 # crop size around event
evt_list = np.array([])
tot_evt = 0
bounds_low = [int(size * 0.5) - 3, int(size * 0.5) - 3, 0.4, 0.4, 1]
bounds_high = [int(size * 0.5) + 3, int(size * 0.5) + 3, 5, 5, 1e5]
xx_c, yy_c = np.meshgrid(np.arange(size), np.arange(size))
xx, yy = np.meshgrid(np.arange(image_corr.shape[1]), np.arange(image_corr.shape[0]))
coords = peak_local_max(image_corr, min_distance=6) # Identify location of event
for e in range(len(coords)):
tot_evt += 1
y0, x0 = coords.astype(int)[e]
extr = image_corr[(y0 - int(size * 0.5)):(y0 + int(size * 0.5)),
(x0 - int(size * 0.5)):(x0 + int(size * 0.5))] # crop the frame
pars = [int(size * 0.5), int(size * 0.5), 1.5, 1.5, 100]
pars, pcov = curve_fit(gauss2D, np.vstack((xx_c.ravel(), yy_c.ravel())), extr.ravel(), p0=pars,
bounds=(bounds_low, bounds_high)) # fit the event
pars[0] = x0 - int(size * 0.5) + pars[0]
pars[1] = y0 - int(size * 0.5) + pars[1]
evt_list = np.append(evt_list, np.append([int(tot_evt)], pars))
evt_list = np.reshape(evt_list, (tot_evt, 6))
# 5 SPC spectra
image_SPC = np.zeros(image.shape)
image_SPC_weighted = np.zeros(image.shape)
image_gauss = np.zeros(image.shape)
for evt in range(tot_evt):
if ((evt_list[evt, 3] > 0.7) & (evt_list[evt, 4] > 0.7)): # filter out fake events
cx, cy = evt_list[evt, 2], evt_list[evt, 1]
image_SPC_weighted[int(cx), int(cy)] += evt_list[evt, 5]
image_SPC[int(cx), int(cy)] += 1
pars = evt_list[evt][1:]
image_gauss += (gauss2D([xx, yy], *pars))
SPC = np.sum(image_SPC, axis=0)
SPC_wgt = np.sum(image_SPC_weighted, axis=0)
SPC_gauss = np.sum(image_gauss, axis=0)
"""
except Exception as e:
_logger.error("Error in processing function: " + str(e))
#return values
ret[prefix+"Spectrum"]=Spectrum
ret[prefix+"evt_list"]=evt_list
ret[prefix+"SPC"]=SPC
ret[prefix+"SPC_wgt"]=SPC_wgt
ret[prefix+"SPC_gauss"]=SPC_gauss
return ret
+1 -1
View File
@@ -5,7 +5,7 @@ from cam_server.pipeline.data_processing import functions, processor
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_center_of_mass","x_fwhm","x_rms","x_fit_amplitude", "x_fit_mean","x_fit_offset","x_fit_standard_deviation","x_profile"]
channels = ["intensity","x_center_of_mass","x_fwhm","x_rms","x_fit_amplitude", "x_fit_mean","x_fit_offset","x_fit_standard_deviation","x_profile","y_center_of_mass","y_fwhm","y_rms","y_fit_amplitude", "y_fit_mean","y_fit_offset","y_fit_standard_deviation","y_profile"]
prefix = parameters["camera_name"]
for c in channels:
ret[prefix+":"+c] = r[c]
@@ -19,7 +19,7 @@ def get_roi_x_profile(image, roi):
#_logger.warning("----- START ---- ")
#pid = None
#sent=None
def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, image_background_array=None):
def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None):
#global pid, sent
#if pid is not None:
# if pid != sent:
@@ -30,6 +30,11 @@ def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, image_
processed_data = dict()
if bsdata is not None:
processed_data.update(bsdata)
event = processed_data.get("SAR-CVME-TIFALL4:EvtSet", None)
image_property_name = parameters["camera_name"]
roi_signal = parameters.get("roi_signal", DEFAULT_ROI_SIGNAL)
roi_background = parameters.get("roi_background", DEFAULT_ROI_BACKGROUND)
+1
View File
@@ -2,4 +2,5 @@ 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)
ret["value"]=3.0
return ret