Changeset 32c0841 in sasview for guiframe/local_perspectives/plotting/AzimutSlicer.py
- Timestamp:
- Nov 23, 2010 9:21:20 AM (14 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- a54e4be
- Parents:
- 4a2b054
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
guiframe/local_perspectives/plotting/AzimutSlicer.py
r83f4445 r32c0841 11 11 import wx 12 12 from copy import deepcopy 13 14 13 from BaseInteractor import _BaseInteractor 15 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 16 14 from sans.guicomm.events import NewPlotEvent 15 from sans.guicomm.events import StatusEvent 16 from sans.guicomm.events import SlicerParameterEvent 17 from sans.guicomm.events import EVT_SLICER_PARS 17 18 18 19 … … 21 22 Select an annulus through a 2D plot 22 23 """ 23 def __init__(self, base,axes,color='black', zorder=3):24 def __init__(self, base, axes, color='black', zorder=3): 24 25 """ 25 26 """ … … 32 33 ## Number of points on the plot 33 34 self.nbins = 20 34 theta1 =math.pi/835 theta2 =math.pi/236 theta1 =2*math.pi/337 theta2 =-2*math.pi/338 r1 =self.qmax/2.039 r2 =self.qmax/1.835 theta1 = math.pi/8 36 theta2 = math.pi/2 37 theta1 = 2 * math.pi/3 38 theta2 = -2 * math.pi/3 39 r1 = self.qmax/2.0 40 r2 = self.qmax/1.8 40 41 41 42 # Inner circle 42 43 from Arc import ArcInteractor 43 self.inner_circle = ArcInteractor(self, self.base.subplot, zorder=zorder, r=self.qmax/2.0,theta1= theta1, 44 self.inner_circle = ArcInteractor(self, self.base.subplot, 45 zorder=zorder, 46 r=self.qmax/2.0, 47 theta1=theta1, 44 48 theta2=theta2) 45 49 self.inner_circle.qmax = self.qmax 46 self.outer_circle = ArcInteractor(self, self.base.subplot, zorder=zorder+1, r=self.qmax/1.8,theta1= theta1, 50 self.outer_circle = ArcInteractor(self, self.base.subplot, 51 zorder=zorder+1, 52 r=self.qmax/1.8, 53 theta1=theta1, 47 54 theta2=theta2) 48 self.outer_circle.qmax = self.qmax *1.255 self.outer_circle.qmax = self.qmax * 1.2 49 56 #self.outer_circle.set_cursor(self.base.qmax/1.8, 0) 50 57 from Edge import RadiusInteractor 51 self.right_edge= RadiusInteractor(self, self.base.subplot, zorder=zorder+1, 58 self.right_edge= RadiusInteractor(self, self.base.subplot, 59 zorder=zorder+1, 52 60 arc1=self.inner_circle, 53 61 arc2=self.outer_circle, 54 62 theta=theta1) 55 self.left_edge= RadiusInteractor(self, self.base.subplot, zorder=zorder+1, 63 self.left_edge= RadiusInteractor(self, self.base.subplot, 64 zorder=zorder+1, 56 65 arc1=self.inner_circle, 57 66 arc2=self.outer_circle, … … 75 84 """ 76 85 output = open(path, 'w') 77 78 86 data_x, data_y = self.get_data(image, x, y) 79 87 … … 109 117 #print "inner circle has moved" 110 118 self.inner_circle.update() 111 r1 =self.inner_circle.get_radius()112 r2 =self.outer_circle.get_radius()113 self.right_edge.update(r1, r2)114 self.left_edge.update(r1, r2)119 r1 = self.inner_circle.get_radius() 120 r2 = self.outer_circle.get_radius() 121 self.right_edge.update(r1, r2) 122 self.left_edge.update(r1, r2) 115 123 if self.outer_circle.has_move: 116 124 #print "outer circle has moved" 117 125 self.outer_circle.update() 118 r1 =self.inner_circle.get_radius()119 r2 =self.outer_circle.get_radius()120 self.left_edge.update(r1, r2)121 self.right_edge.update(r1, r2)126 r1 = self.inner_circle.get_radius() 127 r2 = self.outer_circle.get_radius() 128 self.left_edge.update(r1, r2) 129 self.right_edge.update(r1, r2) 122 130 if self.right_edge.has_move: 123 131 #print "right edge has moved" 124 132 self.right_edge.update() 125 self.inner_circle.update(theta1=self.right_edge.get_angle(), theta2=None) 126 self.outer_circle.update(theta1=self.right_edge.get_angle(), theta2=None) 133 self.inner_circle.update(theta1=self.right_edge.get_angle(), 134 theta2=None) 135 self.outer_circle.update(theta1=self.right_edge.get_angle(), 136 theta2=None) 127 137 if self.left_edge.has_move: 128 138 #print "left Edge has moved" 129 139 self.left_edge.update() 130 self.inner_circle.update(theta1=None, theta2=self.left_edge.get_angle()) 131 self.outer_circle.update(theta1=None, theta2=self.left_edge.get_angle()) 140 self.inner_circle.update(theta1=None, 141 theta2=self.left_edge.get_angle()) 142 self.outer_circle.update(theta1=None, 143 theta2=self.left_edge.get_angle()) 132 144 133 134 145 def save(self, ev): 135 146 """ … … 149 160 """ post data averaging in Q""" 150 161 if self.inner_circle.get_radius() < self.outer_circle.get_radius(): 151 rmin =self.inner_circle.get_radius()152 rmax =self.outer_circle.get_radius()162 rmin = self.inner_circle.get_radius() 163 rmax = self.outer_circle.get_radius() 153 164 else: 154 rmin =self.outer_circle.get_radius()155 rmax =self.inner_circle.get_radius()165 rmin = self.outer_circle.get_radius() 166 rmax = self.inner_circle.get_radius() 156 167 if self.right_edge.get_angle() < self.left_edge.get_angle(): 157 phimin =self.right_edge.get_angle()158 phimax =self.left_edge.get_angle()168 phimin = self.right_edge.get_angle() 169 phimax = self.left_edge.get_angle() 159 170 else: 160 phimin =self.left_edge.get_angle()161 phimax =self.right_edge.get_angle()162 163 # print "phimin, phimax, rmin ,rmax",math.degrees(phimin),math.degrees(phimax), rmin ,rmax171 phimin = self.left_edge.get_angle() 172 phimax = self.right_edge.get_angle() 173 #print "phimin, phimax, rmin ,rmax",math.degrees(phimin), 174 # math.degrees(phimax), rmin ,rmax 164 175 #from DataLoader.manipulations import SectorQ 165 176 166 sect = new_sector(r_min=rmin, r_max=rmax, phi_min=phimin, phi_max=phimax) 177 sect = new_sector(r_min=rmin, r_max=rmax, 178 phi_min=phimin, phi_max=phimax) 167 179 sector = sect(self.base.data2D) 168 180 169 181 from sans.guiframe.dataFitting import Data1D 170 if hasattr(sector, "dxl"):171 dxl = sector.dxl182 if hasattr(sector, "dxl"): 183 dxl = sector.dxl 172 184 else: 173 dxl = None174 if hasattr(sector, "dxw"):175 dxw = sector.dxw185 dxl = None 186 if hasattr(sector, "dxw"): 187 dxw = sector.dxw 176 188 else: 177 dxw= None 178 179 new_plot = Data1D(x=sector.x,y=sector.y,dy=sector.dy,dxl=dxl,dxw=dxw) 180 new_plot.name = str(new_sector.__name__) +"("+ self.base.data2D.name+")" 181 182 183 184 new_plot.source=self.base.data2D.source 189 dxw = None 190 new_plot = Data1D(x=sector.x, y=sector.y, dy=sector.dy, 191 dxl=dxl, dxw=dxw) 192 new_plot.name = str(new_sector.__name__) + \ 193 "("+ self.base.data2D.name+")" 194 new_plot.source = self.base.data2D.source 185 195 new_plot.interactive = True 186 196 #print "loader output.detector",output.source 187 new_plot.detector = self.base.data2D.detector197 new_plot.detector = self.base.data2D.detector 188 198 # If the data file does not tell us what the axes are, just assume... 189 199 new_plot.xaxis("\\rm{Q}", 'rad') 190 new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 191 new_plot.group_id = str(new_sector.__name__)+self.base.data2D.name 192 wx.PostEvent(self.base.parent, NewPlotEvent(plot=new_plot, 193 title=str(new_sector.__name__) )) 194 200 new_plot.yaxis("\\rm{Intensity} ", "cm^{-1}") 201 new_plot.group_id = str(new_sector.__name__) + self.base.data2D.name 202 wx.PostEvent(self.base.parent, 203 NewPlotEvent(plot=new_plot, title=str(new_sector.__name__))) 195 204 196 205 def moveend(self, ev): 197 206 #self.base.thaw_axes() 198 207 199 208 # Post paramters 200 209 #event = SlicerParameterEvent() 201 210 #event.type = self.__class__.__name__ … … 271 280 """ 272 281 """ 273 def __init__(self, base,axes,color='black', zorder=3):282 def __init__(self, base, axes, color='black', zorder=3): 274 283 """ 275 284 """ … … 282 291 """ 283 292 from DataLoader.manipulations import SectorQ 284 self.post_data(SectorQ 293 self.post_data(SectorQ) 285 294 286 295 … … 288 297 """ 289 298 """ 290 def __init__(self, base,axes,color='black', zorder=3):299 def __init__(self, base, axes, color='black', zorder=3): 291 300 """ 292 301 """
Note: See TracChangeset
for help on using the changeset viewer.