- Timestamp:
- Mar 24, 2014 5:22:41 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASII.py ¶
r1257 r1261 1862 1862 self.GSASprojectfile = '' 1863 1863 self.dirname = os.path.expanduser('~') #start in the users home directory by default; may be meaningless 1864 self.exportDir = None # the last directory used for exports, if any. 1864 1865 self.undofile = '' 1865 1866 self.TreeItemDelete = False -
TabularUnified trunk/GSASIIIO.py ¶
r1259 r1261 1840 1840 ###################################################################### 1841 1841 class ExportBaseclass(object): 1842 '''Defines a base class for the exporting of GSAS-II results 1842 '''Defines a base class for the exporting of GSAS-II results. 1843 1844 This class is subclassed in the various exports/G2export_*.py files. Those files 1845 are imported in :meth:`GSASII.GSASII._init_Exports` which defines the 1846 appropriate menu items for each one and the .Exporter method is called 1847 directly from the menu item. 1848 1843 1849 ''' 1844 1850 def __init__(self, … … 1867 1873 self.phasenam = None # a list of selected phases 1868 1874 self.histnam = None # a list of selected histograms 1869 self.filename = None # name of file to be written 1875 self.filename = None # name of file to be written (single export) or template (multiple files) 1876 self.dirname = '' # name of directory where file(s) will be written 1877 self.fullpath = '' # name of file being written -- full path 1870 1878 1871 1879 # items that should be defined in a subclass of this class … … 1876 1884 1877 1885 def InitExport(self,event): 1878 '''Determines the type of menu that called the Exporter. 1886 '''Determines the type of menu that called the Exporter and 1887 misc initialization. 1879 1888 ''' 1889 self.filename = None # name of file to be written (single export) 1890 self.dirname = '' # name of file to be written (multiple export) 1880 1891 if event: 1881 1892 self.currentExportType = self.G2frame.ExportLookup.get(event.Id) … … 1899 1910 return file0 1900 1911 1901 def ExportSelect(self,AskFile=True): 1902 '''Selects histograms or phases when needed. Sets a default file name. 1903 1904 :param bool AskFile: if AskFile is True (default) get the name of the file 1905 in a dialog 1912 def ExportSelect(self,AskFile='ask'): 1913 '''Selects histograms or phases when needed. Sets a default file name when 1914 requested in self.filename; always sets a default directory in self.dirname. 1915 1916 :param bool AskFile: Determines how this routine processes getting a 1917 location to store the current export(s). 1918 * if AskFile is 'ask' (default option), get the name of the file to be written; 1919 self.filename and self.dirname are always set. In the case where 1920 multiple files must be generated, the export routine should do this 1921 based on self.filename as a template. 1922 * if AskFile is 'dir', get the name of the directory to be used; 1923 self.filename is not used, but self.dirname is always set. The export routine 1924 will always generate the file name. 1925 * if AskFile is 'single', get only the name of the directory to be used when 1926 multiple items will be written (as multiple files) are used 1927 *or* a complete file name is requested when a single file 1928 name is selected. self.dirname is always set and self.filename used 1929 only when a single file is selected. 1930 * if AskFile is 'default', creates a name of the file to be used from 1931 the name of the project (.gpx) file. If the project has not been saved, 1932 then the name of file is requested. 1933 self.filename and self.dirname are always set. In the case where 1934 multiple file names must be generated, the export routine should do this 1935 based on self.filename. 1936 * if AskFile is 'default-dir', sets self.dirname from the project (.gpx) 1937 file. If the project has not been saved, then a directory is requested. 1938 self.filename is not used. 1939 1906 1940 :returns: True in case of an error 1907 1941 ''' 1908 1942 1943 numselected = 1 1909 1944 if self.currentExportType == 'phase': 1910 1945 if len(self.Phases) == 0: … … 1921 1956 self.phasenam = [choices[i] for i in phasenum] 1922 1957 if not self.phasenam: return True 1958 numselected = len(self.phasenam) 1923 1959 else: 1924 1960 choices = sorted(self.Phases.keys()) … … 1926 1962 if phasenum is None: return True 1927 1963 self.phasenam = [choices[phasenum]] 1964 numselected = len(self.phasenam) 1928 1965 elif self.currentExportType == 'single': 1929 1966 if len(self.xtalDict) == 0: … … 1939 1976 if not hnum: return True 1940 1977 self.histnam = [choices[i] for i in hnum] 1978 numselected = len(self.histnam) 1941 1979 else: 1942 1980 choices = sorted(self.xtalDict.values()) … … 1944 1982 if hnum is None: return True 1945 1983 self.histnam = [choices[hnum]] 1984 numselected = len(self.histnam) 1946 1985 elif self.currentExportType == 'powder': 1947 1986 if len(self.powderDict) == 0: … … 1957 1996 if not hnum: return True 1958 1997 self.histnam = [choices[i] for i in hnum] 1998 numselected = len(self.histnam) 1959 1999 else: 1960 2000 choices = sorted(self.powderDict.values()) … … 1962 2002 if hnum is None: return True 1963 2003 self.histnam = [choices[hnum]] 2004 numselected = len(self.histnam) 1964 2005 elif self.currentExportType == 'image': 1965 2006 if len(self.Histograms) == 0: … … 1979 2020 if hnum is None: return True 1980 2021 self.histnam = [choices[hnum]] 2022 numselected = len(self.histnam) 1981 2023 if self.currentExportType == 'map': 1982 2024 # search for phases with maps … … 2011 2053 if phasenum is None: return True 2012 2054 self.phasenam = [mapPhases[phasenum]] 2013 2014 if AskFile: 2015 self.filename = self.askSaveFile() 2055 numselected = len(self.phasenam) 2056 2057 # items selected, now set self.dirname and usually self.filename 2058 if AskFile == 'ask' or (AskFile == 'single' and numselected == 1) or ( 2059 AskFile == 'default' and not self.G2frame.GSASprojectfile 2060 ): 2061 filename = self.askSaveFile() 2062 if not filename: return True 2063 self.dirname,self.filename = os.path.split(filename) 2064 elif AskFile == 'dir' or AskFile == 'single' or ( 2065 AskFile == 'default-dir' and not self.G2frame.GSASprojectfile 2066 ): 2067 self.dirname = self.askSaveDirectory() 2068 if not self.dirname: return True 2069 elif AskFile == 'default-dir' or AskFile == 'default': 2070 self.dirname,self.filename = os.path.split( 2071 os.path.splitext(self.G2frame.GSASprojectfile)[0] + self.extension 2072 ) 2016 2073 else: 2017 self.filename = self.defaultSaveFile() 2018 if not self.filename: return True 2074 raise Exception('This should not happen!') 2019 2075 2020 # def SetupExport(self,event,AskFile=True):2021 # '''Determines the type of menu that called the Exporter. Selects histograms2022 # or phases when needed. Better to replace with individual calls to2023 # self.InitExport() and self.ExportSelect() so that the former can be called prior2024 # to self.LoadTree()2025 2026 # :param bool AskFile: if AskFile is True (default) get the name of the file2027 # in a dialog2028 # :returns: True in case of an error2029 # '''2030 # self.ExportInit(event)2031 # return self.ExportSelect(AskFile)2032 2033 2076 def loadParmDict(self): 2034 2077 '''Load the GSAS-II refinable parameters from the tree into a dict (self.parmDict). Update … … 2227 2270 '''Ask the user to supply a file name 2228 2271 2229 :returns: a file name (str) 2272 :returns: a file name (str) or None if Cancel is pressed 2230 2273 ''' 2231 2274 defnam = os.path.splitext( … … 2248 2291 return filename 2249 2292 2293 def askSaveDirectory(self): 2294 '''Ask the user to supply a directory name. Path name is used as the 2295 starting point for the next export path search. 2296 2297 :returns: a directory name (str) or None if Cancel is pressed 2298 ''' 2299 if self.G2frame.exportDir: 2300 startdir = self.G2frame.exportDir 2301 elif self.G2frame.GSASprojectfile: 2302 startdir = os.path.split(self.G2frame.GSASprojectfile)[0] 2303 elif self.G2frame.dirname: 2304 startdir = self.G2frame.dirname 2305 else: 2306 startdir = '' 2307 dlg = wx.DirDialog( 2308 self.G2frame, 'Input directory where file(s) will be written', startdir, 2309 wx.DD_DEFAULT_STYLE) 2310 dlg.CenterOnParent() 2311 try: 2312 if dlg.ShowModal() == wx.ID_OK: 2313 filename = dlg.GetPath() 2314 self.G2frame.exportDir = filename 2315 else: 2316 filename = None 2317 finally: 2318 dlg.Destroy() 2319 return filename 2320 2250 2321 # Tools for file writing. 2251 def OpenFile(self,fil=None ):2322 def OpenFile(self,fil=None,mode='w'): 2252 2323 '''Open the output file 2253 2324 2254 2325 :param str fil: The name of the file to open. If None (default) 2255 the name defaults to self.filename. 2326 the name defaults to self.dirname + self.filename. 2327 If an extension is supplied, it is not overridded, 2328 but if not, the default extension is used. 2256 2329 :returns: the file object opened by the routine which is also 2257 2330 saved as self.fp 2258 2331 ''' 2259 2332 if not fil: 2260 fil = self.filename 2261 self.fp = open(fil,'w') 2333 if not os.path.splitext(self.filename)[1]: 2334 self.filename += self.extension 2335 fil = os.path.join(self.dirname,self.filename) 2336 self.fullpath = fil 2337 self.fp = open(fil,mode) 2262 2338 return self.fp 2339 2263 2340 def Write(self,line): 2264 2341 '''write a line of output, attaching a line-end character -
TabularUnified trunk/exports/G2export_CIF.py ¶
r1130 r1261 74 74 75 75 #***** define functions for export method ======================================= 76 def openCIF(filnam):77 'opens the output file'78 if DEBUG:79 self.fp = sys.stdout80 else:81 self.fp = open(filnam,'w')82 83 def closeCIF():84 'close the output file'85 if not DEBUG:86 self.fp.close()87 88 76 def WriteCIFitem(name,value=''): 89 77 '''Write CIF data items to the file. Formats values as needed. … … 1566 1554 # create a dict with refined values and their uncertainties 1567 1555 self.loadParmDict() 1568 if self.ExportSelect(AskFile=(self.mode=='simple')): # set export parameters 1569 return 1556 if self.mode=='simple': 1557 if self.ExportSelect('ask'): return 1558 else: 1559 if self.ExportSelect('default'): return 1570 1560 # Someday: get restraint & constraint info 1571 1561 #restraintDict = self.OverallParms.get('Restraints',{}) … … 1719 1709 #====================================================================== 1720 1710 print('Writing CIF output to file '+str(self.filename)+"...") 1721 openCIF(self.filename)1711 self.OpenFile() 1722 1712 if self.currentExportType == 'single' or self.currentExportType == 'powder': 1723 1713 #======Data only CIF (powder/xtal) ==================================== … … 1911 1901 1912 1902 WriteCIFitem('#--' + 15*'eof--' + '#') 1913 closeCIF()1903 self.CloseFile() 1914 1904 print("...export completed") 1905 print('file '+str(self.fullpath)) 1915 1906 # end of CIF export 1916 1907 -
TabularUnified trunk/exports/G2export_PDB.py ¶
r1123 r1261 127 127 # create a dict with refined values and their uncertainties 128 128 self.loadParmDict() 129 if self.ExportSelect(AskFile=True): # set export parameters 130 return 129 if self.ExportSelect(): # set export parameters; ask for file name 130 return 131 filename = self.filename 131 132 for phasenam in self.phasenam: 132 133 phasedict = self.Phases[phasenam] # pointer to current phase info 133 134 General = phasedict['General'] 134 135 if General['Type'] != 'macromolecular': 135 print ' not macromolecular phase'136 return136 print 'phase '+str(phasenam)+' not macromolecular, skipping' 137 continue 137 138 i = self.Phases[phasenam]['pId'] 138 139 if len(self.phasenam) > 1: # if more than one filename is included, add a phase # 139 nam,ext = os.path.splitext(self.filename) 140 fil = nam+"_"+str(i)+ext 141 else: 142 fil = self.filename 143 fp = self.OpenFile(fil) 140 self.filename = os.path.splitext(filename)[1] + "_" + str(i) + self.extension 141 fp = self.OpenFile() 144 142 Atoms = phasedict['Atoms'] 145 143 cx,ct,cs,cia = General['AtomPtrs'] … … 199 197 self.Write('END') 200 198 self.CloseFile() 201 print('Phase '+str(phasenam)+' written to file '+str(fil))199 print('Phase '+str(phasenam)+' written to PDB file '+str(self.fullpath)) 202 200 203 201 class ExportPhaseCartXYZ(G2IO.ExportBaseclass): … … 225 223 # create a dict with refined values and their uncertainties 226 224 self.loadParmDict() 227 if self.ExportSelect(AskFile=True): # set export parameters 228 return 225 if self.ExportSelect(): # set export parameters; ask for file name 226 return 227 filename = self.filename 229 228 for phasenam in self.phasenam: 230 229 phasedict = self.Phases[phasenam] # pointer to current phase info 231 230 General = phasedict['General'] 232 231 i = self.Phases[phasenam]['pId'] 233 if len(self.phasenam) > 1: # if more than one filename is included, add a phase #234 nam,ext = os.path.splitext(self.filename)235 fil = nam+"_"+str(i)+ext236 else:237 fil = self.filename238 fp = self.OpenFile(fil)239 232 Atoms = phasedict['Atoms'] 240 233 if not len(Atoms): 241 234 print('**** ERROR - Phase '+str(phasenam)+' has no atoms! ****') 242 return 235 continue 236 if len(self.phasenam) > 1: # if more than one filename is included, add a phase # 237 self.filename = os.path.splitext(filename)[1] + "_" + str(i) + self.extension 238 fp = self.OpenFile() 243 239 cx,ct,cs,cia = General['AtomPtrs'] 244 240 Cell = General['Cell'][1:7] … … 251 247 self.Write(fmt.format(atom[ct],*xyz)) 252 248 self.CloseFile() 253 print('Phase '+str(phasenam)+' written to file '+str(fil))249 print('Phase '+str(phasenam)+' written to XYZ file '+str(self.fullpath)) 254 250 -
TabularUnified trunk/exports/G2export_csv.py ¶
r1236 r1261 61 61 # create a dict with refined values and their uncertainties 62 62 self.loadParmDict() 63 if self.ExportSelect( # set export parameters 64 AskFile=True # prompt the user for a file name 65 ): return 66 self.OpenFile(self.filename) 63 if self.ExportSelect(): return # set export parameters; get file name 64 self.OpenFile() 67 65 # if more than one format is selected, put them into a single file 68 66 for phasenam in self.phasenam: … … 108 106 line += "," 109 107 self.Write(line) 110 print('Phase '+str(phasenam)+' written to file '+str(self.f ilename))108 print('Phase '+str(phasenam)+' written to file '+str(self.fullpath)) 111 109 self.CloseFile() 112 110 … … 135 133 self.loadTree() 136 134 if self.ExportSelect( # set export parameters 137 AskFile= False # use the default file name, which is ignored135 AskFile='single' # get a file name/directory to save in 138 136 ): return 139 137 filenamelist = [] 140 138 for hist in self.histnam: 141 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 142 self.filename = fileroot + self.extension 139 if len(self.histnam) > 1: 140 # multiple files: create a unique name from the histogram 141 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 142 # create an instrument parameter file 143 self.filename = os.path.join(self.dirname,fileroot + self.extension) 143 144 self.OpenFile() 144 145 histblk = self.Histograms[hist] … … 158 159 self.Write(line) 159 160 self.CloseFile() 160 print('Histogram '+str(hist)+' written to file '+str(self.f ilename))161 print('Histogram '+str(hist)+' written to file '+str(self.fullpath)) 161 162 162 163 class ExportPowderReflCSV(G2IO.ExportBaseclass): … … 181 182 # load all of the tree into a set of dicts 182 183 self.loadTree() 183 if self.ExportSelect( # set export parameters 184 AskFile=False # use the default file name 185 ): return 184 if self.ExportSelect(): return # set export parameters, get file name 186 185 self.OpenFile() 187 186 hist = self.histnam[0] # there should only be one histogram, in any case take the 1st … … 201 200 self.Write(fmt.format(h,k,l,pos,Fobs,Fcalc,phase,mult,i)) 202 201 self.CloseFile() 203 print(str(hist)+'reflections written to file '+str(self.f ilename))202 print(str(hist)+'reflections written to file '+str(self.fullpath)) 204 203 205 204 class ExportSingleCSV(G2IO.ExportBaseclass): … … 225 224 # load all of the tree into a set of dicts 226 225 self.loadTree() 227 if self.ExportSelect( # set export parameters 228 AskFile=False # use the default file name 229 ): return 226 if self.ExportSelect(): return # set export parameters, get file name 230 227 self.OpenFile() 231 228 hist = self.histnam[0] # there should only be one histogram, in any case take the 1st … … 238 235 self.Write(fmt.format(h,k,l,dsp,Fobs,sigFobs,Fcalc,phase,mult)) 239 236 self.CloseFile() 240 print(str(hist)+' written to file '+str(self.f ilename))237 print(str(hist)+' written to file '+str(self.fullname)) 241 238 242 239 class ExportStrainCSV(G2IO.ExportBaseclass): … … 262 259 # load all of the tree into a set of dicts 263 260 self.loadTree() 264 if self.ExportSelect( # set export parameters 265 AskFile=True # use the default file name 266 ): return 261 if self.ExportSelect(): return # set export parameters, get file name 267 262 self.OpenFile() 268 263 hist = self.histnam[0] # there should only be one histogram, in any case take the 1st … … 283 278 self.Write(fmt2.format(dat[1],dat[0],dat[2])) 284 279 self.CloseFile() 285 print(str(hist)+' written to file '+str(self.filename)) 286 280 print(str(hist)+' written to file '+str(self.fullpath)) -
TabularUnified trunk/exports/G2export_examples.py ¶
r1236 r1261 57 57 # create a dict with refined values and their uncertainties 58 58 self.loadParmDict() 59 if self.ExportSelect( # set export parameters 60 AskFile=True # prompt the user for a file name 61 ): return 62 self.OpenFile(self.filename) 59 if self.ExportSelect(): return # set export parameters; prompt for file name 60 self.OpenFile() 63 61 # if more than one format is selected, put them into a single file 64 62 for phasenam in self.phasenam: … … 114 112 vals.append(G2mth.ValEsd(val,sig)) 115 113 self.Write(fmt.format(*vals)) 116 print('Phase '+str(phasenam)+' written to file '+str(self.f ilename))114 print('Phase '+str(phasenam)+' written to file '+str(self.fullpath)) 117 115 self.CloseFile() 118 116 … … 140 138 self.loadTree() 141 139 if self.ExportSelect( # set export parameters 142 AskFile=False # use the default file name 143 #AskFile=True 140 AskFile='default' # base name on the GPX file name 144 141 ): return 145 142 self.OpenFile() … … 162 159 self.Write(strg) 163 160 self.CloseFile() 164 print(str(hist)+' written to file '+str(self.f ilename))161 print(str(hist)+' written to file '+str(self.fullpath)) 165 162 166 163 class ExportPowderReflText(G2IO.ExportBaseclass): … … 186 183 self.loadTree() 187 184 if self.ExportSelect( # set export parameters 188 AskFile=False # use the default file name 189 #AskFile=True 185 AskFile='default' # base name on the GPX file name 190 186 ): return 191 187 self.OpenFile() … … 205 201 self.Write(fmt.format(hklfmt.format(h,k,l),pos,Fobs,Fcalc,phase,mult)) 206 202 self.CloseFile() 207 print(str(hist)+'reflections written to file '+str(self.f ilename))203 print(str(hist)+'reflections written to file '+str(self.fullpath)) 208 204 209 205 class ExportSingleText(G2IO.ExportBaseclass): … … 230 226 self.loadTree() 231 227 if self.ExportSelect( # set export parameters 232 AskFile=False # use the default file name 233 #AskFile=True 228 AskFile='default' # base name on the GPX file name 234 229 ): return 235 230 self.OpenFile() … … 247 242 self.Write(fmt.format(hklfmt.format(h,k,l),dsp,Fobs,sigFobs,Fcalc,phase,mult)) 248 243 self.CloseFile() 249 print(str(hist)+' written to file '+str(self.f ilename))250 244 print(str(hist)+' written to file '+str(self.fullpath)) 245 -
TabularUnified trunk/exports/G2export_image.py ¶
r1191 r1261 43 43 # load all of the tree into a set of dicts 44 44 self.loadTree() 45 if self.ExportSelect( False): return45 if self.ExportSelect(): return # select one image; ask for a file name 46 46 # process the selected image(s) (at present only one image) 47 47 for i in sorted(self.histnam): 48 filename = os.path.join( 49 self.dirname, 50 os.path.splitext(self.filename)[0] + self.extension 51 ) 48 52 imgFile = self.Histograms[i].get('Data',(None,None)) 49 53 Comments,Data,Npix,Image = G2IO.GetImageData(self.G2frame,imgFile) 50 scipy.misc.imsave(self.filename,Image) 51 print('Image '+str(imgFile)+' written to file '+str(self.filename)) 54 scipy.misc.imsave(filename,Image) 55 print('Image '+str(imgFile)+' written to file '+str(filename)) 56 -
TabularUnified trunk/exports/G2export_map.py ¶
r1123 r1261 53 53 # load all of the tree into a set of dicts 54 54 self.loadTree() 55 if self.ExportSelect( # set export parameters 56 AskFile=True # prompt the user for a file name 57 ): return 55 if self.ExportSelect(): return # set export parameters, get file name 56 filename = self.filename 58 57 for phasenam in self.phasenam: 59 58 phasedict = self.Phases[phasenam] # pointer to current phase info 60 59 rho = phasedict['General']['Map'].get('rho',[]) 61 60 if not len(rho): 62 return 63 print self.filename 64 self.OpenFile(self.filename) 61 print "There is no map for phase "+str(phasenam) 62 continue 63 if len(self.phasenam) > 1: # if more than one filename is written, add a phase # -- not in use yet 64 i = self.Phases[phasenam]['pId'] 65 self.filename = os.path.splitext(filename)[1] + "_" + mapData['MapType'] + str(i) + self.extension 66 self.OpenFile() 65 67 self.Write("Map of Phase "+str(phasenam)+" from "+str(self.G2frame.GSASprojectfile)) 66 68 # get cell parameters & print them … … 74 76 for k in range(nz): 75 77 self.Write(str(rho[i,j,k])) 76 print('map from Phase '+str(phasenam)+' written to file '+str(self.filename))77 78 self.CloseFile() 78 return79 print('map from Phase '+str(phasenam)+' written to file '+str(self.fullpath)) 79 80 80 81 class ExportMapCCP4(G2IO.ExportBaseclass): … … 94 95 95 96 # Tools for file writing. 96 def OpenFile(self,fil=None):97 '''Open the output file as binary98 99 :param str fil: The name of the file to open. If None (default)100 the name defaults to self.filename.101 :returns: the file object opened by the routine which is also102 saved as self.fp103 '''104 if not fil:105 fil = self.filename106 self.fp = open(fil,'wb')107 return self.fp108 109 97 def Write(self,data,dtype): 110 98 import struct … … 122 110 # load all of the tree into a set of dicts 123 111 self.loadTree() 124 if self.ExportSelect( # set export parameters 125 AskFile=False # I'll make the file name 126 ): return 112 if self.ExportSelect(): return # set export parameters, get file name 113 filename = self.filename 127 114 for phasenam in self.phasenam: 128 115 phasedict = self.Phases[phasenam] # pointer to current phase info … … 131 118 132 119 if not len(rho): 133 return 120 print "There is no map for phase "+str(phasenam) 121 continue 122 if len(self.phasenam) > 1: # if more than one filename is written, add a phase # -- not in use yet 123 i = self.Phases[phasenam]['pId'] 124 self.filename = os.path.splitext(filename)[1] + "_" + mapData['MapType'] + str(i) + self.extension 134 125 cell = phasedict['General']['Cell'][1:7] 135 126 nx,ny,nz = rho.shape 136 filename,ext = os.path.splitext(self.filename) 137 self.filename = filename+'_'+phasenam+'_'+mapData['MapType']+ext 138 self.OpenFile(self.filename) 127 self.OpenFile(mode='wb') 139 128 for n in rho.shape: self.Write(n,'i') #nX,nY,nZ 140 129 self.Write(2,'i') #mode=2 float map … … 156 145 for x in rho.flatten('F'): 157 146 self.Write(x,'f') 158 print('map from Phase '+str(phasenam)+' written to file '+str(self.filename))159 147 self.CloseFile() 160 return148 print('map from Phase '+str(phasenam)+' written to file '+str(self.fullpath)) -
TabularUnified trunk/exports/G2export_pwdr.py ¶
r1236 r1261 38 38 self.multiple = True 39 39 40 def WriteInstFile(self,hist,Inst): 41 '''Write an instrument parameter file 42 ''' 43 prmname = os.path.splitext(self.filename)[0] + '.prm' 44 prmname = os.path.join(self.dirname,prmname) 45 self.OpenFile(prmname) 46 self.Write( ' 123456789012345678901234567890123456789012345678901234567890 ') 47 self.Write( 'INS BANK 1 ') 48 self.Write(('INS HTYPE %sR ')%(Inst['Type'][0])) 49 if 'Lam1' in Inst: #Ka1 & Ka2 50 self.Write(('INS 1 ICONS%10.7f%10.7f 0.0000 0.990 0 0.500 ')%(Inst['Lam1'][0],Inst['Lam2'][0])) 51 elif 'Lam' in Inst: #single wavelength 52 self.Write(('INS 1 ICONS%10.7f%10.7f 0.0000 0.990 0 0.500 ')%(Inst['Lam'][1],0.0)) 53 self.Write( 'INS 1 IRAD 0 ') 54 self.Write( 'INS 1I HEAD ') 55 self.Write( 'INS 1I ITYP 0 0.0000 180.0000 1 ') 56 self.Write(('INS 1DETAZM%10.3f ')%(Inst['Azimuth'][0])) 57 self.Write( 'INS 1PRCF1 3 8 0.00100 ') 58 self.Write(('INS 1PRCF11 %15.6g%15.6g%15.6g%15.6g ')%(Inst['U'][1],Inst['V'][1],Inst['W'][1],0.0)) 59 self.Write(('INS 1PRCF12 %15.6g%15.6g%15.6g%15.6g ')%(Inst['X'][1],Inst['Y'][1],Inst['SH/L'][1]/2.,Inst['SH/L'][1]/2.)) 60 self.CloseFile() 61 print('Parameters from '+str(hist)+' written to file '+str(prmname)) 62 return prmname 63 40 64 def Exporter(self,event=None): 41 65 '''Export one or more sets of powder data as FXYE file(s) … … 46 70 self.loadTree() 47 71 if self.ExportSelect( # set export parameters 48 AskFile= False # use the default file name, which is ignored72 AskFile='single' # get a file name/directory to save in 49 73 ): return 50 74 filenamelist = [] 51 75 for hist in self.histnam: 52 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 53 # create an instrument parameter file 54 self.filename = fileroot + '.prm' 76 if len(self.histnam) > 1: 77 # multiple files: create a unique name from the histogram 78 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 79 # create an instrument parameter file 80 self.filename = os.path.join(self.dirname,fileroot + self.extension) 81 else: 82 # use the supplied name, but force the extension 83 self.filename= os.path.splitext(self.filename)[0] + self.extension 84 85 histblk = self.Histograms[hist] 86 prmname = self.WriteInstFile(hist,histblk['Instrument Parameters'][0]) 87 55 88 self.OpenFile() 56 histblk = self.Histograms[hist]57 Inst = histblk['Instrument Parameters'][0]58 self.Write( ' 123456789012345678901234567890123456789012345678901234567890 ')59 self.Write( 'INS BANK 1 ')60 self.Write(('INS HTYPE %sR ')%(Inst['Type'][0]))61 if 'Lam1' in Inst: #Ka1 & Ka262 self.Write(('INS 1 ICONS%10.7f%10.7f 0.0000 0.990 0 0.500 ')%(Inst['Lam1'][0],Inst['Lam2'][0]))63 elif 'Lam' in Inst: #single wavelength64 self.Write(('INS 1 ICONS%10.7f%10.7f 0.0000 0.990 0 0.500 ')%(Inst['Lam'][1],0.0))65 self.Write( 'INS 1 IRAD 0 ')66 self.Write( 'INS 1I HEAD ')67 self.Write( 'INS 1I ITYP 0 0.0000 180.0000 1 ')68 self.Write(('INS 1DETAZM%10.3f ')%(Inst['Azimuth'][0]))69 self.Write( 'INS 1PRCF1 3 8 0.00100 ')70 self.Write(('INS 1PRCF11 %15.6g%15.6g%15.6g%15.6g ')%(Inst['U'][1],Inst['V'][1],Inst['W'][1],0.0))71 self.Write(('INS 1PRCF12 %15.6g%15.6g%15.6g%15.6g ')%(Inst['X'][1],Inst['Y'][1],Inst['SH/L'][1]/2.,Inst['SH/L'][1]/2.))72 self.CloseFile()73 print('Parameters from '+str(hist)+' written to file '+str(self.filename))74 prmname = self.filename75 76 self.filename = fileroot + self.extension77 self.OpenFile()78 histblk = self.Histograms[hist]79 89 self.Write(hist[5:]) 80 90 self.Write('Instrument parameter file:'+os.path.split(prmname)[1]) … … 95 105 self.Write(line) 96 106 self.CloseFile() 97 print('Histogram '+str(hist)+' written to file '+str(self.f ilename))107 print('Histogram '+str(hist)+' written to file '+str(self.fullpath)) 98 108 99 109 … … 121 131 self.loadTree() 122 132 if self.ExportSelect( # set export parameters 123 AskFile= False # use the default file name, which is ignored133 AskFile='single' # get a file name/directory to save in 124 134 ): return 125 135 filenamelist = [] 126 136 for hist in self.histnam: 127 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 128 129 self.filename = fileroot + self.extension 137 if len(self.histnam) > 1: 138 # multiple files: create a unique name from the histogram 139 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 140 # create an instrument parameter file 141 self.filename = os.path.join(self.dirname,fileroot + self.extension) 142 else: 143 # use the supplied name, but force the extension 144 self.filename= os.path.splitext(self.filename)[0] + self.extension 145 130 146 self.OpenFile() 131 147 histblk = self.Histograms[hist] … … 142 158 self.Write(line) 143 159 self.CloseFile() 144 print('Histogram '+str(hist)+' written to file '+str(self.f ilename))160 print('Histogram '+str(hist)+' written to file '+str(self.fullpath)) -
TabularUnified trunk/exports/G2export_shelx.py ¶
r1123 r1261 49 49 # create a dict with refined values and their uncertainties 50 50 self.loadParmDict() 51 if self.ExportSelect( # set export parameters52 AskFile=True): return51 if self.ExportSelect(): return # set export parameters; 52 filename = self.filename 53 53 for phasenam in self.phasenam: 54 54 phasedict = self.Phases[phasenam] # pointer to current phase info 55 55 i = self.Phases[phasenam]['pId'] 56 56 if len(self.phasenam) > 1: # if more than one filename is included, add a phase # 57 nam,ext = os.path.splitext(self.filename) 58 fil = nam+"_"+str(i)+ext 59 else: 60 fil = self.filename 61 fp = self.OpenFile(fil) 57 self.filename = os.path.splitext(filename)[1] + "_" + str(i) + self.extension 58 fp = self.OpenFile() 62 59 # title line 63 60 self.Write("TITL from "+str(self.G2frame.GSASprojectfile)+", phase "+str(phasenam)) … … 124 121 self.Write('END') 125 122 self.CloseFile() 126 print('Phase '+str(phasenam)+' written to file '+str( fil))123 print('Phase '+str(phasenam)+' written to file '+str(self.fullpath))
Note: See TracChangeset
for help on using the changeset viewer.