Changeset 261
- Timestamp:
- Mar 11, 2011 2:06:54 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIimage.py
r257 r261 15 15 import GSASIIplot as G2plt 16 16 import GSASIIlattice as G2lat 17 import fellipse as fel 17 18 18 19 # trig functions in degrees … … 56 57 57 58 def FitRing(ring): 58 Err,parms = FitCircle(ring)59 Err /= len(ring)60 # print 'circle error:','%8f'%(Err)61 if Err > 20000.: 62 eparms = FitEllipse(ring) 63 if eparms:64 parms = eparms59 err,parms = FitEllipse(ring) 60 errc,parmsc = FitCircle(ring) 61 errc = errc[0]/(len(ring)*parmsc[2][0]**2) 62 # print 'Ellipse?',err,parms 63 # print 'Circle? ',errc,parmsc 64 if not parms or errc < .1: 65 parms = parmsc 65 66 return parms 66 67 … … 115 116 M = np.array((x**2-y**2,x*y,x,y,np.ones_like(x))) 116 117 B = np.array(-(x**2+y**2)) 117 result = nl.lstsq(M.T,B)118 return makeParmsEllipse(result[0])118 bb,err = fel.fellipse(len(x),x,y,1.E-7) 119 return err,makeParmsEllipse(bb) 119 120 120 121 def FitDetector(rings,p0,wave): … … 172 173 sphi = sind(phi) 173 174 ring = [] 174 for a in range(-180,180, 2):175 for a in range(-180,180,1): 175 176 x = radii[0]*cosd(a) 176 177 y = radii[1]*sind(a) … … 184 185 Y /= scaley 185 186 ring.append([X,Y,dsp]) 186 if len(ring) < 10: #want more than 20deg187 if len(ring) < 20: #want more than 20 deg 187 188 return [] 188 189 return ring … … 334 335 return False 335 336 336 #setup 180 points on that ring for "good" fit337 #setup 360 points on that ring for "good" fit 337 338 Ring = makeRing(1.0,ellipse,pixLimit,cutoff,scalex,scaley,self.ImageZ) 338 339 if Ring: … … 405 406 dist = calcDist(radii,tth) 406 407 distR = 1.-dist/data['distance'] 407 if abs(distR) > 0. 1:408 print distR,dist,data['distance']409 del data['rings'][-1]408 if abs(distR) > 0.01: 409 # print distR,dist,data['distance'] 410 # del data['rings'][-1] 410 411 continue 411 412 if distR > 0.001: … … 415 416 else: 416 417 ellipse = newellipse 417 if abs((radii[1]/radii[0]-ratio)/ratio) > 0. 01:418 if abs((radii[1]/radii[0]-ratio)/ratio) > 0.1: 418 419 print 'Bad fit for ring # %i. Try reducing Pixel search range'%(i) 419 420 return False -
trunk/GSASIIimgGUI.py
r258 r261 69 69 except ValueError: 70 70 pass 71 calibDmin.SetValue("%. 1f"%(data['calibdmin'])) #reset in case of error71 calibDmin.SetValue("%.2f"%(data['calibdmin'])) #reset in case of error 72 72 73 73 def OnAzmthOff(event): … … 189 189 data['setRings'] = False 190 190 setRings.SetValue(data['setRings']) 191 self.dataFrame.GetStatusBar().SetStatusText('Select > 4 points on 1st used ring; LB to pick, RB to delete; shift LB to finish')191 self.dataFrame.GetStatusBar().SetStatusText('Select > 4 points on 1st used ring; LB to pick, RB on point to delete else RB to finish') 192 192 self.ifGetRing = True 193 193 … … 533 533 comboSizer.Add(wx.StaticText(parent=self.dataDisplay,label=' Min calib d-spacing '),0, 534 534 wx.ALIGN_CENTER_VERTICAL) 535 calibDmin = wx.TextCtrl(parent=self.dataDisplay,value=("%. 1f" % (data['calibdmin'])),535 calibDmin = wx.TextCtrl(parent=self.dataDisplay,value=("%.2f" % (data['calibdmin'])), 536 536 style=wx.TE_PROCESS_ENTER) 537 537 calibDmin.Bind(wx.EVT_TEXT_ENTER,OnCalibDmin) -
trunk/GSASIIplot.py
r259 r261 1039 1039 if Ypos and not Page.toolbar._active: #make sure zoom/pan not selected 1040 1040 if event.button == 1: 1041 if event.key == 'shift': #terminate picking?1042 print 'LB shift'1043 self.dataFrame.GetStatusBar().SetStatusText('Calibrating...')1044 if G2img.ImageCalibrate(self,Data):1045 self.dataFrame.GetStatusBar().SetStatusText('Calibration successful')1046 print 'Calibration successful'1047 else:1048 self.dataFrame.GetStatusBar().SetStatusText('Calibration failed')1049 print 'Calibration failed'1050 self.ifGetRing = False1051 G2imG.UpdateImageControls(self,Data,Masks)1052 return1053 1041 Xpix = Xpos*scalex 1054 1042 Ypix = Ypos*scaley … … 1060 1048 ypos /= scaley 1061 1049 Data['ring'].append([xpos,ypos]) 1050 elif event.button == 3: 1051 print 'LB shift' 1052 self.dataFrame.GetStatusBar().SetStatusText('Calibrating...') 1053 if G2img.ImageCalibrate(self,Data): 1054 self.dataFrame.GetStatusBar().SetStatusText('Calibration successful - Show ring picks to check') 1055 print 'Calibration successful' 1056 else: 1057 self.dataFrame.GetStatusBar().SetStatusText('Calibration failed - Show ring picks to diagnose') 1058 print 'Calibration failed' 1059 self.ifGetRing = False 1060 G2imG.UpdateImageControls(self,Data,Masks) 1061 return 1062 1062 PlotImage(self,newImage=False) 1063 1063 return
Note: See TracChangeset
for help on using the changeset viewer.