This commit is contained in:
root
2023-09-28 09:06:10 +02:00
parent 3dd4da67a9
commit 3a50997204
85 changed files with 1100 additions and 537 deletions

View File

@@ -24,5 +24,9 @@
"buffer_size": 0,
"forwarder_port": 9000,
"debug": true,
"protocol": "tcp"
"protocol": "tcp",
"group": [
"Photonics",
"Alvra"
]
}

View File

@@ -11,7 +11,7 @@
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_x": true,
"mirror_y": false,
"rotate": 0,
"source_type": "bsread",
@@ -22,5 +22,9 @@
"buffer_size": 0,
"forwarder_port": 9010,
"debug": true,
"protocol": "tcp"
"protocol": "tcp",
"group": [
"Photonics",
"Alvra"
]
}

View File

@@ -7,6 +7,10 @@
"name": "SARES11-XMI125-C4P1",
"protocol": "tcp",
"source": "SARES11-XMI125-C4P1",
"group": [
"Photonics",
"Alvra"
],
"_forwarder_port": 9005,
"debug": true
}

View File

@@ -7,5 +7,9 @@
"image_background": null,
"source_type": "epics",
"source": "SARES11-XPR125-C4P2",
"name": "SARES11-XPR125-C4P2"
"name": "SARES11-XPR125-C4P2",
"group": [
"Photonics",
"Alvra"
]
}

View File

@@ -18,5 +18,9 @@
"image_background": null,
"source_type": "epics",
"name": "SARES11-XPR125-C4P3",
"source": "SARES11-XPR125-C4P3"
"source": "SARES11-XPR125-C4P3",
"group": [
"Photonics",
"Alvra"
]
}

View File

@@ -0,0 +1,29 @@
{
"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": 90,
"roi": null,
"image_background": null,
"source_type": "epics",
"name": "SARES11-XPR125-C4P4",
"source": "SARES11-XPR125-C4P4",
"group": [
"Photonics",
"Alvra"
],
"alias": [
"MJet Observer"
]
}

View File

@@ -8,5 +8,9 @@
"source_type": "bsread",
"name": "SARES12-XPR128-C4F1",
"source": "SARES12-XPR128-C4F1",
"_forwarder_port": 9004
"_forwarder_port": 9004,
"group": [
"Photonics",
"Alvra"
]
}

View File

@@ -1,17 +1,17 @@
{
"camera_calibration": {
"reference_marker": [
1141,
1025,
1242,
1127
714,
483,
716,
485
],
"reference_marker_width": 23.5,
"reference_marker_height": 21.2,
"reference_marker_width": 0.9501187648456056,
"reference_marker_height": 0.9690721649484536,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": true,
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
@@ -21,7 +21,7 @@
"name": "SARES20-CAMS142-C1",
"source": "SARES20-CAMS142-C1",
"alias": [
"SAMPLECAM_FRONT (SARES20-CAMS142-C1)"
"SAMPLECAM_INLINE"
],
"group": [
"Photonics",

View File

@@ -24,7 +24,5 @@
"Photonics",
"Bernina"
],
"alias": [
"SAMPLECAM_BACK_RACKS (SARES20-CAMS142-C2)"
]
"alias": []
}

View File

@@ -20,9 +20,7 @@
"prefix": "SARES20-CAMS142-C3",
"name": "SARES20-CAMS142-C3",
"source": "SARES20-CAMS142-C3",
"alias": [
"SAMPLECAM_BACK_DOOR (SARES20-CAMS142-C3)"
],
"alias": [],
"group": [
"Photonics",
"Bernina"

View File

@@ -24,7 +24,5 @@
"Photonics",
"Bernina"
],
"alias": [
"SAMPLECAM_SIDEVIEW (SARES20-CAMS142-M2)"
]
"alias": []
}

View File

@@ -25,6 +25,6 @@
"Bernina"
],
"alias": [
"SAMPLECAM_INLINE (SARES20-CAMS142-M3)"
"CAMERA_BSSS (SARES20-CAMS142-M3)"
]
}

View File

@@ -1,13 +1,13 @@
{
"camera_calibration": {
"reference_marker": [
378,
369,
515,
550
501,
463,
503,
465
],
"reference_marker_width": 648.0,
"reference_marker_height": 854.0,
"reference_marker_width": 9.459854014598541,
"reference_marker_height": 9.43646408839779,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
@@ -16,10 +16,11 @@
"rotate": 3,
"roi": null,
"image_background": null,
"source_type": "epics",
"source_type": "bsread",
"prefix": "SARES20-DSDPPRM",
"name": "SARES20-DSDPPRM",
"source": "SARES20-DSDPPRM",
"forwarder_port": 9020,
"group": [
"Photonics",
"Bernina"

View File

@@ -1,13 +1,13 @@
{
"camera_calibration": {
"reference_marker": [
203,
98,
271,
157
345,
284,
347,
286
],
"reference_marker_width": 200.0,
"reference_marker_height": 174.0,
"reference_marker_width": 5.9405940594059405,
"reference_marker_height": 5.9405940594059405,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
@@ -20,8 +20,6 @@
"prefix": "SARES20-PROF141-M1",
"name": "SARES20-PROF141-M1",
"source": "SARES20-PROF141-M1",
"connections": 1,
"buffer_size": 0,
"forwarder_port": 9013,
"group": [
"Photonics",

View File

@@ -1,9 +1,9 @@
{
"camera_calibration": {
"reference_marker": [
164,
74,
37,
564,
479,
431
],
"reference_marker_width": 300.0,

View File

@@ -26,5 +26,6 @@
"alias": [
"PROF_MONO (SAROP21-PPRM113)"
],
"source": "SAROP21-PPRM113"
"source": "SAROP21-PPRM113",
"forwarder_port": 9040
}

View File

@@ -0,0 +1,24 @@
{
"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": "SATES21-CAMS154-GIGE10",
"source": "SATES21-CAMS154-GIGE10",
"group": [
"Photonics",
"Maloja"
]
}

View File

@@ -0,0 +1,24 @@
{
"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": "SATES21-CAMS154-GIGE11",
"source": "SATES21-CAMS154-GIGE11",
"group": [
"Photonics",
"Maloja"
]
}

View File

@@ -0,0 +1,24 @@
{
"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": "SATES21-CAMS154-GIGE12",
"source": "SATES21-CAMS154-GIGE9",
"group": [
"Photonics",
"Maloja"
]
}

View File

@@ -14,7 +14,8 @@
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"source_type": "epics",
"source_type": "bsread",
"protocol": "tcp",
"name": "SATES21-CAMS154-GIGE7",
"source": "SATES21-CAMS154-GIGE7:RF",
"group": [

View File

@@ -14,9 +14,11 @@
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"source_type": "epics",
"source_type": "bsread",
"protocol": "tcp",
"name": "SATES21-CAMS154-GIGE8",
"source": "SATES21-CAMS154-GIGE8",
"forwarder_port": 9040,
"group": [
"Photonics",
"Maloja"

View File

@@ -0,0 +1,24 @@
{
"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": "SATES21-CAMS154-GIGE9",
"source": "SATES21-CAMS154-GIGE9",
"group": [
"Photonics",
"Maloja"
]
}

View File

@@ -1,12 +1,23 @@
{
"camera_calibration": null,
"camera_calibration": {
"reference_marker": [
515,
101,
1440,
1022
],
"reference_marker_width": 5000.0,
"reference_marker_height": 5000.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",
"forwarder_port": 10005,
"forwarder_port": 9005,
"source": "SATES30-CAMS182-GIGE2",
"name": "SATES30-CAMS182-GIGE2",
"prefix": "SATES30-CAMS182-GIGE2",

View File

@@ -1,5 +1,16 @@
{
"camera_calibration": null,
"camera_calibration": {
"reference_marker": [
312,
157,
378,
292
],
"reference_marker_width": 5000.0,
"reference_marker_height": 7000.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": true,
"mirror_y": false,
"rotate": 0,

View File

@@ -23,7 +23,7 @@
"connections": 2,
"buffer_size": 0,
"buffer_logs": false,
"protocol": "ipc",
"protocol": "tcp",
"forwarder_port": 9001,
"group": [
"Photonics",

View File

@@ -1,19 +1,21 @@
{
"camera_calibration": {
"reference_marker": [
61,
9,
1136,
1197
298,
410,
449,
570
],
"reference_marker_width": 16000.0,
"reference_marker_height": 16000.0,
"reference_marker_width": 2000.0,
"reference_marker_height": 2000.0,
"angle_horizontal": 15.8,
"angle_vertical": 0.0
},
"mirror_x": true,
"mirror_y": true,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "bsread",
"source": "SINDI02-DSCR075",
"name": "SINDI02-DSCR075",

View File

@@ -1,5 +1,16 @@
{
"camera_calibration": null,
"camera_calibration": {
"reference_marker": [
1281,
1078,
1283,
1080
],
"reference_marker_width": 11.93288590604027,
"reference_marker_height": 11.93,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
@@ -9,8 +20,12 @@
"source": "SLAAR21-LCAM-C532",
"name": "SLAAR21-LCAM-C532",
"group": [
"Photonics",
"Bernina",
"Laser"
],
"alias": [],
"alias": [
"SAMPLECAM_SIDEVIEW (SLAAR21-LCAM-C532)"
],
"prefix": "SLAAR21-LCAM-C532"
}

View File

@@ -3,6 +3,8 @@
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "bsread",
"name": "SLAAR21-LCAM-CT1C1",
"protocol": "tcp",
@@ -12,5 +14,6 @@
"Laser",
"Bernina"
],
"_forwarder_port": 9030
"_forwarder_port": 9030,
"alias": []
}

View File

@@ -3,6 +3,8 @@
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "bsread",
"name": "SLAAR21-LCAM-CT1C2",
"protocol": "tcp",
@@ -12,5 +14,6 @@
"Laser",
"Bernina"
],
"_forwarder_port": 9032
"_forwarder_port": 9032,
"alias": []
}

View File

@@ -0,0 +1,28 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
1440,
1251
],
"reference_marker_width": 7488.0,
"reference_marker_height": 6505.2,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"source": "SSL-LCAM-C0101:RF",
"prefix": "SSL-LCAM-C0101",
"name": "SSL-LCAM-C0101",
"group": [
"Laser",
"SSL1"
],
"alias": []
}

View File

@@ -0,0 +1,28 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
896,
900
],
"reference_marker_width": 4659.0,
"reference_marker_height": 4680.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"source": "SSL-LCAM-C0102:RF",
"prefix": "SSL-LCAM-C0102",
"name": "SSL-LCAM-C0102",
"group": [
"Laser",
"SSL1"
],
"alias": []
}

View File

@@ -0,0 +1,28 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
300,
300
],
"reference_marker_width": 1560.0,
"reference_marker_height": 1560.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"source": "SSL-LCAM-C0902:RF",
"prefix": "SSL-LCAM-C0902",
"name": "SSL-LCAM-C0902",
"group": [
"Laser",
"SSL1"
],
"alias": []
}

View File

@@ -0,0 +1,26 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
480,
480
],
"reference_marker_width": 2496.0,
"reference_marker_height": 2496.0,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"source_type": "epics",
"source": "SSL-LCAM-C0903:RF",
"prefix": "SSL-LCAM-C0903",
"name": "SSL-LCAM-C0903",
"group": [
"Laser",
"SSL1"
],
"alias": []
}

View File

@@ -0,0 +1,28 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
1984,
1264
],
"reference_marker_width": 10316.0,
"reference_marker_height": 6572.2,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"source": "SSL-LCAM-C1201:RF",
"prefix": "SSL-LCAM-C1201",
"name": "SSL-LCAM-C1201",
"group": [
"Laser",
"SSL1"
],
"alias": []
}

View File

@@ -0,0 +1,28 @@
{
"camera_calibration": {
"reference_marker": [
0,
0,
1984,
1264
],
"reference_marker_width": 10316.0,
"reference_marker_height": 6572.2,
"angle_horizontal": 0.0,
"angle_vertical": 0.0
},
"mirror_x": false,
"mirror_y": false,
"rotate": 0,
"roi": null,
"image_background": null,
"source_type": "epics",
"source": "SSL-LCAM-C1202:RF",
"prefix": "SSL-LCAM-C1202",
"name": "SSL-LCAM-C1202",
"group": [
"Laser",
"SSL1"
],
"alias": []
}

View File

@@ -10,6 +10,8 @@
"SARES20-CAMS142-M1": "SARES20-CAMS142-M1",
"SARES20-CAMS142-M2": "SARES20-CAMS142-M2",
"SARES20-CAMS142-M5": "SARES20-CAMS142-M5",
"SARES20-DSDPPRM": "SARES20-DSDPPRM",
"SARES20-PROF142-M1": "SARES20-PROF142-M1",
"SARES30-CAMS156-XE": "SARES30-CAMS156-XE",
"SARFE10-PPRM064": "SARFE10-PPRM064",
"SARFE10-PSSS059": "SARFE10-PSSS059",
@@ -17,6 +19,7 @@
"SAROP31-PPRM150": "SAROP31-PPRM150",
"SATBD02-DSCR050": "SATBD02-DSCR050",
"SATES21-CAMS-PATT1": "SATES21-CAMS-PATT1",
"SATES21-CAMS154-GIGE8": "SATES21-CAMS154-GIGE8",
"SATES21-CAMS154-M1": "SATES21-CAMS154-M1",
"SATES24-CAMS161-M1": "SATES24-CAMS161-M1",
"SATES30-CAMS182-GIGE1": "SATES30-CAMS182-GIGE1",

View File

@@ -57,7 +57,8 @@
"instances": [
"SATES21-CAMS154-M1",
"SATES24-CAMS161-M1",
"SATES21-CAMS-PATT1"
"SATES21-CAMS-PATT1",
"SATES21-CAMS154-GIGE8"
]
},
"http://sf-daqsync-13.psi.ch:8880": {
@@ -90,7 +91,8 @@
"SAROP21-PPRM133",
"SLAAR21-LCAM-CS842",
"SLAAR21-LCAM-CT1C1",
"SLAAR21-LCAM-CT1C2"
"SLAAR21-LCAM-CT1C2",
"SARES20-DSDPPRM"
]
},
"http://sf-daqsync-15.psi.ch:8880": {
@@ -99,7 +101,7 @@
"instances": [
"SATES31-CAMS187-RIXS1",
"SATES30-CAMS182-GIGE1",
"#SATES30-CAMS182-GIGE2",
"SATES30-CAMS182-GIGE2",
"SATES30-RIXS-CAM01"
]
},
@@ -116,7 +118,7 @@
"enabled": true,
"expanding": false,
"instances": [
"SATES30-CAMS182-GIGE2"
"#SATES30-CAMS182-GIGE2"
]
},
"http://sf-daqsync-18.psi.ch:8880": {

View File

@@ -3,7 +3,7 @@
"reference_marker": [
197,
173,
1063,
1157,
793
],
"reference_marker_width": 30000.0,

View File

@@ -1,6 +1,6 @@
{
"image_background_enable": "passive",
"image_background": "SARES11-SPEC125-M1_20230720_174833_742259",
"image_background": "SARES11-SPEC125-M1_20230817_171138_886383",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,

View File

@@ -8,5 +8,5 @@
"pipeline_type": "processing",
"camera_name": "SARES11-SPEC125-M2",
"name": "SARES11-SPEC125-M2_sp",
"max_frame_rate": 5.1
}
"max_frame_rate": 15.0
}

View File

@@ -0,0 +1,16 @@
{
"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": "SARES11-XPR125-C4P4",
"name": "SARES11-XPR125-C4P4_sp",
"rotation": {
"mode": "ortho",
"angle": 90.0,
"order": 1
}
}

View File

@@ -8,6 +8,6 @@
"pipeline_type": "processing",
"camera_name": "SARES20-DSDPPRM",
"name": "SARES20-DSDPPRM_proc",
"function": "bernina",
"function": "pprm_simple",
"mode": "PUSH"
}

View File

@@ -8,10 +8,9 @@
"pipeline_type": "processing",
"camera_name": "SARES20-PROF141-M1",
"name": "SARES20-PROF141-M1_proc",
"_function": "bernina",
"function": "test_pprm.py",
"create_header": "once",
"block": false,
"mode": "PUSH",
"reload": true
"function": "pprm.py",
"processing_threads": 3,
"thread_buffer_size": 20,
"send_buffer_size": 50,
"mode": "PUSH"
}

View File

@@ -8,9 +8,9 @@
"pipeline_type": "processing",
"camera_name": "SARES20-PROF142-M1",
"name": "SARES20-PROF142-M1_proc",
"function": "bernina",
"processing_threads": 3,
"thread_buffer_size": 20,
"send_buffer_size": 50,
"mode": "PUSH"
"function": "pprm_simple.py",
"mode": "PUSH",
"no_client_timeout": 0,
"port": "9017",
"reload": true
}

View File

@@ -17,12 +17,12 @@
"down": "SARFE10-CVME-PHO6212:Lnk9Ch13-DATA-SUM",
"right": "SARFE10-CVME-PHO6212:Lnk9Ch14-DATA-SUM",
"left": "SARFE10-CVME-PHO6212:Lnk9Ch15-DATA-SUM",
"up_calib": 0.31030690855352083,
"down_calib": 0.2989389667915612,
"left_calib": 0.9720828246227724,
"right_calib": 0.5192190502692535,
"horiz_calib": -3.3265293104693368,
"vert_calib": -5.3478181348925276,
"up_calib": 0.4431043021990881,
"down_calib": 0.44861010848801824,
"left_calib": 1.3615448721778467,
"right_calib": 0.8244048105341849,
"horiz_calib": -4.138467163258845,
"vert_calib": -7.32031820693029,
"uJ_calib": 834.5191797495979,
"threshold": 0,
"queue_length": 5000,
@@ -60,9 +60,9 @@
0.3
],
"calib_x_norm": [
0.09063772035588682,
0.00015992262997635781,
-0.08973044838733299
0.07025212327140404,
-0.0012462108241688304,
-0.07472909231652602
],
"calib_y_range": [
-0.3,
@@ -70,20 +70,20 @@
0.3
],
"calib_y_norm": [
0.05568183827385131,
-0.0010187375058931837,
-0.0565134505085444
0.042187829488269026,
0.0012401079015752405,
-0.039775820593494916
],
"calib_time": "2022-11-28 16:19:37",
"calib_datetime": "2023-06-15 11:49:49",
"calib_datetime": "2023-08-31 10:21:46",
"calib_x_norm_std": [
0.5232838200763255,
0.4294839304720719,
0.4262347639579865
0.07680351209141797,
0.07722551967470816,
0.07812091566728012
],
"calib_y_norm_std": [
0.4274679840038726,
0.42865463546070826,
0.4274231753434611
0.05000413805124177,
0.05045114189001346,
0.05057255211433463
]
}

View File

@@ -1,6 +1,6 @@
{
"image_background_enable": true,
"image_background": "SARFE10-PSSS059_20230607_084402_142150",
"image_background": "SARFE10-PSSS059_20230823_135245_228963",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,

View File

@@ -19,12 +19,12 @@
"down": "SAROP11-CVME-PBPS2:Lnk9Ch11-DATA-SUM",
"right": "SAROP11-CVME-PBPS2:Lnk9Ch14-DATA-SUM",
"left": "SAROP11-CVME-PBPS2:Lnk9Ch15-DATA-SUM",
"up_calib": 0.5745734623934758,
"down_calib": 0.6641936899385638,
"left_calib": 0.3939427594151871,
"right_calib": 0.4228997031340886,
"horiz_calib": -4.790259511715007,
"vert_calib": 4.589157447023669,
"up_calib": 7.41032040343848,
"down_calib": 9.898039263159411,
"left_calib": 6.6748505812954155,
"right_calib": 7.8999311453695045,
"horiz_calib": -4.082076042386935,
"vert_calib": 4.160647762472708,
"uJ_calib": 605.4608924473305,
"threshold": 0,
"queue_length": 5000,
@@ -62,9 +62,9 @@
0.3
],
"calib_x_norm": [
0.06340008506381437,
-0.0007569042874282835,
-0.06185408927322236
0.072913611189913,
-0.002722244049207188,
-0.07407042187801549
],
"calib_y_range": [
-0.3,
@@ -72,19 +72,19 @@
0.3
],
"calib_y_norm": [
-0.06980914304513387,
-0.00408089572458771,
0.0609338107380566
-0.07335767612825887,
-0.0001123677804489643,
0.07085063811832251
],
"calib_datetime": "2023-07-17 16:57:00",
"calib_datetime": "2023-09-14 15:24:40",
"calib_x_norm_std": [
0.041262213901088474,
0.036265794664177745,
0.03725771817072897
0.364447432613983,
0.37483120676975207,
0.3639987874335917
],
"calib_y_norm_std": [
0.06180849494463758,
0.061730342365087565,
0.061581523883301036
0.3704531315278293,
0.3741944306116198,
0.39299923267964687
]
}

