ax = fig1.add_subplot(111, projection='3d') ax.scatter(x, y, z, zdir='z', c= 'red') #detector size in pixels detX = 500. detY = 500. #in meters waveLength = 0.7293*(10**(-10)) # wavelength of x-ray beam detDist = 0.002 # detector distance pixSz = 0.0003 # pixel size atmFactor = 1 # atomic form factor atmDist = 2.*10**-10 # number of unit cells per side on a block, user defined cell_per_side_x = 2 cell_per_side_y = 2 cell_per_side_z = 2 #particle = createParticle(cell_per_side_x, cell_per_side_y, cell_per_side_z) #diffract = calculateReciprocal(particle) plots_q = find_q_plots(detX, detY, pixSz, detDist, waveLength) plot_q_plots(plots_q[0], plots_q[1], plots_q[2]) #plot2D(diffract, detDist) #plot3D(diffract) plt.show()
xyzA[:,:3] = xyz_rot np.savetxt( 'cor_file_rot.coor', xyzA ) numRotations = 2 intensities = [] for rotation in xrange(numRotations): #xyzA[:,:3] = rotateRand(xyzA[:,:3]) rotateRand() detX = 515 detY = 515 waveLength = 0.7293 # wavelength of x-ray beam angstroms detDist = 0.02 # detector distance meters pixSz = 0.0003 # pixel size meters qx,qy,qz, q = find_q_plots(detX, detY, pixSz, detDist, waveLength) x,y,z, id = np.loadtxt(r'cor_file_rot.coor', unpack = True) factors = findAtmFact(pixSz, detDist, waveLength, detX, detY, id) atomTypes, atmFactors = factors[1], factors[0] I = np.zeros([detY, detX], dtype = np.complex128) for i in xrange(detX): for j in xrange(detY): for k in xrange(x.shape[0]): typeIndex = atomTypes.index( id[k] ) atmFactor = find_nearest(atmFactors[:,typeIndex],q[j,i] ) I[j,i] += atmFactor*cmath.exp(complex(0,-1)*(qx[j,i]*x[k]+qy[j,i]*y[k]+qz[j,i]*z[k])) I[j,i] = np.abs(I[j,i])**2 I = np.real(I)