Files
cristallina_analysis_package/examples/data_examples.ipynb
T

103 KiB
Executable File

In [60]:
import os
os.getcwd()
Out [60]:
'/gfa/.mounts/sf_cristallina/applications/cristallina'
In [37]:
%matplotlib widget

import cristallina as cr
import sfdata as sf

from matplotlib import pyplot as plt
In [3]:
import pytest
import numpy as np
import unittest.mock

In [4]:
test_image_calculations()
In [61]:

@unittest.mock.patch("jungfrau_utils.file_adapter.locate_gain_file", lambda path, **kwargs: "tests/data/gains.h5")
@unittest.mock.patch("jungfrau_utils.file_adapter.locate_pedestal_file", lambda path, **kwargs: "tests/data/JF16T03V01.res.h5")
def test():
    with sf.SFDataFiles('tests/data/p20841/raw/run0205/data/acq0001.*.h5') as data:
        jf = data['JF16T03V01']
        print(jf.data.shape)
        fig, ax = plt.subplots()
        ax.imshow(jf.data[11],vmin=-1, vmax=1000)
        return jf
        

jf = test()
/sf/cristallina/applications/conda/envs/analysis_edge/lib/python3.11/site-packages/sfdata-0.4.0-py3.11.egg/sfdata/sfdatafile.py:107: UserWarning: Skipping channel "SARFE10-PBPS053:MOTOR_X2" since it caused DatasetNotInGroupError: Cannot get dataset "data" from: <HDF5 group "/SARFE10-PBPS053:MOTOR_X2" (0 members)>
/sf/cristallina/applications/conda/envs/analysis_edge/lib/python3.11/site-packages/sfdata-0.4.0-py3.11.egg/sfdata/sfdatafile.py:107: UserWarning: Skipping channel "SAROP31-OPPI151:MOTOR_X.RBV" since it caused DatasetNotInGroupError: Cannot get dataset "data" from: <HDF5 group "/SAROP31-OPPI151:MOTOR_X.RBV" (0 members)>
/sf/cristallina/applications/conda/envs/analysis_edge/lib/python3.11/site-packages/sfdata-0.4.0-py3.11.egg/sfdata/sfdatafile.py:107: UserWarning: Skipping channel "SAROP31-OPPI151:MOTOR_Y.RBV" since it caused DatasetNotInGroupError: Cannot get dataset "data" from: <HDF5 group "/SAROP31-OPPI151:MOTOR_Y.RBV" (0 members)>
(21, 1614, 1030)
In [55]:
@unittest.mock.patch("jungfrau_utils.file_adapter.locate_gain_file", lambda path, **kwargs: "tests/data/gains.h5")
@unittest.mock.patch("jungfrau_utils.file_adapter.locate_pedestal_file", lambda path, **kwargs: "tests/data/JF16T03V01.res.h5")
def test_roi():
    roi = cr.utils.ROI(left=575, right=750, top=750, bottom=600)
    res = cr.analysis.perform_image_roi_crop(['tests/data/p20841/raw/run0205/data/acq0001.*.h5'], roi=roi)
    return res

cutouts = test_roi()
fig, ax = plt.subplots()
ax.imshow(cutouts[11])

sum_roi, max_roi, min_roi = np.sum(cutouts[11]), np.max(cutouts[11]), np.min(cutouts[11])
assert np.allclose([3119071.8, 22381.547, -0.9425874 ], [sum_roi, max_roi, min_roi])
No ROI name given, generating: ROI(bottom=600,top=750,left=575,right=750)
In [ ]: