Changeset 265 for trunk/GSASII.py


Ignore:
Timestamp:
Apr 19, 2011 3:12:37 PM (11 years ago)
Author:
vondreele
Message:

further progress on implementing pdf calculations
optionally put legends on the pdf plots
attempt implementation of a rotation of the azimuth ranges for multiazimuth integrations -not fully successful

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r264 r265  
    1616import copy
    1717import numpy as np
     18import scipy as sp
    1819import wx
    1920import matplotlib as mpl
     
    3637print "matplotlib: ",mpl.__version__
    3738print "numpy:      ",np.__version__
     39print "scipy:      ",sp.__version__
    3840print "OpenGL:     ",ogl.__version__
    3941
     
    267269        self.qPlot = False
    268270        self.Contour = False
     271        self.Legend = False
    269272        self.SinglePlot = False
    270273        self.plotView = 0
     
    471474                            Data['outChannels'] = 2500
    472475                            Data['outAzimuths'] = 1
     476                            Data['azmthRotate'] = 0.0
    473477                            Data['fullIntegrate'] = False
    474478                            Data['setRings'] = False
     
    12401244
    12411245    def OnMakePDFs(self,event):
    1242         TextList = []
     1246        tth2q = lambda t,w:4.0*math.pi*sind(t/2.0)/w
     1247        TextList = ['All PWDR']
     1248        PDFlist = []
    12431249        Names = []
    12441250        if self.PatternTree.GetCount():
     
    12481254                Names.append(name)
    12491255                if 'PWDR' in name:
    1250                     TextList.append([False,name,id])
     1256                    TextList.append(name)
    12511257                id, cookie = self.PatternTree.GetNextChild(self.root, cookie)
    1252             if not len(TextList):
     1258            if len(TextList) == 1:
    12531259                self.ErrorDialog('Nothing to make PDFs for','There must be at least one "PWDR" pattern')
    12541260                return
    1255             dlg = self.CopyDialog(self,'Make PDF controls','Make PDF controls for:',TextList)
     1261            dlg = wx.MultiChoiceDialog(self,'Make PDF controls','Make PDF controls for:',TextList, wx.CHOICEDLG_STYLE)
    12561262            try:
    12571263                if dlg.ShowModal() == wx.ID_OK:
    1258                     result = dlg.GetData()
    1259                     for i,item in enumerate(result):
    1260                         ifmake,name,id = item
    1261                         if ifmake:
    1262                             PWDRname = name[4:]
    1263                             Id = self.PatternTree.AppendItem(parent=self.root,text='PDF '+PWDRname)
    1264                             Data = {
    1265                                 'Sample':{'Name':name,'Mult':1.0,'Add':0.0},
    1266                                 'Sample Bkg.':{'Name':'','Mult':-1.0,'Add':0.0},
    1267                                 'Container':{'Name':'','Mult':-1.0,'Add':0.0},
    1268                                 'Container Bkg.':{'Name':'','Mult':-1.0,'Add':0.0},'ElList':{},
    1269                                 'Geometry':'Cylinder','Diam':1.0,'Pack':0.50,'Form Vol':10.0}
    1270                             self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='PDF Controls'),Data)
    1271                             self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='S(Q)'+PWDRname),[])       
    1272                             self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='G(R)'+PWDRname),[])       
     1264                    result = dlg.GetSelections()
     1265                    for i in result: PDFlist.append(TextList[i])
     1266                    if 0 in result:
     1267                        PDFlist = [item for item in TextList if item[:4] == 'PWDR']                       
     1268                    for item in PDFlist:
     1269                        PWDRname = item[4:]
     1270                        Id = self.PatternTree.AppendItem(parent=self.root,text='PDF '+PWDRname)
     1271                        Data = {
     1272                            'Sample':{'Name':item,'Mult':1.0,'Add':0.0},
     1273                            'Sample Bkg.':{'Name':'','Mult':-1.0,'Add':0.0},
     1274                            'Container':{'Name':'','Mult':-1.0,'Add':0.0},
     1275                            'Container Bkg.':{'Name':'','Mult':-1.0,'Add':0.0},'ElList':{},
     1276                            'Geometry':'Cylinder','Diam':1.0,'Pack':0.50,'Form Vol':10.0,
     1277                            'DetType':'Image plate','ObliqCoeff':0.2,'Ruland':0.003,'QScaleLim':[0,100],
     1278                            'Lorch':True,}
     1279                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='PDF Controls'),Data)
     1280                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='I(Q)'+PWDRname),[])       
     1281                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='S(Q)'+PWDRname),[])       
     1282                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='F(Q)'+PWDRname),[])       
     1283                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='G(R)'+PWDRname),[])       
    12731284            finally:
    12741285                dlg.Destroy()
Note: See TracChangeset for help on using the changeset viewer.