Changeset 1117


Ignore:
Timestamp:
Oct 21, 2013 1:11:57 PM (8 years ago)
Author:
toby
Message:

update some menu labels; Add new multi-item selector; Add map export; misc export cleanups

Location:
trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r1115 r1117  
    110110    def _Add_FileMenuItems(self, parent):
    111111        item = parent.Append(
    112             help='Open a gsasii project file (*.gpx)', id=wx.ID_ANY,
     112            help='Open a GSAS-II project file (*.gpx)', id=wx.ID_ANY,
    113113            kind=wx.ITEM_NORMAL,text='&Open project...')
    114114        self.Bind(wx.EVT_MENU, self.OnFileOpen, id=item.GetId())
    115115        item = parent.Append(
    116             help='Save project to old file', id=wx.ID_ANY,
     116            help='Save project under current name', id=wx.ID_ANY,
    117117            kind=wx.ITEM_NORMAL,text='&Save project')
    118118        self.Bind(wx.EVT_MENU, self.OnFileSave, id=item.GetId())
    119119        item = parent.Append(
    120             help='Save project to new file', id=wx.ID_ANY,
    121             kind=wx.ITEM_NORMAL,text='Save As...')
     120            help='Save current project to new file', id=wx.ID_ANY,
     121            kind=wx.ITEM_NORMAL,text='Save project as...')
    122122        self.Bind(wx.EVT_MENU, self.OnFileSaveas, id=item.GetId())
    123123        item = parent.Append(
    124             help='Close project, saving is optional', id=wx.ID_ANY,
    125             kind=wx.ITEM_NORMAL,text='&Close project')
     124            help='Create empty new project, saving current is optional', id=wx.ID_ANY,
     125            kind=wx.ITEM_NORMAL,text='&New project')
    126126        self.Bind(wx.EVT_MENU, self.OnFileClose, id=item.GetId())
    127127        item = parent.Append(
    128             help='Exit from gsasii', id=wx.ID_ANY,
     128            help='Exit from GSAS-II', id=wx.ID_ANY,
    129129            kind=wx.ITEM_NORMAL,text='&Exit')
    130130        self.Bind(wx.EVT_MENU, self.OnFileExit, id=item.GetId())
     
    12351235        # each use allowing faster development
    12361236        # def DebugExport(event):
     1237        #     print 'start reload'
    12371238        #     reload(G2IO)
    1238         #     #import dev_export as dev
    1239         #     import G2export_csv as dev
     1239        #     import G2export_ASCIImap as dev
    12401240        #     reload(dev)
    1241         #     #dev.ExportTest(self).Exporter(event)
    1242         #     dev.ExportPowderCSV(self).Exporter(event)
    1243         #     dev.ExportPowderReflCSV(self).Exporter(event)
     1241        #     dev.ExportMapASCII(self).Exporter(event)
    12441242        # item = menu.Append(
    12451243        #     wx.ID_ANY,kind=wx.ITEM_NORMAL,
     
    12471245        # self.Bind(wx.EVT_MENU, DebugExport, id=item.GetId())
    12481246        # #self.ExportLookup[item.GetId()] = 'image'
    1249         # self.ExportLookup[item.GetId()] = 'powder'
    1250            
     1247        # self.ExportLookup[item.GetId()] = 'map'
     1248
    12511249    def _Add_ExportMenuItems(self,parent):
    12521250        item = parent.Append(
     
    22152213    def OnFileClose(self, event):
    22162214        '''Clears the data tree in response to the
    2217         File/Close Project menu button. User is given option to save
     2215        File/New Project menu button. User is given option to save
    22182216        the project.
    22192217        '''
  • trunk/GSASIIIO.py

    r1115 r1117  
    17591759        self.powderDict = {}
    17601760        self.xtalDict = {}
     1761        self.parmDict = {}
     1762        self.sigDict = {}
    17611763        # updated in InitExport:
    17621764        self.currentExportType = None # type of export that has been requested
     
    17921794                    'Project does not contain any phases.')
    17931795                return True
     1796            elif len(self.Phases) == 1:
     1797                self.phasenam = self.Phases.keys()
    17941798            elif self.multiple:
    1795                 if len(self.Phases) == 1:
    1796                     self.phasenam = self.Phases.keys()
    1797                 else:
    1798                     choices = sorted(self.Phases.keys())
    1799                     phasenum = G2gd.ItemSelector(choices,self.G2frame,multiple=True)
    1800                     if phasenum is None: return True
    1801                     self.phasenam = [choices[i] for i in phasenum]
     1799                choices = sorted(self.Phases.keys())
     1800                phasenum = G2gd.ItemSelector(choices,self.G2frame,multiple=True)
     1801                if phasenum is None: return True
     1802                self.phasenam = [choices[i] for i in phasenum]
     1803                if not self.phasenam: return True
    18021804            else:
    1803                 if len(self.Phases) == 1:
    1804                     self.phasenam = self.Phases.keys()
    1805                 else:
    1806                     choices = sorted(self.Phases.keys())
    1807                     phasenum = G2gd.ItemSelector(choices,self.G2frame)
    1808                     if phasenum is None: return True
    1809                     self.phasenam = [choices[phasenum]]
     1805                choices = sorted(self.Phases.keys())
     1806                phasenum = G2gd.ItemSelector(choices,self.G2frame)
     1807                if phasenum is None: return True
     1808                self.phasenam = [choices[phasenum]]
    18101809        elif self.currentExportType == 'single':
    18111810            if len(self.xtalDict) == 0:
     
    18141813                    'Project does not contain any single crystal data.')
    18151814                return True
     1815            elif len(self.xtalDict) == 1:
     1816                self.histnam = self.xtalDict.values()
    18161817            elif self.multiple:
    1817                 if len(self.xtalDict) == 1:
    1818                     self.histnam = self.xtalDict.values()
    1819                 else:
    1820                     choices = sorted(self.xtalDict.values())
    1821                     hnum = G2gd.ItemSelector(choices,self.G2frame,multiple=True)
    1822                     if hnum is None: return True
    1823                     self.histnam = [choices[i] for i in hnum]
     1818                choices = sorted(self.xtalDict.values())
     1819                hnum = G2gd.ItemSelector(choices,self.G2frame,multiple=True)
     1820                if not hnum: return True
     1821                self.histnam = [choices[i] for i in hnum]
    18241822            else:
    1825                 if len(self.xtalDict) == 1:
    1826                     self.histnam = self.xtalDict.values()
    1827                 else:
    1828                     choices = sorted(self.xtalDict.values())
    1829                     hnum = G2gd.ItemSelector(choices,self.G2frame)
    1830                     if hnum is None: return True
    1831                     self.histnam = [choices[hnum]]
     1823                choices = sorted(self.xtalDict.values())
     1824                hnum = G2gd.ItemSelector(choices,self.G2frame)
     1825                if hnum is None: return True
     1826                self.histnam = [choices[hnum]]
    18321827        elif self.currentExportType == 'powder':
    18331828            if len(self.powderDict) == 0:
     
    18361831                    'Project does not contain any powder data.')
    18371832                return True
     1833            elif len(self.powderDict) == 1:
     1834                self.histnam = self.powderDict.values()
    18381835            elif self.multiple:
    1839                 if len(self.powderDict) == 1:
    1840                     self.histnam = self.powderDict.values()
    1841                 else:
    1842                     choices = sorted(self.powderDict.values())
    1843                     hnum = G2gd.ItemSelector(choices,self.G2frame,multiple=True)
    1844                     if hnum is None: return True
    1845                     self.histnam = [choices[i] for i in hnum]
     1836                choices = sorted(self.powderDict.values())
     1837                hnum = G2gd.ItemSelector(choices,self.G2frame,multiple=True)
     1838                if not hnum: return True
     1839                self.histnam = [choices[i] for i in hnum]
    18461840            else:
    1847                 if len(self.powderDict) == 1:
    1848                     self.histnam = self.powderDict.values()
    1849                 else:
    1850                     choices = sorted(self.powderDict.values())
    1851                     hnum = G2gd.ItemSelector(choices,self.G2frame)
    1852                     if hnum is None: return True
    1853                     self.histnam = [choices[hnum]]
     1841                choices = sorted(self.powderDict.values())
     1842                hnum = G2gd.ItemSelector(choices,self.G2frame)
     1843                if hnum is None: return True
     1844                self.histnam = [choices[hnum]]
    18541845        elif self.currentExportType == 'image':
    18551846            if len(self.Histograms) == 0:
     
    18631854                choices = sorted(self.Histograms.keys())
    18641855                hnum = G2gd.ItemSelector(choices,self.G2frame,multiple=self.multiple)
    1865                 if hnum is None: return True
    18661856                if self.multiple:
     1857                    if not hnum: return True
    18671858                    self.histnam = [choices[i] for i in hnum]
    18681859                else:
     1860                    if hnum is None: return True
    18691861                    self.histnam = [choices[hnum]]
     1862        if self.currentExportType == 'map':
     1863            # search for phases with maps
     1864            mapPhases = []
     1865            choices = []
     1866            for phasenam in sorted(self.Phases):
     1867                phasedict = self.Phases[phasenam] # pointer to current phase info           
     1868                print phasedict['General']['Map'].keys()
     1869                if len(phasedict['General']['Map'].get('rho',[])):
     1870                    mapPhases.append(phasenam)
     1871                    if phasedict['General']['Map'].get('Flip'):
     1872                        choices.append('Charge flip map: '+str(phasenam))
     1873                    elif phasedict['General']['Map'].get('MapType'):
     1874                        choices.append(
     1875                            str(phasedict['General']['Map'].get('MapType'))
     1876                            + ' map: ' + str(phasenam))
     1877                    else:
     1878                        choices.append('unknown map: '+str(phasenam))
     1879            # select a map if needed
     1880            if len(mapPhases) == 0:
     1881                self.G2frame.ErrorDialog(
     1882                    'Empty project',
     1883                    'Project does not contain any maps.')
     1884                return True
     1885            elif len(mapPhases) == 1:
     1886                self.phasenam = mapPhases
     1887            else:
     1888                phasenum = G2gd.ItemSelector(choices,self.G2frame,multiple=self.multiple)
     1889                if self.multiple:
     1890                    if not phasenum: return True
     1891                    self.phasenam = [mapPhases[i] for i in phasenum]
     1892                else:
     1893                    if phasenum is None: return True
     1894                    self.phasenam = [mapPhases[phasenum]]
     1895
    18701896        if AskFile:
    18711897            self.filename = self.askSaveFile()
  • trunk/GSASIIgrid.py

    r1115 r1117  
    12891289
    12901290################################################################################
     1291class G2MultiChoiceDialog(wx.Dialog):
     1292    '''A dialog similar to MultiChoiceDialog except that buttons are
     1293    added to set all choices and to toggle all choices.
     1294
     1295    :param wx.Frame ParentFrame: reference to parent frame
     1296    :param str title: heading above list of choices
     1297    :param str header: Title to place on window frame
     1298    :param list ChoiceList: a list of choices where one will be selected
     1299
     1300    :param kw: optional keyword parameters for the wx.Dialog may
     1301      be included such as Size [which defaults to `(320,310)`] and
     1302      Style (which defaults to `wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.CENTRE| wx.OK | wx.CANCEL`);
     1303      note that `wx.OK` and `wx.CANCEL` controls
     1304      the presence of the eponymous buttons in the dialog.
     1305    :returns: the name of the created dialog 
     1306    '''
     1307    def __init__(self,parent, title, header, ChoiceList, **kw):
     1308        # process keyword parameters, notably Style
     1309        options = {'size':(320,310), # default Frame keywords
     1310                   'style':wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.CENTRE| wx.OK | wx.CANCEL,
     1311                   }
     1312        options.update(kw)
     1313        if options['style'] & wx.OK:
     1314            useOK = True
     1315            options['style'] ^= wx.OK
     1316        else:
     1317            useOK = False
     1318        if options['style'] & wx.CANCEL:
     1319            useCANCEL = True
     1320            options['style'] ^= wx.CANCEL
     1321        else:
     1322            useCANCEL = False       
     1323        # create the dialog frame
     1324        wx.Dialog.__init__(self,parent,wx.ID_ANY,header,**options)
     1325        # fill the dialog
     1326        Sizer = wx.BoxSizer(wx.VERTICAL)
     1327        Sizer.Add(wx.StaticText(self,wx.ID_ANY,title),0,wx.ALL,12)
     1328        self.clb = wx.CheckListBox(self, wx.ID_ANY, (30,30), wx.DefaultSize, ChoiceList)
     1329        self.numchoices = len(ChoiceList)
     1330        Sizer.Add(self.clb,1,wx.LEFT|wx.RIGHT|wx.EXPAND,10)
     1331        Sizer.Add((-1,10))
     1332        # set/toggle buttons
     1333        bSizer = wx.BoxSizer(wx.VERTICAL)
     1334        setBut = wx.Button(self,wx.ID_ANY,'Set All')
     1335        setBut.Bind(wx.EVT_BUTTON,self._SetAll)
     1336        bSizer.Add(setBut,0,wx.ALIGN_CENTER)
     1337        bSizer.Add((-1,5))
     1338        togBut = wx.Button(self,wx.ID_ANY,'Toggle All')
     1339        togBut.Bind(wx.EVT_BUTTON,self._ToggleAll)
     1340        bSizer.Add(togBut,0,wx.ALIGN_CENTER)
     1341        Sizer.Add(bSizer,0,wx.LEFT,12)
     1342        # OK/Cancel buttons
     1343        btnsizer = wx.StdDialogButtonSizer()
     1344        if useOK:
     1345            OKbtn = wx.Button(self, wx.ID_OK)
     1346            OKbtn.SetDefault()
     1347            btnsizer.AddButton(OKbtn)
     1348        if useCANCEL:
     1349            btn = wx.Button(self, wx.ID_CANCEL)
     1350            btnsizer.AddButton(btn)
     1351        btnsizer.Realize()
     1352        Sizer.Add((-1,5))
     1353        Sizer.Add(btnsizer,0,wx.ALIGN_RIGHT,50)
     1354        Sizer.Add((-1,20))
     1355        # OK done, let's get outa here
     1356        self.SetSizer(Sizer)
     1357    def GetSelections(self):
     1358        'Returns a list of the indices for the selected choices'
     1359        return [i for i in range(self.numchoices) if self.clb.IsChecked(i)]
     1360    def _SetAll(self,event):
     1361        'Set all choices on'
     1362        self.clb.SetChecked(range(self.numchoices))
     1363    def _ToggleAll(self,event):
     1364        'flip the state of all choices'
     1365        for i in range(self.numchoices):
     1366            self.clb.Check(i,not self.clb.IsChecked(i))
     1367
    12911368def ItemSelector(ChoiceList, ParentFrame=None,
    12921369                 title='Select an item',
     
    13071384        if multiple:
    13081385            if useCancel:
    1309                 dlg = wx.MultiChoiceDialog(
     1386                dlg = G2MultiChoiceDialog(
    13101387                    ParentFrame,title, header, ChoiceList)
    13111388            else:
    1312                 dlg = wx.MultiChoiceDialog(
     1389                dlg = G2MultiChoiceDialog(
    13131390                    ParentFrame,title, header, ChoiceList,
    13141391                    style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.OK|wx.CENTRE)
    1315             # I would like to add a select all and toggle all button
    1316             # to this dialog in some manner, but that is going to
    1317             # require that I recode the entire dialog -- TODO someday
    13181392        else:
    13191393            if useCancel:
  • trunk/exports/G2export_CIF.py

    r1115 r1117  
    489489            WriteCIFitem('\n# ATOMIC COORDINATES AND DISPLACEMENT PARAMETERS')
    490490            WriteCIFitem('loop_ '+
    491                          '\n\t_atom_site_label'+
    492                          '\n\t_atom_site_type_symbol'+
    493                          '\n\t_atom_site_fract_x'+
    494                          '\n\t_atom_site_fract_y'+
    495                          '\n\t_atom_site_fract_z'+
    496                          '\n\t_atom_site_occupancy'+
    497                          '\n\t_atom_site_adp_type'+
    498                          '\n\t_atom_site_U_iso_or_equiv'+
    499                          '\n\t_atom_site_symmetry_multiplicity')
     491                         '\n   _atom_site_label'+
     492                         '\n   _atom_site_type_symbol'+
     493                         '\n   _atom_site_fract_x'+
     494                         '\n   _atom_site_fract_y'+
     495                         '\n   _atom_site_fract_z'+
     496                         '\n   _atom_site_occupancy'+
     497                         '\n   _atom_site_adp_type'+
     498                         '\n   _atom_site_U_iso_or_equiv'+
     499                         '\n   _atom_site_symmetry_multiplicity')
    500500
    501501            varnames = {cx:'Ax',cx+1:'Ay',cx+2:'Az',cx+3:'Afrac',
     
    554554            if naniso == 0: return
    555555            # now loop over aniso atoms
    556             WriteCIFitem('\nloop_' + '\n\t_atom_site_aniso_label' +
    557                          '\n\t_atom_site_aniso_U_11' + '\n\t_atom_site_aniso_U_12' +
    558                          '\n\t_atom_site_aniso_U_13' + '\n\t_atom_site_aniso_U_22' +
    559                          '\n\t_atom_site_aniso_U_23' + '\n\t_atom_site_aniso_U_33')
     556            WriteCIFitem('\nloop_' + '\n   _atom_site_aniso_label' +
     557                         '\n   _atom_site_aniso_U_11' + '\n   _atom_site_aniso_U_12' +
     558                         '\n   _atom_site_aniso_U_13' + '\n   _atom_site_aniso_U_22' +
     559                         '\n   _atom_site_aniso_U_23' + '\n   _atom_site_aniso_U_33')
    560560            for i,at in enumerate(Atoms):
    561561                fval = self.parmDict.get(fpfx+str(i),at[cfrac])
     
    734734            WriteCIFitem('\n# MOLECULAR GEOMETRY')
    735735            WriteCIFitem('loop_' +
    736                          '\n\t_geom_bond_atom_site_label_1' +
    737                          '\n\t_geom_bond_atom_site_label_2' +
    738                          '\n\t_geom_bond_distance' +
    739                          '\n\t_geom_bond_site_symmetry_1' +
    740                          '\n\t_geom_bond_site_symmetry_2' +
    741                          '\n\t_geom_bond_publ_flag')
     736                         '\n   _geom_bond_atom_site_label_1' +
     737                         '\n   _geom_bond_atom_site_label_2' +
     738                         '\n   _geom_bond_distance' +
     739                         '\n   _geom_bond_site_symmetry_1' +
     740                         '\n   _geom_bond_site_symmetry_2' +
     741                         '\n   _geom_bond_publ_flag')
    742742
    743743            for i in sorted(AtomLabels.keys()):
     
    760760            # loop over interatomic angles for this phase
    761761            WriteCIFitem('\nloop_' +
    762                          '\n\t_geom_angle_atom_site_label_1' +
    763                          '\n\t_geom_angle_atom_site_label_2' +
    764                          '\n\t_geom_angle_atom_site_label_3' +
    765                          '\n\t_geom_angle' +
    766                          '\n\t_geom_angle_site_symmetry_1' +
    767                          '\n\t_geom_angle_site_symmetry_2' +
    768                          '\n\t_geom_angle_site_symmetry_3' +
    769                          '\n\t_geom_angle_publ_flag')
     762                         '\n   _geom_angle_atom_site_label_1' +
     763                         '\n   _geom_angle_atom_site_label_2' +
     764                         '\n   _geom_angle_atom_site_label_3' +
     765                         '\n   _geom_angle' +
     766                         '\n   _geom_angle_site_symmetry_1' +
     767                         '\n   _geom_angle_site_symmetry_2' +
     768                         '\n   _geom_angle_site_symmetry_3' +
     769                         '\n   _geom_angle_publ_flag')
    770770
    771771            for i in sorted(AtomLabels.keys()):
     
    797797            phasedict = self.Phases[phasenam] # pointer to current phase info           
    798798            WriteCIFitem('_pd_phase_name', phasenam)
    799             pfx = str(phasedict['pId'])+'::'
    800             A,sigA = G2stIO.cellFill(pfx,phasedict['General']['SGData'],self.parmDict,self.sigDict)
    801             cellSig = G2stIO.getCellEsd(pfx,
    802                                        phasedict['General']['SGData'],A,
    803                                        self.OverallParms['Covariance'])  # returns 7 vals, includes sigVol
    804             cellList = G2lat.A2cell(A) + (G2lat.calc_V(A),)
     799            cellList,cellSig = self.GetCell(phasenam)
    805800            defsigL = 3*[-0.00001] + 3*[-0.001] + [-0.01] # significance to use when no sigma
    806801            names = ['length_a','length_b','length_c',
     
    899894                WriteCIFitem('_diffrn_radiation_type','K\\a~1,2~')
    900895                WriteCIFitem('loop_' +
    901                              '\n\t_diffrn_radiation_wavelength' +
    902                              '\n\t_diffrn_radiation_wavelength_wt' +
    903                              '\n\t_diffrn_radiation_wavelength_id')
     896                             '\n   _diffrn_radiation_wavelength' +
     897                             '\n   _diffrn_radiation_wavelength_wt' +
     898                             '\n   _diffrn_radiation_wavelength_id')
    904899                WriteCIFitem('  ' + PutInCol(G2mth.ValEsd(lam1,slam1),15)+
    905900                             PutInCol('1.0',15) +
     
    919914                    WriteCIFitem('\n# PHASE TABLE')
    920915                    WriteCIFitem('loop_' +
    921                                  '\n\t_pd_phase_id' +
    922                                  '\n\t_pd_phase_block_id' +
    923                                  '\n\t_pd_phase_mass_%')
     916                                 '\n   _pd_phase_id' +
     917                                 '\n   _pd_phase_block_id' +
     918                                 '\n   _pd_phase_mass_%')
    924919                    wtFrSum = 0.
    925920                    for phasenam in phasebyhistDict.get(histlbl):
     
    944939                            )
    945940                    WriteCIFitem('loop_' +
    946                                  '\n\t_gsas_proc_phase_R_F_factor' +
    947                                  '\n\t_gsas_proc_phase_R_Fsqd_factor' +
    948                                  '\n\t_gsas_proc_phase_id' +
    949                                  '\n\t_gsas_proc_phase_block_id')
     941                                 '\n   _gsas_proc_phase_R_F_factor' +
     942                                 '\n   _gsas_proc_phase_R_Fsqd_factor' +
     943                                 '\n   _gsas_proc_phase_id' +
     944                                 '\n   _gsas_proc_phase_block_id')
    950945                    for phasenam in phasebyhistDict.get(histlbl):
    951946                        pfx = str(self.Phases[phasenam]['pId'])+':'+str(hId)+':'
     
    10261021            WriteCIFitem('loop_')
    10271022            if len(histblk['Reflection Lists'].keys()) > 1:
    1028                 WriteCIFitem('\t_pd_refln_phase_id')
    1029             WriteCIFitem('\t' + refprx + 'index_h' +
    1030                          '\n\t' + refprx + 'index_k' +
    1031                          '\n\t' + refprx + 'index_l' +
    1032                          '\n\t' + refprx + 'F_squared_meas' +
    1033                          '\n\t' + refprx + 'F_squared_calc' +
    1034                          '\n\t' + refprx + 'phase_calc' +
    1035                          '\n\t_pd_refln_d_spacing')
     1023                WriteCIFitem('   _pd_refln_phase_id')
     1024            WriteCIFitem('   ' + refprx + 'index_h' +
     1025                         '\n   ' + refprx + 'index_k' +
     1026                         '\n   ' + refprx + 'index_l' +
     1027                         '\n   ' + refprx + 'F_squared_meas' +
     1028                         '\n   ' + refprx + 'F_squared_calc' +
     1029                         '\n   ' + refprx + 'phase_calc' +
     1030                         '\n   _pd_refln_d_spacing')
    10361031            if Imax > 0:
    1037                 WriteCIFitem('\t_gsas_i100_meas')
     1032                WriteCIFitem('   _gsas_i100_meas')
    10381033
    10391034            refcount = 0
     
    11011096                WriteCIFitem('_pd_meas_number_of_points', str(len(histblk['Data'][0])))
    11021097            WriteCIFitem('\nloop_')
    1103             #            WriteCIFitem('\t_pd_proc_d_spacing') # need easy way to get this
     1098            #            WriteCIFitem('   _pd_proc_d_spacing') # need easy way to get this
    11041099            if not fixedstep:
    11051100                if zero:
    1106                     WriteCIFitem('\t_pd_proc_2theta_corrected')
     1101                    WriteCIFitem('   _pd_proc_2theta_corrected')
    11071102                else:
    1108                     WriteCIFitem('\t_pd_meas_2theta_scan')
     1103                    WriteCIFitem('   _pd_meas_2theta_scan')
    11091104            # at least for now, always report weights.
    11101105            #if countsdata:
    1111             #    WriteCIFitem('\t_pd_meas_counts_total')
     1106            #    WriteCIFitem('   _pd_meas_counts_total')
    11121107            #else:
    1113             WriteCIFitem('\t_pd_meas_intensity_total')
    1114             WriteCIFitem('\t_pd_calc_intensity_total')
    1115             WriteCIFitem('\t_pd_proc_intensity_bkg_calc')
    1116             WriteCIFitem('\t_pd_proc_ls_weight')
     1108            WriteCIFitem('   _pd_meas_intensity_total')
     1109            WriteCIFitem('   _pd_calc_intensity_total')
     1110            WriteCIFitem('   _pd_proc_intensity_bkg_calc')
     1111            WriteCIFitem('   _pd_proc_ls_weight')
    11171112            maxY = max(histblk['Data'][1].max(),histblk['Data'][3].max())
    11181113            if maxY < 0: maxY *= -10 # this should never happen, but...
     
    11541149            WriteCIFitem('\n# STRUCTURE FACTOR TABLE')           
    11551150            WriteCIFitem('loop_' +
    1156                          '\n\t' + refprx + 'index_h' +
    1157                          '\n\t' + refprx + 'index_k' +
    1158                          '\n\t' + refprx + 'index_l' +
    1159                          '\n\t' + refprx + 'F_squared_meas' +
    1160                          '\n\t' + refprx + 'F_squared_sigma' +
    1161                          '\n\t' + refprx + 'F_squared_calc' +
    1162                          '\n\t' + refprx + 'phase_calc'
     1151                         '\n   ' + refprx + 'index_h' +
     1152                         '\n   ' + refprx + 'index_k' +
     1153                         '\n   ' + refprx + 'index_l' +
     1154                         '\n   ' + refprx + 'F_squared_meas' +
     1155                         '\n   ' + refprx + 'F_squared_sigma' +
     1156                         '\n   ' + refprx + 'F_squared_calc' +
     1157                         '\n   ' + refprx + 'phase_calc'
    11631158                         )
    11641159
  • trunk/exports/G2export_shelx.py

    r1115 r1117  
    116116                    l += " {:.3f}".format(val)                   
    117117                self.Write(l)
     118            self.Write('END')
    118119            self.CloseFile()
    119120            print('Phase '+str(phasenam)+' written to file '+str(fil))
  • trunk/imports/G2pwd_fxye.py

    r1077 r1117  
    2222            extensionlist=('.fxye','.raw','.gsas','.gsa','.RAW','.GSAS','.GSA'),
    2323            strictExtension=False,
    24             formatName = 'GSAS',
    25             longFormatName = 'GSAS powder data files'
     24            formatName = 'GSAS powder data',
     25            longFormatName = 'GSAS powder data files (.fxye, .raw, .gsas...)'
    2626            )
    2727        self.clockWd = None
Note: See TracChangeset for help on using the changeset viewer.