Changeset 2284


Ignore:
Timestamp:
May 20, 2016 12:37:52 PM (6 years ago)
Author:
vondreele
Message:

update binwin64 (probably no different from previous one)
add Stacking Fault-III to tutorial list
fixup HDF5 importer for images - now recovers wavelength, distance, pixel size, etc.
fix float/integer incompatibility in Flat Bkg values
enable/disable if calibrant/nocalibrant for both Calibrate & Recalibrate
fix a float/int error in mouse positioning on image

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrls.py

    r2272 r2284  
    38623862        'Stacking fault simulations for diamond'],
    38633863    ['StackingFaults-II', 'StackingFaults-II', 'Stacking Faults II.htm',
    3864         'Stacking fault simulations for kaolinite'],
     3864        'Stacking fault simulations for Keokuk kaolinite'],
     3865    ['StackingFaults-III', 'StackingFaults-III', 'Stacking Faults-III.htm',
     3866        'Stacking fault simulations for Georgia kaolinite'],
    38653867       
    38663868    ['CFXraySingleCrystal','CFXraySingleCrystal','CFSingleCrystal.htm',
  • trunk/GSASIIimage.py

    r2183 r2284  
    582582        ellipse = GetEllipse(H[3],data)
    583583        data['ellipses'].append(copy.deepcopy(ellipse+('b',)))   
    584     print 'calibration time = ',time.time()-time0
     584    print 'calibration time = %.3f'%(time.time()-time0)
    585585    G2plt.PlotImage(G2frame,newImage=True)       
    586586    return True
     
    794794        ellipse = GetEllipse(H[3],data)
    795795        data['ellipses'].append(copy.deepcopy(ellipse+('b',)))
    796     print 'calibration time = ',time.time()-time0
     796    print 'calibration time = %.3f'%(time.time()-time0)
    797797    G2plt.PlotImage(G2frame,newImage=True)       
    798798    return True
  • trunk/GSASIIimgGUI.py

    r2227 r2284  
    166166           
    167167    def OnCalibrate(event):
    168         if not data.get('calibrant'):
    169             G2G.G2MessageBox(G2frame,'A calibrant must first be selected')
    170168        G2frame.dataFrame.GetStatusBar().SetStatusText('Select > 4 points on 1st used ring; LB to pick, RB on point to delete else RB to finish')
    171169        G2frame.ifGetRing = True
     
    825823                pass
    826824            flatbkg.SetValue("%.0f"%(data['Flat Bkg']))   
    827             G2frame.ImageZ += (oldFlat-data['Flat Bkg'])
     825            G2frame.ImageZ += int(oldFlat-data['Flat Bkg'])
    828826            ResetThresholds()
    829827            G2plt.PlotExposedImage(G2frame,event=event)
     
    890888               
    891889        def OnNewCalibrant(event):
    892             data['calibrant'] = calSel.GetValue()
    893             data['calibskip'] = calFile.Calibrants[data['calibrant']][3]
    894             limits = calFile.Calibrants[data['calibrant']][4]
    895             data['calibdmin'],data['pixLimit'],data['cutoff'] = limits
    896             pixLimit.SetValue(str(limits[1]))
    897             cutOff.SetValue('%.1f'%(limits[2]))
    898             calibSkip.SetValue(str(data['calibskip']))
    899             calibDmin.SetValue('%.1f'%(limits[0]))
     890            data['calibrant'] = calSel.GetValue().strip()
     891            if data['calibrant']:
     892                G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMRECALIBRATE,enable=True)
     893                G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMCALIBRATE,enable=True)
     894                data['calibskip'] = calFile.Calibrants[data['calibrant']][3]
     895                limits = calFile.Calibrants[data['calibrant']][4]
     896                data['calibdmin'],data['pixLimit'],data['cutoff'] = limits
     897                pixLimit.SetValue(str(limits[1]))
     898                cutOff.SetValue('%.1f'%(limits[2]))
     899                calibSkip.SetValue(str(data['calibskip']))
     900                calibDmin.SetValue('%.1f'%(limits[0]))
     901            else:
     902                G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMRECALIBRATE,enable=False)
     903                G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMCALIBRATE,enable=False)
    900904           
    901905        def OnCalibSkip(event):
     
    10841088    if data.get('calibrant'):
    10851089        G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMRECALIBRATE,enable=True)
     1090        G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMCALIBRATE,enable=True)
    10861091    else:
    10871092        G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMRECALIBRATE,enable=False)
     1093        G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMCALIBRATE,enable=False)
    10881094    G2frame.dataFrame.Bind(wx.EVT_MENU, OnIntegrate, id=G2gd.wxID_IMINTEGRATE)
    10891095    G2frame.dataFrame.Bind(wx.EVT_MENU, OnIntegrateAll, id=G2gd.wxID_INTEGRATEALL)
  • trunk/GSASIIplot.py

    r2278 r2284  
    39463946                xpos = event.xdata
    39473947                ypos = event.ydata
    3948                 xpix = xpos*scalex
    3949                 ypix = ypos*scaley
     3948                xpix = int(xpos*scalex)
     3949                ypix = int(ypos*scaley)
    39503950                Int = 0
    39513951                if (0 <= xpix <= sizexy[0]) and (0 <= ypix <= sizexy[1]):
  • trunk/imports/G2img_HDF5.py

    r2133 r2284  
    6565            if not self.buffer.get('init'):
    6666                self.buffer['init'] = True
    67                 self.visit(fp)
    68             self.Comments,self.Data,self.Npix,self.Image = self.readDataset(fp,imagenum)
     67                self.Comments = self.visit(fp)
     68            self.Data,self.Npix,self.Image = self.readDataset(fp,imagenum)
    6969            if self.Npix == 0 or not self.Comments:
    7070                return False
     
    8686        '''
    8787        datakeyword = 'data'
     88        head = []
    8889        def func(name, dset):
    8990            if not hasattr(dset,'shape'): return # not array, can't be image
    9091            if isinstance(dset, h5py.Dataset):
     92                if len(dset.shape) < 2:
     93                    head.append('%s: %s'%(dset.name,str(dset[()][0])))
    9194                if dset.name.endswith(datakeyword):
    9295                    dims = dset.shape
     
    99102        self.buffer['imagemap'] = []
    100103        fp.visititems(func)
     104        return head
    101105       
    102106    def readDataset(self,fp,imagenum=1):
     
    109113        else:
    110114            image = dset[0,num,...]
    111         head = ['raw data']
    112115        sizexy = list(image.shape)
    113         Npix = sizexy[0]*sizexy[1]             
    114         data = {'pixelSize':[200,200],'wavelength':0.15,'distance':250.0,
    115                 'center':[204.8,204.8],'size':sizexy}
    116         return head,data,Npix,image
     116        Npix = sizexy[0]*sizexy[1]
     117        data = {'pixelSize':[200.,200.],'wavelength':0.15,'distance':1000.,
     118                'center':[sizexy[0]*0.1,sizexy[1]*0.1],'size':sizexy}
     119        for item in self.Comments:
     120            name,val = item.split(':',1)
     121            if 'wavelength' in name and 'spread' not in name:
     122                try:
     123                    data['wavelength'] = float(val)
     124                except ValueError:
     125                    pass
     126            elif 'distance' in name:
     127                data['distance'] = float(val)
     128            elif 'x_pixel_size' in name:
     129                data['pixelSize'][0] = float(val)*1000.
     130            elif 'y_pixel_size' in name:
     131                data['pixelSize'][1] = float(val)*1000.
     132            elif 'beam_center_x' in name:
     133                data['center'][0] = float(val)
     134            elif 'beam_center_y' in name:
     135                data['center'][1] = float(val)               
     136        return data,Npix,image.T
Note: See TracChangeset for help on using the changeset viewer.