"This notebook corresponds to version {{ version }} of the pipeline tool: https://github.com/NSLS-II/pipelines"
In [1]:
from databroker import DataBroker as db, get_images, get_table, get_events
from filestore.api import register_handler, deregister_handler
from filestore.retrieve import _h_registry, _HANDLER_CACHE
In [ ]:
hdr = db[{{ uid }}]
In [2]:
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
import time
from ipywidgets import interact
In [3]:
cd /home/yuzhang/chx-pipelines/Develops/
In [ ]:
cd /XF11ID/analysis/Analysis_Pipelines/Develop/
In [4]:
%run develop.py
%run two_time.py
In [5]:
%matplotlib notebook
#%matplotlib inline
In [6]:
BlueScan = True
DirectAcq = False
detector = 'eiger_4M_cam_img_image_lightfield' #for 4M
In [22]:
if BlueScan:
uid = '54614d43'
#uid = '95782687'
uid = '95782687'
uid= 'ff9f20c0'
uid='71720966'
uid='1663d34a'
uid = 'f505e052-3baa-47d4-bdc4-61c2eb1bcc7a' #sid= 551, 1%PEG,
uid='ee6975a1-9161' #1% wt PEG
uid='ec41569e' #a gisaxs example,
uid = 'ffe9d518' # 10 mTorr 1sec/frame
else:
uid = '/XF11ID/data/2015/11/23/d01ab510-3cf3-4719-bee3_795_master.h5'
In [23]:
if BlueScan:
hdr = db[uid]
ev, = get_events( hdr, [detector] )
imgs = ev['data'][detector]
else:
imgs = Images(uid)
print (imgs)
Nimg=len(imgs)
In [24]:
if BlueScan:
from datetime import datetime
dt = datetime.fromtimestamp(hdr['start'].time)
path ='/XF11ID/analysis' + '/%s/%s/%s/' % (dt.year, dt.month, dt.day)
else:
path ='/XF11ID/analysis/2015/11/23/'
path
Out[24]:
In [25]:
imgs.md
Out[25]:
In [26]:
# The physical size of the pixels
dpix = imgs.md['x_pixel_size'] * 1000.
lambda_ = imgs.md['incident_wavelength'] # wavelegth of the X-rays in Angstroms
Ldet = 4812. # detector to sample distance (mm)
exposuretime= imgs.md['count_time']
acquisition_period = imgs.md['frame_time']
# deadtime= 0 # 60e-6
# timeperframe = exposuretime + deadtime
timeperframe = acquisition_period
timeperframe, exposuretime
Out[26]:
In [27]:
mask = np.load( path + str(uid)+ "_mask.npy")
In [28]:
maskr = mask[::-1,:]
In [29]:
fig, ax = plt.subplots()
im=ax.imshow(maskr, origin='lower' ,vmin=0,vmax=1,cmap='viridis')
fig.colorbar(im)
plt.show()
In [30]:
def view_image(i):
fig, ax = plt.subplots()
ax.imshow(imgs[i]*mask, interpolation='nearest', cmap='viridis',
origin='lower', norm= LogNorm(vmin=0.001, vmax=1e1) )
ax.set_title("Browse the Image Stack")
plt.show()
In [31]:
#interact(view_image, i=(0, Nimg-1))
In [32]:
def view_image(sleeps=1, ims=0, ime = 1):
fig, ax = plt.subplots()
for i in range( ims, ime ):
im=ax.imshow(imgs[i]*mask, interpolation='nearest', cmap='viridis',
origin='lower', norm= LogNorm( vmin=0.01, vmax=10 ) )
ax.set_title("images_%s"%i)
time.sleep( sleeps )
plt.draw()
#fig.colorbar(im)
#view_image(.2, 0, 2)
In [33]:
kymo_sum = np.load( path + str(uid)+"_kymo_sum.npy" )
In [34]:
fig, axes = plt.subplots( )
axes.plot( kymo_sum, '-go' )
ax.set_ylabel('Intensity')
ax.set_xlabel('Frame')
ax.set_title('Kymograph_sum')
plt.show()
In [35]:
avg_img = np.load( path + str(uid)+"_avg_img.npy" )
avg_imgm = avg_img * mask
In [36]:
avg_imgr = avg_img[::-1,:]
avg_imgmr = avg_imgm[::-1,:]
In [37]:
fig, ax = plt.subplots()
im = ax.imshow(avg_imgmr, cmap='viridis',origin='lower',
norm= LogNorm(vmin=0.001, vmax=1e1))
ax.set_title("Masked Averaged Image_Reversed")
fig.colorbar(im)
plt.show()
In [38]:
# The physical size of the pixels
dpix = imgs.md['x_pixel_size'] * 1000.
lambda_ = imgs.md['incident_wavelength'] # wavelegth of the X-rays in Angstroms
Ldet = 4810 # detector to sample distance (mm)
exposuretime= imgs.md['count_time']
acquisition_period = imgs.md['frame_time']
# deadtime= 0 # 60e-6
# timeperframe = exposuretime + deadtime
timeperframe = acquisition_period
timeperframe, exposuretime
Out[38]:
In [39]:
inc_x0 = 1871
inc_y0 = 339
refl_x0 = 1871
refl_y0 = 811 #1670
Lsd= 4.81
lamda= lambda_ #12.4/9
In [40]:
lamda
Out[40]:
In [41]:
alphaf,thetaf, alphai, phi = get_reflected_angles( inc_x0, inc_y0,refl_x0 , refl_y0, Lsd=Lsd )
In [42]:
qx, qy, qr, qz = convert_gisaxs_pixel_to_q( inc_x0, inc_y0,refl_x0,refl_y0, lamda=lamda, Lsd=Lsd )
In [43]:
fig, ax = plt.subplots()
#im=ax.imshow(alphaf, origin='lower' ,cmap='viridis',norm= LogNorm(vmin=0.0001,vmax=2.00))
im=ax.imshow(alphaf*180/np.pi, origin='lower' ,cmap='viridis',vmin=-1,vmax= 1.5 )
fig.colorbar(im)
ax.set_title( 'alphaf')
plt.show()
In [44]:
fig, ax = plt.subplots()
#im=ax.imshow(alphaf, origin='lower' ,cmap='viridis',norm= LogNorm(vmin=0.0001,vmax=2.00))
im=ax.imshow(qr, origin='lower' ,cmap='viridis',vmin=qr.min(),vmax= qr.max() )
fig.colorbar(im)
ax.set_title( 'Q-Parallel')
plt.show()
In [45]:
fig, ax = plt.subplots()
#im=ax.imshow(alphaf, origin='lower' ,cmap='viridis',norm= LogNorm(vmin=0.0001,vmax=2.00))
im=ax.imshow(qz, origin='lower' ,cmap='viridis',vmin=qz.min(),vmax= qz.max() )
fig.colorbar(im)
ax.set_title( 'Q-z')
plt.show()
In [49]:
fig, ax = plt.subplots()
im = ax.imshow(avg_imgr, cmap='viridis', origin = 'lower', norm= LogNorm( vmin=0.00001, vmax=.5e2 ) )
ax.set_title("Masked Averaged Image")
fig.colorbar(im)
plt.show()
In [70]:
vert_rect = ( ( 850, 0, 980- 850, 1600-0) , ( 570, 0, 700- 570, 1600-0) ) #(y,x, hight, wdith)
In [71]:
new_mask = np.ones_like( avg_imgr)
new_mask[ :, 1020:1045] =0
In [72]:
get_qr_intensity( qr, avg_imgr, vert_rect, mask=new_mask, show_roi=True)
In [73]:
qz_start = qz[670,0]
qz_end = qz[950,0]
qz_num= 2
qr_start = qr[600,1700]
qr_end = qr[600,0]
qr_num = 15
In [74]:
qr_edge, qr_center = get_qedge(qr_start , qr_end, ( qr_end- qr_start)/qr_num, qr_num )
qz_edge, qz_center = get_qedge( qz_start, qz_end, (qz_end - qz_start)/(qz_num -0) , qz_num )
label_array_qz = get_qmap_label( qz, qz_edge)
label_array_qr = get_qmap_label( qr, qr_edge)
label_array_qzr,qzc,qrc = get_qzrmap(label_array_qz, label_array_qr,qz_center, qr_center )
labels_qzr, indices_qzr = roi.extract_label_indices( label_array_qzr )
labels_qz, indices_qz = roi.extract_label_indices( label_array_qz )
labels_qr, indices_qr = roi.extract_label_indices( label_array_qr )
num_qz = len(np.unique( labels_qz ))
num_qr = len(np.unique( labels_qr ))
num_qzr = len(np.unique( labels_qzr ))
In [75]:
num_qz,num_qr,num_qzr
Out[75]:
In [76]:
fig, ax = plt.subplots()
#im=ax.imshow(alphaf, origin='lower' ,cmap='viridis',norm= LogNorm(vmin=0.0001,vmax=2.00))
im=ax.imshow(label_array_qz, origin='lower' ,cmap='viridis',vmin=0,vmax= None )
fig.colorbar(im)
ax.set_title( 'Q-z_label')
plt.show()
In [77]:
fig, ax = plt.subplots()
#im=ax.imshow(alphaf, origin='lower' ,cmap='viridis',norm= LogNorm(vmin=0.0001,vmax=2.00))
im=ax.imshow(label_array_qr, origin='lower' ,cmap='viridis',vmin=0,vmax= None )
fig.colorbar(im)
ax.set_title( 'Q-r_label')
plt.show()
In [91]:
boxes = label_array_qzr
box_maskr = boxes*maskr
In [92]:
qind, pixelist = roi.extract_label_indices( box_maskr )
noqs = len( np.unique(qind) )
nopr = np.bincount(qind, minlength=(noqs+1))[1:]
In [90]:
nopr
Out[90]:
In [87]:
# plot the figure
fig, axes = plt.subplots(figsize=(8,8))
axes.set_title("Labeled Array on Averaged Data")
im,im_label = show_label_array_on_image(axes, avg_imgr, box_maskr, imshow_cmap='viridis',
cmap='Paired',
vmin=0.01, vmax=30. , origin="lower")
#rwidth = 200
#x1,x2 = [center[1] - rwidth, center[1] + rwidth]
#y1,y2 = [center[0] - rwidth, center[0] + rwidth]
#axes.set_xlim( [x1,x2])
#axes.set_ylim( [y1,y2])
#fig.colorbar(im)
fig.colorbar(im_label)
plt.show()
In [88]:
imgs_ =imgs
imgsr = Reverse_Coordinate(imgs_, maskr)
In [93]:
t0 = time.time()
data_pixel = Get_Pixel_Array( imgsr, pixelist).get_data()
run_time(t0)
In [113]:
max_inten_ring =2
In [114]:
#kymo = roi.kymograph(imgsr, ring_mask, num = max_inten_ring)
In [115]:
pixelist_qi = np.where( qind == max_inten_ring )[0]
data_pixel_qi = data_pixel[:,pixelist_qi]
In [121]:
data_pixel_qi.shape
Out[121]:
In [120]:
fig, ax = plt.subplots(figsize=(8,6))
ax.set_ylabel('Pixel')
ax.set_xlabel('Frame')
ax.set_title('Kymograph')
im = ax.imshow(data_pixel_qi.T, cmap='viridis', vmax=1.0)
fig.colorbar( im )
ax.set_aspect(1.)
plt.show()
In [132]:
fig, ax = plt.subplots(figsize=(8,6))
ax.set_ylabel('Pixel')
ax.set_xlabel('Frame')
ax.set_title('Kymograph_4000-6000')
im = ax.imshow(data_pixel_qi[4000:6000,:].T, cmap='viridis', vmax=1.0)
fig.colorbar( im )
ax.set_aspect(.1)
plt.show()
In [101]:
mean_inten = get_mean_intensity( data_pixel, qind)
In [200]:
times = np.arange( mean_inten[1].shape[0] ) #*timeperframe # get the time for each frame
fig, ax = plt.subplots(figsize=(8, 6))
ax.set_title("Mean intensity of each ring")
for i in range( num_qzr ):
ax.plot(times, mean_inten[i+1], '--o', label="Ring "+str(i+1))
ax.set_xlabel("Frame")
ax.set_ylabel("Mean Intensity")
ax.set_ylim(0, 6e4)
ax.legend( fontsize = 6)
plt.show()
Note : Enter the number of levels and number of buffers for Muliti tau one time correlation number of buffers has to be even. More details in https://github.com/scikit-xray/scikit-xray/blob/master/skxray/core/correlation.py
In [133]:
nopr
Out[133]:
In [226]:
%run two_time.py
In [224]:
good_start = 8000
good_end = 9201
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
num_buf = 8
g2_tx1, lag_steps_tx1 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=None, threshold= None )
In [229]:
good_start = 8000
good_end = 9201
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
num_buf = 8
g2_tx2, lag_steps_tx2 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=[10,150,470,570,890,], threshold= None )
In [231]:
good_start = 8000
good_end = 9201
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
num_buf = 8
g2_tx3, lag_steps_tx3 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=[570], threshold= None )
In [238]:
fig,ax = plt.subplots()
ax.semilogx( lag_steps_tx3*timeperframe, g2_tx3[:,1], '--bs', label='inv-1_bad_images')
ax.semilogx( lag_steps_tx2*timeperframe, g2_tx2[:,1], '--ko', label='inv-5_bad_images')
ax.semilogx( lag_steps_tx1*timeperframe, g2_tx1[:,1], '-r', label='all_good_images')
ax.set_ylim([ 1.12,1.16 ])
ax.legend()
ax.set_title('test_dealing_with_bad_frames_in_multi_tau_code', fontsize=14,y =1.03)
ax.set_xlabel(r"$\tau $ $(s)$", fontsize=16)
ax.set_ylabel(r"$g_2$", fontsize=16)
Out[238]:
In [259]:
%run two_time.py
In [267]:
good_start = 7245
good_end = 9246
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
num_buf = 8
g2_ty2, lag_steps_ty2 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=None, threshold= 5000 )
In [268]:
good_start = 7246
good_end = 9246
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
num_buf = 8
g2_ty1, lag_steps_ty1= autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=None, threshold= None)
In [271]:
fig,ax = plt.subplots()
ax.semilogx( lag_steps_ty2*timeperframe, g2_ty2[:,1], '--bs', label='inv-1_bad_images')
ax.semilogx( lag_steps_ty1*timeperframe, g2_ty1[:,1], '--ko', label='all_good_images')
#ax.semilogx( lag_steps_tx1*timeperframe, g2_tx1[:,1], '-r', label='all_good_images')
ax.set_ylim([ 1.10,1.16 ])
ax.legend()
ax.set_title('test_dealing_with_bad_frames_in_multi_tau_code', fontsize=14,y =1.03)
ax.set_xlabel(r"$\tau $ $(s)$", fontsize=16)
ax.set_ylabel(r"$g_2$", fontsize=16)
Out[271]:
In [181]:
good_start = 6000
good_end = 8001
good_start = 6420
good_end = 12801
#good_start = 7600
#good_end = 7650
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
In [182]:
num_buf = 8
In [170]:
g2_t1, lag_steps_t1 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=None, threshold= None )
In [183]:
g2_t2, lag_steps_t2 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=None, threshold= 5000 )
In [186]:
good_start = 8000
good_end = 12001
#good_start = 7600
#good_end = 7650
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
In [187]:
g2_t4, lag_steps_t4 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=None, threshold= None )
In [201]:
good_start = 7400
good_end = 12501
#good_start = 7600
#good_end = 7650
imgs_ =imgs[good_start: good_end-1]
imgsr = Reverse_Coordinate(imgs_, mask)
In [202]:
g2_t5, lag_steps_t5 = autocor_one_time( num_buf, box_maskr, imgsr, num_lev=None,
bad_images=None, threshold= None )
In [ ]:
In [188]:
g2_t2.shape
Out[188]:
In [189]:
g2_t4.shape
Out[189]:
In [197]:
plt.close('all')
In [206]:
fig,ax = plt.subplots()
ax.semilogx( lag_steps_t2*timeperframe, g2_t2[:,1], 'ro', label='inv-bad_images')
ax.semilogx( lag_steps_t5*timeperframe, g2_t5[:,1], '-b', label='all_good_images')
ax.set_ylim([ 1.1,1.2 ])
ax.legend()
Out[206]:
In [ ]:
In [199]:
fig,ax = plt.subplots()
ax.semilogx( lag_steps_t2*timeperframe, g2_t2[:,1], 'ro', label='inv-bad_images')
ax.semilogx( lag_steps_t4*timeperframe, g2_t4[:,1], '-b', label='all_good_images')
ax.set_ylim([ 1.1,1.2 ])
ax.legend()
Out[199]:
In [ ]:
In [171]:
g2, lag_steps = g2_t1, lag_steps_t1
lags = lag_steps*timeperframe
In [184]:
g2, lag_steps = g2_t2, lag_steps_t2
lags = lag_steps*timeperframe
In [175]:
g2.shape
Out[175]:
In [ ]:
In [172]:
tg2 = np.hstack( [ lags.reshape( len(lags),1), g2] )
#np.save( path + 'g2_%s-%s--%s'%(uid,good_start, good_end), tg2)
np.savetxt( path + 'g2_%s-%s--%s.txt'%(uid,good_start, good_end), tg2)
In [185]:
vmin = 1.1
vmax= 1.15
for qz_ind in range(num_qz):
fig = plt.figure(figsize=(10, 12))
#fig = plt.figure()
title_qz = ' Qz= %.5f '%( qz_center[qz_ind]) + r'$\AA^{-1}$'
plt.title('uid= %s:--->'%uid + title_qz,fontsize=20, y =1.1)
#print (qz_ind,title_qz)
if num_qz!=1:plt.axis('off')
sx = int(round(np.sqrt(num_qr)) )
if num_qr%sx == 0:
sy = int(num_qr/sx)
else:
sy=int(num_qr/sx+1)
for sn in range(num_qr):
ax = fig.add_subplot(sx,sy,sn+1 )
ax.set_ylabel("g2")
ax.set_xlabel(r"$\tau $ $(s)$", fontsize=16)
title_qr = " Qr= " + '%.5f '%( qr_center[sn]) + r'$\AA^{-1}$'
if num_qz==1:
title = 'uid= %s:--->'%uid + title_qz + '__' + title_qr
else:
title = title_qr
ax.set_title( title )
y=g2[:, sn + qz_ind * num_qr]
ax.semilogx(lags, y, '-o', markersize=6)
ax.set_ylim([min(y)*.95, max(y[1:])*1.05 ])
#ax.set_ylim( vmin, vmax)
plt.show()
fig.tight_layout()
#np.save( path + 'g2_%s--%s'%(good_start, good_end), [lags,g2])
#lags,g2 = np.load( path + 'g2_%s--%s.npy'%(good_start, good_end) )
In [173]:
vmin = 1.1
vmax= 1.15
for qz_ind in range(num_qz):
fig = plt.figure(figsize=(10, 12))
#fig = plt.figure()
title_qz = ' Qz= %.5f '%( qz_center[qz_ind]) + r'$\AA^{-1}$'
plt.title('uid= %s:--->'%uid + title_qz,fontsize=20, y =1.1)
#print (qz_ind,title_qz)
if num_qz!=1:plt.axis('off')
sx = int(round(np.sqrt(num_qr)) )
if num_qr%sx == 0:
sy = int(num_qr/sx)
else:
sy=int(num_qr/sx+1)
for sn in range(num_qr):
ax = fig.add_subplot(sx,sy,sn+1 )
ax.set_ylabel("g2")
ax.set_xlabel(r"$\tau $ $(s)$", fontsize=16)
title_qr = " Qr= " + '%.5f '%( qr_center[sn]) + r'$\AA^{-1}$'
if num_qz==1:
title = 'uid= %s:--->'%uid + title_qz + '__' + title_qr
else:
title = title_qr
ax.set_title( title )
y=g2[:, sn + qz_ind * num_qr]
ax.semilogx(lags, y, '-o', markersize=6)
ax.set_ylim([min(y)*.95, max(y[1:])*1.05 ])
#ax.set_ylim( vmin, vmax)
plt.show()
fig.tight_layout()
#np.save( path + 'g2_%s--%s'%(good_start, good_end), [lags,g2])
#lags,g2 = np.load( path + 'g2_%s--%s.npy'%(good_start, good_end) )
In [174]:
vmin = 1.1
vmax= 1.15
for qz_ind in range(num_qz):
fig = plt.figure(figsize=(10, 8))
#fig = plt.figure()
title_qz = ' Qz= %.5f '%( qz_center[qz_ind]) + r'$\AA^{-1}$'
plt.title('uid= %s:--->'%uid + title_qz,fontsize=20, y =1.1)
#print (qz_ind,title_qz)
if num_qz!=1:plt.axis('off')
sx = int(round(np.sqrt(num_qr)) )
if num_qr%sx == 0:
sy = int(num_qr/sx)
else:
sy=int(num_qr/sx+1)
for sn in range(num_qr):
ax = fig.add_subplot(sx,sy,sn+1 )
ax.set_ylabel("g2")
ax.set_xlabel(r"$\tau $ $(s)$", fontsize=16)
title_qr = " Qr= " + '%.5f '%( qr_center[sn]) + r'$\AA^{-1}$'
if num_qz==1:
title = 'uid= %s:--->'%uid + title_qz + '__' + title_qr
else:
title = title_qr
ax.set_title( title )
y=g2[:, sn + qz_ind * num_qr]
ax.semilogx(lags, y, '-o', markersize=6)
ax.set_ylim([min(y)*.95, max(y[1:])*1.05 ])
#ax.set_ylim( vmin, vmax)
plt.show()
fig.tight_layout()
#np.save( path + 'g2_%s--%s'%(good_start, good_end), [lags,g2])
#lags,g2 = np.load( path + 'g2_%s--%s.npy'%(good_start, good_end) )
In [ ]:
from lmfit import Model
mod = Model(corr.auto_corr_scat_factor)
In [ ]:
rate = []
sx = int( round (np.sqrt(num_rings)) )
if num_rings%sx==0:
sy = int(num_rings/sx)
else:
sy = int(num_rings/sx+1)
#fig = plt.figure(figsize=(14, 10))
fig = plt.figure()
plt.title('uid= %s'%uid, fontsize=20, y =1.08)
for sn in range(num_rings):
ax = fig.add_subplot(sx, sy, sn+1 )
y=g2[1:, sn]
result1 = mod.fit(y, lags=lags[1:], beta=.1,
relaxation_rate =.5, baseline=1.0)
rate.append(result1.best_values['relaxation_rate'])
ax.semilogx(lags[1:], y, 'ro')
ax.semilogx(lags[1:], result1.best_fit, '-b')
ax.set_title(" Q= " + '%.5f '%(q_ring_center[sn]) + r'$\AA^{-1}$')
ax.set_ylim([min(y)*.95, max(y[1:]) *1.05])
txts = r'$\gamma$' + r'$ = %.3f$'%(rate[sn]) + r'$ s^{-1}$'
ax.text(x =0.015, y=.55, s=txts, fontsize=14, transform=ax.transAxes)
fig.tight_layout()
In [ ]:
fig, ax=plt.subplots()
ax.plot(q_ring_center**2, rate, 'ro', ls='--')
ax.set_ylabel('Relaxation rate 'r'$\gamma$'"($s^{-1}$)")
ax.set_xlabel("$q^2$"r'($\AA^{-2}$)')
plt.show()
In [ ]:
D0 = np.polyfit(q_ring_center**2, rate, 1)
gmfit = np.poly1d(D0)
print ('The fitted diffusion coefficient D0 is: %.2E A^2S-1'%D0[0])
In [ ]:
fig,ax = plt.subplots()
ax.plot(q_ring_center**2, rate, 'ro', ls='')
ax.plot(q_ring_center**2, gmfit(q_ring_center**2), ls='-')
ax.set_ylabel('Relaxation rate 'r'$\gamma$'"($s^{-1}$)")
ax.set_xlabel("$q^2$"r'($\AA^{-2}$)')
plt.show()
In [ ]:
good_start= 0
good_end = 10000
imgs_ =imgs[good_start: good_end]
imgsr = Reverse_Coordinate(imgs_, mask)
In [ ]:
g12b = auto_two_Array( imgsr, ring_mask, data_pixel = data_pixel )
In [ ]:
g12_num = 0 #0: the firs ring
data = g12b[:,:,g12_num]
fig, ax = plt.subplots()
im=ax.imshow( data, origin='lower' , cmap='viridis',
norm= LogNorm( vmin= 1, vmax= 1.6 ),
extent=[0, data.shape[0]*timeperframe, 0, data.shape[0]*timeperframe ] )
ax.set_title('0-%s frames--Qth= %s'%(Nimg,g12_num))
ax.set_xlabel( r'$t_1$ $(s)$', fontsize = 18)
ax.set_ylabel( r'$t_2$ $(s)$', fontsize = 18)
fig.colorbar(im)
plt.show()
In [ ]:
#np.where( g12b[:,:,0] == g12b[:,:,0].min() )
In [ ]:
g12b_mask = make_g12_mask(g12b,[7629])
g12bm = masked_g12(g12b,[7629])
In [ ]:
g2b = get_one_time_from_two_time(g12bm, timeperframe= timeperframe)
In [ ]:
sx = int(round(np.sqrt(num_rings)) )
if num_rings%sx == 0:
sy = int(num_rings/sx)
else:
sy=int(num_rings/sx+1)
#fig = plt.figure(figsize=(14, 10))
fig = plt.figure()
plt.title('uid= %s'%uid,fontsize=20, y =1.08)
plt.axis('off')
for sn in range(num_rings):
ax = fig.add_subplot(sx,sy,sn+1 )
ax.set_ylabel("g2")
ax.set_title(" Q= " + '%.5f '%(q_ring_center[sn]) + r'$\AA^{-1}$')
y=g2b[:, sn]
ax.semilogx( np.arange(len(y))*timeperframe, y, '-o', markersize=6)
#ax.semilogx(lags, y, '-o', markersize=6)
#ax.set_ylim([min(y)*.95, max(y[1:])*1.05 ])
ax.set_ylim( [1.0, max(y[1:])*1.05 ] )
plt.show()
fig.tight_layout()
In [ ]:
sx = int(round(np.sqrt(num_rings)) )
if num_rings%sx == 0:
sy = int(num_rings/sx)
else:
sy=int(num_rings/sx+1)
#fig = plt.figure(figsize=(14, 10))
fig = plt.figure()
plt.title('uid= %s'%uid,fontsize=20, y =1.06)
plt.axis('off')
for sn in range(num_rings):
ax = fig.add_subplot(sx,sy,sn+1 )
ax.set_ylabel("g2")
ax.set_title(" Q= " + '%.5f '%(q_ring_center[sn]) + r'$\AA^{-1}$')
y=g2b[:, sn]
ax.semilogx( np.arange(len(y))*timeperframe, y, '--r', markersize=6)
y2=g2[:, sn]
ax.semilogx(lags, y2, 'o', markersize=6)
#ax.semilogx(lags, y, '-o', markersize=6)
#ax.set_ylim([min(y)*.95, max(y[1:])*1.05 ])
ax.set_ylim( [1.0, max(y2[1:])*1.05 ] )
plt.show()
fig.tight_layout()
In [ ]:
g12b_norm, g12b_not_norm, norms = auto_two_Array_g1_norm( imgsr, ring_mask, data_pixel = data_pixel )
In [ ]:
g2b_norm = get_one_time_from_two_time(g12b_norm,
norms=None, nopr=nopr, timeperframe= timeperframe)
In [ ]:
g2b_not_norm = get_one_time_from_two_time(g12b_not_norm,
norms=norms, nopr=nopr, timeperframe= timeperframe)
In [ ]:
#num_rings =6
sx = int(round(np.sqrt(num_rings)) )
if num_rings%sx == 0:
sy = int(num_rings/sx)
else:
sy=int(num_rings/sx+1)
#fig = plt.figure(figsize=(14, 10))
fig = plt.figure()
plt.title('uid= %s'%uid,fontsize=20, y =1.06)
plt.axis('off')
for sn in range(num_rings):
ax = fig.add_subplot(sx,sy,sn+1 )
ax.set_ylabel("g2")
ax.set_title(" Q= " + '%.5f '%(q_ring_center[sn]) + r'$\AA^{-1}$')
y=g2b_norm[:, sn]
#ax.semilogx( np.arange(len(y))*timeperframe, y, '--r', markersize=3)
y3=g2b_not_norm[:, sn]
ax.semilogx( np.arange(len(y))*timeperframe, y3, '-g', lw=4, markersize=3)
y2=g2[:, sn]
#ax.semilogx(lags, y2, '-ko', markersize= 3)
ax.semilogx(lags, y2, 'o', markersize=6)
#ax.semilogx(lags, y, '-o', markersize=6)
#ax.set_ylim([min(y)*.95, max(y[1:])*1.05 ])
ax.set_ylim( [1.0, max(y2[1:])*1.05 ] )
plt.show()
fig.tight_layout()
In [ ]:
g12_num =0
g2b = show_g12_age_cuts( g12bm, g12_num=g12_num, slice_num =3, slice_width= 500,
slice_start=4000, slice_end= 20000-4000,
timeperframe= timeperframe,vmin= 1.0, vmax = 1.22) #vmax=g12b[:,:,g12_num].max() )
In [ ]:
taus = show_g12_tau_cuts(g12b_norm, g12_num=0, slice_num = 5, slice_width= 1.0,
slice_start=3, slice_end= 5000-1,draw_scale_tau =1.0, vmin=1.01,vmax=1.55 )
In [ ]:
his = his_tau(taus, hisbin = 10, plot=True)
In [ ]: