Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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)