Changeset 55


Ignore:
Timestamp:
Apr 29, 2010 12:27:45 PM (12 years ago)
Author:
vondreel
Message:

3rd try - reduce meatrices in integration

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r53 r55  
    936936    def OnExportPattern(self,event):
    937937        dlg = wx.FileDialog(self, 'Choose output powder file name', '.', '',
    938             'xye file (*.xye)|*.xye',wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT)
     938            'GSAS fxye file (*.fxye)|*.fxye|xye file (*.xye)|*.xye',
     939            wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT)
    939940        if self.dirname:
    940941            dlg.SetDirectory(self.dirname)
    941942        try:
    942943            if dlg.ShowModal() == wx.ID_OK:
    943                 self.powderfile = dlg.GetPath()
    944                 G2IO.PowderxyeSave(self)
     944                powderfile = dlg.GetPath()
     945                if 'fxye' in powderfile:
     946                    G2IO.powderFxyeSave(self,powderfile)
     947                else:       #just xye
     948                    G2IO.powderXyeSave(self,powderfile)
    945949                self.dirname = dlg.GetDirectory()
    946950        finally:
  • trunk/GSASIIIO.py

    r53 r55  
    620620            wx.EndBusyCursor()
    621621        print 'project save successful'
    622        
    623 def PowderxyeSave(self):
    624     file = open(self.powderfile,'wa')
    625     print 'save powder pattern to file: ',self.powderfile
     622
     623def powderFxyeSave(self,powderfile):
     624    file = open(powderfile,'w')
     625    print 'save powder pattern to file: ',powderfile
    626626    wx.BeginBusyCursor()
    627627    try:
    628628        x,y,w,yc,yb,yd = self.PatternTree.GetItemPyData(self.PickId)[1]
    629         for i,X in enumerate(x):
    630             file.write("%15.6g %15.6g %15.6g\n" % (X,y[i],1.0/math.sqrt(w[i])))
     629        x = x*100.
     630        XYW = zip(x,y,w)
     631        for X,Y,W in XYW:
     632            file.write("%15.6g %15.6g %15.6g\n" % (X,Y,W))
     633        file.close()
     634    finally:
     635        wx.EndBusyCursor()
     636    print 'powder pattern file written'
     637       
     638def powderXyeSave(self,powderfile):
     639    file = open(powderfile,'w')
     640    print 'save powder pattern to file: ',powderfile
     641    wx.BeginBusyCursor()
     642    try:
     643        x,y,w,yc,yb,yd = self.PatternTree.GetItemPyData(self.PickId)[1]
     644        XYW = zip(x,y,w)
     645        for X,Y,W in XYW:
     646            file.write("%15.6g %15.6g %15.6g\n" % (X,Y,W))
    631647        file.close()
    632648    finally:
  • trunk/GSASIIcomp.py

    r54 r55  
    13411341    sphi = sind(phi)
    13421342    ring = []
    1343     for a in range(0,360,2):
     1343    for a in range(-180,180,2):
    13441344        x = radii[0]*cosd(a)
    13451345        y = radii[1]*sind(a)
     
    14361436    return xy
    14371437                   
    1438 def GetTthDspAzm(x,y,data):
     1438def GetTthAzmDsp(x,y,data):
    14391439    wave = data['wavelength']
    14401440    dist = data['distance']
     
    14531453   
    14541454def GetTth(x,y,data):
    1455     return GetTthDspAzm(x,y,data)[0]
     1455    return GetTthAzmDsp(x,y,data)[0]
    14561456   
    14571457def GetTthAzm(x,y,data):
    1458     return GetTthDspAzm(x,y,data)[0:2]
     1458    return GetTthAzmDsp(x,y,data)[0:2]
    14591459   
    14601460def GetDsp(x,y,data):
    1461     return GetTthDspAzm(x,y,data)[2]
     1461    return GetTthAzmDsp(x,y,data)[2]
    14621462       
    14631463def ImageCompress(image,scale):
     
    16621662    self.TA = GetTthAzm(tay,tax,data)           #2-theta & azimuth arrays
    16631663    self.TA = np.reshape(self.TA,(2,imageN,imageN))
    1664     self.TA = np.dstack((self.TA[1],self.TA[0],self.ImageZ))    #azimuth, 2-theta, intensity order
     1664    self.TA = np.dstack((self.TA[1],self.TA[0]))    #azimuth, 2-theta
    16651665    t2 = time.time()
    16661666    print "Elapsed time:","%8.3f"%(t2-t1), "s"
     
    16681668    print 'Form 1-D histograms for ',numAzms,' azimuthal angles'
    16691669    print 'Integration limits:',LUtth,LRazm
    1670     tax,tay,taz = np.dsplit(self.TA,3)    #azimuth, 2-theta, intensity
     1670    tax,tay = np.dsplit(self.TA,2)    #azimuth, 2-theta, intensity
    16711671    NST = np.histogram2d(tax.flatten(),tay.flatten(),normed=False, \
    16721672        bins=(numAzms,numChans),range=[LRazm,LUtth])
    16731673    HST = np.histogram2d(tax.flatten(),tay.flatten(),normed=False, \
    1674         bins=(numAzms,numChans),weights=taz.flatten(),range=[LRazm,LUtth])
     1674        bins=(numAzms,numChans),weights=self.ImageZ.flatten(),range=[LRazm,LUtth])
    16751675    t3 = time.time()
    16761676    print "Elapsed time:","%8.3f"%(t3-t2), "s"
  • trunk/GSASIIgrid.py

    r53 r55  
    11361136        imax = int(maxSel.GetValue())
    11371137        delt = data['range'][0][1]-data['range'][0][0]
    1138         data['range'][1][1] = int((imax/100.)*delt)+data['range'][0][0]
     1138        data['range'][1][1] = max(data['range'][1][0]+1,int((imax/100.)*delt)+data['range'][0][0])
    11391139        G2plt.PlotExposedImage(self)
    11401140       
     
    11421142        imin = int(minSel.GetValue())
    11431143        delt = data['range'][1][1]-data['range'][0][0]
    1144         data['range'][1][0] = int((imin/100.)*delt)+data['range'][0][0]
     1144        data['range'][1][0] = min(data['range'][1][1]-1,int((imin/100.)*delt)+data['range'][0][0])
    11451145        G2plt.PlotExposedImage(self)
    11461146       
  • trunk/GSASIIplot.py

    r54 r55  
    550550                if (0 <= xpix <= size) and (0 <= ypix <= size):
    551551                    Page.canvas.SetToolTipString('%6d'%(self.ImageZ[ypix][xpix]))
    552                 tth,azm,dsp = G2cmp.GetTthDspAzm(xpos,ypos,Data)
     552                tth,azm,dsp = G2cmp.GetTthAzmDsp(xpos,ypos,Data)
    553553                Q = 2.*math.pi/dsp
    554554                self.G2plotNB.status.SetFields(\
     
    609609                            rings.remove(ring)                                                                       
    610610                else:
    611                     tth,azm,dsp = G2cmp.GetTthDspAzm(xpos,ypos,Data)
     611                    tth,azm,dsp = G2cmp.GetTthAzmDsp(xpos,ypos,Data)
    612612                    if 'Line2D' in str(self.itemPicked):
    613613                        if 'line1' in str(self.itemPicked):
     
    738738        if azm and tth:
    739739            self.G2plotNB.status.SetFields(\
    740                 ['Detector 2-th =%9.2fdeg, azm = %7.2fdeg'%(tth,azm),])
     740                ['Detector 2-th =%9.3fdeg, azm = %7.2fdeg'%(tth,azm),])
    741741                   
    742742    def OnPick(event):
     
    809809    Plot.set_xlabel('azimuth',fontsize=12)
    810810    Plot.set_ylabel('2-theta',fontsize=12)
    811     Plot.contour(self.TA[:,:,0],self.TA[:,:,1],self.TA[:,:,2],V,cmap=acolor)
     811    Plot.contour(self.TA[:,:,0],self.TA[:,:,1],image,V,cmap=acolor)
    812812    if Data['showLines']:
    813813        IOtth = Data['IOtth']
     
    826826            x,y = G2cmp.GetTthAzm(xring,yring,Data)
    827827            Plot.plot(y,x,'r+')           
    828     for ellipse in Data['ellipses']:
    829         ring = np.array(G2cmp.makeIdealRing(ellipse[:3])) #skip color
    830         x,y = np.hsplit(ring,2)
    831         tth,azm = G2cmp.GetTthAzm(x,y,Data)
    832         Plot.plot(azm,tth,'b')
     828        for ellipse in Data['ellipses']:
     829            ring = np.array(G2cmp.makeIdealRing(ellipse[:3])) #skip color
     830            x,y = np.hsplit(ring,2)
     831            tth,azm = G2cmp.GetTthAzm(x,y,Data)
     832            Plot.plot(azm,tth,'b,')
    833833    if not newPlot:
    834834        Page.toolbar.push_current()
     
    859859        if azm and tth:
    860860            self.G2plotNB.status.SetFields(\
    861                 ['Detector 2-th =%9.2fdeg, azm = %7.2fdeg'%(tth,azm),])
     861                ['Detector 2-th =%9.3fdeg, azm = %7.2fdeg'%(tth,azm),])
    862862                               
    863863    try:
     
    889889    Plot.set_xlabel('2-theta',fontsize=12)
    890890    Plot.imshow(image,cmap=acolor,vmin=Imin,vmax=Imax,interpolation='nearest', \
    891         extent=[ysc[0],ysc[-1],xsc[0],xsc[-1]],aspect='auto')
     891        extent=[ysc[0],ysc[-1],xsc[-1],xsc[0]],aspect='auto')
    892892    if Data['setRings']:
    893893        rings = np.concatenate((Data['rings']),axis=0)
     
    895895            x,y = G2cmp.GetTthAzm(xring,yring,Data)
    896896            Plot.plot(x,y,'r+')           
    897     for ellipse in Data['ellipses']:
    898         ring = np.array(G2cmp.makeIdealRing(ellipse[:3])) #skip color
    899         x,y = np.hsplit(ring,2)
    900         tth,azm = G2cmp.GetTthAzm(x,y,Data)
    901         Plot.plot(tth,azm,'b')
     897        for ellipse in Data['ellipses']:
     898            ring = np.array(G2cmp.makeIdealRing(ellipse[:3])) #skip color
     899            x,y = np.hsplit(ring,2)
     900            tth,azm = G2cmp.GetTthAzm(x,y,Data)
     901            Plot.plot(tth,azm,'b,')
    902902    if not newPlot:
    903903        Page.toolbar.push_current()
Note: See TracChangeset for help on using the changeset viewer.