Changeset 1084 for trunk/GSASII.py


Ignore:
Timestamp:
Oct 4, 2013 4:19:03 PM (8 years ago)
Author:
toby
Message:

installer uses xterm on GNOME shortcut

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r1080 r1084  
    586586            kind=wx.ITEM_NORMAL,text='guess format from file')
    587587        self.Bind(wx.EVT_MENU, self.OnImportPowder, id=item.GetId())
    588            
     588        item = submenu.Append(wx.ID_ANY,
     589            help='Create a powder data set entry that will be simulated',
     590            kind=wx.ITEM_NORMAL,text='Simulate a dataset')
     591        self.Bind(wx.EVT_MENU, self.OnDummyPowder, id=item.GetId())
     592           
    589593    def ReadPowderInstprm(self,instfile):       #fix the write routine for [inst1,inst2] style
    590594        '''Read a GSAS-II (new) instrument parameter file
     
    10111015        return # success
    10121016
     1017    def OnDummyPowder(self,event):
     1018        '''Called in response to an Import/Powder Data/... menu item
     1019        to read a powder diffraction data set.
     1020        dict self.ImportMenuId is used to look up the specific
     1021        reader item associated with the menu item, which will be
     1022        None for the last menu item, which is the "guess" option
     1023        where all appropriate formats will be tried.
     1024
     1025        Also reads an instrument parameter file for each dataset.
     1026        '''
     1027        print 'Start Dummy'
     1028        rd = G2IO.ImportPowderData(
     1029            extensionlist=tuple(),
     1030            strictExtension=False,
     1031            formatName = 'Simulate dataset',
     1032            longFormatName = 'Compute a simulated pattern')
     1033        # rd.powderdata = [
     1034        #     np.array(x), # x-axis values
     1035        #     np.array(y), # powder pattern intensities
     1036        #     np.array(w), # 1/sig(intensity)^2 values (weights)
     1037        #     np.zeros(N), # calc. intensities (zero)
     1038        #     np.zeros(N), # calc. background (zero)
     1039        #     np.zeros(N), # obs-calc profiles
     1040        #     ]
     1041        # rd.powderentry[0] = filename
     1042        # #self.powderentry[1] = pos # bank offset (N/A here)
     1043        # rd.powderentry[2] = 1 # xye file only has one bank
     1044        # rd.idstring = ospath.basename(filename)
     1045        return
     1046        self.CheckNotebook()
     1047        Iparm = None
     1048        lastIparmfile = ''
     1049        lastdatafile = ''
     1050        # get instrument parameters for
     1051        Iparm1,Iparm2 = self.GetPowderIparm(rd, Iparm, lastIparmfile, lastdatafile)
     1052
     1053        for rd in rdlist:
     1054            if rd.repeat_instparm:
     1055                lastIparmfile = rd.instfile
     1056            lastdatafile = rd.powderentry[0]
     1057            print 'Read powder data '+str(rd.idstring)+ \
     1058                ' from file '+str(self.lastimport) + \
     1059                ' with parameters from '+str(rd.instmsg)
     1060            # data are read, now store them in the tree
     1061            Id = self.PatternTree.AppendItem(parent=self.root,
     1062                text='PWDR '+rd.idstring)
     1063            if 'T' in Iparm1['Type'][0]:
     1064                if not rd.clockWd and rd.GSAS:
     1065                    rd.powderdata[0] *= 100.        #put back the CW centideg correction
     1066                cw = np.diff(rd.powderdata[0])
     1067                rd.powderdata[0] = rd.powderdata[0][:-1]+cw/2.
     1068                rd.powderdata[1] = rd.powderdata[1][:-1]/cw
     1069                rd.powderdata[2] = rd.powderdata[2][:-1]*cw**2  #1/var=w at this point
     1070                if 'Itype' in Iparm2:
     1071                    Ibeg = np.searchsorted(rd.powderdata[0],Iparm2['Tminmax'][0])
     1072                    Ifin = np.searchsorted(rd.powderdata[0],Iparm2['Tminmax'][1])
     1073                    rd.powderdata[0] = rd.powderdata[0][Ibeg:Ifin]
     1074                    YI,WYI = G2pwd.calcIncident(Iparm2,rd.powderdata[0])
     1075                    rd.powderdata[1] = rd.powderdata[1][Ibeg:Ifin]/YI
     1076                    var = 1./rd.powderdata[2][Ibeg:Ifin]
     1077                    var += WYI*rd.powderdata[1]**2
     1078                    var /= YI**2
     1079                    rd.powderdata[2] = 1./var
     1080                rd.powderdata[3] = np.zeros_like(rd.powderdata[0])                                       
     1081                rd.powderdata[4] = np.zeros_like(rd.powderdata[0])                                       
     1082                rd.powderdata[5] = np.zeros_like(rd.powderdata[0])                                       
     1083            Tmin = min(rd.powderdata[0])
     1084            Tmax = max(rd.powderdata[0])
     1085            self.PatternTree.SetItemPyData(Id,[{'wtFactor':1.0,'Dummy':True},rd.powderdata])
     1086            self.PatternTree.SetItemPyData(
     1087                self.PatternTree.AppendItem(Id,text='Comments'),
     1088                rd.comments)
     1089            self.PatternTree.SetItemPyData(
     1090                self.PatternTree.AppendItem(Id,text='Limits'),
     1091                [(Tmin,Tmax),[Tmin,Tmax]])
     1092            self.PatternId = G2gd.GetPatternTreeItemId(self,Id,'Limits')
     1093            self.PatternTree.SetItemPyData(
     1094                self.PatternTree.AppendItem(Id,text='Background'),
     1095                [['chebyschev',True,3,1.0,0.0,0.0],
     1096                 {'nDebye':0,'debyeTerms':[],'nPeaks':0,'peaksList':[]}])
     1097            self.PatternTree.SetItemPyData(
     1098                self.PatternTree.AppendItem(Id,text='Instrument Parameters'),
     1099                [Iparm1,Iparm2])
     1100            self.PatternTree.SetItemPyData(
     1101                self.PatternTree.AppendItem(Id,text='Sample Parameters'),
     1102                rd.Sample)
     1103            self.PatternTree.SetItemPyData(
     1104                self.PatternTree.AppendItem(Id,text='Peak List')
     1105                ,[])
     1106            self.PatternTree.SetItemPyData(
     1107                self.PatternTree.AppendItem(Id,text='Index Peak List'),
     1108                [])
     1109            self.PatternTree.SetItemPyData(
     1110                self.PatternTree.AppendItem(Id,text='Unit Cells List'),
     1111                [])
     1112            self.PatternTree.SetItemPyData(
     1113                self.PatternTree.AppendItem(Id,text='Reflection Lists'),
     1114                {})
     1115            self.PatternTree.Expand(Id)
     1116        self.PatternTree.SelectItem(Id)
     1117        return # success
     1118
     1119    def OnDummyPowder(self,event):
     1120        import testit
     1121        reload(testit)
     1122        testit.OnDummyPowder(self,event)
     1123        return
     1124
     1125
    10131126    def _init_Exports(self,menu):
    10141127        '''Find exporter routines and add them into menus
     
    10931206                self.Bind(wx.EVT_MENU, obj.Exporter, id=item.GetId())
    10941207                self.ExportLookup[item.GetId()] = typ # lookup table for submenu item
     1208        #code to debug an Exporter. much is hard-coded below, but code is reloaded before
     1209        # each use allowing faster development
     1210        def DebugExporter(event):
     1211            reload(G2IO)
     1212            import G2export_example
     1213            reload(G2export_example)
     1214            G2export_example.ExportPhaseShelx(self).Exporter(event)           
     1215        item = menu.Append(
     1216            wx.ID_ANY,kind=wx.ITEM_NORMAL,
     1217            help="reload and test ExportPhaseShelx",text="test ExportPhaseShelx")
     1218        self.Bind(wx.EVT_MENU, DebugExporter, id=item.GetId())
     1219        self.ExportLookup[item.GetId()] = 'phase'
    10951220           
    10961221    def _Add_ExportMenuItems(self,parent):
     
    11271252        self.Bind(wx.EVT_MENU, self.OnExportPDF, id=item.GetId())
    11281253
    1129         item = parent.Append(
    1130             help='',id=wx.ID_ANY,
    1131             kind=wx.ITEM_NORMAL,
    1132             text='Export Phase...')
    1133         self.ExportPhase.append(item)
    1134         item.Enable(False)
    1135         self.Bind(wx.EVT_MENU, self.OnExportPhase, id=item.GetId())
    1136 
    1137 #        item = parent.Append(
    1138 #            help='',id=wx.ID_ANY,
    1139 #            kind=wx.ITEM_NORMAL,
    1140 #            text='Export CIF...')
    1141 #        self.ExportCIF.append(item)
    1142 #        item.Enable(False)
    1143 #        self.Bind(wx.EVT_MENU, self.OnExportCIF, id=item.GetId())
    1144                
    11451254    def FillMainMenu(self,menubar):
    11461255        '''Define contents of the main GSAS-II menu for the (main) data tree window
     
    22542363            G2IO.PDFSave(self,exports)
    22552364       
    2256     def OnExportPhase(self,event):
    2257         event.Skip()
    2258        
    2259     def OnExportCIF(self,event):
    2260         event.Skip()
    2261 
    22622365    def OnMakePDFs(self,event):
    22632366        '''Calculates PDFs
Note: See TracChangeset for help on using the changeset viewer.