Ignore:
Timestamp:
Mar 24, 2014 5:22:41 PM (9 years ago)
Author:
toby
Message:

reorg exports to implement directory selection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/exports/G2export_pwdr.py

    r1236 r1261  
    3838        self.multiple = True
    3939
     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
    4064    def Exporter(self,event=None):
    4165        '''Export one or more sets of powder data as FXYE file(s)
     
    4670        self.loadTree()
    4771        if self.ExportSelect( # set export parameters
    48             AskFile=False # use the default file name, which is ignored
     72            AskFile='single' # get a file name/directory to save in
    4973            ): return
    5074        filenamelist = []
    5175        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           
    5588            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 & Ka2
    62                 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 wavelength
    64                 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.filename
    75            
    76             self.filename = fileroot + self.extension
    77             self.OpenFile()
    78             histblk = self.Histograms[hist]
    7989            self.Write(hist[5:])
    8090            self.Write('Instrument parameter file:'+os.path.split(prmname)[1])
     
    95105                self.Write(line)
    96106            self.CloseFile()
    97             print('Histogram '+str(hist)+' written to file '+str(self.filename))
     107            print('Histogram '+str(hist)+' written to file '+str(self.fullpath))
    98108
    99109
     
    121131        self.loadTree()
    122132        if self.ExportSelect( # set export parameters
    123             AskFile=False # use the default file name, which is ignored
     133            AskFile='single' # get a file name/directory to save in
    124134            ): return
    125135        filenamelist = []
    126136        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
    130146            self.OpenFile()
    131147            histblk = self.Histograms[hist]
     
    142158                self.Write(line)
    143159            self.CloseFile()
    144             print('Histogram '+str(hist)+' written to file '+str(self.filename))
     160            print('Histogram '+str(hist)+' written to file '+str(self.fullpath))
Note: See TracChangeset for help on using the changeset viewer.