Apr 2022
This commit is contained in:
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user