Example #1
0
def test_lores2d(phi):
  from sasModeling.pointsmodelpy import pointsmodelpy 
  from sasModeling.iqPy import iqPy
  from sasModeling.geoshapespy import geoshapespy

  #lores model is to hold several geometric objects
  lm = pointsmodelpy.new_loresmodel(0.1)

  #generate single geometry shape
  c = geoshapespy.new_cylinder(10,40)
  geoshapespy.set_center(c,1,1,1)
  geoshapespy.set_orientation(c,0,0,0)

  #add single geometry shape to lores model
  pointsmodelpy.lores_add(lm,c,3.0)

  #retrieve the points from lores model for sas calculation
  vp = pointsmodelpy.new_point3dvec()
  pointsmodelpy.get_lorespoints(lm,vp)

  #Calculate I(Q) and P(r) 2D
  pointsmodelpy.distdistribution_xy(lm,vp)
  pointsmodelpy.outputPR_xy(lm,"out_xy.pr")
  iq = iqPy.new_iq(100,0.001, 0.3)
  pointsmodelpy.calculateIQ_2D(lm,iq,phi)
  iqPy.OutputIQ(iq, "out_xy.iq")
Example #2
0
def test_lores2d(phi):
    from sasModeling.pointsmodelpy import pointsmodelpy
    from sasModeling.iqPy import iqPy
    from sasModeling.geoshapespy import geoshapespy

    #lores model is to hold several geometric objects
    lm = pointsmodelpy.new_loresmodel(0.1)

    #generate single geometry shape
    c = geoshapespy.new_cylinder(10, 40)
    geoshapespy.set_center(c, 1, 1, 1)
    geoshapespy.set_orientation(c, 0, 0, 0)

    #add single geometry shape to lores model
    pointsmodelpy.lores_add(lm, c, 3.0)

    #retrieve the points from lores model for sas calculation
    vp = pointsmodelpy.new_point3dvec()
    pointsmodelpy.get_lorespoints(lm, vp)

    #Calculate I(Q) and P(r) 2D
    pointsmodelpy.distdistribution_xy(lm, vp)
    pointsmodelpy.outputPR_xy(lm, "out_xy.pr")
    iq = iqPy.new_iq(100, 0.001, 0.3)
    pointsmodelpy.calculateIQ_2D(lm, iq, phi)
    iqPy.OutputIQ(iq, "out_xy.iq")
Example #3
0
def get2d_2():
  from math import pi
  from Numeric import arange,zeros
  from enthought.util.numerix import Float,zeros
  from sasModeling.file2array import readfile2array
  from sasModeling.pointsmodelpy import pointsmodelpy
  from sasModeling.geoshapespy import geoshapespy

  lm = pointsmodelpy.new_loresmodel(0.1)
  cyn = geoshapespy.new_cylinder(5,20)
  geoshapespy.set_orientation(cyn,0,0,90)
  pointsmodelpy.lores_add(lm,cyn,1.0)

  vp = pointsmodelpy.new_point3dvec()
  pointsmodelpy.get_lorespoints(lm,vp)

  pointsmodelpy.distdistribution_xy(lm,vp)

  value_grid = zeros((100,100),Float)
  width, height = value_grid.shape
  print(width,height)

  I = pointsmodelpy.calculateI_Qxy(lm,0.00001,0.000002)
  print(I)

  Imax = 0
  for i in range(width):
    for j in range(height):
      qx = float(i-50)/200.0
      qy = float(j-50)/200.0
      value_grid[i,j] = pointsmodelpy.calculateI_Qxy(lm,qx,qy)
      if value_grid[i][j] > Imax:
        Imax = value_grid[i][j]

  for i in range(width):
    for j in range(height):
      value_grid[i][j] = value_grid[i][j]/Imax

  value_grid[50,50] = 1
  return value_grid
Example #4
0
def get2d_2():
    from math import pi
    from Numeric import arange, zeros
    from enthought.util.numerix import Float, zeros
    from sasModeling.file2array import readfile2array
    from sasModeling.pointsmodelpy import pointsmodelpy
    from sasModeling.geoshapespy import geoshapespy

    lm = pointsmodelpy.new_loresmodel(0.1)
    cyn = geoshapespy.new_cylinder(5, 20)
    geoshapespy.set_orientation(cyn, 0, 0, 90)
    pointsmodelpy.lores_add(lm, cyn, 1.0)

    vp = pointsmodelpy.new_point3dvec()
    pointsmodelpy.get_lorespoints(lm, vp)

    pointsmodelpy.distdistribution_xy(lm, vp)

    value_grid = zeros((100, 100), Float)
    width, height = value_grid.shape
    print(width, height)

    I = pointsmodelpy.calculateI_Qxy(lm, 0.00001, 0.000002)
    print(I)

    Imax = 0
    for i in range(width):
        for j in range(height):
            qx = float(i - 50) / 200.0
            qy = float(j - 50) / 200.0
            value_grid[i, j] = pointsmodelpy.calculateI_Qxy(lm, qx, qy)
            if value_grid[i][j] > Imax:
                Imax = value_grid[i][j]

    for i in range(width):
        for j in range(height):
            value_grid[i][j] = value_grid[i][j] / Imax

    value_grid[50, 50] = 1
    return value_grid
Example #5
0
#    geoshapespy.set_center(b,15,15,15)
#    pointsmodelpy.lores_add(lm,b,2.0)

    
    c = geoshapespy.new_cylinder(10,40)
    geoshapespy.set_center(c,1,1,1)
    geoshapespy.set_orientation(c,0,0,0)
    pointsmodelpy.lores_add(lm,c,3.0)
    
#    d = geoshapespy.new_ellipsoid(10,8,6)
#    geoshapespy.set_center(d,3,3,3)
#    geoshapespy.set_orientation(c,30,30,30)
#    pointsmodelpy.lores_add(lm,d,1.0)

    vp = pointsmodelpy.new_point3dvec()
    pointsmodelpy.get_lorespoints(lm,vp)
    pointsmodelpy.outputPDB(lm,vp,"modelpy.pseudo.pdb")

    print "calculating distance distribution"
    rmax = pointsmodelpy.get_lores_pr(lm,vp)
    print "finish calculating get_lores_pr, and rmax is:", rmax
    pointsmodelpy.outputPR(lm,"testlores.pr")
    pointsmodelpy.get_lores_iq(lm,iq)

    iqPy.OutputIQ(iq, "testlores.iq")

    print "Testing get I from a single q"
    result = pointsmodelpy.get_lores_i(lm,0.1)
    print "The I(0.1) is: %s" % str(result) 

# version
Example #6
0
if __name__ == "__main__":
    from sasModeling.pointsmodelpy import pointsmodelpy
    from sasModeling.iqPy import iqPy
    from sasModeling.geoshapespy import geoshapespy

    a = geoshapespy.new_sphere(10)
    lm = pointsmodelpy.new_loresmodel(0.0005)
    pointsmodelpy.lores_add(lm, a, 1.0)
    b = geoshapespy.new_sphere(20)
    geoshapespy.set_center(b, 20, 20, 20)
    pointsmodelpy.lores_add(lm, b, -1.0)

    vp = pointsmodelpy.new_point3dvec()
    pointsmodelpy.get_lorespoints(lm, vp)

    pointsmodelpy.get_lores_pr(lm, vp)