Changeset 4548
- Timestamp:
- Aug 19, 2020 8:14:36 AM (3 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIIO.py
r4539 r4548 1155 1155 self.powderDict = {} 1156 1156 self.sasdDict = {} 1157 self.refdDict = {} 1157 1158 self.xtalDict = {} 1158 1159 self.parmDict = {} … … 1314 1315 self.histnam = [choices[hnum]] 1315 1316 numselected = len(self.histnam) 1317 elif self.currentExportType == 'refd': 1318 if len(self.refdDict) == 0: 1319 self.G2frame.ErrorDialog( 1320 'Empty project', 1321 'Project does not contain any reflectivity data.') 1322 return True 1323 elif len(self.refdDict) == 1: 1324 self.histnam = self.refdDict.values() 1325 elif self.multiple: 1326 choices = sorted(self.refdDict.values()) 1327 hnum = G2G.ItemSelector(choices,self.G2frame,multiple=True) 1328 if not hnum: return True 1329 self.histnam = [choices[i] for i in hnum] 1330 numselected = len(self.histnam) 1331 else: 1332 choices = sorted(self.refdDict.values()) 1333 hnum = G2G.ItemSelector(choices,self.G2frame) 1334 if hnum is None: return True 1335 self.histnam = [choices[hnum]] 1336 numselected = len(self.histnam) 1316 1337 elif self.currentExportType == 'image': 1317 1338 if len(self.Histograms) == 0: … … 1489 1510 self.powderDict = {} 1490 1511 self.sasdDict = {} 1512 self.refdDict = {} 1491 1513 self.xtalDict = {} 1492 1514 self.Phases = {} … … 1516 1538 elif self.currentExportType == 'sasd': 1517 1539 histType = 'SASD' 1540 elif self.currentExportType == 'refd': 1541 histType = 'REFD' 1518 1542 1519 1543 if histType: # Loading just one kind of tree entry … … 1550 1574 elif hist.startswith("SASD"): 1551 1575 d = self.sasdDict 1576 elif hist.startswith("REFD"): 1577 d = self.refdDict 1552 1578 else: 1553 1579 return … … 1577 1603 elif hist.startswith("SASD"): 1578 1604 self.sasdDict[i] = hist 1605 elif hist.startswith("REFD"): 1606 self.refdDict[i] = hist 1579 1607 1580 1608 def dumpTree(self,mode='type'): -
trunk/GSASIIdataGUI.py
r4547 r4548 2719 2719 powdermenu = wx.Menu() 2720 2720 item = menu.AppendSubMenu(powdermenu,'Powder data as','Export powder diffraction histogram(s)') 2721 2722 sasdmenu = wx.Menu() 2723 item = menu.AppendSubMenu(sasdmenu,'Small angle data as','Export small angle histogram(s)') 2724 2725 refdmenu = wx.Menu() 2726 item = menu.AppendSubMenu(refdmenu,'Reflectometry data as','Export reflectometry histogram(s)') 2721 2727 2722 2728 singlemenu = wx.Menu() … … 2728 2734 mapmenu = wx.Menu() 2729 2735 item = menu.AppendSubMenu(mapmenu,'Maps as','Export density map(s)') 2730 2731 sasdmenu = wx.Menu()2732 item = menu.AppendSubMenu(sasdmenu,'Small angle data as','Export small angle histogram(s)')2733 2736 2734 2737 # sequential exports are handled differently; N.B. enabled in testSeqRefineMode … … 2762 2765 elif typ == "sasd": 2763 2766 submenu = sasdmenu 2767 elif typ == "refd": 2768 submenu = refdmenu 2764 2769 # elif typ == "pdf": 2765 2770 # submenu = pdfmenu -
trunk/exports/G2export_csv.py
r4522 r4548 465 465 print('Histogram '+hist+' written to file '+self.fullpath) 466 466 467 class ExportREFDCSV(G2IO.ExportBaseclass): 468 '''Used to create a csv file for a reflectometry data set 469 470 :param wx.Frame G2frame: reference to main GSAS-II frame 471 ''' 472 def __init__(self,G2frame): 473 super(self.__class__,self).__init__( # fancy way to say <parentclass>.__init__ 474 G2frame=G2frame, 475 formatName = 'CSV file', 476 extension='.csv', 477 longFormatName = 'Export reflectometry data as comma-separated (csv) file' 478 ) 479 self.exporttype = ['refd'] 480 #self.multiple = False # only allow one histogram to be selected 481 self.multiple = True 482 483 def Writer(self,TreeName,filename=None): 484 self.OpenFile(filename) 485 histblk = self.Histograms[TreeName] 486 # if len(self.Histograms[TreeName]['Models']['Size']['Distribution']): 487 # self.Write('"Size Distribution"') 488 # Distr = np.array(self.Histograms[TreeName]['Models']['Size']['Distribution']) 489 # WriteList(self,("bin_pos","bin_width","bin_value")) 490 # digitList = 2*((13,3),)+((13,4,'g'),) 491 # for bindata in Distr.T: 492 # line = "" 493 # for val,digits in zip(bindata,digitList): 494 # if line: line += ',' 495 # line += G2py3.FormatValue(val,digits) 496 # self.Write(line) 497 self.Write('"Reflectometry data"') 498 Parms = self.Histograms[TreeName]['Instrument Parameters'][0] 499 for parm in Parms: 500 if parm in ['Type','Source',]: 501 line = '"Instparm: %s","%s"'%(parm,Parms[parm][0]) 502 elif parm in ['Lam',]: 503 line = '"Instparm: %s",%10.6f'%(parm,Parms[parm][1]) 504 else: 505 line = '"Instparm: %s",%10.2f'%(parm,Parms[parm][1]) 506 self.Write(line) 507 WriteList(self,("q","y_obs","y_sig","y_calc","y_bkg")) 508 digitList = 5*((13,5,'g'),) 509 for vallist in zip(histblk['Data'][0], 510 histblk['Data'][1], 511 1./np.sqrt(histblk['Data'][2]), 512 histblk['Data'][3], 513 histblk['Data'][4], 514 ): 515 line = "" 516 for val,digits in zip(vallist,digitList): 517 if line: line += ',' 518 line += G2py3.FormatValue(val,digits) 519 self.Write(line) 520 self.CloseFile() 521 522 def Exporter(self,event=None): 523 '''Export a set of reflectometry data as a csv file 524 ''' 525 # the export process starts here 526 self.InitExport(event) 527 # load all of the tree into a set of dicts 528 self.loadTree() 529 if self.ExportSelect( # set export parameters 530 AskFile='single' # get a file name/directory to save in 531 ): return 532 filenamelist = [] 533 for hist in self.histnam: 534 if len(self.histnam) == 1: 535 name = self.filename 536 else: # multiple files: create a unique name from the histogram 537 name = self.MakePWDRfilename(hist) 538 fileroot = os.path.splitext(G2obj.MakeUniqueLabel(name,filenamelist))[0] 539 # create the file 540 self.filename = os.path.join(self.dirname,fileroot + self.extension) 541 self.Writer(hist) 542 print('Histogram '+hist+' written to file '+self.fullpath) 543 467 544 class ExportSingleCSV(G2IO.ExportBaseclass): 468 545 '''Used to create a csv file with single crystal reflection data
Note: See TracChangeset
for help on using the changeset viewer.