Changeset 1122
- Timestamp:
- Oct 24, 2013 4:18:38 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIIO.py
r1117 r1122 1866 1866 for phasenam in sorted(self.Phases): 1867 1867 phasedict = self.Phases[phasenam] # pointer to current phase info 1868 print phasedict['General']['Map'].keys()1869 1868 if len(phasedict['General']['Map'].get('rho',[])): 1870 1869 mapPhases.append(phasenam) -
trunk/exports/G2export_map.py
r1121 r1122 13 13 import os.path 14 14 import GSASIIpath 15 import numpy as np 15 16 GSASIIpath.SetVersionNumber("$Revision$") 16 17 import GSASIIIO as G2IO … … 46 47 self.loadTree() 47 48 if self.ExportSelect( # set export parameters 48 AskFile=True # prompt the user for a file name49 AskFile=True # prompt the user for a file name 49 50 ): return 50 51 for phasenam in self.phasenam: … … 53 54 if not len(rho): 54 55 return 56 print self.filename 55 57 self.OpenFile(self.filename) 56 58 self.Write("Map of Phase "+str(phasenam)+" from "+str(self.G2frame.GSASprojectfile)) … … 68 70 self.CloseFile() 69 71 return 72 73 class ExportMapCCP4(G2IO.ExportBaseclass): 74 import os 75 '''Used to create a text file for a phase 76 77 :param wx.Frame G2frame: reference to main GSAS-II frame 78 ''' 79 def __init__(self,G2frame): 80 super(self.__class__,self).__init__( # fancy way to say <parentclass>.__init__ 81 G2frame=G2frame, 82 formatName = 'CCP4 map file', 83 extension='.map', 84 longFormatName = 'Export CCP4 .map file' 85 ) 86 self.exporttype = ['map'] 87 self.multiple = False 88 89 # Tools for file writing. 90 def OpenFile(self,fil=None): 91 '''Open the output file as binary 92 93 :param str fil: The name of the file to open. If None (default) 94 the name defaults to self.filename. 95 :returns: the file object opened by the routine which is also 96 saved as self.fp 97 ''' 98 if not fil: 99 fil = self.filename 100 self.fp = open(fil,'wb') 101 return self.fp 102 103 def Write(self,data,dtype): 104 import struct 105 '''write a block of output 106 107 :param data: the data to be written. 108 ''' 109 self.fp.write(struct.pack(dtype,data)) 110 111 def Exporter(self,event=None): 112 '''Export a map as a text file 113 ''' 114 # the export process starts here 115 self.InitExport(event) 116 # load all of the tree into a set of dicts 117 self.loadTree() 118 if self.ExportSelect( # set export parameters 119 AskFile=False # I'll make the file name 120 ): return 121 for phasenam in self.phasenam: 122 phasedict = self.Phases[phasenam] # pointer to current phase info 123 mapData = phasedict['General']['Map'] 124 rho = mapData.get('rho',[]) 125 126 if not len(rho): 127 return 128 cell = phasedict['General']['Cell'][1:7] 129 nx,ny,nz = rho.shape 130 filename,ext = os.path.splitext(self.filename) 131 self.filename = filename+'_'+phasenam+'_'+mapData['MapType']+ext 132 self.OpenFile(self.filename) 133 for n in rho.shape: self.Write(n,'i') #nX,nY,nZ 134 self.Write(2,'i') #mode=2 float map 135 for i in [0,0,0]: self.Write(i,'i') #1st position on x,y,z 136 for n in rho.shape: self.Write(n,'i') #nX,nY,nZ 137 for c in cell: self.Write(c,'f') 138 for i in [1,2,3]: self.Write(i,'i') #axes order = x,y,z 139 self.Write(np.min(rho),'f') 140 self.Write(np.max(rho),'f') 141 self.Write(np.mean(rho),'f') 142 self.Write(0,'i') 143 for i in range(24,53): 144 self.Write(0,'i') 145 for s in ['M','A','P',' ']: self.Write(s,'s') 146 self.Write(0x44410000,'i') 147 self.Write(np.std(rho),'f') 148 for i in range(56,257): 149 self.Write(0,'i') 150 for x in rho.flatten('F'): 151 self.Write(x,'f') 152 print('map from Phase '+str(phasenam)+' written to file '+str(self.filename)) 153 self.CloseFile() 154 return
Note: See TracChangeset
for help on using the changeset viewer.