Changeset 2015
- Timestamp:
- Oct 17, 2015 4:32:42 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r2003 r2015 777 777 G2IO.LoadImage(rd.readfilename,self,rd.Comments,rd.Data,rd.Npix,rd.Image) 778 778 self.PatternTree.SelectItem(G2gd.GetPatternTreeItemId(self,self.Image,'Image Controls')) #show last image to have beeen read 779 # replace G2IO.GetImageData with something using imports780 # look over G2IO.ReadLoadImage781 779 782 780 def _Add_ImportMenu_Sfact(self,parent): … … 2245 2243 self.plotView = 0 2246 2244 self.Image = 0 2247 self.oldImagefile = '' 2248 self.ImageZ = [] 2245 self.oldImagefile = '' # the name of the last image file read 2246 self.ImageZ = [] # this contains the image plotted and used for integration 2247 # self.ImageZ and self.oldImagefile are set in GSASIIplot.PlotImage 2248 # and GSASIIIO.ReadImageData (GetImageData soon) 2249 # any changes to self.ImageZ should initialize self.oldImagefile to force a reread 2249 2250 self.Integrate = 0 2250 2251 self.imageDefault = {} -
trunk/GSASIIIO.py
r2013 r2015 351 351 352 352 def ReadImageData(G2frame,imagefile,imageOnly=False): 353 '''Read a single image with an image importer. replacement for GetImageData353 '''Read a single image with an image importer. Replacement for GetImageData 354 354 355 355 :param wx.Frame G2frame: main GSAS-II Frame and data object. … … 388 388 continue 389 389 rdbuffer = {} # create temporary storage for file reader 390 if imageOnly: 391 ParentFrame = None # prevent GUI access on reread 392 else: 393 ParentFrame = G2frame 390 394 if GSASIIpath.GetConfigValue('debug'): 391 flag = rd.Reader(imagefile,fp, G2frame)395 flag = rd.Reader(imagefile,fp,ParentFrame) 392 396 else: 393 397 flag = False 394 398 try: 395 flag = rd.Reader(imagefile,fp, G2frame)399 flag = rd.Reader(imagefile,fp,ParentFrame) 396 400 except rd.ImportException as detail: 397 401 rd.errors += "\n Read exception: "+str(detail) … … 418 422 def GetImageData(G2frame,imagefile,imageOnly=False): 419 423 '''Read an image with the file reader keyed by the 420 file extension 424 file extension. 425 426 This routine will be replaced by ReadImageData, which will be renamed to this. 421 427 422 428 :param wx.Frame G2frame: main GSAS-II Frame and data object. … … 967 973 lines = ['not a known detector tiff file',] 968 974 return lines,0,0,0 975 976 if sizexy[1]*sizexy[0] != image.size: # test is resize is allowed 977 lines = ['not a known detector tiff file',] 978 return lines,0,0,0 969 979 970 980 image = np.reshape(image,(sizexy[1],sizexy[0])) … … 2062 2072 self.Image = None 2063 2073 2074 def LoadImage(self,ParentFrame,imagefile): 2075 '''Optionally, call this after reading in an image to load it into the tree. 2076 This does saves time by preventing a reread of the same information. 2077 ''' 2078 if ParentFrame: 2079 ParentFrame.ImageZ = self.Image # store the image for plotting 2080 ParentFrame.oldImagefile = imagefile # save the name of the last image file read 2081 2082 2064 2083 ###################################################################### 2065 2084 class ExportBaseclass(object): -
trunk/GSASIIimage.py
r1834 r2015 501 501 return tam.T 502 502 503 def ImageRecalibrate( self,data,masks):503 def ImageRecalibrate(G2frame,data,masks): 504 504 'Needs a doc string' 505 505 import ImageCalibrants as calFile … … 536 536 wave = data['wavelength'] 537 537 frame = masks['Frames'] 538 tam = ma.make_mask_none( self.ImageZ.shape)538 tam = ma.make_mask_none(G2frame.ImageZ.shape) 539 539 if frame: 540 540 tam = ma.mask_or(tam,MakeFrameMask(data,frame)) … … 547 547 break 548 548 ellipse = GetEllipse(dsp,data) 549 Ring = makeRing(dsp,ellipse,pixLimit,cutoff,scalex,scaley,ma.array( self.ImageZ,mask=tam))549 Ring = makeRing(dsp,ellipse,pixLimit,cutoff,scalex,scaley,ma.array(G2frame.ImageZ,mask=tam)) 550 550 if Ring: 551 551 if iH >= skip: … … 574 574 data['ellipses'].append(copy.deepcopy(ellipse+('b',))) 575 575 print 'calibration time = ',time.time()-time0 576 G2plt.PlotImage( self,newImage=True)576 G2plt.PlotImage(G2frame,newImage=True) 577 577 return True 578 578 579 def ImageCalibrate( self,data):579 def ImageCalibrate(G2frame,data): 580 580 'Needs a doc string' 581 581 import copy … … 611 611 #setup 360 points on that ring for "good" fit 612 612 data['ellipses'].append(ellipse[:]+('g',)) 613 Ring = makeRing(1.0,ellipse,pixLimit,cutoff,scalex,scaley, self.ImageZ)613 Ring = makeRing(1.0,ellipse,pixLimit,cutoff,scalex,scaley,G2frame.ImageZ) 614 614 if Ring: 615 615 ellipse = FitEllipse(Ring) 616 Ring = makeRing(1.0,ellipse,pixLimit,cutoff,scalex,scaley, self.ImageZ) #do again616 Ring = makeRing(1.0,ellipse,pixLimit,cutoff,scalex,scaley,G2frame.ImageZ) #do again 617 617 ellipse = FitEllipse(Ring) 618 618 else: … … 624 624 data['ellipses'].append(ellipse[:]+('r',)) 625 625 data['rings'].append(np.array(Ring)) 626 G2plt.PlotImage( self,newImage=True)626 G2plt.PlotImage(G2frame,newImage=True) 627 627 628 628 #setup for calibration … … 658 658 tth = npatan2d(radii[0],dist) 659 659 data['wavelength'] = wave = 2.0*dsp*sind(tth/2.0) 660 Ring0 = makeRing(dsp,ellipse,3,cutoff,scalex,scaley, self.ImageZ)660 Ring0 = makeRing(dsp,ellipse,3,cutoff,scalex,scaley,G2frame.ImageZ) 661 661 ttth = nptand(tth) 662 662 stth = npsind(tth) … … 694 694 ellipsep = GetEllipse2(tth,0.,dist,centp,tilt,phi) 695 695 print fmt%('plus ellipse :',ellipsep[0][0],ellipsep[0][1],ellipsep[1],ellipsep[2][0],ellipsep[2][1]) 696 Ringp = makeRing(dsp,ellipsep,3,cutoff,scalex,scaley, self.ImageZ)696 Ringp = makeRing(dsp,ellipsep,3,cutoff,scalex,scaley,G2frame.ImageZ) 697 697 parmDict = {'dist':dist,'det-X':centp[0],'det-Y':centp[1], 698 698 'tilt':tilt,'phi':phi,'wave':wave,'dep':0.0} … … 708 708 ellipsem = GetEllipse2(tth,0.,dist,centm,-tilt,phi) 709 709 print fmt%('minus ellipse:',ellipsem[0][0],ellipsem[0][1],ellipsem[1],ellipsem[2][0],ellipsem[2][1]) 710 Ringm = makeRing(dsp,ellipsem,3,cutoff,scalex,scaley, self.ImageZ)710 Ringm = makeRing(dsp,ellipsem,3,cutoff,scalex,scaley,G2frame.ImageZ) 711 711 if len(Ringm) > 10: 712 712 parmDict['tilt'] *= -1 … … 732 732 data['ellipses'].append(ellipsem[:]+('r',)) 733 733 data['rings'].append(np.array(Ringm)) 734 G2plt.PlotImage( self,newImage=True)734 G2plt.PlotImage(G2frame,newImage=True) 735 735 parmDict = {'dist':data['distance'],'det-X':data['center'][0],'det-Y':data['center'][1], 736 736 'tilt':data['tilt'],'phi':data['rotation'],'wave':data['wavelength'],'dep':data['DetDepth']} … … 748 748 data['ellipses'].append(copy.deepcopy(ellipse+('g',))) 749 749 if debug: print fmt%('predicted ellipse:',elcent[0],elcent[1],phi,radii[0],radii[1]) 750 Ring = makeRing(dsp,ellipse,pixLimit,cutoff,scalex,scaley, self.ImageZ)750 Ring = makeRing(dsp,ellipse,pixLimit,cutoff,scalex,scaley,G2frame.ImageZ) 751 751 if Ring: 752 752 data['rings'].append(np.array(Ring)) … … 763 763 if debug: print fmt2%('fitted ellipse: ',elcent[0],elcent[1],phi,radii[0],radii[1],chisq,len(rings)) 764 764 data['ellipses'].append(copy.deepcopy(ellipse+('r',))) 765 # G2plt.PlotImage( self,newImage=True)765 # G2plt.PlotImage(G2frame,newImage=True) 766 766 else: 767 767 if debug: print 'insufficient number of points in this ellipse to fit' 768 768 # break 769 G2plt.PlotImage( self,newImage=True)770 fullSize = len( self.ImageZ)/scalex769 G2plt.PlotImage(G2frame,newImage=True) 770 fullSize = len(G2frame.ImageZ)/scalex 771 771 if 2*radii[1] < .9*fullSize: 772 772 print 'Are all usable rings (>25% visible) used? Try reducing Min ring I/Ib' … … 784 784 data['ellipses'].append(copy.deepcopy(ellipse+('b',))) 785 785 print 'calibration time = ',time.time()-time0 786 G2plt.PlotImage( self,newImage=True)786 G2plt.PlotImage(G2frame,newImage=True) 787 787 return True 788 788 -
trunk/GSASIIplot.py
r2009 r2015 3926 3926 darkfile = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame, 3927 3927 G2frame.root,dark[0]))[1] 3928 if imagefile != G2frame.oldImagefile :3928 if imagefile != G2frame.oldImagefile or dark[0]: # always reread with dark correction 3929 3929 imagefile = G2IO.CheckImageFile(G2frame,imagefile) 3930 3930 if not imagefile: … … 3936 3936 darkImg = G2IO.GetImageData(G2frame,darkfile,imageOnly=True) 3937 3937 G2frame.ImageZ += dark[1]*darkImg 3938 G2frame.oldImagefile = imagefile 3938 G2frame.oldImagefile = imagefile # save name of the last image file read 3939 else: 3940 if GSASIIpath.GetConfigValue('debug'): print('Skipping image reread') 3939 3941 3940 3942 imScale = 1 -
trunk/imports/G2img_1TIF.py
r2012 r2015 56 56 self.Image = scipy.misc.imread(filename,flatten=True) 57 57 self.Npix = self.Image.size 58 self.Comments = ['no metadata']59 self.Data = {'wavelength': 0.1, 'pixelSize': [200, 200], 'distance': 100.0}60 self.Data['size'] = list(self.Image.shape)61 self.Data['center'] = [int(i/2) for i in self.Image.shape]62 58 if ParentFrame: 59 self.Comments = ['no metadata'] 60 self.Data = {'wavelength': 0.1, 'pixelSize': [200, 200], 'distance': 100.0} 61 self.Data['size'] = list(self.Image.shape) 62 self.Data['center'] = [int(i/2) for i in self.Image.shape] 63 63 G2IO.EditImageParms(ParentFrame,self.Data,self.Comments,self.Image,filename) 64 if self.Npix == 0 or not self.Comments:64 if self.Npix == 0: 65 65 return False 66 self.LoadImage(ParentFrame,filename) 66 67 return True 67 68 -
trunk/imports/G2img_ADSC.py
r2003 r2015 41 41 if self.Npix == 0 or not self.Comments: 42 42 return False 43 self.LoadImage(ParentFrame,filename) 43 44 return True -
trunk/imports/G2img_CheMin.py
r2003 r2015 42 42 self.Image = scipy.misc.imread(filename,flatten=True) 43 43 self.Npix = self.Image.size 44 self.Comments = ['no metadata'] 45 pixy = list(self.Image.shape) 46 sizexy = [40,40] 47 self.Data = {'wavelength': 1.78892, 'pixelSize': sizexy, 'distance': 18.0,'size':pixy} 48 self.Data['center'] = [pixy[0]*sizexy[0]/1000,pixy[1]*sizexy[1]/2000] 49 if self.Npix == 0 or not self.Comments: 44 if self.Npix == 0: 50 45 return False 51 46 if ParentFrame: 47 self.Comments = ['no metadata'] 48 pixy = list(self.Image.shape) 49 sizexy = [40,40] 50 self.Data = {'wavelength': 1.78892, 'pixelSize': sizexy, 'distance': 18.0,'size':pixy} 51 self.Data['center'] = [pixy[0]*sizexy[0]/1000,pixy[1]*sizexy[1]/2000] 52 52 G2IO.EditImageParms(ParentFrame,self.Data,self.Comments,self.Image,filename) 53 self.LoadImage(ParentFrame,filename) 53 54 return True 54 55 # N.B. This replaces G2IO.GetPNGData -
trunk/imports/G2img_EDF.py
r2003 r2015 41 41 if self.Npix == 0 or not self.Comments: 42 42 return False 43 self.LoadImage(ParentFrame,filename) 43 44 return True -
trunk/imports/G2img_GE.py
r2003 r2015 40 40 if self.Npix == 0 or not self.Comments: 41 41 return False 42 self.LoadImage(ParentFrame,filename) 42 43 return True -
trunk/imports/G2img_MAR.py
r2003 r2015 40 40 if self.Npix == 0 or not self.Comments: 41 41 return False 42 self.LoadImage(ParentFrame,filename) 42 43 return True -
trunk/imports/G2img_Rigaku.py
r2003 r2015 46 46 if self.Npix == 0 or not self.Comments: 47 47 return False 48 self.LoadImage(ParentFrame,filename) 48 49 return True -
trunk/imports/G2img_SumG2.py
r2003 r2015 42 42 self.Comments,self.Data,self.Npix,self.image = cPickle.load(Fp) 43 43 Fp.close() 44 self.LoadImage(ParentFrame,filename) 44 45 return True 45 46 # N.B. This replaces G2IO.GetG2Image
Note: See TracChangeset
for help on using the changeset viewer.