View File

@@ -21,12 +21,12 @@
"down": "SAROP11-PBPS122:Lnk9Ch0-PP_VAL_PD2",
"right": "SAROP11-PBPS122:Lnk9Ch0-PP_VAL_PD3",
"left": "SAROP11-PBPS122:Lnk9Ch0-PP_VAL_PD0",
"up_calib": 0.05521523441969161,
"down_calib": 0.057947859678867855,
"left_calib": 0.17004121660239188,
"right_calib": 0.09103722902980958,
"horiz_calib": -3.3218821314363143,
"vert_calib": -7.252110476320349,
"up_calib": 3.6725798139735494e-05,
"down_calib": 5.171124934792115e-05,
"left_calib": 1.906778368285852e-05,
"right_calib": 2.0158234074188752e-05,
"horiz_calib": -5.23620874566979,
"vert_calib": -4.423935429496435,
"uJ_calib": 605.9512700123181,
"threshold": 0,
"queue_length": 1000,
@@ -57,5 +57,36 @@
"xpos_dif_m_pvname": "SAROP11-PBPS122:XPOS-DIF-HIST-M",
"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"
"ypos_dif_w_pvname": "SAROP11-PBPS122:YPOS-DIF-HIST-W",
"calib_x_range": [
-0.3,
0.0,
0.3
],
"calib_x_norm": [
0.05805726009863969,
0.0003241127869780219,
-0.0565294626893287
],
"calib_x_norm_std": [
0.4041536224283613,
0.40359430716500855,
0.4052643606590091
],
"calib_y_range": [
-0.3,
0.0,
0.3
],
"calib_y_norm": [
0.06701636535402986,
9.436298752542843e-05,
-0.06860948397449354
],
"calib_y_norm_std": [
0.3972258108953916,
0.4101000051454593,
0.40583173827760693
],
"calib_datetime": "2023-09-14 15:26:26"
}

View File

@@ -11,9 +11,9 @@
"input_mode2": "SUB",
"prof_sig": "SARES20-CAMS142-M5.roi_signal_x_profile",
"events": "SAR-CVME-TIFALL5:EvtSet",
"function": "SAROP21-ATT01_Test_proc.py",
"function": "SAROP21-ATT01_Debug_proc.py",
"device": "SAROP21-ATT01",
"mode": "PUSH",
"mode": "PUB",
"name": "SAROP21-ATT01_proc",
"no_client_timeout": 0,
"pipeline_type": "stream",

View File

@@ -1,17 +1,17 @@
{
"down_calib": 1.0292078877090507,
"down_calib": 0.8709627542091036,
"xpos_odd_w_pvname": "SAROP21-PBPS103:XPOS-ODD-HIST-W",
"ypos_all_y_pvname": "SAROP21-PBPS103:YPOS-ALL-HIST-Y",
"ypos_all_w_pvname": "SAROP21-PBPS103:YPOS-ALL-HIST-W",
"name": "SAROP21-PBPS103_proc",
"vert_calib": -4.207124551414293,
"vert_calib": -4.343524844450063,
"bsread_address": "",
"right": "SAROP21-CVME-PBPS1:Lnk9Ch2-DATA-SUM",
"ypos_dif_w_pvname": "SAROP21-PBPS103:YPOS-DIF-HIST-W",
"ypos_odd_x_pvname": "SAROP21-PBPS103:YPOS-ODD-HIST-X",
"function": "pbps.py",
"port": "9009",
"left_calib": 0.642335388191743,
"left_calib": 0.503989977652582,
"down": "SAROP21-CVME-PBPS1:Lnk9Ch3-DATA-SUM",
"ypos_odd_w_pvname": "SAROP21-PBPS103:YPOS-ODD-HIST-W",
"xpos_odd_y_pvname": "SAROP21-PBPS103:XPOS-ODD-HIST-Y",
@@ -23,7 +23,7 @@
"ypos_evn_x_pvname": "SAROP21-PBPS103:YPOS-EVN-HIST-X",
"uJ_calib": 605.9512700123181,
"xpos_evn_m_pvname": "SAROP21-PBPS103:XPOS-EVN-HIST-M",
"horiz_calib": 4.628674634592054,
"horiz_calib": 5.145145282136136,
"ypos_all_m_pvname": "SAROP21-PBPS103:YPOS-ALL-HIST-M",
"ypos_dif_m_pvname": "SAROP21-PBPS103:YPOS-DIF-HIST-M",
"bsread_channels": [
@@ -37,7 +37,7 @@
"pipeline_type": "stream",
"stream_timeout": 20,
"ypos_all_x_pvname": "SAROP21-PBPS103:YPOS-ALL-HIST-X",
"right_calib": 0.583897000885556,
"right_calib": 0.4568578469578163,
"xpos_all_m_pvname": "SAROP21-PBPS103:XPOS-ALL-HIST-M",
"xpos_odd_m_pvname": "SAROP21-PBPS103:XPOS-ODD-HIST-M",
"left": "SAROP21-CVME-PBPS1:Lnk9Ch1-DATA-SUM",
@@ -51,7 +51,7 @@
"ypos_evn_y_pvname": "SAROP21-PBPS103:YPOS-EVN-HIST-Y",
"xpos_odd_x_pvname": "SAROP21-PBPS103:XPOS-ODD-HIST-X",
"threshold": 0,
"up_calib": 0.9766404524758258,
"up_calib": 0.8203982275839259,
"ypos_odd_m_pvname": "SAROP21-PBPS103:YPOS-ODD-HIST-M",
"xpos_all_x_pvname": "SAROP21-PBPS103:XPOS-ALL-HIST-X",
"up": "SAROP21-CVME-PBPS1:Lnk9Ch4-DATA-SUM",
@@ -62,9 +62,9 @@
0.3
],
"calib_x_norm": [
-0.06477229494184253,
-0.0008927020708633429,
0.06485444432298822
-0.05704120310088223,
0.00035393702507686883,
0.05957357978643304
],
"calib_y_range": [
-0.3,
@@ -72,19 +72,19 @@
0.3
],
"calib_y_norm": [
0.07331093035161716,
-0.0001140661924778815,
-0.06930429120114151
0.0709624219253421,
-0.00014561524076284058,
-0.06717423470427285
],
"calib_x_norm_std": [
0.2887449033420567,
0.29120818563967993,
0.27798063417115665
0.32910395462768066,
0.33531297049221437,
0.3224623775263659
],
"calib_y_norm_std": [
0.2847912712013193,
0.29840520907480533,
0.28446657304471135
0.3401331400463244,
0.3304383701027726,
0.3310795545018731
],
"calib_datetime": "2023-07-12 21:27:03"
"calib_datetime": "2023-09-15 09:41:06"
}

View File

@@ -13,16 +13,16 @@
"reload": true,
"no_client_timeout": 0,
"port": "9008",
"up": "SAROP21-PBPS133:Lnk9Ch0-PP_VAL_PD0",
"up": "SAROP21-PBPS133:Lnk9Ch0-PP_VAL_PD1",
"down": "SAROP21-PBPS133:Lnk9Ch0-PP_VAL_PD2",
"right": "SAROP21-PBPS133:Lnk9Ch0-PP_VAL_PD1",
"left": "SAROP21-PBPS133:Lnk9Ch0-PP_VAL_PD3",
"up_calib": 1.4395838335887154e-05,
"down_calib": 1.777002657116533e-05,
"left_calib": 1.3413950100320252e-05,
"right_calib": 1.88233338262537e-05,
"horiz_calib": 8.78951296001118,
"vert_calib": -6.853797604216301,
"right": "SAROP21-PBPS133:Lnk9Ch0-PP_VAL_PD3",
"left": "SAROP21-PBPS133:Lnk9Ch0-PP_VAL_PD0",
"up_calib": 1.8277229306557535e-05,
"down_calib": 1.737522848425457e-05,
"left_calib": 1.0840028496266912e-05,
"right_calib": 1.0113004328446757e-05,
"horiz_calib": -4.701764883734,
"vert_calib": -4.323462656133165,
"uJ_calib": 605.4608924473305,
"threshold": 0,
"queue_length": 3000,
@@ -60,14 +60,14 @@
0.3
],
"calib_x_norm": [
-0.03141938767160581,
0.00017906588843358447,
0.0368437803480289
0.06484457045655358,
-0.0003184531823874863,
-0.06276708491901213
],
"calib_x_norm_std": [
0.3312633768553098,
0.3346163843304924,
0.3246041111310953
0.3451578973161714,
0.3661570941479462,
0.350052629151749
],
"calib_y_range": [
-0.3,
@@ -75,14 +75,14 @@
0.3
],
"calib_y_norm": [
0.04199692523201457,
-0.0002788285362421855,
-0.04554578242408743
0.06921810506986649,
-0.0012512638357458307,
-0.06955954787200726
],
"calib_y_norm_std": [
0.34097001257777143,
0.33865725456837714,
0.33246566113531345
0.3544204373532124,
0.3809010695934321,
0.3627440054458453
],
"calib_datetime": "2023-07-11 07:57:27"
"calib_datetime": "2023-09-14 21:57:09"
}

View File

@@ -16,12 +16,12 @@
"down": "SAROP31-PBPS113:Lnk9Ch0-PP_VAL_PD2",
"right": "SAROP31-PBPS113:Lnk9Ch0-PP_VAL_PD3",
"left": "SAROP31-PBPS113:Lnk9Ch0-PP_VAL_PD0",
"up_calib": 1.5234536914562647e-05,
"down_calib": 1.6529139815630008e-05,
"left_calib": 4.038795702204407e-05,
"right_calib": 3.652324426921079e-05,
"horiz_calib": -3.8134719217333726,
"vert_calib": -6.2186927444514355,
"up_calib": 0.00015275739315231377,
"down_calib": 0.00013143547517078724,
"left_calib": 0.0002931904752969433,
"right_calib": 0.00039583016669199984,
"horiz_calib": -4.305375579443304,
"vert_calib": -7.6300959536090875,
"uJ_calib": 941.943984588351,
"threshold": 0,
"queue_length": 5000,
@@ -60,14 +60,14 @@
0.3
],
"calib_x_norm": [
0.07851265609975945,
0.0010792916832962547,
-0.07882428312890977
0.06989419000042109,
-1.8397199791929376e-05,
-0.06946647411092724
],
"calib_x_norm_std": [
0.037663592077157186,
0.03992286492423827,
0.03325468330435801
0.04473345852473604,
0.04454186774767829,
0.04351371421737362
],
"calib_y_range": [
-0.3,
@@ -75,14 +75,16 @@
0.3
],
"calib_y_norm": [
0.047979184437463754,
-0.00033379511138331773,
-0.04850411593709548
0.039511556655187734,
1.0723688533509076e-05,
-0.03912441380285033
],
"calib_y_norm_std": [
0.04329754253611985,
0.04538517977735657,
0.03971680440126108
0.04080085889456772,
0.040232979350983585,
0.04159870689275296
],
"calib_datetime": "2023-07-15 07:58:33"
"calib_datetime": "2023-09-27 08:47:55",
"abort_on_timeout": true,
"abort_on_error": false
}

View File

@@ -17,12 +17,12 @@
"down": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD2",
"right": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD3",
"left": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD0",
"up_calib": 2.2315627703705665e-06,
"down_calib": 2.423882103150145e-06,
"left_calib": 1.066149483522647e-06,
"right_calib": 1.102482786826001e-06,
"horiz_calib": -4.484210679236189,
"vert_calib": -4.301985519581418,
"up_calib": 0.00017938789978387348,
"down_calib": 0.0001782086466835371,
"left_calib": 0.00036578906554062164,
"right_calib": 0.0006012187907325731,
"horiz_calib": -4.003372933872114,
"vert_calib": -7.45031213379614,
"uJ_calib": 605.9512700123181,
"threshold": 0.0,
"queue_length": 5000,
@@ -61,14 +61,14 @@
0.3
],
"calib_x_norm": [
0.06624170175738243,
4.0852302047546196e-05,
-0.06756111058108692
0.07460135276638057,
-0.0008530463297491542,
-0.07527226877995695
],
"calib_x_norm_std": [
0.03151917941934378,
0.02913611871494906,
0.027523075197377615
0.05047012731044763,
0.04996428162150149,
0.04948594514673093
],
"calib_y_range": [
-0.3,
@@ -76,15 +76,17 @@
0.3
],
"calib_y_norm": [
0.06809492028701386,
-0.0007710876137971574,
-0.07137556311395764
0.04086528216715967,
0.00010506363434726255,
-0.039668256458460754
],
"calib_y_norm_std": [
0.03933377568798673,
0.03565220589172198,
0.037911899850346854
0.04575941761073842,
0.0455948853624268,
0.04522573724833574
],
"calib_datetime": "2023-07-15 08:00:52",
"block": false
"calib_datetime": "2023-09-27 08:53:51",
"block": false,
"abort_on_timeout": true,
"abort_on_error": false
}

View File

@@ -0,0 +1,31 @@
{
"pipeline_type": "stream",
"name": "SATBD02-DSCR050_llps2_sp",
"input_pipeline": "SATBD02-DSCR050_sp",
"bsread_address2": "",
"bsread_channels2": [
"SATSY02-DBPM020:X2",
"SATSY02-DBPM210:X2",
"SATSY03-DBPM030:X2",
"SATSY03-DBPM060:X2",
"SATSY03-DBPM090:X2",
"SATSY03-DBPM120:X2",
"SATCL01-DBPM140:X2",
"SATDI01-DBPM210:X2",
"SATDI01-DBPM240:X2",
"SATDI01-DBPM270:X2",
"SATDI01-DBPM310:X2",
"SATBD02-DBPM010:Q2",
"SATBD02-DBPM010:Q2-VALID",
"SATBD02-DBPM010:X2",
"SATBD02-DBPM010:Y2",
"SATMA02-RLLE-DSP:PHASE-VS",
"SATMA02-RLLE-DSP:AMPLT-VS"
],
"mode": "PUB",
"merge_queue_size": 5000,
"merge_buffer_size": 5000,
"receive_timeout": 20000,
"_abort_on_timeout": 1,
"function": "propagate_stream"
}

View File

@@ -1,15 +1,22 @@
{
"image_background_enable": true,
"image_background": "SATBD02-DSCR050_20230729_165901_278750",
"image_background_enable": false,
"image_background": "SATBD02-DSCR050_20230923_150234_114901",
"image_threshold": null,
"image_region_of_interest": [
189,
0,
351,
0
278,
1288,
392,
1234
],
"image_good_region": null,
"image_slices": null,
"image_good_region": {
"threshold": 0.10000000000000003,
"gfscale": 5.0
},
"image_slices": {
"number_of_slices": 31,
"scale": 3.0,
"orientation": "horizontal"
},
"pipeline_type": "processing",
"camera_name": "SATBD02-DSCR050",
"name": "SATBD02-DSCR050_sp",

View File

@@ -0,0 +1,16 @@
{
"pipeline_type": "stream",
"abort_on_timeout": false,
"name": "SATBD02-DSCR050_sp_rep",
"input_pipeline": "SATBD02-DSCR050_sp",
"input_mode": "SUB",
"mode": "PUB",
"block": false,
"function": "propagate_stream",
"image_slices": {
"scale": 2,
"number_of_slices": 50
},
"no_client_timeout": 0,
"input_stream": "tcp://sf-daqsync-10.psi.ch:9020"
}

View File

@@ -1,6 +1,6 @@
{
"image_background_enable": "passive",
"image_background": "SATES21-CAMS-PATT1_20230701_173726_056883",
"image_background": "SATES21-CAMS-PATT1_20230911_011304_804105",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,

View File

@@ -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": "processing",
"camera_name": "SATES21-CAMS154-GIGE12",
"name": "SATES21-CAMS154-GIGE12_sp"
}

View File

@@ -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": "processing",
"camera_name": "SATES21-CAMS154-GIGE9",
"name": "SATES21-CAMS154-GIGE9_sp"
}

View File

@@ -1,6 +1,6 @@
{
"image_background_enable": "passive",
"image_background": "SATES21-CAMS154-M1_20230715_163647_022957",
"image_background": "SATES21-CAMS154-M1_20230911_011432_950565",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
@@ -15,16 +15,16 @@
"project_axis": 0,
"threshold": 5,
"roi_background": [
0,
1158,
0,
2557
407,
523,
9,
1441
],
"roi_signal": [
0,
1158,
0,
2557
407,
523,
9,
1441
],
"reload": true
}

View File

@@ -1,6 +1,6 @@
{
"image_background_enable": "passive",
"image_background": "SATES24-CAMS161-M1_20230715_163632_195065",
"image_background": "SATES24-CAMS161-M1_20230831_180416_158476",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,

View File

@@ -0,0 +1,13 @@
{
"pipeline_type": "stream",
"abort_on_timeout": false,
"abort_on_error": false,
"name": "SATES30-RIXS-CAM01_fit",
"input_pipeline": "SATES30-RIXS-CAM01_proc",
"input_mode": "SUB",
"mode": "PUB",
"block": false,
"function": "SATES30-RIXS-CAM01_fit.py",
"reload": true,
"my_parameter": 3
}

View File

@@ -1,6 +1,6 @@
{
"image_background_enable": null,
"image_background": "",
"image_background_enable": true,
"image_background": "SATES30-RIXS-CAM01_20230926_114743_025493",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,
@@ -9,9 +9,9 @@
"camera_name": "SATES30-RIXS-CAM01",
"name": "SATES30-RIXS-CAM01_proc",
"function": "single_photon.c",
"mode": "PUSH",
"mode": "PUB",
"block": false,
"threshold": 80.0,
"threshold": 150.0,
"threshold_file": "",
"_max_frame_rate": 5.1,
"libs": "",

View File

@@ -0,0 +1,10 @@
{
"pipeline_type": "stream",
"abort_on_timeout": false,
"name": "SATES30-RIXS-CAM01_repeater",
"input_pipeline": "SATES30-RIXS-CAM01_proc",
"input_mode": "SUB",
"mode": "PUSH",
"block": false,
"function": "propagate_stream"
}

View File

@@ -14,6 +14,5 @@
"processing_threads": 3,
"thread_buffer_size": 20,
"send_buffer_size": 50,
"create_header": "once",
"block": false
}

View File

@@ -1,6 +1,6 @@
{
"image_background_enable": false,
"image_background": "SATES31-CAMS187-RIXS1_20230707_113308_261349",
"image_background": "SATES31-CAMS187-RIXS1_20230914_081452_382733",
"image_threshold": null,
"image_region_of_interest": null,
"image_good_region": null,

View File

@@ -3,8 +3,8 @@
"abort_on_timeout": false,
"_stream_timeout": 20,
"name": "SATMA02_calib",
"input_pipeline": "S10BD01-DSCR030_sp1",
"_input_pipeline": "SATBD02-DSCR050_sp1",
"input_pipeline": "S10BD01-DSCR030_sp",
"_input_pipeline": "SATBD02-DSCR050_sp",
"bsread_address2": "",
"bsread_channels2": [
"SATMA02-RLLE-DSP:PHASE-VS",

View File

@@ -6,6 +6,6 @@
"image_good_region": null,
"image_slices": null,
"pipeline_type": "processing",
"camera_name": "SARBD01-DSCR110_sp1",
"name": "SARBD01-DSCR110_sp1_sp"
"camera_name": "SLAAT21-LCAM-C702",
"name": "SLAAT21-LCAM-C702_sp"
}

View File

@@ -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": "processing",
"camera_name": "SSL-LCAM-C0101",
"name": "SSL-LCAM-C0101_sp"
}

View File

@@ -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": "processing",
"camera_name": "SSL-LCAM-C0102",
"name": "SSL-LCAM-C0102_sp"
}

