0 - Plotting Template PX¶
This template can be used to process SASTT data measured at the cSAXS beamline, SLS. It can be adapted to also look at scanning SAXS experiments (2D meassurements). In the following cells, you will find sections that suggest not to edit content and one where user input is required. It should not be taken for granted that codes run fully automated, in particular if the scanning geometry such as fast axis changes. Small changes will then be required to allow the codes to run. In order to run the codes, one would have to install the appropriate Python packages. A YAML file to duplicate the Conda environment is attached.
Import packages & libraries
In the first step, relevant python packages are loaded. Part of these are based on relative fileparts, so it is important to make sure that the data processing package is present in the folder. Beamline specific functionality is stored in the *_utils functions. Therefore, three different workflow version exist for the currently implemented beamline: csaxs, px and formax.
[3]:
%matplotlib ipympl
from tqdm import tqdm
import numpy as np
import h5py
from datetime import datetime
from string import Template
import os
import matplotlib.pyplot as plt
from matplotlib import cm, colors
from matplotlib.patches import Rectangle
from mpl_toolkits.mplot3d import Axes3D
from ipywidgets import interact
from data_processing.dataset import Dataset
## Import the PX loader functions
from data_processing.PX_utils import metadata_reader_json as metadata_reader
from data_processing.PX_utils import transmission_loader_eiger as transmission_loader
from data_processing.PX_utils import scattering_loader_eiger
from data_processing.PX_utils import create_args
Step 1 - Initiate tomo-scan parameters¶
The function create_args initiatizes the relevant parameters for the scan including: relative filepaths, output paths, background scans etc.
After the parameters are created, the function returns a dictionary which can be still be modified to change functionality
Note, at this state the function create args is not checking the proper input which might break the functionality
[4]:
#------------------------------------------------- User Input Section -------------------------------------------------#
frame_id_range = [*range(163, 468+1)]
scan_id = 163 # Which scan number to use to create input args, e.g. use first scan of SASTT
eacc = '19745'
sample_name = 'incus_bone' # # sample name, no usage of spaces, used for automated input
# Additional arguments, in key value pairs. Please only modify values of the dictionary. Comment line if you would like to skip this line
kwargs = {'work_directory' : f"/das/work/p{eacc[0:2]}/p{eacc:s}/Christian/work_dir_Christian",
# working directory; location where data is exported, if removed from here and
# it defaults to '/data/visitors/formax/{proposal}/{visit}/process/reconstructions'
########--------------########
'detector_name' : 'pilatus_1',
# Which detector to use. defaults to 'eiger'
########--------------########
'air_id' : 153, #1272,
# Scan for background level, for SASTT generally air scan but can be any other background scan
########--------------########
'norm_transmission' : 'metadata',#'flat_field',#'projection'
# 3 different possibilities to do norm_transmission 'flat_field', 'metadata' and 'projection'
# Another necessarity but not requirement is a flat_field_level from an air scan
# This must be included as a field in args. Should have been created in the steps below given an air_scan is available.
# 'flat_field', use case for ForMAX. Diode signal is normalized by exposure time, simply uses the flat_field level from the air scan
# 'metadata' to use key 'normkey' from metadata for normalization + flat_field level --> needed to normalize e.g. different exposure times for scans
# 'projection' to be able to pass a value manually for each projection.
# This value has to be written in the metadata of each projection for the key 'air_transmission', e.g. ds.stack[0].metadata['air_transmission'] = 1
########--------------########
'air_transmission' : None,
# Activate for norm_transmission with projection option. Needed for absorption tomogram
# air_transmission = (slice(20, -20), slice(0, 1))
# This example means averaging for the first column, excluding 20 points from the top and bottom
########--------------########
'first_rotation_indexes' : list(range(50)),
########--------------########
# List which indices define the first rotation at 0 tilt
'correct_background' : False,
# False or True.
# Choose if you would like to perform background correction/subtraction automatically when scaling the data, recommended default False
########--------------########
#'bkg_scan' = None,
# Give a scan number for background correction. Recommended default: None. If None, AIR WILL BE USED AS DEFAULT.
# If a scan number is given, it has to be uncommented in kwargs too
########--------------########
# Snake scan is performed or not
'snake' : True,
########--------------########
#Valid pixel mask to exclude regions. In particular important
# The case below excludes 2 pixels from the right
'valid_pixels': (slice(None), slice(0,-5))
}
#------------------------------------------------- End Input Section -------------------------------------------------#
#----------------------------------------------------------------------------------------------------------------------#
#---------------------------------------------------- Data Loading ----------------------------------------------------#
#Create args
args = create_args(frameID = frame_id_range,
eacc = eacc,
sample_name = sample_name,
tomodata = True, # Change here in case none tomo related metadata is needed
**kwargs
)
# Args can be modified
# To print out args, uncomment the following lines
# for keys in args:
# print(keys)
Step 2 - Loading metadata¶
Data is being loaded for the full list of scans of the tomogram
There is a small output on scan params such as angles, and timing if available
Data is being loaded into a structure called “ds” in a list called stack. ds.stack hosts a list of projection with various functions that can be used to get additional information on the measurements. Two useful examples are: e.g. for the full dataset ds.get_angles() - which return rotation and tilt angles. e.g. ds.stack[0].colorful_image_plot - to make the colorful image as known from matlab for the first projection.
Note: The loading may take some time (30-60s) and the line %%time will track the timing
[5]:
%%time
#---------------------------------------------------- Data Loading ----------------------------------------------------#
#----------------------------------------------------------------------------------------------------------------------#
args.update({'multiprocessing' : 1})
ds = Dataset(frame_id_range, metadata_reader, transmission_loader, scattering_loader_eiger, **args)
#---------------------------------------------------- Data Loading ----------------------------------------------------#
#----------------------------------------------------------------------------------------------------------------------#
# Add scan_id_range to args
args['frame_id_range'] = frame_id_range
#------------------------------------------------- Plot and overview --------------------------------------------------#
# Plot rotation and tilt angles of scan
fig, axs = plt.subplots(1,2, figsize = (10,4))
# Subfunction to plot angles
rot, tilt = ds.get_angles()
rel_time = ds.get_timestamps()
try:
# Timeline
axs[0].plot(rel_time/3600, 'o-', color='black')
axs[0].set_xlabel('projection number')
axs[0].set_ylabel('projection time difference / h')
axs[0].set_title('Timeline projections from dataset')
except:
print('no rel_time data available')
pass
# Rotations
axs[1].plot(rot, 'o-', color='black')
axs[1].set_xlabel('projection number')
axs[1].set_ylabel('tomo rotation angle / deg')
axs[1].set_title('Rotational data from dataset')
axtwin = axs[1].twinx()
axtwin.plot( tilt, 'o-', color='red')
axtwin.set_ylabel('tilt angle / deg')
# Brief check for first tomogram
rot=np.round(rot,1)
tilt=np.round(tilt,1)
indices = [ii for ii, angle in enumerate(rot)
if tilt[ii] == 0]
print(f"List of projection indices with 0 tilt is {indices}")
Failed to find datetime_string in metadata from frameid/scan 0163
No 'datetime_string' in metadata
no rel_time data available
List of projection indices with 0 tilt is [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 98, 145, 190, 232, 271, 305]
CPU times: user 1.19 s, sys: 1.06 s, total: 2.25 s
Wall time: 50.5 s
Check transmission of projections - signal is normalized (0…1) - In this section you may slide through tomogram for all rotational angles to check whether measurement finished and all data is there. - One can play a bit around with contrasts etc that are computed for each projection independently. For some cases, this might be more meaningful when no autoscaling is applied! - A problem is that for an absorption tomogram, you would like to have each projection normalized individually, however, this is contradicting with what is needed for the scattering data. - We first normalize as needed for the scattering data and show the transmittance here
[6]:
#------------------------------------------------- User Input for Plot ------------------------------------------------#
#Histogram bins and range
bins = 500
histrange = (-0.05, 1.05)
vmin = 0 # Default None
vmax = 0.5 # Default None
#To show histogram of transmittance for projection, slider runs smoother if False
show_hist = True # True or False,
#------------------------------------------------- End Input for Plot ------------------------------------------------#
#------------------------------------------------- Plotting --------------------------------------------------#
fig, axs = plt.subplots(1,2, figsize = (10,5))
#update the colorbar for plot
cax = None
i = 0
axs[1].hist(ds.stack[i].transmission_factor.flatten(), bins = bins, range = histrange)
counts = np.zeros((len(ds.stack),bins))
# Compute histograms
for ii, projection in enumerate(ds.stack):
if ii==0:
counts[ii,:], bins = np.histogram((ds.stack[ii].transmission_factor)[ds.mask[ii]==1], bins = bins, range=histrange)
else:
counts[ii,:], _ = np.histogram((ds.stack[ii].transmission_factor)[ds.mask[ii]==1], bins = bins, range=histrange)
@interact(i=(0, len(ds.stack) -1))
def plot(i):
axs[0].clear()
axs[1].clear()
# Modify vmin, vmax and set them to fixed values to avoid autoscaling
#if vmin is None and vmax is None:
#vmin, vmax = np.percentile(ds.stack[i].transmission_factor ,[10,90])
img = axs[0].imshow(ds.stack[i].transmission_factor, cmap = 'Greys_r', vmin = vmin, vmax = vmax)
axs[0].set_title(f'transmittance for projection #{i}')
#-----------------update colorbar-----------------#
global cax
if cax is None:
cax = fig.colorbar(img, ax=axs[0]).ax
else:
fig.colorbar(img, cax=cax)
#----------------------------------#
# histogram
if show_hist:
axs[1].hist(bins[:-1], bins, weights=counts[i,:])
#axs[1].hist(ds.stack[i].transmission_factor.flatten(), bins = bins, range=histrange)
axs[1].set_title(f'histogram transmittance for projection #{i}')
# Change ranges
axs[1].set_xlim(histrange[:])
axs[1].grid()
Step 3 - Choose q ranges¶
Click around a projection (first figure) to get the cake plot as well as 1D scattering curves for different segments.
You may choose a contrast (f1amp or colorfulplot), but be aware that you might need to restrict the q range for the colorful plot. Per default q_range = None, the full scattering data will be taken into account
As a second step, you can now click on the third plot to create some rois for multiple q ranges that will be stored for further processing steps.
The rois will be stored in args[‘q_rois’] that will be exported at the end of this script.
[7]:
#------------------------------------------------- User Input for Plot ------------------------------------------------#
proj_nr = 0 # Choose a projection from the stack
q_range = None #[0.1, 0.15] # Choose a q range, or use None for full q range
# Maybe you would have to adjust the scaling
vmin = None
vmax = None
#------------------------------------------------- End Input for Plot ------------------------------------------------#
# trying to combine two cliking steps in one
hor_size = 10
vert_size = 3
if q_range is None:
q_range = [args['q'][0], args['q'][-1]]
f1amp, f2amp, f2phase, colorfulplot = ds.stack[proj_nr].colorful_image_plot(q_range=q_range, normalized = True, symmetric = True)
#------------------------------------------------- User Input for Plot ------------------------------------------------#
# Choose which contrast, f1amp, f2amp, f2phase, colorfulplot
toplot = f1amp # colorfulplot#f1amp
#------------------------------------------------- End Input for Plot ------------------------------------------------#
# use the symmetric intensity already! (averaging opposing bins!
cake_img = ds.stack[proj_nr].scaled_scattering_data_symmetric
fig , axs = plt.subplots(1, 3, figsize=(hor_size, vert_size))
horizontal_threshold = 600 #for mouseevent.x to decide between the plots - this is a bit hacked at the moment
# Note there are nan values in the data, use nansum to avoid running into trouble with them!
axs[0].imshow(toplot, norm=colors.LogNorm(vmin = vmin, vmax = vmax), picker=True)
axs[0].set_title('Click me')
axs[1].set_ylabel('azimuthal bin')
axs[1].set_xlabel('q / Ang-1')
axs[1].imshow(np.nansum(cake_img,axis=(0,1)), norm=colors.LogNorm(vmin = vmin, vmax = vmax), aspect = 'auto', extent=[np.min(args['q']), np.max(args['q']), 0, cake_img.shape[2]])
axs[1].set_title('cake plot')
axs[2].loglog(np.nansum(np.nansum(cake_img,axis=(1,2)),axis=0).T, picker=True)
axs[2].set_xlim(10,1000)
axs[2].set_title('Pick ROI, always in pairs of border (equal number)')
#axs[2].set_ylim(1e-1,1e6)
# Output coords
xcord_transfer = []
ycord_transfer = []
position_list = []
position_plot = []
def onpick(event):
mouseevent = event.mouseevent
xcord = int(mouseevent.xdata)
ycord = int(mouseevent.ydata)
# clicking on the left plot
if mouseevent.x < horizontal_threshold:
xcord_transfer.append(xcord)
ycord_transfer.append(ycord)
# update image plot
axs[0].clear()
axs[0].plot(xcord, ycord,'+', color='r', ms=12, picker = True)
axs[0].imshow(toplot, norm=colors.LogNorm(vmin = vmin, vmax = vmax), picker=True)
axs[0].set_title('Click me')
# update q-plot
axs[2].clear()
#axs[2].loglog(args['q'],img[ycord,xcord,...].T, picker=True)
axs[2].loglog(cake_img[ycord, xcord,...].T, picker=True)
for coord in position_plot:
axs[2].axvline(coord)
axs[1].axvline(coord)
axs[2].set_xlim(10,1000)
#axs[2].set_ylim(1e-1,1e6) Deactivate autoscaling in 1D scattering
axs[2].set_xlabel(r'index q')
axs[2].set_title('Pick ROI, always in pairs of border (equal number)')
axs[1].clear()
vmin2, vmax2 = np.nanpercentile(cake_img[ycord, xcord,...], [10,90])
axs[1].imshow(cake_img[ycord, xcord,...], norm=colors.LogNorm(vmin = vmin2, vmax =vmax2), aspect = 'auto', extent=[np.min(args['q']), np.max(args['q']), 0, cake_img.shape[2]])
axs[1].set_title('cake plot')
# clicking on the right plot
else:
position_plot.append(xcord)
axs[2].axvline(xcord)
position_list.append(args['q'][int(xcord)])
axs[1].set_ylabel('azimuthal bin')
axs[1].set_xlabel('q / Ang-1')
fig.canvas.mpl_connect('pick_event', onpick)
[7]:
15
Follow up from the selection to visualize the contrast picked before
[8]:
# Adjust plotting variation if desired and behaviour if desired
if len(position_list)==0:
print('Please choose q ROI in the cell before')
else:
# transfering picked coordinates
# if no pixel was choosen before, a pixel in the middle is chosen for displaying
if len(xcord_transfer) == 0:
xcord = int(cake_img.shape[1]/2)
ycord = int(cake_img.shape[0]/2)
else:
xcord = xcord_transfer[-1]
ycord = ycord_transfer[-1]
# building q_rois
q_rois = []
position_list = list(set(position_list)) #remoce doubled positions because overlaying plots
if not len(position_list)%2==0:
print('Odd number of postions choosen; dropping last selected q-edge from list')
del position_list[-1]
position_list.sort()
for number, i in enumerate(range(0,len(position_list),2)):
q_rois.append((position_list[i],position_list[i+1],str(number+1)))
# ----------Plotting--------------#
fig , axs = plt.subplots(1, len(q_rois)+1, figsize=(hor_size,vert_size))
# scattering curve
axs[0].loglog(args['q'], cake_img[ycord,xcord,...].T)
axs[0].loglog(args['q'], np.nansum(cake_img[ycord,xcord,...],axis=0).T, label=r'Curve Sum')
axs[0].set_xlim(None,None) # set Qrange
axs[0].legend()
for roi in q_rois:
axs[0].axvspan(roi[0], roi[1], alpha=0.3, color='grey')
axs[0].text(0.5*(roi[0]+roi[1]), 1e3, roi[2], horizontalalignment='center')
axs[0].set_xlabel(r'q in A$^{-1}$')
# projections
for ii, roi in enumerate(q_rois):
f1amp, f2amp, f2phase, colorfulplot = ds.stack[proj_nr].colorful_image_plot(q_range=roi[:2], normalized = True, symmetric = True)
q_image = f1amp
axs[ii+1].imshow(q_image)
axs[ii+1].set_title(roi[2])
# Store the rois in args
args['q_rois'] = q_rois
Step 3.1 - Check plots from chosen rois - Screen through different contrast of your ROIs using f1amp, f2amp, and colorful plot - The projection in each dataset have a function called colorful_image_plot, which is the equivalent to the colorful images that we used to use in matlab. - to be done here: write a colorful wheel for the colorful plot! - Should be a function of projection
[9]:
fig, axs = plt.subplots(1,3, figsize=(hor_size,vert_size))
@interact(roi_nr=(0,len(q_rois)-1))
def plot(roi_nr):
axs[0].clear()
axs[1].clear()
axs[2].clear()
roi = q_rois[roi_nr]
f1amp, f2amp, f2phase, colorfulplot = ds.stack[proj_nr].colorful_image_plot(q_range=roi[:2],
symmetric = True,
percentile_value= 96)
#q_image = np.sum(np.sum(img, axis = 2)[:,:,np.searchsorted(args['q'],roi[:2])], axis = 2)
#axs.imshow(q_image)
#axs.set_title(roi[2])
axs[0].imshow(colorfulplot)
axs[0].set_title('colorful plot')
axs[1].imshow(f1amp)
axs[1].set_title('symmetric intensity')
axs[2].imshow(f2amp)
axs[2].set_title('asymmetric intensity')
Step 4 - save args to file¶
Check output keys
[10]:
for key in args.keys():
print(key)
base_path
work_directory
integ_data_path
trans_data_path
frameID
sample_name
air_id
bkg_scan
enumber
normkey
valid_pixels
fast_scan_direction
slow_scan_direction
projection_direction
detector_angle_origin
detector_angle_pos_dir
norm_transmission
flat_field_level
correct_background
offset
snake
beamline
inner_rotation_axis
inner_rotation_key
first_rotation_indexes
tilt_axis
tilt_key
tomodata
data_sorting
data_index_origin
principal_rotation_right_handed
secondary_rotation_right_handed
detector_angle_0
detector_angle_right_handed
offset_positive
detector_name
air_transmission
phi_det
q
norm_sum
air_scattering
multiprocessing
frame_id_range
q_rois
[11]:
import pickle
# Output args file
dir_path = os.path.join(args['work_directory'], args['sample_name'])
try:
os.makedirs(dir_path)
except FileExistsError:
print(f'Directory {dir_path:s} already exists.')
pass
fname = os.path.join(dir_path, f"args_{args['sample_name']}.pickle")
with open(fname, 'wb') as file:
# Pickle the 'data' dictionary using the highest protocol available.
pickle.dump(args, file, pickle.HIGHEST_PROTOCOL)
print(f"File save to {fname:s}")
Directory /das/work/p19/p19745/Christian/work_dir_Christian/incus_bone already exists.
File save to /das/work/p19/p19745/Christian/work_dir_Christian/incus_bone/args_incus_bone.pickle
Step 5 - visualize full dataset, check radiation damage¶
Load all projections of the dataset first, this may take some time (5-20minutes) depending on the size of the dataset
[12]:
%%time
#------------------------------------------------- User Input for Plot ------------------------------------------------#
set_of_projections = list(range(len(frame_id_range)))# for full dataset #args['first_rotation_indexes'] for first rotations
#Pick a q range from the selection
which_q_rois = 2
q_range = args['q_rois'][0][:2]
#------------------------------------------------- End Input for Plot ------------------------------------------------#
#Defining output arrays
f1amp = np.zeros((*ds.stack[0].transmission_image.shape, len(set_of_projections)))#len(ds.stack)))
f2amp = np.zeros((*ds.stack[0].transmission_image.shape, len(set_of_projections)))#len(ds.stack)))
colorfulplot = np.zeros((*ds.stack[0].transmission_image.shape, 3, len(set_of_projections)))#3, len(ds.stack)))
import multiprocessing
# Define functions for multithreadings
def load_data(projection, q_range=None):
"""Simple loading function for colorful_image_plot
Returns
f1amp
f2amp
f2phase
colorfulplot"""
# directly return the projection
f1amp, f2amp, f2phase, colorfulplot = projection.colorful_image_plot(q_range=q_range, symmetric=True, normalized = True)
projection.clear_data()
return f1amp, f2amp, f2phase, colorfulplot
# Define functions for multithreadings
def load_data_parallel(set_of_projections, q_range=None):
"""
Parallel loading:
Output needs to be precreated
"""
# Create args for output
f1amp = np.zeros((*ds.stack[0].transmission_image.shape, len(set_of_projections)))#len(ds.stack)))
f2amp = np.zeros((*ds.stack[0].transmission_image.shape, len(set_of_projections)))#len(ds.stack)))
f2phase = np.zeros((*ds.stack[0].transmission_image.shape, len(set_of_projections)))#len(ds.stack)))
colorfulplot = np.zeros((*ds.stack[0].transmission_image.shape, 3, len(set_of_projections)))#3, len(ds.stack)))
#data = []
args_pool = [(ds.stack[projection_iter], q_range) for projection_iter in set_of_projections]
num_cores = multiprocessing.cpu_count()
if num_cores > 16:
num_cores = 16
pool = multiprocessing.Pool(processes=num_cores)
results = []
for i, arg in enumerate(args_pool):
result = pool.apply_async(load_data, args = arg)
results.append(result)
with tqdm(total=len(results)) as pbar:
for i,result in enumerate(results):
pbar.update()
f1amp[...,i] = result.get()[0]
f2amp[...,i] = result.get()[1]
f2phase[...,i] = result.get()[2]
colorfulplot[...,i] = result.get()[3]
pool.close()
pool.join()
return f1amp, f2amp, f2phase, colorfulplot
if 'multiprocessing' in args:
if args['multiprocessing']:
f1amp, f2amp, _, colorfulplot = load_data_parallel(set_of_projections, q_range=q_range)#f1amp, f2amp, colorfulplot
else:
for ii, projection in tqdm(enumerate(ds.stack[set_of_projections[0]:set_of_projections[-1]+1])):
f1amp[...,ii], f2amp[...,ii], _, colorfulplot[...,ii] = load_data(projection, q_range=q_range)#
else:
for ii, projection in tqdm(enumerate(ds.stack[set_of_projections[0]:set_of_projections[-1]+1])):
f1amp[...,ii], f2amp[...,ii], _, colorfulplot[...,ii] = load_data(projection, q_range=q_range)
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 306/306 [13:30<00:00, 2.65s/it]
CPU times: user 5.82 s, sys: 12.6 s, total: 18.4 s
Wall time: 13min 38s
Visualize colorful image for the full dataset and specific q range
[13]:
# Plots
fig, axs = plt.subplots(1,3, figsize = (10,4))
axs[0].imshow(colorfulplot[...,0])
axs[1].imshow(f1amp[...,0])
axs[2].imshow(f2amp[...,0])
# cax = None
@interact(proj_nr_shown=(0, len(set_of_projections)-1))
def plot(proj_nr_shown):
axs[0].clear()
axs[1].clear()
axs[2].clear()
axs[0].imshow(colorfulplot[..., proj_nr_shown])
axs[0].set_title(f'Colorful plot #{proj_nr_shown}')
img = axs[1].imshow(f1amp[..., proj_nr_shown])
# Modify vmin, vmax and set them to fixed values to avoid autoscaling
#vmin, vmax = np.nanpercentile(img, [10,90])
axs[1].set_title(f'f1amp from #{proj_nr_shown}')
axs[2].imshow(f2amp[..., proj_nr_shown])
axs[2].set_title(f'f2amp from #{proj_nr_shown}')
Radiation damage check = Visualize scans at 0 tilt
[19]:
## Find which projections are radiation damage checks
rot, tilt = ds.get_angles()
rot=np.round(rot,1)
tilt=np.round(tilt,1)
indices = [ii for ii, angle in enumerate(rot)
if ((angle == 0 ) and tilt[ii] == 0) or ((angle == 360 ) and tilt[ii] == 0)]
fig, axs = plt.subplots(2,len(indices),figsize=(2*len(indices),6))
fig.set_tight_layout(True)
for ii, index in enumerate(indices):
# Plot transmission
toplot = ds.stack[index].transmission_factor
if ii==0:
# Adjust plotting range here potentially, or manually set vminT/vmaxT
vminT, vmaxT = np.nanpercentile(toplot, [40,90])
#vminT = 0.2
#vmaxT = 1
img = axs[0,ii].imshow(toplot, cmap = 'Greys_r', vmin = vminT, vmax = vmaxT)
axs[0,ii].set_title('Proj Tr' + str(indices[ii]))
# Plot scattering
if ii==0:
vmin, vmax = np.nanpercentile(f1amp[..., index], [10,90])
axs[1, ii].set_title('Scatterting')
img = axs[1, ii].imshow(f1amp[..., index], vmin = vmin, vmax = vmax)
Radiation damage overview - 1D scattering curves - Plot of the 1D curves averaged across the full image (left for all checks - and right only for the first and last one) - Further comparison can be written and developed. E.g. a clicking tool to click around and compare scattering from specific pixels, however alignment of projections would have to be performed prior to this
[20]:
%%time
## Scattering curves
fig, axs = plt.subplots(1,2,figsize=(9,3))
for ii, index in enumerate(indices):
cake_img, _= ds.stack[index].bin_det_phi(normalized=True, symmetric=True)
cake_img = np.squeeze(cake_img)
axs[0].loglog(args['q'], np.nansum(cake_img,axis=(0,1)),label=str(indices[ii]))
# axs[0].set_xlim(6e-3, 1)
axs[0].legend()
axs[0].set_xlabel('q / Ang$^{-1}$')
axs[0].set_ylabel('Inte/ au')
if ii==0 or ii ==len(indices)-1:
axs[1].loglog(args['q'], np.nansum(cake_img,axis=(0,1)),label=str(indices[ii]))
axs[1].set_xlabel('q / Ang$^{-1}$')
axs[1].set_ylabel('Intensity / au')
axs[1].legend()
axs[0].legend()
CPU times: user 1min 12s, sys: 1min 16s, total: 2min 28s
Wall time: 3min 52s
Example to output data from colorful images for presentations or to create GIFs etc..
Note: There seems to be a bug at the moment that the path needs to exists. To be explored and fixed
[24]:
#------------------------------------------------- User Input for Plot ------------------------------------------------#
save_output = True #True set to True to safe images
dir_path = f"{args['work_directory']}/export_images/sample_{args['sample_name']}"
#------------------------------------------------- User Input for Plot ------------------------------------------------#
fig, axs = plt.subplots(1,3, figsize = (12,4))
axs[0].imshow(colorfulplot[...,0])
axs[1].imshow(f1amp[...,0])
axs[2].imshow(f2amp[...,0])
cax = None
if save_output:
try:
os.makedirs(dir_path)
except:
print('Path already exists')
pass
def plot(proj_nr):
axs[0].clear()
axs[1].clear()
axs[2].clear()
#img = axs[0].imshow(ds.stack[i].absorption_coeff, cmap = 'Greys_r', vmin = 0.3, vmax = 0.5)
axs[0].imshow(colorfulplot[..., proj_nr])
axs[0].set_title(f'Colorful plot #{proj_nr}')
img = axs[1].imshow(f1amp[..., proj_nr])
global cax
if cax is None:
cax = fig.colorbar(img, ax=axs[1]).ax
else:
fig.colorbar(img, cax=cax)
axs[1].set_title(f'f1amp from #{proj_nr}')
axs[2].imshow(f2amp[..., proj_nr])
axs[1].set_title(f'f2amp from #{proj_nr}')
# Loop through projections
for ii in range(f1amp.shape[-1]): # use sample name here for exports!
plot(ii)
outputpath = os.path.join(dir_path, f"sample_{args['sample_name']}_Image_{ii:05d}.png")
print(f"Saving image {ii} from {f1amp.shape[-1]} to {outputpath}")
if save_output:
fig.savefig(outputpath, dpi= 300)
Saving image 0 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00000.png
Saving image 1 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00001.png
Saving image 2 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00002.png
Saving image 3 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00003.png
Saving image 4 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00004.png
Saving image 5 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00005.png
Saving image 6 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00006.png
Saving image 7 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00007.png
Saving image 8 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00008.png
Saving image 9 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00009.png
Saving image 10 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00010.png
Saving image 11 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00011.png
Saving image 12 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00012.png
Saving image 13 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00013.png
Saving image 14 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00014.png
Saving image 15 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00015.png
Saving image 16 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00016.png
Saving image 17 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00017.png
Saving image 18 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00018.png
Saving image 19 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00019.png
Saving image 20 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00020.png
Saving image 21 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00021.png
Saving image 22 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00022.png
Saving image 23 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00023.png
Saving image 24 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00024.png
Saving image 25 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00025.png
Saving image 26 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00026.png
Saving image 27 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00027.png
Saving image 28 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00028.png
Saving image 29 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00029.png
Saving image 30 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00030.png
Saving image 31 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00031.png
Saving image 32 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00032.png
Saving image 33 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00033.png
Saving image 34 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00034.png
Saving image 35 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00035.png
Saving image 36 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00036.png
Saving image 37 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00037.png
Saving image 38 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00038.png
Saving image 39 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00039.png
Saving image 40 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00040.png
Saving image 41 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00041.png
Saving image 42 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00042.png
Saving image 43 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00043.png
Saving image 44 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00044.png
Saving image 45 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00045.png
Saving image 46 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00046.png
Saving image 47 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00047.png
Saving image 48 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00048.png
Saving image 49 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00049.png
Saving image 50 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00050.png
Saving image 51 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00051.png
Saving image 52 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00052.png
Saving image 53 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00053.png
Saving image 54 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00054.png
Saving image 55 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00055.png
Saving image 56 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00056.png
Saving image 57 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00057.png
Saving image 58 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00058.png
Saving image 59 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00059.png
Saving image 60 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00060.png
Saving image 61 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00061.png
Saving image 62 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00062.png
Saving image 63 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00063.png
Saving image 64 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00064.png
Saving image 65 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00065.png
Saving image 66 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00066.png
Saving image 67 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00067.png
Saving image 68 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00068.png
Saving image 69 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00069.png
Saving image 70 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00070.png
Saving image 71 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00071.png
Saving image 72 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00072.png
Saving image 73 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00073.png
Saving image 74 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00074.png
Saving image 75 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00075.png
Saving image 76 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00076.png
Saving image 77 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00077.png
Saving image 78 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00078.png
Saving image 79 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00079.png
Saving image 80 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00080.png
Saving image 81 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00081.png
Saving image 82 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00082.png
Saving image 83 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00083.png
Saving image 84 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00084.png
Saving image 85 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00085.png
Saving image 86 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00086.png
Saving image 87 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00087.png
Saving image 88 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00088.png
Saving image 89 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00089.png
Saving image 90 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00090.png
Saving image 91 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00091.png
Saving image 92 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00092.png
Saving image 93 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00093.png
Saving image 94 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00094.png
Saving image 95 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00095.png
Saving image 96 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00096.png
Saving image 97 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00097.png
Saving image 98 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00098.png
Saving image 99 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00099.png
Saving image 100 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00100.png
Saving image 101 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00101.png
Saving image 102 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00102.png
Saving image 103 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00103.png
Saving image 104 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00104.png
Saving image 105 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00105.png
Saving image 106 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00106.png
Saving image 107 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00107.png
Saving image 108 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00108.png
Saving image 109 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00109.png
Saving image 110 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00110.png
Saving image 111 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00111.png
Saving image 112 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00112.png
Saving image 113 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00113.png
Saving image 114 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00114.png
Saving image 115 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00115.png
Saving image 116 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00116.png
Saving image 117 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00117.png
Saving image 118 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00118.png
Saving image 119 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00119.png
Saving image 120 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00120.png
Saving image 121 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00121.png
Saving image 122 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00122.png
Saving image 123 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00123.png
Saving image 124 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00124.png
Saving image 125 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00125.png
Saving image 126 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00126.png
Saving image 127 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00127.png
Saving image 128 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00128.png
Saving image 129 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00129.png
Saving image 130 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00130.png
Saving image 131 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00131.png
Saving image 132 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00132.png
Saving image 133 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00133.png
Saving image 134 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00134.png
Saving image 135 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00135.png
Saving image 136 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00136.png
Saving image 137 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00137.png
Saving image 138 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00138.png
Saving image 139 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00139.png
Saving image 140 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00140.png
Saving image 141 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00141.png
Saving image 142 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00142.png
Saving image 143 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00143.png
Saving image 144 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00144.png
Saving image 145 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00145.png
Saving image 146 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00146.png
Saving image 147 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00147.png
Saving image 148 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00148.png
Saving image 149 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00149.png
Saving image 150 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00150.png
Saving image 151 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00151.png
Saving image 152 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00152.png
Saving image 153 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00153.png
Saving image 154 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00154.png
Saving image 155 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00155.png
Saving image 156 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00156.png
Saving image 157 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00157.png
Saving image 158 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00158.png
Saving image 159 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00159.png
Saving image 160 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00160.png
Saving image 161 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00161.png
Saving image 162 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00162.png
Saving image 163 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00163.png
Saving image 164 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00164.png
Saving image 165 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00165.png
Saving image 166 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00166.png
Saving image 167 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00167.png
Saving image 168 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00168.png
Saving image 169 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00169.png
Saving image 170 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00170.png
Saving image 171 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00171.png
Saving image 172 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00172.png
Saving image 173 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00173.png
Saving image 174 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00174.png
Saving image 175 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00175.png
Saving image 176 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00176.png
Saving image 177 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00177.png
Saving image 178 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00178.png
Saving image 179 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00179.png
Saving image 180 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00180.png
Saving image 181 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00181.png
Saving image 182 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00182.png
Saving image 183 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00183.png
Saving image 184 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00184.png
Saving image 185 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00185.png
Saving image 186 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00186.png
Saving image 187 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00187.png
Saving image 188 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00188.png
Saving image 189 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00189.png
Saving image 190 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00190.png
Saving image 191 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00191.png
Saving image 192 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00192.png
Saving image 193 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00193.png
Saving image 194 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00194.png
Saving image 195 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00195.png
Saving image 196 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00196.png
Saving image 197 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00197.png
Saving image 198 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00198.png
Saving image 199 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00199.png
Saving image 200 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00200.png
Saving image 201 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00201.png
Saving image 202 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00202.png
Saving image 203 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00203.png
Saving image 204 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00204.png
Saving image 205 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00205.png
Saving image 206 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00206.png
Saving image 207 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00207.png
Saving image 208 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00208.png
Saving image 209 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00209.png
Saving image 210 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00210.png
Saving image 211 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00211.png
Saving image 212 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00212.png
Saving image 213 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00213.png
Saving image 214 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00214.png
Saving image 215 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00215.png
Saving image 216 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00216.png
Saving image 217 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00217.png
Saving image 218 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00218.png
Saving image 219 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00219.png
Saving image 220 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00220.png
Saving image 221 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00221.png
Saving image 222 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00222.png
Saving image 223 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00223.png
Saving image 224 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00224.png
Saving image 225 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00225.png
Saving image 226 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00226.png
Saving image 227 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00227.png
Saving image 228 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00228.png
Saving image 229 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00229.png
Saving image 230 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00230.png
Saving image 231 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00231.png
Saving image 232 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00232.png
Saving image 233 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00233.png
Saving image 234 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00234.png
Saving image 235 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00235.png
Saving image 236 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00236.png
Saving image 237 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00237.png
Saving image 238 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00238.png
Saving image 239 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00239.png
Saving image 240 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00240.png
Saving image 241 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00241.png
Saving image 242 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00242.png
Saving image 243 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00243.png
Saving image 244 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00244.png
Saving image 245 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00245.png
Saving image 246 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00246.png
Saving image 247 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00247.png
Saving image 248 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00248.png
Saving image 249 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00249.png
Saving image 250 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00250.png
Saving image 251 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00251.png
Saving image 252 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00252.png
Saving image 253 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00253.png
Saving image 254 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00254.png
Saving image 255 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00255.png
Saving image 256 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00256.png
Saving image 257 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00257.png
Saving image 258 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00258.png
Saving image 259 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00259.png
Saving image 260 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00260.png
Saving image 261 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00261.png
Saving image 262 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00262.png
Saving image 263 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00263.png
Saving image 264 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00264.png
Saving image 265 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00265.png
Saving image 266 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00266.png
Saving image 267 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00267.png
Saving image 268 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00268.png
Saving image 269 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00269.png
Saving image 270 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00270.png
Saving image 271 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00271.png
Saving image 272 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00272.png
Saving image 273 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00273.png
Saving image 274 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00274.png
Saving image 275 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00275.png
Saving image 276 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00276.png
Saving image 277 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00277.png
Saving image 278 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00278.png
Saving image 279 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00279.png
Saving image 280 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00280.png
Saving image 281 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00281.png
Saving image 282 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00282.png
Saving image 283 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00283.png
Saving image 284 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00284.png
Saving image 285 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00285.png
Saving image 286 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00286.png
Saving image 287 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00287.png
Saving image 288 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00288.png
Saving image 289 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00289.png
Saving image 290 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00290.png
Saving image 291 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00291.png
Saving image 292 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00292.png
Saving image 293 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00293.png
Saving image 294 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00294.png
Saving image 295 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00295.png
Saving image 296 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00296.png
Saving image 297 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00297.png
Saving image 298 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00298.png
Saving image 299 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00299.png
Saving image 300 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00300.png
Saving image 301 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00301.png
Saving image 302 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00302.png
Saving image 303 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00303.png
Saving image 304 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00304.png
Saving image 305 from 306 to /das/work/p19/p19745/Christian/work_dir_Christian/export_images/sample_incus_bone/sample_incus_bone_Image_00305.png