Try to get rid of cryst data entirely
This commit is contained in:
@@ -54,20 +54,20 @@ def calc_streakfinder_analysis(results, data, pf_pixel_mask):
|
||||
|
||||
if do_snr:
|
||||
# Changes data in-place
|
||||
data = cryst_data.snr[0].copy()
|
||||
data = cryst_data #.snr[0].copy()
|
||||
|
||||
try:
|
||||
_calc_streakfinder_analysis(results, cryst_data)
|
||||
except Exception as error: # Broad exception - we don't want to break anything here
|
||||
results["cbd_error"] = f"Error processing CBD data:\n{error}"
|
||||
print(f"Deleting cryst data;\nmem used before {virtual_memory().used // pow(2, 30)} Gb ")
|
||||
cryst_data.clear()
|
||||
del cryst_data
|
||||
# print(f"Deleting cryst data;\nmem used before {virtual_memory().used // pow(2, 30)} Gb ")
|
||||
# cryst_data.clear()
|
||||
# del cryst_data
|
||||
print(f"mem used after {virtual_memory().used // pow(2, 30)} Gb \n")
|
||||
|
||||
return data
|
||||
|
||||
def _generate_cryst_data(results, data, pf_pixel_mask) -> CrystData:
|
||||
def _generate_cryst_data(results, data, pf_pixel_mask): # -> CrystData:
|
||||
params_required = [
|
||||
"cbd_whitefield_data_file",
|
||||
"cbd_std_data_file",
|
||||
@@ -80,13 +80,13 @@ def _generate_cryst_data(results, data, pf_pixel_mask) -> CrystData:
|
||||
|
||||
whitefield_data_file = results["cbd_whitefield_data_file"]
|
||||
std_data_file = results["cbd_std_data_file"]
|
||||
scale_whitefield = results["cbd_scale_whitefield"]
|
||||
# scale_whitefield = results["cbd_scale_whitefield"]
|
||||
|
||||
# Using CXI Store specification as default
|
||||
whitefield_dataset = results.get("cbd_whitefield_dataset", "entry/crystallography/whitefield")
|
||||
std_dataset = results.get("cbd_std_dataset", "entry/crystallography/std")
|
||||
|
||||
num_threads = results.get("cbd_num_threads", DEFAULT_NUM_THREADS)
|
||||
# num_threads = results.get("cbd_num_threads", DEFAULT_NUM_THREADS)
|
||||
|
||||
with h5py.File(whitefield_data_file, "r") as hf:
|
||||
whitefield = hf[whitefield_dataset][:]
|
||||
@@ -103,17 +103,16 @@ def _generate_cryst_data(results, data, pf_pixel_mask) -> CrystData:
|
||||
mask = hf[mask_dataset][:].astype(bool)
|
||||
mask *= pf_pixel_mask
|
||||
|
||||
data = CrystData(
|
||||
data=data[np.newaxis, :],
|
||||
mask=mask,
|
||||
std=std,
|
||||
whitefield=whitefield
|
||||
snr = np.divide(
|
||||
data * mask - whitefield,
|
||||
std,
|
||||
out=np.zeros_like(data),
|
||||
where=(std==0.0)
|
||||
)
|
||||
if scale_whitefield:
|
||||
data = data.scale_whitefield(method='median', num_threads=num_threads)
|
||||
|
||||
data = data.update_snr()
|
||||
return data
|
||||
del whitefield
|
||||
del std
|
||||
del mask
|
||||
return snr
|
||||
|
||||
def _calc_streakfinder_analysis(results, cryst_data: CrystData):
|
||||
do_streakfinder_analysis = results.get("do_streakfinder_analysis", False)
|
||||
|
||||
Reference in New Issue
Block a user