View File

@@ -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": "processing",
"camera_name": "SSL-LCAM-C0902",
"name": "SSL-LCAM-C0902_sp"
}

View File

@@ -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": "processing",
"camera_name": "SSL-LCAM-C0903",
"name": "SSL-LCAM-C0903_sp"
}

View File

@@ -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": "processing",
"camera_name": "SSL-LCAM-C1201",
"name": "SSL-LCAM-C1201_sp"
}

View File

@@ -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": "processing",
"camera_name": "SSL-LCAM-C1202",
"name": "SSL-LCAM-C1202_sp"
}

View File

@@ -1,14 +1,11 @@
{
"#S10BC02-DSRM310_profiles": "S10BC02-DSRM310_profiles",
"#SARES11-SPEC125-M1_psen_db": "SARES11-SPEC125-M1_psen_db",
"#SARES11-SPEC125-M1_test": "SARES11-SPEC125-M1_test",
"#SARES11-SPEC125-M2_db": "SARES11-SPEC125-M2_db",
"#SARES11-SPEC125-M2_pp_db": "SARES11-SPEC125-M2_pp_db",
"#SARES11-SPEC125-M2_psen_db": "SARES11-SPEC125-M2_psen_db",
"#SARES11-XMI125-C4P1_db": "SARES11-XMI125-C4P1_db",
"#SARES12-CAMS128-M1_psen_db": "SARES12-CAMS128-M1_psen_db",
"#SARES20-CAMS142-M1_psen_db": "SARES20-CAMS142-M1_psen_db",
"#SARES20-DSDPPRM_proc": "SARES20-DSDPPRM_proc",
"#SAROP11-ATT01_proc": "SAROP11-ATT01_proc",
"#SAROP21-PPRM102_proc": "SAROP21-PPRM102_proc",
"#SATES21-CAMS154-GIGE1_proc": "SATES21-CAMS154-GIGE1_proc",
@@ -18,23 +15,29 @@
"#SATES21-CAMS154-GIGE5_proc": "SATES21-CAMS154-GIGE5_proc",
"#SATES21-CAMS154-GIGE6_proc": "SATES21-CAMS154-GIGE6_proc",
"#SATES30-CAMS182-GIGE2_profiles": "SATES30-CAMS182-GIGE2_profiles",
"#SATES30-RIXS-CAM01_sp1": "SATES30-RIXS-CAM01_sp",
"#SATES30-RIXS-CAM01_sp": "SATES30-RIXS-CAM01_sp",
"#SATMA02_calib": "SATMA02_calib",
"#SINBC02-DSRM310_profiles": "SINBC02-DSRM310_profiles",
"#SLG-LCAM-C103_proc": "SLG-LCAM-C103_proc",
"#SLG-LCAM-C103_sp": "SLG-LCAM-C103_sp",
"#jungfrau_proc": "jungfrau_proc",
"#simulation_3_proc": "simulation_3_proc",
"#test_dispatcher_waveforms": "test_dispatcher_waveforms",
"#test_load_file": "test_load_file",
"#test_merge": "test_merge",
"#test_merge_disp_sp": "test_merge_disp_sp",
"#test_proc_with_bs": "test_proc_with_bs",
"#test_str": "test_str",
"#test_stream": "test_stream",
"#testdb_ib": "testdb_ib",
"S10BD01-DSCR030_profiles": "S10BD01-DSCR030_profiles",
"SARCL01-DSCR170_profiles": "SARCL01-DSCR170_profiles",
"SARES11-SPEC125-M1_psen_db": "SARES11-SPEC125-M1_psen_db",
"SARES11-SPEC125-M2_psen_db": "SARES11-SPEC125-M2_psen_db",
"SARES20-CAMS142-M3_proc": "SARES20-CAMS142-M3_proc",
"SARES20-CAMS142-M5_psen_db": "SARES20-CAMS142-M5_psen_db",
"SARES20-CAMS142-M5_psen_db_proxy": "SARES20-CAMS142-M5_psen_db_proxy",
"SARES20-DSDPPRM_proc": "SARES20-DSDPPRM_proc",
"SARES20-PROF141-M1_proc": "SARES20-PROF141-M1_proc",
"SARES20-PROF142-M1_proc": "SARES20-PROF142-M1_proc",
"SARES30-CAMS156-XE_proc": "SARES30-CAMS156-XE_proc",
@@ -55,14 +58,17 @@
"SAROP31-PPRM113_proc": "SAROP31-PPRM113_proc",
"SAROP31-PPRM150_proc": "SAROP31-PPRM150_proc",
"SATBD02-DSCR050_db": "SATBD02-DSCR050_db",
"SATBD02-DSCR050_sp1": "SATBD02-DSCR050_sp",
"SATBD02-DSCR050_sp": "SATBD02-DSCR050_sp",
"SATBD02-DSCR050_sp1": "SATBD02-DSCR050_sp_rep",
"SATES21-CAMS-PATT1_spec_db": "SATES21-CAMS-PATT1_spec_db",
"SATES21-CAMS154-M1_spec_db": "SATES21-CAMS154-M1_spec_db",
"SATES24-CAMS161-M1_spec_db": "SATES24-CAMS161-M1_spec_db",
"SATES30-CAMS182-GIGE1_profiles": "SATES30-CAMS182-GIGE1_profiles",
"SATES30-RIXS-CAM01_fit": "SATES30-RIXS-CAM01_fit",
"SATES30-RIXS-CAM01_proc": "SATES30-RIXS-CAM01_proc",
"SATES30-RIXS-CAM01_repeater": "SATES30-RIXS-CAM01_repeater",
"SATES31-CAMS187-RIXS1_proc": "SATES31-CAMS187-RIXS1_proc",
"SATES31-CAMS187-RIXS1_sp1": "SATES31-CAMS187-RIXS1_sp",
"SATES31-CAMS187-RIXS1_sp": "SATES31-CAMS187-RIXS1_sp",
"SATOP21-PMOS127-2D_pmos": "SATOP21-PMOS127-2D_pmos",
"SATOP31-PMOS132-2D_pmos": "SATOP31-PMOS132-2D_pmos",
"SINDI02-DSCR075_profiles": "SINDI02-DSCR075_profiles",
@@ -76,9 +82,8 @@
"SLAAR21-LCAM-CS844_proc": "SLAAR21-LCAM-CS844_proc",
"SLAAR21-LCAM-CT1C1_proc": "SLAAR21-LCAM-CT1C1_proc",
"SLAAR21-LCAM-CT1C2_proc": "SLAAR21-LCAM-CT1C2_proc",
"SLG-LCAM-C103_proc": "SLG-LCAM-C103_proc",
"simulation_3_sp1": "simulation_3_sp",
"simulation_sp1": "simulation_sp",
"simulation_3_sp": "simulation_3_sp",
"simulation_sp": "simulation_sp",
"test_furka": "test_furka",
"test_tadej": "test_tadej"
}

View File

