[a1b8fee] | 1 | from __future__ import print_function |
---|
| 2 | |
---|
| 3 | |
---|
[959eb01] | 4 | def test_lores2d(phi): |
---|
| 5 | from sasModeling.pointsmodelpy import pointsmodelpy |
---|
| 6 | from sasModeling.iqPy import iqPy |
---|
| 7 | from sasModeling.geoshapespy import geoshapespy |
---|
| 8 | |
---|
| 9 | #lores model is to hold several geometric objects |
---|
| 10 | lm = pointsmodelpy.new_loresmodel(0.1) |
---|
| 11 | |
---|
| 12 | #generate single geometry shape |
---|
| 13 | c = geoshapespy.new_cylinder(10,40) |
---|
| 14 | geoshapespy.set_center(c,1,1,1) |
---|
| 15 | geoshapespy.set_orientation(c,0,0,0) |
---|
| 16 | |
---|
| 17 | #add single geometry shape to lores model |
---|
| 18 | pointsmodelpy.lores_add(lm,c,3.0) |
---|
| 19 | |
---|
| 20 | #retrieve the points from lores model for sas calculation |
---|
| 21 | vp = pointsmodelpy.new_point3dvec() |
---|
| 22 | pointsmodelpy.get_lorespoints(lm,vp) |
---|
| 23 | |
---|
| 24 | #Calculate I(Q) and P(r) 2D |
---|
| 25 | pointsmodelpy.distdistribution_xy(lm,vp) |
---|
| 26 | pointsmodelpy.outputPR_xy(lm,"out_xy.pr") |
---|
| 27 | iq = iqPy.new_iq(100,0.001, 0.3) |
---|
| 28 | pointsmodelpy.calculateIQ_2D(lm,iq,phi) |
---|
| 29 | iqPy.OutputIQ(iq, "out_xy.iq") |
---|
| 30 | |
---|
| 31 | def get2d(): |
---|
| 32 | from math import pi |
---|
| 33 | from Numeric import arange,zeros |
---|
| 34 | from enthought.util.numerix import Float,zeros |
---|
| 35 | from sasModeling.file2array import readfile2array |
---|
| 36 | from sasModeling.pointsmodelpy import pointsmodelpy |
---|
| 37 | from sasModeling.geoshapespy import geoshapespy |
---|
| 38 | |
---|
| 39 | lm = pointsmodelpy.new_loresmodel(0.1) |
---|
| 40 | sph = geoshapespy.new_sphere(20) |
---|
| 41 | pointsmodelpy.lores_add(lm,sph,1.0) |
---|
| 42 | |
---|
| 43 | vp = pointsmodelpy.new_point3dvec() |
---|
| 44 | pointsmodelpy.get_lorespoints(lm,vp) |
---|
| 45 | |
---|
| 46 | pointsmodelpy.distdistribution_xy(lm,vp) |
---|
| 47 | |
---|
| 48 | value_grid = zeros((100,100),Float) |
---|
| 49 | width, height = value_grid.shape |
---|
[9c3d784] | 50 | print(width,height) |
---|
[959eb01] | 51 | |
---|
| 52 | I = pointsmodelpy.calculateI_Qxy(lm,0.00001,0.000002) |
---|
[9c3d784] | 53 | print(I) |
---|
[959eb01] | 54 | |
---|
| 55 | Imax = 0 |
---|
| 56 | for i in range(width): |
---|
| 57 | for j in range(height): |
---|
| 58 | qx = float(i-50)/200.0 |
---|
| 59 | qy = float(j-50)/200.0 |
---|
| 60 | value_grid[i,j] = pointsmodelpy.calculateI_Qxy(lm,qx,qy) |
---|
| 61 | if value_grid[i][j] > Imax: |
---|
| 62 | Imax = value_grid[i][j] |
---|
| 63 | |
---|
| 64 | for i in range(width): |
---|
| 65 | for j in range(height): |
---|
| 66 | value_grid[i][j] = value_grid[i][j]/Imax |
---|
| 67 | |
---|
| 68 | value_grid[50,50] = 1 |
---|
| 69 | return value_grid |
---|
| 70 | |
---|
| 71 | def get2d_2(): |
---|
| 72 | from math import pi |
---|
| 73 | from Numeric import arange,zeros |
---|
| 74 | from enthought.util.numerix import Float,zeros |
---|
| 75 | from sasModeling.file2array import readfile2array |
---|
| 76 | from sasModeling.pointsmodelpy import pointsmodelpy |
---|
| 77 | from sasModeling.geoshapespy import geoshapespy |
---|
| 78 | |
---|
| 79 | lm = pointsmodelpy.new_loresmodel(0.1) |
---|
| 80 | cyn = geoshapespy.new_cylinder(5,20) |
---|
| 81 | geoshapespy.set_orientation(cyn,0,0,90) |
---|
| 82 | pointsmodelpy.lores_add(lm,cyn,1.0) |
---|
| 83 | |
---|
| 84 | vp = pointsmodelpy.new_point3dvec() |
---|
| 85 | pointsmodelpy.get_lorespoints(lm,vp) |
---|
| 86 | |
---|
| 87 | pointsmodelpy.distdistribution_xy(lm,vp) |
---|
| 88 | |
---|
| 89 | value_grid = zeros((100,100),Float) |
---|
| 90 | width, height = value_grid.shape |
---|
[9c3d784] | 91 | print(width,height) |
---|
[959eb01] | 92 | |
---|
| 93 | I = pointsmodelpy.calculateI_Qxy(lm,0.00001,0.000002) |
---|
[9c3d784] | 94 | print(I) |
---|
[959eb01] | 95 | |
---|
| 96 | Imax = 0 |
---|
| 97 | for i in range(width): |
---|
| 98 | for j in range(height): |
---|
| 99 | qx = float(i-50)/200.0 |
---|
| 100 | qy = float(j-50)/200.0 |
---|
| 101 | value_grid[i,j] = pointsmodelpy.calculateI_Qxy(lm,qx,qy) |
---|
| 102 | if value_grid[i][j] > Imax: |
---|
| 103 | Imax = value_grid[i][j] |
---|
| 104 | |
---|
| 105 | for i in range(width): |
---|
| 106 | for j in range(height): |
---|
| 107 | value_grid[i][j] = value_grid[i][j]/Imax |
---|
| 108 | |
---|
| 109 | value_grid[50,50] = 1 |
---|
| 110 | return value_grid |
---|
| 111 | |
---|
| 112 | if __name__ == "__main__": |
---|
| 113 | |
---|
[9c3d784] | 114 | print("start to test lores 2D") |
---|
[959eb01] | 115 | # test_lores2d(10) |
---|
| 116 | value_grid = get2d_2() |
---|
[9c3d784] | 117 | print(value_grid) |
---|
| 118 | print("pass") |
---|