Newer
Older
{
"cells": [
{
"cell_type": "markdown",
"id": "6386344d-b7ac-440d-9926-f03af4ff9d6f",
"metadata": {},
"source": [
"# Training the Virtual Spectrometer with grating and PES data"
]
},
{
"cell_type": "markdown",
"id": "1711c3b9-5065-4a44-8b1b-a3e861b92bc5",
"metadata": {},
"source": [
"The objective here is to use the grating monochromator to train the Virtual Spectrometer. This means that we will fit (\"train\") a model, which maps the PES measurements with the Viking measurements and use their correlation to interpolate in cases where the grating is not available.\n",
"\n",
"The following conditions must be satisfied for this to be possible:\n",
"* The PES settings are the same in the \"training\" run and interesting run.\n",
"* The photon energies of the beam in \"training\" and in the interesting run are similar.\n",
"* The beam intensities are similar.\n",
"* 1 pulse trains in \"training\".\n",
"\n",
"The following software implements:\n",
"1. retrieve data;\n",
"2. the Virtual Spectrometer training excluding the last 10 trains avalable so that we can use them for validation;\n",
"3. the Virtual Spectrometer resolution function plotting;\n",
"4. comparison of the Virtual spectrometer results in a selected set in which the Viking data was available.\n",
"\n",
"Finally, the model is applied in data without the grating. This last part may be applied independently from the rest if the modal has been written in a `joblib` file."
]
},
{
"cell_type": "code",
"id": "4a627555-522a-4c9d-b6b2-6ff77148eaab",
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"# replace this \n",
"sys.path.append('/home/danilo/scratch/karabo/devices/pes_to_spec')"
]
},
{
"cell_type": "code",
"id": "78bbc433-ac5e-44c3-8740-3e93800c4532",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cupy is not installed in this environment, no access to the GPU\n"
]
}
],
"source": [
"import numpy as np\n",
"import dask.array as da\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"from pes_to_spec.model import Model\n",
"\n",
"import toolbox_scs as tb\n",
"from euxfel_bunch_pattern import indices_at_sase\n",
"\n",
"from scipy.signal import fftconvolve"
]
},
{
"cell_type": "markdown",
"id": "c7609899-5bc0-4211-ae97-010b3edcf676",
"metadata": {},
"source": [
"id": "95da5231-e454-4f7f-a1ce-eef7e52fe457",
"metadata": {},
"outputs": [],
"source": [
"# pes channel names to be used for reference later\n",
"pes_map = dict(channel_1_A=\"PES_S_raw\",\n",
" channel_1_B=\"PES_SSW_raw\",\n",
" channel_1_C=\"PES_SW_raw\",\n",
" channel_1_D=\"PES_WSW_raw\",\n",
" #channel_2_A=\"PES_W_raw\",\n",
" #channel_2_B=\"PES_WNW_raw\",\n",
" #channel_2_C=\"PES_NW_raw\",\n",
" #channel_2_D=\"PES_NNW_raw\",\n",
" channel_3_A=\"PES_E_raw\",\n",
" channel_3_B=\"PES_ESE_raw\",\n",
" channel_3_C=\"PES_SE_raw\",\n",
" channel_3_D=\"PES_SSE_raw\",\n",
" channel_4_A=\"PES_N_raw\",\n",
" channel_4_B=\"PES_NNE_raw\",\n",
" channel_4_C=\"PES_NE_raw\",\n",
" channel_4_D=\"PES_ENE_raw\",\n",
" )"
]
},
{
"cell_type": "code",
"id": "fd8dacae-c22e-4c20-9df9-8720a2814320",
"metadata": {},
"outputs": [],
"source": [
"proposal = 900331\n",
"runTrain = 69"
]
},
{
"cell_type": "code",
"id": "25000b87-246d-467b-b770-8cde527faec4",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"navitar: only 71.9% of trains (7176 out of 9974) contain data.\n",
"energy: only 71.9% of trains (7176 out of 9974) contain data.\n"
"fields = [\n",
" 'XTD10_SA3', # XGM\n",
" *list(pes_map.values()), # PES\n",
" # calibrated grating\n",
" {'navitar': {'source': 'SA3_XTD10_SPECT/MDL/SPECTROMETER_SCS_NAVITAR:output',\n",
" 'key': 'data.intensityDistribution',\n",
" 'dim': ['gratingEnergy'],\n",
" },\n",
" },\n",
" {'energy':\n",
" {'source': 'SA3_XTD10_SPECT/MDL/SPECTROMETER_SCS_NAVITAR:output',\n",
" 'key': 'data.photonEnergy',\n",
" 'dim': ['gratingEnergy'],\n",
" },\n",
" }\n",
" ]\n",
"_, data_train = tb.load(proposal, runTrain, fields)"
]
},
{
"cell_type": "code",
"id": "294b5f3a-1d59-444e-80ab-4834d26d62dc",
"metadata": {},
"outputs": [],
"source": [
"# transform PES data into the format expected\n",
"pes_data = {k: da.from_array(data_train[item].to_numpy())\n",
" for k, item in pes_map.items() if item in data_train}\n",
"xgm = data_train.XTD10_SA3.isel(sa3_pId=0).to_numpy()[:, np.newaxis]"
]
},
{
"cell_type": "code",
"id": "b477bf49-f5ca-4df0-b6ed-a270ee35cd28",
"metadata": {},
"outputs": [],
"source": [
"channels = tuple(pes_data.keys())"
]
},
{
"cell_type": "code",
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
"execution_count": 28,
"id": "a843e981-e57e-4163-a4e0-310de7181aec",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
"html[theme=dark],\n",
"body[data-theme=dark],\n",
"body.vscode-dark {\n",
" --xr-font-color0: rgba(255, 255, 255, 1);\n",
" --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
" --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
" --xr-border-color: #1F1F1F;\n",
" --xr-disabled-color: #515151;\n",
" --xr-background-color: #111111;\n",
" --xr-background-color-row-even: #111111;\n",
" --xr-background-color-row-odd: #313131;\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block !important;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-index-preview {\n",
" grid-column: 2 / 5;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data,\n",
".xr-index-data-in:checked ~ .xr-index-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-index-name div,\n",
".xr-index-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data,\n",
".xr-index-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2,\n",
".xr-no-icon {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'><xarray.Dataset>\n",
"Dimensions: (trainId: 7165, PESsampleId: 40000, gratingEnergy: 1800,\n",
" pulse_slot: 2700, sa3_pId: 1)\n",
"Coordinates:\n",
" * trainId (trainId) uint64 1724088331 1724088332 ... 1724098301\n",
" * sa3_pId (sa3_pId) int64 1326\n",
"Dimensions without coordinates: PESsampleId, gratingEnergy, pulse_slot\n",
"Data variables: (12/16)\n",
" PES_S_raw (trainId, PESsampleId) int16 -1 0 -2 0 -2 ... 4 -1 1 1 1\n",
" PES_SSW_raw (trainId, PESsampleId) int16 -4 -3 -4 -2 ... -3 -2 0 -4\n",
" PES_SW_raw (trainId, PESsampleId) int16 -3 -8 -5 -5 ... -7 -5 -8 -5\n",
" PES_WSW_raw (trainId, PESsampleId) int16 -4 -6 -4 -5 ... -5 -3 -4 0\n",
" PES_E_raw (trainId, PESsampleId) int16 -6 -3 -5 -8 ... -6 -2 -4 -6\n",
" PES_ESE_raw (trainId, PESsampleId) int16 -11 -13 -10 ... -10 -10 -12\n",
" ... ...\n",
" PES_NE_raw (trainId, PESsampleId) int16 -2 -5 -2 -4 -1 ... 0 -2 2 -3\n",
" PES_ENE_raw (trainId, PESsampleId) int16 -4 -3 -2 -3 ... -5 -2 -3 -5\n",
" navitar (trainId, gratingEnergy) float64 12.22 11.29 ... 12.46\n",
" energy (trainId, gratingEnergy) float64 981.0 981.0 ... 1.02e+03\n",
" bunchPatternTable (trainId, pulse_slot) uint32 2146089 0 ... 16777216\n",
" XTD10_SA3 (trainId, sa3_pId) float32 1.217e+03 ... 1.489e+03\n",
"Attributes:\n",
" runFolder: /gpfs/exfel/exp/SA3/202330/p900331/raw/r0069</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-0b7c564a-c8ac-49f2-8371-a3b66e4e7362' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-0b7c564a-c8ac-49f2-8371-a3b66e4e7362' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>trainId</span>: 7165</li><li><span>PESsampleId</span>: 40000</li><li><span>gratingEnergy</span>: 1800</li><li><span>pulse_slot</span>: 2700</li><li><span class='xr-has-index'>sa3_pId</span>: 1</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-99d8ee8f-922b-4296-ac08-f9d4d4c23d22' class='xr-section-summary-in' type='checkbox' checked><label for='section-99d8ee8f-922b-4296-ac08-f9d4d4c23d22' class='xr-section-summary' >Coordinates: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>trainId</span></div><div class='xr-var-dims'>(trainId)</div><div class='xr-var-dtype'>uint64</div><div class='xr-var-preview xr-preview'>1724088331 ... 1724098301</div><input id='attrs-26337ad6-da4a-4fe7-9857-e8917bc5ca03' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-26337ad6-da4a-4fe7-9857-e8917bc5ca03' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-fb81e4b4-50f2-44bc-b9a9-515ca00ab730' class='xr-var-data-in' type='checkbox'><label for='data-fb81e4b4-50f2-44bc-b9a9-515ca00ab730' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([1724088331, 1724088332, 1724088333, ..., 1724098299, 1724098300,\n",
" 1724098301], dtype=uint64)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>sa3_pId</span></div><div class='xr-var-dims'>(sa3_pId)</div><div class='xr-var-dtype'>int64</div><div class='xr-var-preview xr-preview'>1326</div><input id='attrs-ba3ebda4-2a27-4332-9d41-6c26a3be0b02' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-ba3ebda4-2a27-4332-9d41-6c26a3be0b02' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-edc72482-3ff4-47fe-a649-a4ed63f57457' class='xr-var-data-in' type='checkbox'><label for='data-edc72482-3ff4-47fe-a649-a4ed63f57457' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([1326])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-150a75b4-825e-42e9-a5d2-db83c8848a93' class='xr-section-summary-in' type='checkbox' ><label for='section-150a75b4-825e-42e9-a5d2-db83c8848a93' class='xr-section-summary' >Data variables: <span>(16)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>PES_S_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-1 0 -2 0 -2 2 -2 ... 2 4 -1 1 1 1</div><input id='attrs-cbcef525-b7a4-4bc2-ab6a-384f7eb0f86f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-cbcef525-b7a4-4bc2-ab6a-384f7eb0f86f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-fbd0efa6-d334-4547-a256-6b96e26a41f8' class='xr-var-data-in' type='checkbox'><label for='data-fbd0efa6-d334-4547-a256-6b96e26a41f8' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-1, 0, -2, ..., 1, -4, -1],\n",
" [ 0, 4, 0, ..., 2, 1, 1],\n",
" [ 1, -1, -1, ..., 3, 1, 3],\n",
" ...,\n",
" [-2, 2, 0, ..., 1, 1, 4],\n",
" [ 0, 4, 0, ..., 3, -1, 3],\n",
" [-2, 4, 0, ..., 1, 1, 1]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_SSW_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-4 -3 -4 -2 -4 -2 ... -2 -3 -2 0 -4</div><input id='attrs-1ab5e4ea-5a6f-4a54-ae7a-61d3ae476984' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-1ab5e4ea-5a6f-4a54-ae7a-61d3ae476984' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2a40be4b-8c69-4ccf-a649-60a8a88caa0b' class='xr-var-data-in' type='checkbox'><label for='data-2a40be4b-8c69-4ccf-a649-60a8a88caa0b' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-4, -3, -4, ..., -4, 0, -2],\n",
" [-7, -1, -2, ..., 0, -5, 0],\n",
" [-1, -3, -1, ..., -2, -4, -1],\n",
" ...,\n",
" [-5, -2, -4, ..., -2, -5, -3],\n",
" [-1, -3, -4, ..., 2, 0, -1],\n",
" [-3, -2, -5, ..., -2, 0, -4]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_SW_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-3 -8 -5 -5 -7 ... -6 -7 -5 -8 -5</div><input id='attrs-5ed1ceb9-5974-4df4-b803-c251eea06bd5' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-5ed1ceb9-5974-4df4-b803-c251eea06bd5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9024bfb6-7b6d-4ae9-9eac-eebc3e5400ad' class='xr-var-data-in' type='checkbox'><label for='data-9024bfb6-7b6d-4ae9-9eac-eebc3e5400ad' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[ -3, -8, -5, ..., -10, -5, -10],\n",
" [ -6, -4, -7, ..., -5, -8, -5],\n",
" [ -6, -7, -7, ..., -6, -7, -8],\n",
" ...,\n",
" [ -6, -7, -3, ..., -4, -4, -6],\n",
" [ -8, -5, -9, ..., -9, -6, -4],\n",
" [ -7, -5, -9, ..., -5, -8, -5]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_WSW_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-4 -6 -4 -5 -5 -3 ... -5 -5 -3 -4 0</div><input id='attrs-877ecb9a-ea20-4714-a187-8bc22c57f883' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-877ecb9a-ea20-4714-a187-8bc22c57f883' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e918a451-58c7-41e1-afea-84067173464e' class='xr-var-data-in' type='checkbox'><label for='data-e918a451-58c7-41e1-afea-84067173464e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-4, -6, -4, ..., -7, -5, -7],\n",
" [-2, -4, -3, ..., -6, -3, -2],\n",
" [-3, -3, -3, ..., -4, -5, -3],\n",
" ...,\n",
" [-8, -5, -5, ..., -4, -5, -4],\n",
" [-5, -4, -3, ..., -3, -5, -3],\n",
" [-3, -5, -6, ..., -3, -4, 0]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_E_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-6 -3 -5 -8 -7 ... -4 -6 -2 -4 -6</div><input id='attrs-467b5b92-dc47-4d8d-aeaf-a51170fc2092' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-467b5b92-dc47-4d8d-aeaf-a51170fc2092' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7f315ebb-6e84-445e-af7a-189d0b36652c' class='xr-var-data-in' type='checkbox'><label for='data-7f315ebb-6e84-445e-af7a-189d0b36652c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-6, -3, -5, ..., -7, -8, -4],\n",
" [-8, -5, -8, ..., -7, -4, -5],\n",
" [-6, -4, -5, ..., -6, -7, -3],\n",
" ...,\n",
" [-6, -5, -9, ..., -5, -7, -5],\n",
" [-6, -5, -7, ..., -6, -9, -6],\n",
" [-5, -3, -7, ..., -2, -4, -6]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_ESE_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-11 -13 -10 -11 ... -11 -10 -10 -12</div><input id='attrs-30b2a9c8-baf5-44b2-9331-210630fc5f32' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-30b2a9c8-baf5-44b2-9331-210630fc5f32' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f0f93ad5-335d-42cc-937a-58a6fa14571b' class='xr-var-data-in' type='checkbox'><label for='data-f0f93ad5-335d-42cc-937a-58a6fa14571b' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-11, -13, -10, ..., -12, -13, -9],\n",
" [ -8, -10, -13, ..., -12, -9, -9],\n",
" [-12, -12, -11, ..., -10, -9, -11],\n",
" ...,\n",
" [-13, -12, -10, ..., -10, -13, -11],\n",
" [-11, -12, -9, ..., -9, -11, -10],\n",
" [-12, -10, -8, ..., -10, -10, -12]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_SE_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-7 -3 -8 -2 -3 -2 ... 1 -6 -4 -4 -5</div><input id='attrs-f05e6f41-5689-4146-afa0-902864cbb700' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-f05e6f41-5689-4146-afa0-902864cbb700' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7e3d9aa7-6d95-4d95-8920-4fe57c6e1824' class='xr-var-data-in' type='checkbox'><label for='data-7e3d9aa7-6d95-4d95-8920-4fe57c6e1824' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-7, -3, -8, ..., -3, -7, -2],\n",
" [-6, -4, -9, ..., -6, -5, -2],\n",
" [-7, -5, -6, ..., -1, -8, -5],\n",
" ...,\n",
" [-1, -2, -7, ..., -3, -3, -2],\n",
" [-5, -6, -6, ..., -4, -8, -4],\n",
" [-6, -2, -4, ..., -4, -4, -5]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_SSE_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-13 -14 -14 -13 ... -13 -15 -14 -11</div><input id='attrs-d3190eb4-d829-4c81-9229-39d5aa6aa3e6' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-d3190eb4-d829-4c81-9229-39d5aa6aa3e6' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-60c5011e-12b2-4606-996b-f4bb2b3627c0' class='xr-var-data-in' type='checkbox'><label for='data-60c5011e-12b2-4606-996b-f4bb2b3627c0' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-13, -14, -14, ..., -14, -13, -16],\n",
" [-12, -15, -15, ..., -12, -15, -14],\n",
" [-14, -13, -14, ..., -14, -14, -15],\n",
" ...,\n",
" [-11, -10, -13, ..., -14, -10, -13],\n",
" [-12, -14, -11, ..., -9, -14, -13],\n",
" [-12, -15, -14, ..., -15, -14, -11]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_N_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-10 -9 -9 -10 -8 ... -11 -9 -9 -9</div><input id='attrs-205f537c-9ba4-46fa-8590-40ba07b48eef' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-205f537c-9ba4-46fa-8590-40ba07b48eef' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c9312925-7a1b-4e40-a683-b294418fcba4' class='xr-var-data-in' type='checkbox'><label for='data-c9312925-7a1b-4e40-a683-b294418fcba4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-10, -9, -9, ..., -11, -9, -12],\n",
" [ -9, -12, -10, ..., -10, -11, -10],\n",
" [ -9, -10, -8, ..., -11, -11, -10],\n",
" ...,\n",
" [-12, -11, -11, ..., -12, -12, -10],\n",
" [-10, -14, -10, ..., -8, -10, -11],\n",
" [-11, -9, -11, ..., -9, -9, -9]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_NNE_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-8 -9 -7 -10 -9 ... -8 -8 -8 -7 -8</div><input id='attrs-4694138d-087e-4913-b2da-3322e6f1f47a' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4694138d-087e-4913-b2da-3322e6f1f47a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bc5372bf-ad21-46e3-bc8a-11e684104565' class='xr-var-data-in' type='checkbox'><label for='data-bc5372bf-ad21-46e3-bc8a-11e684104565' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[ -8, -9, -7, ..., -6, -6, -10],\n",
" [ -6, -6, -8, ..., -9, -6, -6],\n",
" [ -8, -10, -9, ..., -6, -7, -8],\n",
" ...,\n",
" [ -7, -8, -7, ..., -9, -7, -7],\n",
" [ -7, -9, -7, ..., -7, -6, -9],\n",
" [ -7, -9, -8, ..., -8, -7, -8]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_NE_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-2 -5 -2 -4 -1 -2 ... 2 0 -2 2 -3</div><input id='attrs-8faa1bc5-58ee-445f-8a34-92d85402c33f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-8faa1bc5-58ee-445f-8a34-92d85402c33f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-862e54d0-e308-4d1d-b900-e76147988d99' class='xr-var-data-in' type='checkbox'><label for='data-862e54d0-e308-4d1d-b900-e76147988d99' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-2, -5, -2, ..., -3, -1, -5],\n",
" [-1, -2, -2, ..., -2, -2, -5],\n",
" [ 1, -2, -3, ..., -4, -5, -4],\n",
" ...,\n",
" [-2, -1, -1, ..., -4, -2, -6],\n",
" [ 0, -9, 0, ..., -1, 0, -4],\n",
" [-3, -3, -4, ..., -2, 2, -3]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>PES_ENE_raw</span></div><div class='xr-var-dims'>(trainId, PESsampleId)</div><div class='xr-var-dtype'>int16</div><div class='xr-var-preview xr-preview'>-4 -3 -2 -3 -3 ... -3 -5 -2 -3 -5</div><input id='attrs-7a1359d6-bcac-4112-8bb1-9c01bc0b0087' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-7a1359d6-bcac-4112-8bb1-9c01bc0b0087' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-324bef15-3a74-405a-a546-543bc665b7ae' class='xr-var-data-in' type='checkbox'><label for='data-324bef15-3a74-405a-a546-543bc665b7ae' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[-4, -3, -2, ..., -4, -2, -3],\n",
" [-4, -5, -3, ..., -1, -3, 2],\n",
" [-1, -2, -5, ..., -4, -3, -1],\n",
" ...,\n",
" [-5, -2, -4, ..., -2, 0, -1],\n",
" [-2, -2, -4, ..., -6, -4, -2],\n",
" [-3, -3, -5, ..., -2, -3, -5]], dtype=int16)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>navitar</span></div><div class='xr-var-dims'>(trainId, gratingEnergy)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>12.22 11.29 10.78 ... 13.06 12.46</div><input id='attrs-cbce4d74-2386-44f0-b28d-99fb8579c29c' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-cbce4d74-2386-44f0-b28d-99fb8579c29c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2ffec1eb-9200-4e81-a7d6-a5af7a5cdc25' class='xr-var-data-in' type='checkbox'><label for='data-2ffec1eb-9200-4e81-a7d6-a5af7a5cdc25' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[12.22 , 11.2875, 10.78 , ..., 12.105 , 11.035 , 11.4475],\n",
" [10.555 , 12.405 , 11.015 , ..., 11.995 , 11.7325, 10.76 ],\n",
" [11.725 , 10.5325, 11.47 , ..., 13.3975, 11.4575, 12.4975],\n",
" ...,\n",
" [10.5275, 11.8375, 10.88 , ..., 11.4275, 11.635 , 11.5475],\n",
" [11.1775, 11. , 10.9025, ..., 11.6725, 12.195 , 10.955 ],\n",
" [11.59 , 12.0475, 12.6725, ..., 12.425 , 13.0575, 12.455 ]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>energy</span></div><div class='xr-var-dims'>(trainId, gratingEnergy)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>981.0 981.0 ... 1.02e+03 1.02e+03</div><input id='attrs-3dc06260-d843-4a8b-b792-e0b35fb50b0b' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-3dc06260-d843-4a8b-b792-e0b35fb50b0b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-882f7217-4fe3-475e-bcfb-23d2210fe8b4' class='xr-var-data-in' type='checkbox'><label for='data-882f7217-4fe3-475e-bcfb-23d2210fe8b4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[ 981.00375578, 981.02558941, 981.04742304, ..., 1020.23878641,\n",
" 1020.26062003, 1020.28245366],\n",
" [ 980.99653477, 981.01836809, 981.04020142, ..., 1020.23101968,\n",
" 1020.252853 , 1020.27468633],\n",
" [ 981.00375578, 981.02558941, 981.04742304, ..., 1020.23878641,\n",
" 1020.26062003, 1020.28245366],\n",
" ...,\n",
" [ 981.00375578, 981.02558941, 981.04742304, ..., 1020.23878641,\n",
" 1020.26062003, 1020.28245366],\n",
" [ 981.00375578, 981.02558941, 981.04742304, ..., 1020.23878641,\n",
" 1020.26062003, 1020.28245366],\n",
" [ 981.02541948, 981.04725402, 981.06908856, ..., 1020.2620873 ,\n",
" 1020.28392184, 1020.30575638]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>bunchPatternTable</span></div><div class='xr-var-dims'>(trainId, pulse_slot)</div><div class='xr-var-dtype'>uint32</div><div class='xr-var-preview xr-preview'>2146089 0 ... 16777216 16777216</div><input id='attrs-4a6d7255-c0ce-4bd0-8b24-53fe81716551' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4a6d7255-c0ce-4bd0-8b24-53fe81716551' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a0601032-1a28-4b0e-88e7-0c1ad3e11f54' class='xr-var-data-in' type='checkbox'><label for='data-a0601032-1a28-4b0e-88e7-0c1ad3e11f54' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[ 2146089, 0, 2097193, ..., 16777216, 16777216, 16777216],\n",
" [ 2146089, 0, 2097193, ..., 16777216, 16777216, 16777216],\n",
" [ 2146089, 0, 2097193, ..., 16777216, 16777216, 16777216],\n",
" ...,\n",
" [ 2146089, 0, 2097193, ..., 16777216, 16777216, 16777216],\n",
" [ 2211625, 0, 2097193, ..., 16777216, 16777216, 16777216],\n",
" [ 2146089, 0, 2097193, ..., 16777216, 16777216, 16777216]],\n",
" dtype=uint32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>XTD10_SA3</span></div><div class='xr-var-dims'>(trainId, sa3_pId)</div><div class='xr-var-dtype'>float32</div><div class='xr-var-preview xr-preview'>1.217e+03 1.376e+03 ... 1.489e+03</div><input id='attrs-fbb06019-2284-4894-bf5b-b27f38890f02' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-fbb06019-2284-4894-bf5b-b27f38890f02' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1e20b3c9-2ffc-4a95-9e66-7df8839d2068' class='xr-var-data-in' type='checkbox'><label for='data-1e20b3c9-2ffc-4a95-9e66-7df8839d2068' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[1217.2598],\n",
" [1375.6898],\n",
" [1362.0608],\n",
" ...,\n",
" [1517.0592],\n",
" [1555.7712],\n",
" [1489.4523]], dtype=float32)</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-bf9b5168-318a-4881-8149-9dfd3a4163ea' class='xr-section-summary-in' type='checkbox' ><label for='section-bf9b5168-318a-4881-8149-9dfd3a4163ea' class='xr-section-summary' >Indexes: <span>(2)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-index-name'><div>trainId</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-5564b725-cc93-4373-8602-5f8a74e6a2bc' class='xr-index-data-in' type='checkbox'/><label for='index-5564b725-cc93-4373-8602-5f8a74e6a2bc' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([1724088331, 1724088332, 1724088333, 1724088334, 1724088335, 1724088336,\n",
" 1724088337, 1724088338, 1724088339, 1724088340,\n",
" ...\n",
" 1724098292, 1724098293, 1724098294, 1724098295, 1724098296, 1724098297,\n",
" 1724098298, 1724098299, 1724098300, 1724098301],\n",
" dtype='uint64', name='trainId', length=7165))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>sa3_pId</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-2c18ae71-a7b0-41f1-9828-66aadc4c2514' class='xr-index-data-in' type='checkbox'/><label for='index-2c18ae71-a7b0-41f1-9828-66aadc4c2514' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Index([1326], dtype='int64', name='sa3_pId'))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-fd512070-9dfc-467b-bb39-f5e991eff335' class='xr-section-summary-in' type='checkbox' checked><label for='section-fd512070-9dfc-467b-bb39-f5e991eff335' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>runFolder :</span></dt><dd>/gpfs/exfel/exp/SA3/202330/p900331/raw/r0069</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (trainId: 7165, PESsampleId: 40000, gratingEnergy: 1800,\n",
" pulse_slot: 2700, sa3_pId: 1)\n",
"Coordinates:\n",
" * trainId (trainId) uint64 1724088331 1724088332 ... 1724098301\n",
" * sa3_pId (sa3_pId) int64 1326\n",
"Dimensions without coordinates: PESsampleId, gratingEnergy, pulse_slot\n",
"Data variables: (12/16)\n",
" PES_S_raw (trainId, PESsampleId) int16 -1 0 -2 0 -2 ... 4 -1 1 1 1\n",
" PES_SSW_raw (trainId, PESsampleId) int16 -4 -3 -4 -2 ... -3 -2 0 -4\n",
" PES_SW_raw (trainId, PESsampleId) int16 -3 -8 -5 -5 ... -7 -5 -8 -5\n",
" PES_WSW_raw (trainId, PESsampleId) int16 -4 -6 -4 -5 ... -5 -3 -4 0\n",
" PES_E_raw (trainId, PESsampleId) int16 -6 -3 -5 -8 ... -6 -2 -4 -6\n",
" PES_ESE_raw (trainId, PESsampleId) int16 -11 -13 -10 ... -10 -10 -12\n",
" ... ...\n",
" PES_NE_raw (trainId, PESsampleId) int16 -2 -5 -2 -4 -1 ... 0 -2 2 -3\n",
" PES_ENE_raw (trainId, PESsampleId) int16 -4 -3 -2 -3 ... -5 -2 -3 -5\n",
" navitar (trainId, gratingEnergy) float64 12.22 11.29 ... 12.46\n",
" energy (trainId, gratingEnergy) float64 981.0 981.0 ... 1.02e+03\n",
" bunchPatternTable (trainId, pulse_slot) uint32 2146089 0 ... 16777216\n",
" XTD10_SA3 (trainId, sa3_pId) float32 1.217e+03 ... 1.489e+03\n",
"Attributes:\n",
" runFolder: /gpfs/exfel/exp/SA3/202330/p900331/raw/r0069"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_train"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "8f154e38-d208-477e-9d9c-ef2a632514c8",
"metadata": {},
"outputs": [],
"source": [
"energy = data_train.energy.to_numpy()[0,:]"
]
},
{
"cell_type": "code",
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
"id": "0c5ff2a0-0737-417d-9f57-158d4fbd8090",
"metadata": {},
"outputs": [],
"source": [
"gs = data_train.navitar.to_numpy()"
]
},
{
"cell_type": "markdown",
"id": "995e2ac0-1898-46dd-b95f-f65a24496871",
"metadata": {},
"source": [
"## Train Virtual Spectrometer"
]
},
{
"cell_type": "markdown",
"id": "9cbf75c8-fbe0-42ec-af85-6194aede91f5",
"metadata": {},
"source": [
"So far we have only done pre-processing due to experimental problems with some data not being available in certain train IDs.\n",
"\n",
"Let's finally take a look at the data before training the model."
]
},
{
"cell_type": "code",
"id": "63b35dac-ad50-4124-b6f8-e1ceea667b4d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x2afe24725480>]"
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(energy, gs[2])"
]
},
{
"cell_type": "code",
"id": "d0b70fef-5e27-4cb1-90e7-2653989cf48a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x2afe25a554b0>]"
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(-pes_data[\"channel_3_A\"][0,2600:2800])"
]
},
{
"cell_type": "markdown",
"id": "a6606c28-28c8-4d27-9f38-4a7ca88ee397",
"metadata": {},
"source": [
"Now, let's fit the model:"
]
},
{
"cell_type": "code",
"id": "5690cf09-4fed-497d-a09d-0f3cdceea04d",
"metadata": {},
"outputs": [],
"source": [
"n_test = 10 # exclude some trains to validate the training"
]
},
{
"cell_type": "code",
"id": "cb86aa32-dc1d-4684-bd62-25aa77a97245",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Checking data quality in high-resolution data.\n",
"Finding region-of-interest\n",
"Excluding outliers\n",
"Selected 6439 of 7155 samples.\n",
"Fitting PCA on low-resolution data.\n",
"Using 600 comp. for PES PCA.\n",
"Fitting PCA on high-resolution data.\n",
"Using 24 comp. for grating spec. PCA.\n",
"Fitting outlier detection\n",
"Fitting model.\n",
"Calculate PCA unc. on high-resolution data.\n",
"Calculate transfer function\n",
"Resolution = 0.77 eV, S/R = 5.69\n",
"Calculate PCA on channel_1_A\n",
"Calculate PCA on channel_1_B\n",
"Calculate PCA on channel_1_C\n",
"Calculate PCA on channel_1_D\n",
"Calculate PCA on channel_3_A\n",
"Calculate PCA on channel_3_B\n",
"Calculate PCA on channel_3_C\n",
"Calculate PCA on channel_3_D\n",
"Calculate PCA on channel_4_A\n",
"Calculate PCA on channel_4_B\n",
"Calculate PCA on channel_4_C\n",
"Calculate PCA on channel_4_D\n",
"End of fit.\n"
]
},
{
"data": {
"text/plain": [
"array([[[12.22 , 11.2875, 10.78 , ..., 12.105 , 11.035 , 11.4475]],\n",
" [[10.555 , 12.405 , 11.015 , ..., 11.995 , 11.7325, 10.76 ]],\n",
" [[11.725 , 10.5325, 11.47 , ..., 13.3975, 11.4575, 12.4975]],\n",
" [[11.2575, 12.1375, 10.1275, ..., 10.4625, 11.55 , 12.4175]],\n",
" [[10.2325, 11.135 , 11.3725, ..., 13.3375, 12.365 , 11.015 ]],\n",
" [[12.3775, 10.4575, 11.6425, ..., 11.6075, 11.1875, 12.3825]]])"
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# exclude the last n_test train IDs so we can use them for validation later\n",
"pes_train = {ch: pes_data[ch][:-n_test, :] for ch in pes_data.keys()}\n",
"gs_train = gs[:-n_test, :]\n",
"xgm_train = xgm[:-n_test,:]\n",
"\n",
"model = Model(channels=channels)\n",
"model.fit(pes_train,\n",
" gs_train,\n",
" np.broadcast_to(energy, (gs_train.shape[0], gs_train.shape[-1])),\n",
" pulse_energy=xgm_train)"
]
},
{
"cell_type": "markdown",
"id": "52c038c5-d86e-4e5a-9214-5e1878dd77e8",
"metadata": {},
"source": [
"The resolution of the Virtual Spectrometer relative to the Viking has also been estimated (in eV):"
]
},
{
"cell_type": "code",
"id": "a084b920-0006-4859-80f9-ff81f3c1f6b0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.resolution"
]
},
{
"cell_type": "markdown",
"id": "c1f47e6e-3b62-4c8a-8573-8eb4bd40f2ff",
"metadata": {},
"source": [
"We can look at the Virtual Spectrometer to Viking response function as well."
]
},
{
"cell_type": "code",
"id": "f752a9e0-8484-4381-8bb5-5eb27bd82670",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Intensity [a.u.]')"
]
},
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
"text/plain": [
"<Figure size 864x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12, 8))\n",
"plt.plot(model.impulse_axis, model.impulse_response)\n",
"plt.xlabel('Energy [eV]')\n",
"plt.ylabel('Intensity [a.u.]')"
]
},
{
"cell_type": "markdown",
"id": "3842cb23-a961-4a60-9e9e-d341256e1bb7",
"metadata": {},
"source": [
"## Save model"
]
},
{
"cell_type": "code",
"id": "4e612338-401e-4fd5-bef7-a6579af0d3d3",
"metadata": {},
"outputs": [],