@@ -17,9 +17,7 @@
"cameras": [],
"enabled": true,
"expanding": true,
"instances": [
"SLAAT21-LCAM-C703_sp"
]
"instances": []
},
"http://sf-daqsync-03.psi.ch:8881": {
"cameras": [
@@ -30,22 +28,23 @@
"enabled": true,
"expanding": false,
"instances": [
"SARFE10-PBPS053_proc:10004",
"SAROP21-ATT01_proc:10003",
"test_stream:10006",
"SARFE10-PSSS059_psss_avg:10012",
"SAROP21-PBPS103_proc:10009",
"SAROP11-PBPS110_proc:10007",
"SAROP31-PBPS113_proc:10013",
"SAROP31-PBPS149_proc:10011",
"SAROP11-PBPS122_proc:10010",
"SAROP11-ATT01_proc:10016",
"SAROP21-PBPS133_proc:10008",
"SARFE10-PBPS053_proc:9004",
"SAROP21-ATT01_proc:9003",
"test_stream:9006",
"SARFE10-PSSS059_psss_avg:9012",
"SAROP21-PBPS103_proc:9009",
"SAROP11-PBPS110_proc:9007",
"SAROP31-PBPS113_proc:9013",
"SAROP31-PBPS149_proc:9011",
"SAROP11-PBPS122_proc:9010",
"SAROP11-ATT01_proc:9016",
"SAROP21-PBPS133_proc:9008",
"SAROP21-PBPS138_proc",
"SATOP31-PMOS132-2D_sp",
"SATOP21-PMOS127-2D_pmos:10017",
"SATOP21-PMOS127-2D_pmos:9017",
"SARFE10-PPRM064_sp",
"SARFE10-PPRM064_proc:10014",
"SATOP31-PMOS132-2D_pmos:10001"
"SARFE10-PPRM064_proc:9014",
"SATOP31-PMOS132-2D_pmos:9001"
]
},
"http://sf-daqsync-08.psi.ch:8881": {
@@ -57,7 +56,7 @@
"enabled": true,
"expanding": false,
"instances": [
"#simulation_3_proc:10020",
"#simulation_3_proc:9020",
"simulation_2_sp",
"simulation2_sp",
"test_alain_100Hz:9010",
@@ -65,7 +64,7 @@
"test_str:9000",
"simulation_proc",
"test_merge:9001",
"test_furka:10002"
"test_furka:9002"
]
},
"http://sf-daqsync-09.psi.ch:8881": {
@@ -86,19 +85,20 @@
"enabled": true,
"expanding": false,
"instances": [
"SINBC02-DSRM310_profiles:10000",
"SINDI02-DSCR075_profiles:10001",
"S10BD01-DSCR030_profiles:10002",
"S10BC02-DSRM310_profiles:10004",
"SINBC02-DSRM310_profiles:9000",
"SINDI02-DSCR075_profiles:9001",
"S10BD01-DSCR030_profiles:9002",
"S10BC02-DSRM310_profiles9004",
"SINDI02-DSCR075_sp",
"SINBC02-DSRM310_sp",
"S10BD01-DSCR030_sp",
"SATBD02-DSCR050_sp:9020",
"SATBD02-DSCR050_db:10003",
"SATBD02-DSCR050_db:9003",
"SARCL01-DSCR170_sp",
"SATBD02-DSCR050_sp_rep",
"SATBD01-DSCR120_sp",
"SARCL01-DSCR170_profiles:10005",
"SLG-LCAM-C103_proc:10006",
"SARCL01-DSCR170_profiles:9005",
"SLG-LCAM-C103_proc:9006",
"test_merge_disp_sp:9007"
]
},
@@ -111,12 +111,12 @@
"enabled": true,
"expanding": false,
"instances": [
"SARFE10-PSSS059_psss:10001",
"SARFE10-PSSS059_psss:8889",
"SARFE10-PSSS059_sp",
"SARFE10-PSSS059_psss_avg:10005",
"SARFE10-PSSS059_psss_avg:9005",
"SARES20-CAMS142-M3_sp",
"SARES20-CAMS142-M3_spec:10004",
"SARES20-CAMS142-M3_proc:10006"
"SARES20-CAMS142-M3_spec:9004",
"SARES20-CAMS142-M3_proc:9006"
]
},
"http://sf-daqsync-12.psi.ch:8881": {
@@ -136,17 +136,17 @@
"instances": [
"bs_timing_test_perm:8889",
"SATES21-CAMS154-M1_sp",
"SATES21-CAMS154-M1_spec_db:10001",
"SATES21-CAMS154-M1_spec_db:9001",
"SATES24-CAMS161-M1_sp",
"SATES24-CAMS161-M1_spec_db:10011",
"SATES21-CAMS-PATT1_spec_db:10003",
"SATES24-CAMS161-M1_spec_db:9011",
"SATES21-CAMS-PATT1_spec_db:9003",
"SATES21-CAMS-PATT1_sp",
"SATES21-CAMS154-GIGE1_proc:10051",
"SATES21-CAMS154-GIGE2_proc:10052",
"SATES21-CAMS154-GIGE3_proc:10053",
"SATES21-CAMS154-GIGE4_proc:10054",
"SATES21-CAMS154-GIGE5_proc:10055",
"SATES21-CAMS154-GIGE6_proc:10056"
"SATES21-CAMS154-GIGE1_proc:9051",
"SATES21-CAMS154-GIGE2_proc:9052",
"SATES21-CAMS154-GIGE3_proc:9053",
"SATES21-CAMS154-GIGE4_proc:9054",
"SATES21-CAMS154-GIGE5_proc:9055",
"SATES21-CAMS154-GIGE6_proc:9056"
]
},
"http://sf-daqsync-13.psi.ch:8881": {
@@ -162,13 +162,13 @@
"enabled": true,
"expanding": false,
"instances": [
"#SARES11-SPEC125-M1_psen_db:10001",
"#SARES11-SPEC125-M1_test:10009",
"#SARES11-SPEC125-M2_psen_db:10011",
"#SARES12-CAMS128-M1_psen_db:10003",
"#SARES11-XMI125-C4P1_db:10011",
"#SARES11-SPEC125-M2_pp_db",
"#SARES11-SPEC125-M2_db:10011"
"SARES11-SPEC125-M1_psen_db:9001",
"SARES11-SPEC125-M1_test:9009",
"SARES11-SPEC125-M2_psen_db:9011",
"SARES12-CAMS128-M1_psen_db:9003",
"SARES11-XMI125-C4P1_db:9011",
"SARES11-SPEC125-M2_pp_db",
"SARES11-SPEC125-M2_db:9011"
]
},
"http://sf-daqsync-14.psi.ch:8881": {
@@ -197,31 +197,31 @@
"enabled": true,
"expanding": false,
"instances": [
"SARES20-CAMS142-M1_psen_db:10003",
"SARES20-CAMS142-M4_psen_db:10001",
"SARES20-CAMS142-M1_psen_db:9003",
"SARES20-CAMS142-M4_psen_db:9001",
"SARES20-CAMS142-M5_psen_db:8011",
"SARES20-CAMS142-M5_psen_db_proxy:10011",
"SARES20-CAMS142-M5_psen_db_proxy:9011",
"SARES20-PROF142-M1_sp",
"SARES20-PROF142-M1_proc:10017",
"SAROP21-PPRM113_proc:10007",
"SAROP21-PPRM138_proc:10015",
"SARES20-PROF142-M1_proc:9016",
"SAROP21-PPRM113_proc:9007",
"SAROP21-PPRM138_proc:9015",
"SAROP21-PPRM138_sp",
"SARES20-PROF141-M1_sp",
"SARES20-PROF141-M1_proc:10016",
"SARES20-PROF141-M1_proc:9017",
"SARES20-PROF146-M1_sp",
"SARES20-PROF146-M1_proc:10018",
"SARES20-DSDPPRM_proc:10014",
"SLAAR21-LCAM-CS841_proc:10021",
"SLAAR21-LCAM-CS842_proc:10022",
"SLAAR21-LCAM-CS843_proc:10023",
"SLAAR21-LCAM-CS844_proc:10024",
"SLAAR02-LPMO01-C321_proc:10025",
"SLAAR02-LPMO02-C322_proc:10026",
"SLAAR21-LCAM-C561_proc:10027",
"SLAAR21-LCAM-C562_proc:10028",
"SLAAR21-LCAM-CT1C1_proc:10033",
"SLAAR21-LCAM-CT1C2_proc:10035",
"#arrival_time_proc:10008",
"SARES20-PROF146-M1_proc:9018",
"SARES20-DSDPPRM_proc:9014",
"SLAAR21-LCAM-CS841_proc:9021",
"SLAAR21-LCAM-CS842_proc:9022",
"SLAAR21-LCAM-CS843_proc:9023",
"SLAAR21-LCAM-CS844_proc:9024",
"SLAAR02-LPMO01-C321_proc:9025",
"SLAAR02-LPMO02-C322_proc:9026",
"SLAAR21-LCAM-C561_proc:9027",
"SLAAR21-LCAM-C562_proc:9028",
"SLAAR21-LCAM-CT1C1_proc:9033",
"SLAAR21-LCAM-CT1C2_proc:9035",
"#arrival_time_proc:9008",
"test_arrival"
]
},
@@ -229,20 +229,23 @@
"cameras": [
"SATES31-CAMS187-RIXS1",
"SATES30-CAMS182-GIGE1",
"SATES30-CAMS182-GIGE2",
"SATES30-RIXS-CAM01"
],
"enabled": true,
"expanding": false,
"instances": [
"SATES31-CAMS187-RIXS1_sp",
"SATES31-CAMS187-RIXS1_proc:10000",
"SATES31-CAMS187-RIXS1_proc:9000",
"SATES30-RIXS-CAM01_sp",
"SATES30-RIXS-CAM01_proc:10006",
"SATES30-RIXS-CAM01_proc:9100",
"SATES30-RIXS-CAM01_repeater:9006",
"SATES30-RIXS-CAM01_fit:9010",
"test_load_file",
"SATES30-CAMS182-GIGE1_sp",
"#SATES30-CAMS182-GIGE2_sp",
"SATES30-CAMS182-GIGE1_profiles:10002",
"#SATES30-CAMS182-GIGE2_profiles:10004"
"SATES30-CAMS182-GIGE2_sp",
"SATES30-CAMS182-GIGE1_profiles:9002",
"SATES30-CAMS182-GIGE2_profiles:9004"
]
},
"http://sf-daqsync-16.psi.ch:8881": {
@@ -259,20 +262,19 @@
"SARES30-CAMS156-PCO1_sp",
"SAROP31-PPRM113_sp",
"SAROP31-PPRM150_sp",
"SAROP31-PPRM113_proc:10001",
"SAROP31-PPRM150_proc:10003",
"SARES30-CAMS156-XE_proc:10007"
"SAROP31-PPRM113_proc:9001",
"SAROP31-PPRM150_proc:9003",
"SARES30-CAMS156-XE_proc:9007"
]
},
"http://sf-daqsync-17.psi.ch:8881": {
"cameras": [
"simulation_3",
"SATES30-CAMS182-GIGE2"
"simulation_3"
],
"enabled": true,
"expanding": false,
"instances": [
"simulation_3_proc:10020",
"simulation_3_proc:9020",
"test_dispatcher_waveforms"
]
},

View File

@@ -1,7 +1,7 @@
{
"image_background_enable": false,
"image_background": null,
"image_threshold": null,
"image_threshold": 1000.0,
"image_region_of_interest": null,
"image_good_region": null,
"image_slices": {

View File

@@ -1,12 +1,12 @@
{
"image_background_enable": false,
"image_background": null,
"image_threshold": 7000.0,
"image_threshold": 250.0,
"image_region_of_interest": [
462,
344,
390,
159
527,
230,
397,
168
],
"image_good_region": {
"threshold": 0.1,

View File

@@ -1,7 +1,7 @@
{
"pipeline_type": "stream",
"name": "test_merge_disp_sp",
"input_pipeline": "SLG-LCAM-C103_sp1",
"input_pipeline": "SLG-LCAM-C103_sp",
"bsread_address2": "",
"bsread_channels2": [
"SIN-CVME-TIFGUN-EVR0:BUNCH-1-OK",

View File

@@ -1,47 +1,26 @@
from collections import deque
from logging import getLogger
from scipy.signal import savgol_filter
import numpy as np
from scipy import signal
_logger = getLogger(__name__)
buffer_dark = deque()
buffer_savgol = deque()
initialized = False
def initialize(params):
global initialized, buffer_savgol, device, step_length, edge_type, refinement, dark_event, fel_on_event, use_dark, calib, use_filter, filter_window, buffer
global buffer_dark, buffer_savgol, initialized
device = params["device"]
step_length = params["step_length"]
edge_type = params["edge_type"]
refinement = params["refinement"]
dark_event = params["dark_event"]
fel_on_event = params["fel_on_event"]
buffer_dark = deque(maxlen=params["buffer_length"])
buffer_savgol = deque(maxlen=params["buffer_length"])
use_dark = params["use_dark"]
calib = params["calib"]
filter_window = params["filter_window"]
# use_filter = params['filter']
buffer = deque(maxlen=params["buffer_length"])
initialized = True
def _interpolate_row(y_known, x_known, x_interp):
y_interp = np.interp(x_interp, x_known, y_known)
return y_interp
def find_edge(data, step_length=50, edge_type="falling", refinement=1):
# refine data
data_length = data.shape[1]
refined_data = np.apply_along_axis(
_interpolate_row,
axis=1,
arr=data,
x_known=np.arange(data_length),
x_interp=np.arange(0, data_length - 1, refinement),
)
def find_edge(data, step_length=50, edge_type="falling"):
# prepare a step function and refine it
step_waveform = np.ones(shape=(step_length,))
if edge_type == "rising":
@@ -49,110 +28,83 @@ def find_edge(data, step_length=50, edge_type="falling", refinement=1):
elif edge_type == "falling":
step_waveform[int(step_length / 2) :] = -1
step_waveform = np.interp(
x=np.arange(0, step_length - 1, refinement), xp=np.arange(step_length), fp=step_waveform
)
# find edges
xcorr = np.apply_along_axis(np.correlate, 1, refined_data, v=step_waveform, mode="valid")
edge_position = np.argmax(xcorr, axis=1).astype(float) * refinement
xcorr_amplitude = np.amax(xcorr, axis=1)
xcorr = signal.correlate(data, step_waveform, mode="valid")
edge_position = np.argmax(xcorr)
xcorr_amplitude = np.amax(xcorr)
# correct edge_position for step_length
edge_position += np.floor(step_length / 2)
return {"edge_pos": edge_position, "xcorr": xcorr, "xcorr_ampl": xcorr_amplitude, "signal":data}
return {
"edge_pos": edge_position,
"xcorr": xcorr,
"xcorr_ampl": xcorr_amplitude,
"signal": data,
}
def process(data, pulse_id, timestamp, params):
if not initialized:
initialize(params)
output = {}
device = params["device"]
step_length = params["step_length"]
edge_type = params["edge_type"]
dark_event = params["dark_event"]
fel_on_event = params["fel_on_event"]
calib = params["calib"]
filter_window = params["filter_window"]
# Read stream inputs
prof_sig = data[params["prof_sig"]]
try:
prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3)
#Setup output for when there is no valid data to return
if prof_sig_savgol.ndim == 1:
prof_sig_savgol = prof_sig_savgol[np.newaxis, :]
edge_results_dummy = find_edge(prof_sig_savgol, step_length, edge_type, refinement)
edge_pos_dummy = np.empty(shape=edge_results_dummy['edge_pos'].shape)
xcorr_dummy = np.empty(shape=edge_results_dummy['xcorr'].shape)
xcorr_ampl_dummy = np.empty(shape=edge_results_dummy['xcorr_ampl'].shape)
signal_dummy = np.empty(shape=edge_results_dummy['signal'].shape)
except:
output[f"{device}:raw_wf"] = prof_sig
return output # added for intermitent cases with prof_sig shorter than filter window
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 not initialized:
initialize(params)
if events[dark_event] and use_dark:
prof_sig_savgol = signal.savgol_filter(prof_sig, filter_window, 3)
if events[dark_event]:
buffer_dark.append(prof_sig)
buffer_savgol.append(prof_sig_savgol)
try:
edge_results = {"edge_pos": edge_pos_dummy, "xcorr": xcorr_dummy, "xcorr_ampl": xcorr_ampl_dummy, "signal":signal_dummy }
except:
edge_results = {"edge_pos": None, "xcorr": None, "xcorr_ampl": None, "signal":None}
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:
try:
edge_results = {"edge_pos": edge_pos_dummy, "xcorr": xcorr_dummy, "xcorr_ampl": xcorr_ampl_dummy, "signal":signal_dummy }
except:
edge_results = {"edge_pos": None, "xcorr": None, "xcorr_ampl": None, "signal":None}
# calib edge
edge_results["arrival_time"] = np.polyval(calib,edge_results["edge_pos"])
# sort edge by parity
if pulse_id %2 ==0:
try:
edge_results["arrival_time_even"] = edge_results["edge_pos"] * calib
except:
edge_results["arrival_time_even"] = None
edge_results["arrival_time_odd"] = None
if buffer_savgol:
prof_sig_norm = prof_sig_savgol / np.mean(np.array(buffer_savgol), axis=0)
else:
edge_results["arrival_time_even"] = None
try:
edge_results["arrival_time_odd"] = edge_results["edge_pos"] * calib
except:
edge_results["arrival_time_odd"] = None
# push pulse ID for debuging
edge_results["pulse_id"] = pulse_id
prof_sig_norm = prof_sig_savgol
if events[fel_on_event] and not events[dark_event]:
edge_results = find_edge(prof_sig_norm, step_length, edge_type)
edge_results["arrival_time"] = np.polyval(calib, edge_results["edge_pos"])
else:
edge_results = {
"edge_pos": None,
"xcorr": None,
"xcorr_ampl": None,
"signal": prof_sig_norm,
}
edge_results["arrival_time"] = None
#debug just return arrival tim
# output[f"{device}:arrival_time"] = edge_results["arrival_time"]
# Set bs outputs
output = {}
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:
# Changed values below to from None
output[f"{device}:dark_wf"] = prof_sig
output[f"{device}:dark_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"] = None
# output[f"{device}:dark_wf_savgol"] = None
if buffer:
output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0)
if buffer_dark:
output[f"{device}:avg_dark_wf"] = np.mean(buffer_dark, axis=0)
else:
output[f"{device}:avg_dark_wf"] = None
output[f"{device}:avg_dark_wf"] = np.zeros_like(prof_sig)
if buffer_savgol:
output[f"{device}:avg_dark_wf_savgol"] = np.mean(buffer_savgol, axis=0)
else:
output[f"{device}:avg_dark_wf_savgol"] = None
# if buffer_savgol:
# output[f"{device}:avg_dark_wf_savgol"] = np.mean(buffer_savgol, axis=0)
# else:
# output[f"{device}:avg_dark_wf_savgol"] = None
return output

View File

@@ -1,7 +1,8 @@
from collections import deque, OrderedDict
from collections import deque
from logging import getLogger
from scipy.signal import savgol_filter
import numpy as np
from scipy.signal import savgol_filter
_logger = getLogger(__name__)
@@ -61,44 +62,53 @@ def find_edge(data, step_length=50, edge_type="falling", refinement=1):
# correct edge_position for step_length
edge_position += np.floor(step_length / 2)
return {"edge_pos": edge_position, "xcorr": xcorr, "xcorr_ampl": xcorr_amplitude, "signal":data}
return {
"edge_pos": edge_position,
"xcorr": xcorr,
"xcorr_ampl": xcorr_amplitude,
"signal": data,
}
def process(data, pulse_id, timestamp, params):
if not initialized:
initialize(params)
output = OrderedDict()
output = {}
# Read stream inputs
prof_sig = data[params["prof_sig"]]
try:
prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3)
#Setup output for when there is no valid data to return
prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3)
# Setup output for when there is no valid data to return
if prof_sig_savgol.ndim == 1:
prof_sig_savgol = prof_sig_savgol[np.newaxis, :]
edge_results_dummy = find_edge(prof_sig_savgol, step_length, edge_type, refinement)
edge_pos_dummy = np.empty(shape=edge_results_dummy['edge_pos'].shape)
xcorr_dummy = np.empty(shape=edge_results_dummy['xcorr'].shape)
xcorr_ampl_dummy = np.empty(shape=edge_results_dummy['xcorr_ampl'].shape)
signal_dummy = np.empty(shape=edge_results_dummy['signal'].shape)
edge_pos_dummy = np.empty(shape=edge_results_dummy["edge_pos"].shape)
xcorr_dummy = np.empty(shape=edge_results_dummy["xcorr"].shape)
xcorr_ampl_dummy = np.empty(shape=edge_results_dummy["xcorr_ampl"].shape)
signal_dummy = np.empty(shape=edge_results_dummy["signal"].shape)
except:
except:
output[f"{device}:raw_wf"] = prof_sig
return None
return output # added for intermitent cases with prof_sig shorter than filter window
return output # added for intermitent cases with prof_sig shorter than filter window
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, :]
prof_sig_savgol = prof_sig_savgol[np.newaxis, :]
if events[dark_event] and use_dark:
buffer_savgol.append(prof_sig_savgol)
try:
edge_results = {"edge_pos": edge_pos_dummy, "xcorr": xcorr_dummy, "xcorr_ampl": xcorr_ampl_dummy, "signal":signal_dummy }
edge_results = {
"edge_pos": edge_pos_dummy,
"xcorr": xcorr_dummy,
"xcorr_ampl": xcorr_ampl_dummy,
"signal": signal_dummy,
}
except:
edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan}
edge_results = {"edge_pos": None, "xcorr": None, "xcorr_ampl": None, "signal": None}
else:
if events[fel_on_event] and buffer_savgol:
prof_sig_norm = prof_sig_savgol / np.mean(buffer_savgol, axis=0)
@@ -107,14 +117,19 @@ def process(data, pulse_id, timestamp, params):
edge_results = find_edge(prof_sig_savgol, step_length, edge_type, refinement)
else:
try:
edge_results = {"edge_pos": edge_pos_dummy, "xcorr": xcorr_dummy, "xcorr_ampl": xcorr_ampl_dummy, "signal":signal_dummy }
edge_results = {
"edge_pos": edge_pos_dummy,
"xcorr": xcorr_dummy,
"xcorr_ampl": xcorr_ampl_dummy,
"signal": signal_dummy,
}
except:
edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan}
edge_results = {"edge_pos": None, "xcorr": None, "xcorr_ampl": None, "signal": None}
# calib edge
edge_results["arrival_time"] = np.polyval(calib,edge_results["edge_pos"])
edge_results["arrival_time"] = np.polyval(calib, edge_results["edge_pos"])
# sort edge by parity
if pulse_id %2 ==0:
if pulse_id % 2 == 0:
try:
edge_results["arrival_time_even"] = edge_results["edge_pos"] * calib
except:
@@ -126,54 +141,38 @@ def process(data, pulse_id, timestamp, params):
edge_results["arrival_time_odd"] = edge_results["edge_pos"] * calib
except:
edge_results["arrival_time_odd"] = calib
try:
#_logger.warning("Shape: " + str(edge_results["signal"].shape))
edge_results["signal"] = edge_results["signal"].reshape((edge_results["signal"].shape[1],))
except:
#_logger.warning("Shape err" + str(edge_results["signal"]))
pass
try:
#_logger.warning("Shape: " + str(edge_results["signal"].shape))
edge_results["xcorr"] = edge_results["xcorr"].reshape((edge_results["xcorr"].shape[1],))
except:
#_logger.warning("Shape err" + str(edge_results["signal"]))
pass
# push pulse ID for debuging
edge_results["pulse_id"] = pulse_id
#debug just return arrival tim
#output[f"{device}:arrival_time"] = edge_results["arrival_time"]
#try:
# debug just return arrival tim
# output[f"{device}:arrival_time"] = edge_results["arrival_time"]
# try:
# output[f"{device}:arrival_time_even"] = edge_results["arrival_time_even"]
#except:
# except:
# output[f"{device}:arrival_time_even"] = None
# Set bs outputs
#log = ""
for key, value in edge_results.items():
output[f"{device}:{key}"] = value
#_logger.info(log)
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
# output[f"{device}:raw_wf"] = prof_sig
# output[f"{device}:raw_wf_savgol"] = prof_sig_savgol
#if events[dark_event]:
# if events[dark_event]:
# output[f"{device}:dark_wf"] = prof_sig
# output[f"{device}:dark_wf_savgol"] = prof_sig_savgol
#else:
# Changed values below to from np.nan
# else:
# Changed values below to from None
# output[f"{device}:dark_wf"] = prof_sig
# output[f"{device}:dark_wf_savgol"] = prof_sig_savgol
#if buffer:
# if buffer:
# output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0)
#else:
# output[f"{device}:avg_dark_wf"] = np.nan
# else:
# output[f"{device}:avg_dark_wf"] = None
#if buffer_savgol:
# 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
# else:
# output[f"{device}:avg_dark_wf_savgol"] = None
return output

