Changeset 938
- Timestamp:
- May 31, 2013 6:14:01 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r926 r938 680 680 :param str lastdatafile: Name of last data file that was read. 681 681 682 :returns: a list of two dicts, the first containing instrument parameters 683 and the second used for future TOF datasets (timemaps?) 684 682 685 ''' 683 686 def SetPowderInstParms(Iparm, rd): … … 691 694 DataType = rd.instdict.get('type') 692 695 data = [DataType,] 696 instname = Iparm.get('INS 1INAME ') 697 if instname: 698 rd.Sample['InstrName'] = instname.strip() 693 699 if 'C' in DataType: 694 700 wave1 = None … … 992 998 return # success 993 999 994 def _init_Exports(self, parent):1000 def _init_Exports(self,menu): 995 1001 '''This is a place holder for when exports are handled in a manner similar to imports 996 1002 ''' 997 1003 # submenu = wx.Menu() 998 # item = parent.AppendMenu(1004 # item = menu.AppendMenu( 999 1005 # wx.ID_ANY, 'entire project', 1000 1006 # submenu, help='Export entire project') 1001 # item = submenu.Append( 1002 # wx.ID_ANY, 1003 # help='this is a module for testing', 1004 # kind=wx.ITEM_NORMAL, 1005 # text='to test file') 1006 # self.Bind(wx.EVT_MENU, self.OnExportTest, id=item.GetId()) 1007 # import G2export 1008 # def OnExportTest(self,event): 1009 # import G2export 1010 # reload(G2export) 1011 # G2export.ProjExport(self) 1007 1008 # for now hard-code CIF testing here 1009 item = menu.Append( 1010 wx.ID_ANY, 1011 help='CIF development', 1012 kind=wx.ITEM_NORMAL, 1013 text='full CIF test') 1014 self.Bind(wx.EVT_MENU, self.OnTestCIF, id=item.GetId()) 1015 item = menu.Append( 1016 wx.ID_ANY, 1017 help='CIF development', 1018 kind=wx.ITEM_NORMAL, 1019 text='quick CIF test') 1020 self.Bind(wx.EVT_MENU, self.OnTestCIF, id=item.GetId()) 1021 1022 def OnTestCIF(self,event): 1023 # hard-code CIF testing here 1024 if event.EventObject.GetLabelText(event.Id).split()[0].lower() == "quick": 1025 mode = 'simple' 1026 else: 1027 mode = 'full' 1028 path2GSAS2 = os.path.join( 1029 os.path.dirname(os.path.realpath(__file__)), # location of this file 1030 'exports') 1031 if path2GSAS2 not in sys.path: sys.path.append(path2GSAS2) 1032 #reload(G2IO) 1033 import G2cif 1034 reload(G2cif) 1035 exp = G2cif.ExportCIF(self) 1036 exp.export(mode) 1012 1037 1013 1038 def _Add_ExportMenuItems(self,parent): … … 1081 1106 Export = wx.Menu(title='') 1082 1107 menubar.Append(menu=Export, title='Export') 1108 self._init_Exports(Export) 1083 1109 self._Add_ExportMenuItems(Export) 1084 #self._init_Exports(Export)1085 1110 HelpMenu=G2gd.MyHelp(self,helpType='Data tree', 1086 1111 morehelpitems=[('&Tutorials','Tutorials')]) -
trunk/GSASIIIO.py
r923 r938 946 946 print 'index peak list saved' 947 947 948 def SetNewPhase(Name='New Phase',SGData=G2spc.SpcGroup('P 1')[1],cell=[1.0,1.0,1.0,90.,90,90.,1.]): 949 'Create a new phase' 948 def SetNewPhase(Name='New Phase',SGData=None,cell=None): 949 '''Create a new phase with default values for various parameters 950 951 :param str Name: Name for new Phase 952 953 :param dict SGData: space group data from :func:`GSASIIspc:SpcGroup`; 954 defaults to data for P 1 955 956 :param list cell: unit cell parameter list; defaults to 957 [1.0,1.0,1.0,90.,90,90.,1.] 958 959 ''' 960 if SGData is None: SGData = G2spc.SpcGroup('P 1')[1] 961 if cell is None: cell=[1.0,1.0,1.0,90.,90,90.,1.] 950 962 phaseData = { 951 963 'ranId':ran.randint(0,sys.maxint), … … 1533 1545 1534 1546 ###################################################################### 1547 class ExportBaseclass(object): 1548 '''Defines a base class for the exporting of GSAS-II results 1549 ''' 1550 def __init__(self, 1551 G2frame, 1552 formatName, 1553 longFormatName=None, 1554 ): 1555 self.G2frame = G2frame 1556 self.formatName = formatName # short string naming file type 1557 if longFormatName: # longer string naming file type 1558 self.longFormatName = longFormatName 1559 else: 1560 self.longFormatName = formatName 1561 self.OverallParms = {} 1562 self.GroupedParms = {} 1563 def loadTree(self): 1564 '''Load the contents of the data tree into a pair of dicts. 1565 1566 The childrenless data tree items are overall parameters/controls for the 1567 entire project and are placed in self.OverallParms 1568 1569 The data tree items with children are either Phase items or are 1570 data of some sort. Date entries begin with a key, such as 1571 PWDR, IMG, HKLF,... that identifies the data type. 1572 * Phase items are placed in self.GroupedParms["Phases"][item] 1573 * Data items are placed in self.GroupedParms["Phases"][key][item] 1574 1575 Note that there is no overall phase information, only information 1576 stored for each phase, but there is overall information for each 1577 data item. The overall data information is stored in 1578 self.GroupedParms["Phases"][key][None] 1579 1580 ''' 1581 self.OverallParms = {} 1582 self.GroupedParms = {} 1583 G2frame = self.G2frame 1584 if G2frame.PatternTree.IsEmpty(): return # nothing to do 1585 item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root) 1586 while item: 1587 name = G2frame.PatternTree.GetItemText(item) 1588 item2, cookie2 = G2frame.PatternTree.GetFirstChild(item) 1589 if item2: 1590 key = name.split()[0] 1591 if name == "Phases": 1592 self.GroupedParms[name] = {} 1593 d = self.GroupedParms[name] 1594 else: 1595 if self.GroupedParms.get(key) is None: 1596 self.GroupedParms[key] = {} 1597 self.GroupedParms[key][name] = {} 1598 self.GroupedParms[key][name][None] = G2frame.PatternTree.GetItemPyData(item) 1599 d = self.GroupedParms[key][name] 1600 while item2: 1601 name = G2frame.PatternTree.GetItemText(item2) 1602 d[name] = G2frame.PatternTree.GetItemPyData(item2) 1603 item2, cookie2 = G2frame.PatternTree.GetNextChild(item, cookie2) 1604 else: 1605 self.OverallParms[name] = G2frame.PatternTree.GetItemPyData(item) 1606 item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 1607 1608 def dumpTree(self,mode='type'): 1609 '''Print out information on the data tree dicts loaded in loadTree 1610 ''' 1611 print '\nOverall' 1612 if mode == 'type': 1613 def Show(arg): return type(arg) 1614 else: 1615 def Show(arg): return arg 1616 for key in self.OverallParms: 1617 print ' ',key,Show(self.OverallParms[key]) 1618 print '\nGrouped' 1619 for key in self.GroupedParms: 1620 if key == "Phases": 1621 print ' Phases' 1622 for key1 in self.GroupedParms[key]: 1623 print ' ',key1,Show(self.GroupedParms[key][key1]) 1624 else: 1625 print ' ',key,Show(self.GroupedParms[key]) 1626 for key1 in self.GroupedParms[key]: 1627 print ' ',key1,Show(self.GroupedParms[key][key1][None]) 1628 for key2 in self.GroupedParms[key][key1]: 1629 print ' ',key2,Show(self.GroupedParms[key][key1][key2]) 1630 1631 ###################################################################### 1535 1632 class ImportStructFactor(ImportBaseclass): 1536 1633 '''Defines a base class for the reading of files with tables -
trunk/GSASIIpwdGUI.py
r923 r938 1083 1083 filename = os.path.splitext(filename)[0]+'.samprm' 1084 1084 File = open(filename,'w') 1085 File.write("#GSAS-II sample parameter file ; do not add/delete or change order of items!\n")1085 File.write("#GSAS-II sample parameter file\n") 1086 1086 File.write("'Type':'"+str(data['Type'])+"'\n") 1087 1087 File.write("'Gonio. radius':"+str(data['Gonio. radius'])+"\n") 1088 if data.get('InstrName'): 1089 File.write("'InstrName':'"+str(data['InstrName'])+"'\n") 1088 1090 File.close() 1089 1091 finally: … … 1121 1123 def OnSampleCopy(event): 1122 1124 histName = G2frame.PatternTree.GetItemText(G2frame.PatternId) 1123 histType,copyNames = SetCopyNames(histName,addNames=['Omega','Chi','Phi']) 1125 histType,copyNames = SetCopyNames( 1126 histName, 1127 addNames=['Omega','Chi','Phi','Gonio. radius','InstrName']) 1124 1128 copyDict = {} 1125 1129 for parm in copyNames: … … 1284 1288 else: 1285 1289 Obj.SetValue(parm[2]%(data[parm[0]])) #reset in case of error 1290 1291 def SetNameVal(): 1292 inst = instNameVal.GetValue() 1293 data['InstrName'] = inst.strip() 1294 print data['InstrName'] 1295 def OnNameVal(event): 1296 event.Skip() 1297 wx.CallAfter(SetNameVal) 1286 1298 1287 1299 mainSizer = wx.BoxSizer(wx.VERTICAL) 1288 mainSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Sample parameters: '),0,wx.ALIGN_CENTER_VERTICAL) 1300 topSizer = wx.BoxSizer(wx.HORIZONTAL) 1301 topSizer.Add((-1,-1),1,wx.EXPAND,1) 1302 topSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Sample and Experimental Parameters')) 1303 topSizer.Add((-1,-1),1,wx.EXPAND,1) 1304 mainSizer.Add(topSizer,0,wx.EXPAND,1) 1305 nameSizer = wx.BoxSizer(wx.HORIZONTAL) 1306 nameSizer.Add(wx.StaticText(G2frame.dataDisplay,wx.ID_ANY,'Instrument Name'), 1307 0,wx.ALIGN_CENTER_VERTICAL) 1308 nameSizer.Add((-1,-1),1,wx.EXPAND,1) 1309 instNameVal = wx.TextCtrl(G2frame.dataDisplay,wx.ID_ANY,data.get('InstrName',''), 1310 size=(200,-1),style=wx.TE_PROCESS_ENTER) 1311 nameSizer.Add(instNameVal) 1312 instNameVal.Bind(wx.EVT_CHAR,OnNameVal) 1313 mainSizer.Add(nameSizer,0,wx.EXPAND,1) 1314 mainSizer.Add((0,5),0) 1315 1289 1316 mainSizer.Add((5,5),0) 1290 parmSizer = wx.FlexGridSizer( 9,2,5,0)1317 parmSizer = wx.FlexGridSizer(10,2,5,0) 1291 1318 scaleRef = wx.CheckBox(G2frame.dataDisplay,label=' Histogram scale factor: ') 1292 1319 scaleRef.SetValue(data['Scale'][1])
Note: See TracChangeset
for help on using the changeset viewer.