xrayscatteringtools 1.0.0__tar.gz → 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/PKG-INFO +1 -1
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/pyproject.toml +1 -1
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/masking.py +16 -7
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/io.py +9 -2
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/.gitattributes +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/.github/workflows/tests.yml +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/.gitignore +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/LICENSE +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/README.md +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/__init__.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/__init__.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/data/Zn_attenuation_length.h5 +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/data/attenuation_lengths.h5 +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/geometry_calibration.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/scattering_corrections.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/timetool_calibration.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/data/Jungfrau4M.h5 +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/epicsArch.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/plotting.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/__init__.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/IAM/Compton_Factors.npy +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/IAM/Scattering_Factors.npy +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/geometries/SF6__CCSD_T_DHK__aug_cc_pV5Z_DK.h5 +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/geometries/make_geometry_h5.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/patterns/SF6__CCSD__aug_cc_pVDZ.h5 +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/patterns/SF6__HF__aug_cc_pVDZ.h5 +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/patterns/SF6__MP2__aug_cc_pVDZ.h5 +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/data/patterns/convert_ab_initio_to_h5.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/geometries.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/geometries.pyi +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/iam.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/patterns.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/patterns.pyi +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/utils.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/__init__.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/DMP_D.xyz +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/DMP_L1.xyz +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/DMP_L2.xyz +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/DMP_ground.xyz +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/azav_test.ipynb +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/calib_test.ipynb +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/geometries_test.ipynb +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/iam_oriented_test.ipynb +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/iam_pattern_test.ipynb +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/old/patterns_test.ipynb +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/sf6_test.xyz +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_geometries.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_geometry_calibration.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_iam.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_io.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_masking.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_patterns.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_plotting.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_scattering_corrections.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_timetool_calibration.py +0 -0
- {xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: xrayscatteringtools
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: A library for gas phase analysis at the CXI endstation
|
|
5
5
|
Project-URL: Homepage, https://github.com/Weber-Group/xrayscatteringtools
|
|
6
6
|
Project-URL: Issues, https://github.com/Weber-Group/xrayscatteringtools/issues
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "xrayscatteringtools"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.2"
|
|
8
8
|
description = "A library for gas phase analysis at the CXI endstation"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "David Romano", email = "david_j_romano@brown.edu" }
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/masking.py
RENAMED
|
@@ -22,7 +22,6 @@ logger = logging.getLogger(__name__)
|
|
|
22
22
|
_KEYS_TO_COMBINE = [
|
|
23
23
|
'lightStatus/xray',
|
|
24
24
|
'lightStatus/laser',
|
|
25
|
-
'jungfrau4M/azav_azav',
|
|
26
25
|
]
|
|
27
26
|
_KEYS_TO_SUM = [
|
|
28
27
|
'Sums/jungfrau4M_calib_xrayOn_thresADU1',
|
|
@@ -214,9 +213,19 @@ class MaskMaker:
|
|
|
214
213
|
ub : float, optional
|
|
215
214
|
Upper ``arcsinh`` intensity cutoff.
|
|
216
215
|
"""
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
216
|
+
|
|
217
|
+
if np.sum(~self.dark_data['lightStatus/xray'].astype(bool)) == 0:
|
|
218
|
+
logger.warning(
|
|
219
|
+
f"EVR Codes indicate no dropped (dark) shots in run {self.dark_run_number}. "
|
|
220
|
+
"Double check that this is a proper dark (not pedestal) run. This warning can be ignored if the run is correct, as sometimes the EVR codes are not perfectly reliable."
|
|
221
|
+
)
|
|
222
|
+
# Compute average dark image (xray-off frames only)
|
|
223
|
+
dark_num_shots = len(self.dark_data['lightStatus/xray'])
|
|
224
|
+
dark_avg = np.array(self.dark_data['Sums/jungfrau4M_calib'] / dark_num_shots)
|
|
225
|
+
else:
|
|
226
|
+
dark_num_shots = np.sum(~self.dark_data['lightStatus/xray'].astype(bool))
|
|
227
|
+
dark_avg = np.array(self.dark_data['Sums/jungfrau4M_calib_dropped'] / dark_num_shots)
|
|
228
|
+
|
|
220
229
|
dark_arcsinh = np.arcsinh(dark_avg)
|
|
221
230
|
|
|
222
231
|
if plotting:
|
|
@@ -244,7 +253,7 @@ class MaskMaker:
|
|
|
244
253
|
raise ValueError(f"Lower bound ({lb}) must be less than upper bound ({ub}).")
|
|
245
254
|
|
|
246
255
|
# Build the mask
|
|
247
|
-
self.dark_mask = (dark_arcsinh >= lb) & (dark_arcsinh <= ub)
|
|
256
|
+
self.dark_mask = np.logical_and(self.dark_mask,(dark_arcsinh >= lb) & (dark_arcsinh <= ub))
|
|
248
257
|
|
|
249
258
|
if plotting:
|
|
250
259
|
dark_avg_masked = np.where(self.dark_mask, dark_avg, np.nan)
|
|
@@ -483,7 +492,7 @@ class MaskMaker:
|
|
|
483
492
|
|
|
484
493
|
# Compute the q-map
|
|
485
494
|
q_map = compute_q_map(J4M.x, J4M.y, x0, y0, z0, tx, ty, keV, z_off)
|
|
486
|
-
q_bins = np.linspace(np.nanmin(q_map), np.nanmax(q_map), n_q_bins)
|
|
495
|
+
q_bins = np.linspace(np.nanmin(q_map[~np.isnan(sample_avg_masked)]), np.nanmax(q_map[~np.isnan(sample_avg_masked)]), n_q_bins)
|
|
487
496
|
|
|
488
497
|
for q_idx, q_lo in tqdm(enumerate(q_bins[:-1]), total=len(q_bins) - 1):
|
|
489
498
|
q_hi = q_bins[q_idx + 1]
|
|
@@ -632,7 +641,7 @@ class MaskMaker:
|
|
|
632
641
|
sample_avg_corrected = sample_avg_masked / thompson_corr
|
|
633
642
|
|
|
634
643
|
q_map = compute_q_map(J4M.x, J4M.y, x0, y0, z0, tx, ty, keV, z_off)
|
|
635
|
-
q_bins = np.linspace(np.nanmin(q_map), np.nanmax(q_map), n_q_bins)
|
|
644
|
+
q_bins = np.linspace(np.nanmin(q_map[~np.isnan(sample_avg_masked)]), np.nanmax(q_map[~np.isnan(sample_avg_masked)]), n_q_bins)
|
|
636
645
|
q_centers = (q_bins[:-1] + q_bins[1:]) / 2
|
|
637
646
|
|
|
638
647
|
means = np.empty(len(q_centers))
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import glob
|
|
2
|
+
import os
|
|
1
3
|
import numpy as np
|
|
2
4
|
import h5py
|
|
3
5
|
from .epicsArch import EpicsArchive
|
|
@@ -99,8 +101,13 @@ def combineRuns(runNumbers, folders, keys_to_combine, keys_to_sum, keys_to_check
|
|
|
99
101
|
data_array = []
|
|
100
102
|
for i, runNumber in enumerate(tqdm(runNumbers, desc="Loading Runs")):
|
|
101
103
|
data = {}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
run_suffix = f'_Run{runNumToString(runNumber)}.h5'
|
|
105
|
+
matches = sorted(glob.glob(os.path.join(folders[i], f'*{run_suffix}')))
|
|
106
|
+
if len(matches) == 0:
|
|
107
|
+
raise FileNotFoundError(f"No files found in {folders[i]} matching pattern '*{run_suffix}'")
|
|
108
|
+
elif len(matches) > 1:
|
|
109
|
+
raise FileExistsError(f"Multiple files found in {folders[i]} matching pattern '*{run_suffix}': {matches}")
|
|
110
|
+
filename = matches[0]
|
|
104
111
|
print('Loading: ' + filename)
|
|
105
112
|
with h5py.File(filename, 'r') as f:
|
|
106
113
|
# Print all keys and shapes without loading data
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/calib/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/data/Jungfrau4M.h5
RENAMED
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/epicsArch.py
RENAMED
|
File without changes
|
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/geometries.py
RENAMED
|
File without changes
|
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/iam.py
RENAMED
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/patterns.py
RENAMED
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/src/xrayscatteringtools/theory/patterns.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xrayscatteringtools-1.0.0 → xrayscatteringtools-1.0.2}/tests/test_scattering_corrections.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|