View File

@@ -1,7 +1,8 @@
from collections import deque
from logging import getLogger
from scipy.signal import savgol_filter
import numpy as np
from scipy.signal import savgol_filter
_logger = getLogger(__name__)
@@ -61,7 +62,12 @@ def find_edge(data, step_length=50, edge_type="falling", refinement=1):
# correct edge_position for step_length
edge_position += np.floor(step_length / 2)
return {"edge_pos": edge_position, "xcorr": xcorr, "xcorr_ampl": xcorr_amplitude, "signal":data}
return {
"edge_pos": edge_position,
"xcorr": xcorr,
"xcorr_ampl": xcorr_amplitude,
"signal": data,
}
def process(data, pulse_id, timestamp, params):
@@ -72,20 +78,20 @@ def process(data, pulse_id, timestamp, params):
# Read stream inputs
prof_sig = data[params["prof_sig"]]
try:
prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3)
except:
prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3)
except:
output[f"{device}:raw_wf"] = prof_sig
return output # added for intermitent cases with prof_sig shorter than filter window
return output # added for intermitent cases with prof_sig shorter than filter window
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, :]
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}
edge_results = {"edge_pos": None, "xcorr": None, "xcorr_ampl": None, "signal": None}
else:
if events[fel_on_event] and buffer_savgol:
prof_sig_norm = prof_sig_savgol / np.mean(buffer_savgol, axis=0)
@@ -93,47 +99,47 @@ def process(data, pulse_id, timestamp, params):
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}
edge_results = {"edge_pos": None, "xcorr": None, "xcorr_ampl": None, "signal": None}
# calib edge
edge_results["arrival_time"] = np.polyval(calib,edge_results["edge_pos"])
# sort edge by parity
if pulse_id %2 ==0:
try:
edge_results["arrival_time_even"] = edge_results["edge_pos"] * calib
except:
edge_results["arrival_time_even"] = np.nan
edge_results["arrival_time_odd"] = np.nan
else:
edge_results["arrival_time_even"] = np.nan
try:
edge_results["arrival_time_odd"] = edge_results["edge_pos"] * calib
except:
edge_results["arrival_time_odd"] = np.nan
# push pulse ID for debuging
edge_results["pulse_id"] = pulse_id
# # calib edge
# edge_results["arrival_time"] = np.polyval(calib, edge_results["edge_pos"])
# # sort edge by parity
# if pulse_id % 2 == 0:
# try:
# edge_results["arrival_time_even"] = edge_results["edge_pos"] * calib
# except:
# edge_results["arrival_time_even"] = None
# edge_results["arrival_time_odd"] = None
# else:
# edge_results["arrival_time_even"] = None
# try:
# edge_results["arrival_time_odd"] = edge_results["edge_pos"] * calib
# except:
# edge_results["arrival_time_odd"] = None
# # push pulse ID for debuging
# edge_results["pulse_id"] = pulse_id
# 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
# 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 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"] = None
# output[f"{device}:dark_wf_savgol"] = None
if buffer:
output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0)
else:
output[f"{device}:avg_dark_wf"] = np.nan
# if buffer:
# output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0)
# else:
# output[f"{device}:avg_dark_wf"] = None
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
# if buffer_savgol:
# output[f"{device}:avg_dark_wf_savgol"] = np.mean(buffer_savgol, axis=0)
# else:
# output[f"{device}:avg_dark_wf_savgol"] = None
return output

View File

@@ -0,0 +1,21 @@
import sys
from logging import getLogger
_logger = getLogger(__name__)
def process(data, pulse_id, timestamp, params):
try:
my_parameter = params["my_parameter"]
event_ch = data["SATES30-RIXS-CAM01:EVENT_CHARGE"]
event_eta_x = data["SATES30-RIXS-CAM01:EVENT_ETA_X"]
#SATES30-RIXS-CAM01:EVENT_ETA_Y
#SATES30-RIXS-CAM01:EVENT_I
#SATES30-RIXS-CAM01:EVENT_I_INTERP
#SATES30-RIXS-CAM01:EVENT_J
#SATES30-RIXS-CAM01:EVENT_J_INTERP
#SATES30-RIXS-CAM01:EVENT_NUM
data["test"] = 4.0
data["par"]=my_parameter
return data
except:
_logger.exception(str(sys.exc_info()[1]))

View File

@@ -189,6 +189,7 @@ def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata
processed_data[camera_name + ":SPECT-COM"] = spectrum_com
processed_data[camera_name + ":SPECT-RMS"] = spectrum_std
processed_data[camera_name + ":SPECT-RES"] = np.float64(2.355*spectrum_std)/np.float64(spectrum_com)*1000
processed_data[camera_name + ":FIT-BRT"] = spectrum_sum /np.float64(2.355 * sigma)
if epics_lock.acquire(False):
try:
if pulse_id > sent_pid:

View File

@@ -11,7 +11,7 @@ const char *CHANNEL_NAMES[] = {"EVENT_NUM", "EVENT_I", "EVENT_J", "EVENT_CHARGE"
// max number of events per frame
#define MAX_NUM_EVENTS 100
#define MAX_NUM_EVENTS 50
#define EVENT_CHANNELS 7
double evt_p[EVENT_CHANNELS][MAX_NUM_EVENTS];
@@ -20,7 +20,8 @@ double evt_p[EVENT_CHANNELS][MAX_NUM_EVENTS];
int func_ph_1d_double( double *frame, int i_dim, int j_dim, double *th_m);
void setArrayToValue(double array[], int size, double value) {
for (int i = 0; i < size; i++) {
int i;
for (i = 0; i < size; i++) {
array[i] = value;
}
}
@@ -84,7 +85,7 @@ int initialize(int size_x, int size_y, PyObject *pars){
int ret = 1;
threshold = (double *)malloc(size_x*size_y*sizeof(double));
double threshold_val = getParDouble(pars, "threshold", 1000.0);
double threshold_val = getParDouble(pars, "threshold", 1.0);
PyObject* threshold_file = PyDict_GetItemString(pars, "threshold_file");
if (threshold_file!=NULL){
const char * threshold_file_str = PyUnicode_AsUTF8(threshold_file);
@@ -174,7 +175,7 @@ PyObject *process(PyObject *self, PyObject *args)
//PyDict_SetItemString(ret,"T0", PyFloat_FromDouble(threshold[0]));
//PyDict_SetItemString(ret, "Init", PyLong_FromLong(initialized));
for (int i=0; i<EVENT_CHANNELS; i++){
for (i=0; i<EVENT_CHANNELS; i++){
sprintf(channel_name, "%s:%s",camera_name_str, CHANNEL_NAMES[i+1]);
npy_intp arr_dims[1] = {MAX_NUM_EVENTS};
//setArrayToValue(evt_p[i],MAX_NUM_EVENTS, i+10.0);
@@ -224,7 +225,7 @@ PyObject *process(PyObject *self, PyObject *args)
charge = frame[i*j_dim+j]+frame[(i+1)*j_dim+j] + frame[i*j_dim+(j+1)]+frame[(i+1)*j_dim+j+1];
//pixel by pixel threshold
th = 3*th_m[i*j_dim +j];
th = th_m[i*j_dim +j];
//check if charge above threshold
if(charge>th) {