Skip to content
Snippets Groups Projects
Virtual spectrometer SCS Viking.ipynb 514 KiB
Newer Older
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "6386344d-b7ac-440d-9926-f03af4ff9d6f",
   "metadata": {},
   "source": [
    "# Training the Virtual Spectrometer with Viking and PES data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1711c3b9-5065-4a44-8b1b-a3e861b92bc5",
   "metadata": {},
   "source": [
    "The objective here is to use the Viking detector 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 Viking 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",
    "* The sample between PES and Viking is transparent.\n",
    "* 1 pulse trains in \"training\".\n",
    "\n",
    "The following software implements:\n",
    "1. retrieve data and calibrate Viking using the SCS toolbox;\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",
   "execution_count": 1,
   "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",
   "execution_count": 2,
   "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": [
    "## Get data and calibrate Viking"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "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",
   "execution_count": 4,
   "id": "48bb4c8c-04ad-44d5-b123-643ce3253ceb",
   "metadata": {},
   "outputs": [],
   "source": [
    "proposal = 2953\n",
    "refNB = 322  # run containing the data without sample\n",
    "darkNB = 375  # dark run"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 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 721 722 723 724 725 726 727 728 729 730 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 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 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 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 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 997 998 999 1000
   "id": "0a467b2f-5f99-4ed8-bb1d-cb429454d3ce",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "newton: only 50.0% of trains (629 out of 1259) contain data.\n"
     ]
    }
   ],
   "source": [
    "v = tb.Viking(proposal)\n",
    "fields = ['XTD10_SA3',\n",
    "          *list(pes_map.values()) # add PES\n",
    "         ]\n",
    "v.FIELDS += fields\n",
    "v.X_RANGE = slice(0, 1500) # define the dispersive axis range of interest (in pixels)\n",
    "v.Y_RANGE = slice(29, 82) # define the non-dispersive axis range of interest (in pixels)\n",
    "v.ENERGY_CALIB = [1.47802667e-06, 2.30600328e-02, 5.15884589e+02] # energy calibration, see further below\n",
    "v.BL_POLY_DEG = 1 # define the polynomial degree for baseline subtraction\n",
    "v.BL_SIGNAL_RANGE = [500, 545] # define the range containing the signal, to be excluded for baseline subtraction\n",
    "\n",
    "v.load_dark(darkNB)  # load a dark image (averaged over the dark run number)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4f6124d9-8c1b-44f8-a078-07475a9674fc",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "newton: only 50.0% of trains (661 out of 1323) contain data.\n"
     ]
    },
    {
     "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'>&lt;xarray.Dataset&gt;\n",
       "Dimensions:            (trainId: 660, newt_y: 53, newt_x: 1500,\n",
       "                        PESsampleId: 700000, pulse_slot: 2700, sa3_pId: 43)\n",
       "Coordinates:\n",
       "  * trainId            (trainId) uint64 1473952798 1473952800 ... 1473954118\n",
       "  * sa3_pId            (sa3_pId) int64 1056 1088 1120 1152 ... 2336 2368 2400\n",
       "  * newt_x             (newt_x) float64 515.9 515.9 515.9 ... 553.7 553.7 553.8\n",
       "Dimensions without coordinates: newt_y, PESsampleId, pulse_slot\n",
       "Data variables:\n",
       "    newton             (trainId, newt_y, newt_x) float64 943.0 800.0 ... 758.0\n",
       "    PES_S_raw          (trainId, PESsampleId) int16 -2 1 1 2 -1 ... 2 -1 3 -3 1\n",
       "    bunchPatternTable  (trainId, pulse_slot) uint32 2146089 2048 ... 16777216\n",
       "    XTD10_SA3          (trainId, sa3_pId) float32 1.674e+03 ... 1.465e+03\n",
       "    spectrum           (trainId, newt_x) float64 941.8 960.7 ... 1.319e+03\n",
       "    spectrum_nobl      (trainId, newt_x) float64 -25.84 -7.057 ... -41.9 -25.1\n",
       "Attributes:\n",
       "    runFolder:                 /gpfs/exfel/exp/SCS/202202/p002953/raw/r0322\n",
       "    vbin::                     4\n",
       "    hbin:                      1\n",
       "    startX:                    1\n",
       "    endX:                      2048\n",
       "    startY:                    1\n",
       "    endY:                      512\n",
       "    temperature:               -50.04199981689453\n",
       "    high_capacity:             0\n",
       "    exposure_s:                0.0004\n",
       "    gain:                      2\n",
       "    photoelectrons_per_count:  2.05</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-fd414bf9-f1a6-4703-9482-124ae0ab5672' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-fd414bf9-f1a6-4703-9482-124ae0ab5672' 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>: 660</li><li><span>newt_y</span>: 53</li><li><span class='xr-has-index'>newt_x</span>: 1500</li><li><span>PESsampleId</span>: 700000</li><li><span>pulse_slot</span>: 2700</li><li><span class='xr-has-index'>sa3_pId</span>: 43</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-e1d1f390-4e9c-4d9c-85e5-e4b87a9edb83' class='xr-section-summary-in' type='checkbox'  checked><label for='section-e1d1f390-4e9c-4d9c-85e5-e4b87a9edb83' class='xr-section-summary' >Coordinates: <span>(3)</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'>1473952798 ... 1473954118</div><input id='attrs-1b4de921-649c-4306-bd88-aeb2636fb1a2' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-1b4de921-649c-4306-bd88-aeb2636fb1a2' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1b9e907f-88dc-4fe5-ad5f-6d3b99ab026e' class='xr-var-data-in' type='checkbox'><label for='data-1b9e907f-88dc-4fe5-ad5f-6d3b99ab026e' 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([1473952798, 1473952800, 1473952802, ..., 1473954114, 1473954116,\n",
       "       1473954118], 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'>1056 1088 1120 ... 2336 2368 2400</div><input id='attrs-c92acbc3-3161-4c7e-91e1-028fe19b9e12' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-c92acbc3-3161-4c7e-91e1-028fe19b9e12' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-413f089f-279a-4500-9a48-8963033f6f29' class='xr-var-data-in' type='checkbox'><label for='data-413f089f-279a-4500-9a48-8963033f6f29' 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([1056, 1088, 1120, 1152, 1184, 1216, 1248, 1280, 1312, 1344, 1376, 1408,\n",
       "       1440, 1472, 1504, 1536, 1568, 1600, 1632, 1664, 1696, 1728, 1760, 1792,\n",
       "       1824, 1856, 1888, 1920, 1952, 1984, 2016, 2048, 2080, 2112, 2144, 2176,\n",
       "       2208, 2240, 2272, 2304, 2336, 2368, 2400])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>newt_x</span></div><div class='xr-var-dims'>(newt_x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>515.9 515.9 515.9 ... 553.7 553.8</div><input id='attrs-eedd9586-b8a1-4b1a-90bc-55ed7a8d6ded' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-eedd9586-b8a1-4b1a-90bc-55ed7a8d6ded' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a2150d70-3c44-475b-9b95-bab1390eee7b' class='xr-var-data-in' type='checkbox'><label for='data-a2150d70-3c44-475b-9b95-bab1390eee7b' 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([515.884589, 515.907651, 515.930715, ..., 553.717729, 553.745216,\n",
       "       553.772706])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-9a884bb4-5398-41ec-9b92-9f531e262e24' class='xr-section-summary-in' type='checkbox'  checked><label for='section-9a884bb4-5398-41ec-9b92-9f531e262e24' class='xr-section-summary' >Data variables: <span>(6)</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>newton</span></div><div class='xr-var-dims'>(trainId, newt_y, newt_x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>943.0 800.0 697.0 ... 805.0 758.0</div><input id='attrs-8457b964-d705-45a0-b43a-54488cbae436' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-8457b964-d705-45a0-b43a-54488cbae436' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1030b7a3-64bc-4972-8c8e-3922ad3f8c13' class='xr-var-data-in' type='checkbox'><label for='data-1030b7a3-64bc-4972-8c8e-3922ad3f8c13' 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([[[ 943.,  800.,  697., ...,  985., 1057., 1038.],\n",
       "        [ 842.,  921.,  957., ..., 1037., 1041.,  978.],\n",
       "        [ 744.,  587.,  558., ..., 1094.,  925., 1030.],\n",
       "        ...,\n",
       "        [ 600.,  688.,  836., ...,  970., 1061., 1204.],\n",
       "        [ 681.,  625.,  675., ...,  921.,  938.,  887.],\n",
       "        [ 695.,  593.,  822., ...,  666.,  582.,  829.]],\n",
       "\n",
       "       [[ 918.,  949.,  901., ...,  892.,  976.,  905.],\n",
       "        [ 857.,  912., 1083., ...,  731.,  757.,  758.],\n",
       "        [ 630.,  575.,  599., ..., 1058.,  967.,  914.],\n",
       "        ...,\n",
       "        [ 741.,  776.,  874., ...,  784.,  961., 1391.],\n",
       "        [ 684.,  971.,  878., ...,  954., 1218., 1041.],\n",
       "        [ 831.,  647.,  744., ...,  643.,  690.,  733.]],\n",
       "\n",
       "       [[ 634.,  709.,  727., ...,  985.,  963.,  836.],\n",
       "        [ 553.,  612.,  787., ..., 1169.,  788.,  903.],\n",
       "        [ 668.,  618.,  621., ...,  785.,  863.,  835.],\n",
       "        ...,\n",
       "...\n",
       "        ...,\n",
       "        [ 920.,  815.,  759., ...,  844., 1050.,  839.],\n",
       "        [1080.,  956.,  661., ...,  968., 1001.,  915.],\n",
       "        [ 811.,  918.,  652., ...,  873.,  823., 1034.]],\n",
       "\n",
       "       [[ 733.,  606.,  582., ...,  880., 1039., 1139.],\n",
       "        [ 784.,  806.,  787., ..., 1075., 1125.,  827.],\n",
       "        [ 889.,  848.,  957., ...,  962., 1071.,  811.],\n",
       "        ...,\n",
       "        [ 860.,  649.,  578., ...,  962., 1151.,  985.],\n",
       "        [ 845.,  663.,  688., ...,  836.,  978., 1340.],\n",
       "        [ 732.,  784.,  586., ...,  734.,  872.,  829.]],\n",
       "\n",
       "       [[ 697.,  934.,  742., ...,  873.,  753.,  931.],\n",
       "        [ 694.,  730.,  774., ...,  802., 1020., 1206.],\n",
       "        [ 697.,  956.,  694., ...,  700.,  785.,  899.],\n",
       "        ...,\n",
       "        [ 799.,  717.,  918., ...,  898.,  951., 1050.],\n",
       "        [ 870.,  949.,  918., ...,  911., 1283., 1080.],\n",
       "        [ 894.,  627.,  652., ..., 1032.,  805.,  758.]]])</pre></div></li><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'>-2 1 1 2 -1 1 0 ... -2 2 -1 3 -3 1</div><input id='attrs-6687d2f9-7038-4d51-855f-5a4192050329' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-6687d2f9-7038-4d51-855f-5a4192050329' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3fcb785d-f744-4a67-9f9b-56245bf972d3' class='xr-var-data-in' type='checkbox'><label for='data-3fcb785d-f744-4a67-9f9b-56245bf972d3' 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,  1,  1, ...,  4, -3, -2],\n",
       "       [ 1,  0, -1, ...,  3, -2,  0],\n",
       "       [-1,  6,  0, ...,  1, -4,  1],\n",
       "       ...,\n",
       "       [-2,  1, -1, ..., -1,  3,  0],\n",
       "       [-1,  4,  0, ...,  0,  2,  1],\n",
       "       [-2,  1,  0, ...,  3, -3,  1]], dtype=int16)</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 2048 ... 16777216 16777216</div><input id='attrs-4db22c03-4d77-4288-b1e7-e9e7876e4dfa' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4db22c03-4d77-4288-b1e7-e9e7876e4dfa' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-37bf01d9-89b2-4ed9-945a-7a9e89759cb3' class='xr-var-data-in' type='checkbox'><label for='data-37bf01d9-89b2-4ed9-945a-7a9e89759cb3' 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,     2048,  2099241, ..., 16777216, 16777216, 16777216],\n",
       "       [ 2146089,     2048,  2099241, ..., 16777216, 16777216, 16777216],\n",
       "       [ 2211625,     2048,  2099241, ..., 16777216, 16777216, 16777216],\n",
       "       ...,\n",
       "       [ 2146089,     2048,  2099241, ..., 16777216, 16777216, 16777216],\n",
       "       [ 2146089,     2048,  2099241, ..., 16777216, 16777216, 16777216],\n",
       "       [ 2146089,     2048,  2099241, ..., 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.674e+03 1.781e+03 ... 1.465e+03</div><input id='attrs-9f098230-2651-4ea6-b80e-1c462eeb6400' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-9f098230-2651-4ea6-b80e-1c462eeb6400' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a216fc85-9c40-4153-92ec-485e03862001' class='xr-var-data-in' type='checkbox'><label for='data-a216fc85-9c40-4153-92ec-485e03862001' 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([[1673.9749, 1780.605 , 1452.1677, ..., 1836.0759, 1695.688 ,\n",
       "        1458.0745],\n",
       "       [2012.4326, 1767.7134, 1716.7632, ..., 1651.4255, 1813.9778,\n",
       "        1431.3564],\n",
       "       [1630.8784, 1645.9148, 1469.2832, ..., 1508.0568, 1385.6311,\n",
       "        1416.7161],\n",
       "       ...,\n",
       "       [1507.3145, 1752.1653, 1686.9208, ..., 1737.3125, 1577.063 ,\n",
       "        1616.5239],\n",
       "       [2101.6008, 1569.2412, 1855.7173, ..., 1483.9696, 1664.9822,\n",
       "        1348.7126],\n",
       "       [1564.1768, 1731.567 , 1535.6467, ..., 1721.9434, 1681.0325,\n",
       "        1465.4915]], dtype=float32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>spectrum</span></div><div class='xr-var-dims'>(trainId, newt_x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>941.8 960.7 ... 1.302e+03 1.319e+03</div><input id='attrs-251bd6e7-46e5-4ecf-b133-cfdf591daf4a' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-251bd6e7-46e5-4ecf-b133-cfdf591daf4a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7971d60c-80fc-4061-92d5-9629bf06c08d' class='xr-var-data-in' type='checkbox'><label for='data-7971d60c-80fc-4061-92d5-9629bf06c08d' 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([[ 941.7556739 ,  960.7466906 ,  985.17017035, ..., 1429.04684533,\n",
       "        1345.94695049, 1329.10718964],\n",
       "       [1078.21605126, 1053.65423777, 1074.17111375, ..., 1328.01665665,\n",
       "        1424.27242218, 1363.57039719],\n",
       "       [ 935.14152295,  949.06555853,  981.37960431, ..., 1409.16571326,\n",
       "        1329.469592  , 1194.42605757],\n",
       "       ...,\n",
       "       [1025.26416446, 1002.32687928,  985.82771752, ..., 1286.78458118,\n",
       "        1334.07242218, 1294.76001983],\n",
       "       [1083.24435314, 1097.98065287, 1044.15601941, ..., 1231.7053359 ,\n",
       "        1391.47242218, 1360.74681228],\n",
       "       [1022.09246635, 1066.147634  , 1049.91922696, ..., 1362.59590193,\n",
       "        1302.00732785, 1319.01190662]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>spectrum_nobl</span></div><div class='xr-var-dims'>(trainId, newt_x)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>-25.84 -7.057 17.15 ... -41.9 -25.1</div><input id='attrs-64ed0922-3f72-4788-a79a-233531435e95' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-64ed0922-3f72-4788-a79a-233531435e95' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-b632a8a8-d6ed-41ef-add6-95044c150956' class='xr-var-data-in' type='checkbox'><label for='data-b632a8a8-d6ed-41ef-add6-95044c150956' 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([[ -25.83624416,   -7.0570592 ,   17.15456166, ...,  113.93823559,\n",
       "          30.58586118,   13.49359361],\n",
       "       [ 132.95311623,  108.13436457,  128.39426944, ...,  -38.76150904,\n",
       "          57.18801513,   -3.82028416],\n",
       "       [  -4.23122332,    9.49350667,   41.60822133, ...,  142.82583547,\n",
       "          62.89216441,  -72.38894537],\n",
       "       ...,\n",
       "       [  22.22432542,   -0.8607938 ,  -17.50780854, ...,   41.21831883,\n",
       "          88.32995832,   48.8413355 ],\n",
       "       [  80.40705362,   94.91392577,   40.85983533, ..., -147.51518149,\n",
       "          11.97845297,  -19.02063816],\n",
       "       [ -34.8527069 ,    9.02766964,   -7.37555092, ...,   18.90036362,\n",
       "         -41.89654178,  -25.10031672]])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-a2ef37bc-70b0-4dd0-9e8a-f29718e83d0f' class='xr-section-summary-in' type='checkbox'  ><label for='section-a2ef37bc-70b0-4dd0-9e8a-f29718e83d0f' class='xr-section-summary' >Indexes: <span>(3)</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-ba3f0e5c-908c-4771-9ddd-5b0f4e19029d' class='xr-index-data-in' type='checkbox'/><label for='index-ba3f0e5c-908c-4771-9ddd-5b0f4e19029d' 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([1473952798, 1473952800, 1473952802, 1473952804, 1473952806, 1473952808,\n",
       "       1473952810, 1473952812, 1473952814, 1473952816,\n",
       "       ...\n",
       "       1473954100, 1473954102, 1473954104, 1473954106, 1473954108, 1473954110,\n",
       "       1473954112, 1473954114, 1473954116, 1473954118],\n",
       "      dtype=&#x27;uint64&#x27;, name=&#x27;trainId&#x27;, length=660))</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-94832636-3d5a-4603-ac77-823aa8880850' class='xr-index-data-in' type='checkbox'/><label for='index-94832636-3d5a-4603-ac77-823aa8880850' 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([1056, 1088, 1120, 1152, 1184, 1216, 1248, 1280, 1312, 1344, 1376, 1408,\n",
       "       1440, 1472, 1504, 1536, 1568, 1600, 1632, 1664, 1696, 1728, 1760, 1792,\n",
       "       1824, 1856, 1888, 1920, 1952, 1984, 2016, 2048, 2080, 2112, 2144, 2176,\n",
       "       2208, 2240, 2272, 2304, 2336, 2368, 2400],\n",
       "      dtype=&#x27;int64&#x27;, name=&#x27;sa3_pId&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>newt_x</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-139691c8-7ea6-484d-9e69-9f8228575d00' class='xr-index-data-in' type='checkbox'/><label for='index-139691c8-7ea6-484d-9e69-9f8228575d00' 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([       515.884589, 515.9076505108267, 515.9307149777067,\n",
       "       515.9537824006401, 515.9768527796267, 515.9999261146668,\n",
       "       516.0230024057602, 516.0460816529069, 516.0691638561069,\n",
       "       516.0922490153603,\n",
       "       ...\n",
       "        553.525404882067, 553.5528709123703, 553.5803398987268,\n",
       "       553.6078118411368, 553.6352867396001, 553.6627645941168,\n",
       "       553.6902454046867,   553.71772917131, 553.7452158939867,\n",
       "       553.7727055727166],\n",
       "      dtype=&#x27;float64&#x27;, name=&#x27;newt_x&#x27;, length=1500))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-61ad767c-b93f-436b-a3b4-625a410aa189' class='xr-section-summary-in' type='checkbox'  ><label for='section-61ad767c-b93f-436b-a3b4-625a410aa189' class='xr-section-summary' >Attributes: <span>(12)</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/SCS/202202/p002953/raw/r0322</dd><dt><span>vbin: :</span></dt><dd>4</dd><dt><span>hbin :</span></dt><dd>1</dd><dt><span>startX :</span></dt><dd>1</dd><dt><span>endX :</span></dt><dd>2048</dd><dt><span>startY :</span></dt><dd>1</dd><dt><span>endY :</span></dt><dd>512</dd><dt><span>temperature :</span></dt><dd>-50.04199981689453</dd><dt><span>high_capacity :</span></dt><dd>0</dd><dt><span>exposure_s :</span></dt><dd>0.0004</dd><dt><span>gain :</span></dt><dd>2</dd><dt><span>photoelectrons_per_count :</span></dt><dd>2.05</dd></dl></div></li></ul></div></div>"
      ],
      "text/plain": [
       "<xarray.Dataset>\n",
       "Dimensions:            (trainId: 660, newt_y: 53, newt_x: 1500,\n",
       "                        PESsampleId: 700000, pulse_slot: 2700, sa3_pId: 43)\n",
       "Coordinates:\n",
       "  * trainId            (trainId) uint64 1473952798 1473952800 ... 1473954118\n",
       "  * sa3_pId            (sa3_pId) int64 1056 1088 1120 1152 ... 2336 2368 2400\n",
       "  * newt_x             (newt_x) float64 515.9 515.9 515.9 ... 553.7 553.7 553.8\n",
       "Dimensions without coordinates: newt_y, PESsampleId, pulse_slot\n",
       "Data variables:\n",
       "    newton             (trainId, newt_y, newt_x) float64 943.0 800.0 ... 758.0\n",
       "    PES_S_raw          (trainId, PESsampleId) int16 -2 1 1 2 -1 ... 2 -1 3 -3 1\n",
       "    bunchPatternTable  (trainId, pulse_slot) uint32 2146089 2048 ... 16777216\n",
       "    XTD10_SA3          (trainId, sa3_pId) float32 1.674e+03 ... 1.465e+03\n",
       "    spectrum           (trainId, newt_x) float64 941.8 960.7 ... 1.319e+03\n",
       "    spectrum_nobl      (trainId, newt_x) float64 -25.84 -7.057 ... -41.9 -25.1\n",
       "Attributes:\n",
       "    runFolder:                 /gpfs/exfel/exp/SCS/202202/p002953/raw/r0322\n",
       "    vbin::                     4\n",
       "    hbin:                      1\n",
       "    startX:                    1\n",
       "    endX:                      2048\n",
       "    startY:                    1\n",
       "    endY:                      512\n",
       "    temperature:               -50.04199981689453\n",
       "    high_capacity:             0\n",
       "    exposure_s:                0.0004\n",
       "    gain:                      2\n",
       "    photoelectrons_per_count:  2.05"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_train = v.from_run(refNB)  # load refNB. The `newton` variable contains the CCD images.\n",
    "v.integrate(data_train)  # integrate over the non-dispersive dimension \n",
    "v.removePolyBaseline(data_train)  # remove baseline\n",
    "data_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "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",
   "execution_count": 33,
   "id": "b477bf49-f5ca-4df0-b6ed-a270ee35cd28",
   "metadata": {},
   "outputs": [],
   "source": [
    "channels = tuple(pes_data.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "8f154e38-d208-477e-9d9c-ef2a632514c8",
   "metadata": {},
   "outputs": [],
   "source": [
    "energy = data_train.newt_x.to_numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "0c5ff2a0-0737-417d-9f57-158d4fbd8090",
   "metadata": {},
   "outputs": [],
   "source": [
    "vik = data_train.spectrum.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",
   "execution_count": 35,
   "id": "63b35dac-ad50-4124-b6f8-e1ceea667b4d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x2ad645bdbb50>]"
      ]
     },
     "execution_count": 35,
     "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, vik[2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "d0b70fef-5e27-4cb1-90e7-2653989cf48a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x2ad645f58e80>]"
      ]
     },
     "execution_count": 45,
     "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_1_A\"][0,31400:31700])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a6606c28-28c8-4d27-9f38-4a7ca88ee397",
   "metadata": {},
   "source": [
    "Now, let's fit the model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5690cf09-4fed-497d-a09d-0f3cdceea04d",
   "metadata": {},
   "outputs": [],
   "source": [
    "n_test = 10 # exclude some trains to validate the training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "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 15001 of 16668 samples.\n",
      "Fitting PCA on low-resolution data.\n",
      "Using 600 comp. for PES PCA.\n",
      "Fitting PCA on high-resolution data.\n",
      "Using 20 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.78 eV, S/R = 3.83\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_2_A\n",
      "Calculate PCA on channel_2_B\n",
      "Calculate PCA on channel_2_C\n",
      "Calculate PCA on channel_2_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",
      "End of fit.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[[ 45.25033909,  -1.52076639, -26.40138086, ...,  41.11148219,\n",
       "         -28.81773406,  -4.55958428]],\n",
       "\n",
       "       [[ 84.63051252,  58.4918049 ,  34.38415664, ..., -68.71856042,\n",
       "         -10.15857886,  18.19808707]],\n",
       "\n",
       "       [[ 42.7415937 ,  62.99841607,  25.56760753, ...,  37.3064036 ,\n",
       "         -14.95242637, -55.78951224]],\n",
       "\n",
       "       ...,\n",
       "\n",
       "       [[ 16.59243397,  20.11136385,  34.66138075, ..., -28.25942387,\n",
       "         -33.72842352, -30.10383616]],\n",
       "\n",
       "       [[ 14.56659321,  57.7321962 ,  53.2570205 , ..., -37.47129771,\n",
       "         -44.67869095,   9.89501214]],\n",
       "\n",
       "       [[ 24.36188951,  66.45856414,  16.32071628, ...,   1.01045004,\n",
       "         -56.16842253, -25.37869259]]])"
      ]
     },
     "execution_count": 47,
     "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",
    "vik_train = vik[:-n_test, :]\n",
    "xgm_train = xgm[:-n_test,:]\n",
    "\n",
    "model = Model(channels=channels)\n",
    "model.fit(pes_train,\n",
    "          vik_train,\n",
    "          np.broadcast_to(energy, (vik_train.shape[0], vik_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",
   "execution_count": 48,
   "id": "a084b920-0006-4859-80f9-ff81f3c1f6b0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7772695469856838"
      ]
     },
     "execution_count": 48,
     "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",
   "execution_count": 49,
   "id": "f752a9e0-8484-4381-8bb5-5eb27bd82670",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Intensity [a.u.]')"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"