Changeset 1380
- Timestamp:
- Jun 12, 2014 2:48:16 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r1378 r1380 2129 2129 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Masks'),Masks) 2130 2130 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Stress/Strain'), 2131 {'Type':'True','d-zero':[],'Sample phi':0.0,'Sample z':0.0,' strain':np.zeros((3,3))})2131 {'Type':'True','d-zero':[],'Sample phi':0.0,'Sample z':0.0,'Sample load':0.0}) 2132 2132 self.PatternTree.SetItemPyData(Id,[Npix,imagefile]) 2133 2133 self.PickId = Id -
trunk/GSASIIgrid.py
r1378 r1380 3629 3629 refinement series. 3630 3630 ''' 3631 sampleParmDict = {'Temperature':[],'Pressure':[], 3632 'FreePrm1':[],'FreePrm2':[],'FreePrm3':[],} 3631 if 'IMG' in histNames[0]: 3632 sampleParmDict = {'Sample load':[],} 3633 else: 3634 sampleParmDict = {'Temperature':[],'Pressure':[], 3635 'FreePrm1':[],'FreePrm2':[],'FreePrm3':[],} 3633 3636 Controls = G2frame.PatternTree.GetItemPyData( 3634 3637 GetPatternTreeItemId(G2frame,G2frame.root, 'Controls')) 3635 3638 sampleParm = {} 3636 3639 for name in histNames: 3637 Id = GetPatternTreeItemId(G2frame,G2frame.root,name) 3638 sampleData = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,Id,'Sample Parameters')) 3639 for item in sampleParmDict: 3640 sampleParmDict[item].append(sampleData[item]) 3640 if 'IMG' in name: 3641 for item in sampleParmDict: 3642 sampleParmDict[item].append(data[name]['parmDict'][item]) 3643 else: 3644 Id = GetPatternTreeItemId(G2frame,G2frame.root,name) 3645 sampleData = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,Id,'Sample Parameters')) 3646 for item in sampleParmDict: 3647 sampleParmDict[item].append(sampleData[item]) 3641 3648 for item in sampleParmDict: 3642 3649 frstValue = sampleParmDict[item][0] … … 4286 4293 nRows = len(histNames) 4287 4294 # start with Rwp values 4288 colList += [[data[name]['Rvals']['Rwp'] for name in histNames]] 4289 colSigs += [None] 4290 colLabels += ['Rwp'] 4291 Types += [wg.GRID_VALUE_FLOAT+':10,3',] 4295 if 'IMG ' not in histNames[0][:4]: 4296 colList += [[data[name]['Rvals']['Rwp'] for name in histNames]] 4297 colSigs += [None] 4298 colLabels += ['Rwp'] 4299 Types += [wg.GRID_VALUE_FLOAT+':10,3',] 4292 4300 # add % change in Chi^2 in last cycle 4293 if 'SASD' not in histNames[0]:4301 if histNames[0][:4] not in ['SASD','IMG ']: 4294 4302 colList += [[100.*data[name]['Rvals'].get('DelChi2',-1) for name in histNames]] 4295 4303 colSigs += [None] … … 4457 4465 G2frame.dataFrame.setSizePosLeft([700,350]) 4458 4466 # highlight unconverged shifts 4459 if 'SASD' not in histNames[0]:4467 if histNames[0][:4] not in ['SASD','IMG ']: 4460 4468 for row,name in enumerate(histNames): 4461 4469 deltaChi = G2frame.SeqTable.GetValue(row,deltaChiCol) … … 4622 4630 G2frame.dataFrame.setSizePosLeft(Size) 4623 4631 G2frame.PatternTree.SetItemPyData(item,data) 4624 if kind == 'PWDR': 4625 G2plt.PlotPatterns(G2frame,plotType=kind,newPlot=True) 4626 elif kind == 'SASD': 4632 if kind in ['PWDR','SASD']: 4627 4633 G2plt.PlotPatterns(G2frame,plotType=kind,newPlot=True) 4628 4634 elif kind == 'HKLF': -
trunk/GSASIIimgGUI.py
r1378 r1380 1386 1386 Names.append(name) 1387 1387 if 'IMG' in name: 1388 Data = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'Stress/Strain')) 1388 1389 if id == G2frame.Image: 1389 1390 Source = name 1390 Data = copy.deepcopy(G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'Stress/Strain')))1391 1391 else: 1392 TextList.append([False,name,id ])1392 TextList.append([False,name,id,Data.get('Sample load',0.0)]) 1393 1393 id, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 1394 1394 if len(TextList) == 1: … … 1403 1403 for item in result: item[0] = True 1404 1404 for i,item in enumerate(result): 1405 ifcopy,name,id = item1405 ifcopy,name,id,load = item 1406 1406 if ifcopy: 1407 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'Stress/Strain'),copy.deepcopy(data)) 1407 Data = copy.deepcopy(data) 1408 Data['Sample load'] = load 1409 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'Stress/Strain'),Data) 1408 1410 finally: 1409 1411 dlg.Destroy() … … 1436 1438 File = open(filename,'w') 1437 1439 save = {} 1438 keys = ['Type','Sample phi','Sample z' ]1440 keys = ['Type','Sample phi','Sample z','Sample load'] 1439 1441 keys2 = ['Dset','Dcalc','pixLimit','cutoff','Emat'] 1440 1442 File.write('{\n\t') … … 1464 1466 G2plt.PlotStrain(G2frame,data,newPlot=True) 1465 1467 1466 def On AllFitStrSta(event):1468 def OnFitAllStrSta(event): 1467 1469 TextList = [[False,'All IMG',0]] 1468 1470 Names = [] 1469 1471 if G2frame.PatternTree.GetCount(): 1470 id, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root) 1471 while id: 1472 name = G2frame.PatternTree.GetItemText(id) 1473 Names.append(name) 1474 if 'IMG' in name: 1475 TextList.append([False,name,id]) 1476 id, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 1477 if len(TextList) == 1: 1472 choices = G2gd.GetPatternTreeDataNames(G2frame,['IMG ',]) 1473 if len(choices) == 1: 1478 1474 G2frame.ErrorDialog('Nothing to fit','There must some "IMG" patterns') 1479 1475 return 1480 dlg = G2frame.CopyDialog(G2frame,'Stress/Strain fitting','Select images to fit:',TextList) 1481 try: 1482 if dlg.ShowModal() == wx.ID_OK: 1483 result = dlg.GetData() 1484 if result[0][0]: #the 'All IMG' is True 1485 result = TextList[1:] 1486 for item in result: item[0] = True 1487 for item in result: 1488 ifFit,name,id = item 1489 if ifFit: 1490 Controls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'Image Controls')) 1491 StaCtrls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'Stress/Strain')) 1492 id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, name) 1493 Npix,imagefile = G2frame.PatternTree.GetItemPyData(id) 1494 image = G2IO.GetImageData(G2frame,imagefile,True) 1495 G2img.FitStrSta(image,StaCtrls,Controls) 1496 G2plt.PlotStrain(G2frame,StaCtrls,newPlot=True) 1476 sel = [] 1477 dlg = G2gd.G2MultiChoiceDialog(G2frame,'Stress/Strain fitting','Select images to fit:',choices) 1478 dlg.SetSelections(sel) 1479 names = [] 1480 if dlg.ShowModal() == wx.ID_OK: 1481 for sel in dlg.GetSelections(): 1482 names.append(choices[sel]) 1483 dlg.Destroy() 1484 SeqResult = {'histNames':names,} 1485 dlg = wx.ProgressDialog('Sequential IMG Strain fit','Data set name = '+names[0],len(names), 1486 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_ABORT) 1487 wx.BeginBusyCursor() 1488 try: 1489 for i,name in enumerate(names): 1490 print ' Sequential strain fit for ',name 1491 GoOn = dlg.Update(i,newmsg='Data set name = '+name)[0] 1492 if not GoOn: 1493 break 1494 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,name) 1495 Controls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Image Controls')) 1496 StaCtrls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Stress/Strain')) 1497 id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, name) 1498 Npix,imagefile = G2frame.PatternTree.GetItemPyData(Id) 1499 image = G2IO.GetImageData(G2frame,imagefile,True) 1500 G2img.FitStrSta(image,StaCtrls,Controls) 1501 G2plt.PlotStrain(G2frame,StaCtrls,newPlot=True) 1502 parmDict = {'Sample load':StaCtrls['Sample load'],} 1503 varyNames = ['e11','e12','e22'] 1504 sig = [] 1505 varyList = [] 1506 variables = [] 1507 for i,item in enumerate(StaCtrls['d-zero']): 1508 variables += item['Emat'] 1509 sig += item['Esig'] 1510 varyList += ['%d%s%s'%(i,':',Name) for Name in varyNames] 1511 parmDict['%d:Dcalc'%(i)] = item['Dcalc'] 1512 SeqResult[name] = {'variables':variables,'varyList':varyList,'sig':sig,'Rvals':[], 1513 'covMatrix':[],'title':name,'parmDict':parmDict} 1514 else: 1515 dlg.Destroy() 1516 print ' ***** Sequential strain refinement successful *****' 1497 1517 finally: 1498 dlg.Destroy() 1518 wx.EndBusyCursor() 1519 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential results') 1520 if Id: 1521 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 1522 else: 1523 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential results') 1524 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 1525 G2frame.PatternTree.SelectItem(Id) 1499 1526 print 'All images fitted' 1500 1527 … … 1519 1546 data['Sample z'] = value 1520 1547 samZ.SetValue("%.3f" % (data['Sample z'])) 1548 1549 def OnSamLoad(event): 1550 try: 1551 value = float(samLoad.GetValue()) 1552 except ValueError: 1553 value = data['Sample load'] 1554 data['Sample load'] = value 1555 samLoad.SetValue("%.3f" % (data['Sample load'])) 1521 1556 1522 1557 samSizer = wx.BoxSizer(wx.HORIZONTAL) … … 1540 1575 samZ.Bind(wx.EVT_TEXT_ENTER,OnSamZ) 1541 1576 samZ.Bind(wx.EVT_KILL_FOCUS,OnSamZ) 1577 samSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label=' Sample load(MPa): '),0,WACV) 1578 samLoad = wx.TextCtrl(G2frame.dataDisplay,-1,value=("%.3f" % (data['Sample load'])), 1579 style=wx.TE_PROCESS_ENTER) 1580 samSizer.Add(samLoad,0,WACV) 1581 samLoad.Bind(wx.EVT_TEXT_ENTER,OnSamLoad) 1582 samLoad.Bind(wx.EVT_KILL_FOCUS,OnSamLoad) 1583 1542 1584 return samSizer 1543 1585 … … 1632 1674 return dzeroSizer 1633 1675 1676 # patches 1677 if 'Sample load' not in data: 1678 data['Sample load'] = 0.0 1679 # end patches 1680 1634 1681 if G2frame.dataDisplay: 1635 1682 G2frame.dataDisplay.Destroy() … … 1640 1687 G2frame.dataFrame.Bind(wx.EVT_MENU, OnUpdateDzero, id=G2gd.wxID_UPDATEDZERO) 1641 1688 G2frame.dataFrame.Bind(wx.EVT_MENU, OnFitStrSta, id=G2gd.wxID_STRSTAFIT) 1642 G2frame.dataFrame.Bind(wx.EVT_MENU, On AllFitStrSta, id=G2gd.wxID_STRSTAALLFIT)1689 G2frame.dataFrame.Bind(wx.EVT_MENU, OnFitAllStrSta, id=G2gd.wxID_STRSTAALLFIT) 1643 1690 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyStrSta, id=G2gd.wxID_STRSTACOPY) 1644 1691 G2frame.dataFrame.Bind(wx.EVT_MENU, OnLoadStrSta, id=G2gd.wxID_STRSTALOAD) -
trunk/GSASIIpwdGUI.py
r1378 r1380 2804 2804 CopyForward = True 2805 2805 else: 2806 G2frame.seqReverse = True2806 Reverse = True 2807 2807 dlg.Destroy() 2808 2808 dlg = wx.ProgressDialog('SASD Sequential fit','Data set name = '+names[0],len(names), 2809 2809 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_ABORT) 2810 2810 wx.BeginBusyCursor() 2811 if G2frame.seqReverse:2811 if Reverse: 2812 2812 names.reverse() 2813 2813 try: … … 2826 2826 IInst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Instrument Parameters')) 2827 2827 IfOK,result,varyList,sig,Rvals,covMatrix,parmDict,Msg = G2sasd.ModelFit(IProfile,IProfDict,ILimits,ISample,IModel) 2828 JModel = copy. copy(IModel)2828 JModel = copy.deepcopy(IModel) 2829 2829 if not IfOK: 2830 2830 G2frame.ErrorDialog('Failed sequential refinement for data '+name, … … 2834 2834 dlg.Destroy() 2835 2835 break 2836 else: 2837 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id, 'Models'),copy.deepcopy(IModel)) 2836 2838 2837 2839 G2sasd.ModelFxn(IProfile,IProfDict,ILimits,ISample,IModel)
Note: See TracChangeset
for help on using the changeset viewer.