Ignore:
Timestamp:
Oct 10, 2015 9:59:34 PM (7 years ago)
Author:
toby
Message:

rebuild docs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sphinxdocs/build/html/_modules/G2export_pwdr.html

    r1709 r1998  
    5252<span class="c"># -*- coding: utf-8 -*-</span>
    5353<span class="c">########### SVN repository information ###################</span>
    54 <span class="c"># $Date: 2015-02-28 05:31:31 +0900 (Sat, 28 Feb 2015) $</span>
    55 <span class="c"># $Author: vondreele $</span>
    56 <span class="c"># $Revision: 1675 $</span>
     54<span class="c"># $Date: 2015-10-10 11:58:12 -0500 (Sat, 10 Oct 2015) $</span>
     55<span class="c"># $Author: toby $</span>
     56<span class="c"># $Revision: 1997 $</span>
    5757<span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/exports/G2export_pwdr.py $</span>
    58 <span class="c"># $Id: G2export_pwdr.py 1675 2015-02-27 20:31:31Z vondreele $</span>
     58<span class="c"># $Id: G2export_pwdr.py 1997 2015-10-10 16:58:12Z toby $</span>
    5959<span class="c">########### SVN repository information ###################</span>
    6060<span class="sd">&#39;&#39;&#39;</span>
     
    6868<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
    6969<span class="kn">import</span> <span class="nn">GSASIIpath</span>
    70 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1675 $&quot;</span><span class="p">)</span>
     70<span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1997 $&quot;</span><span class="p">)</span>
    7171<span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span>
    7272<span class="kn">import</span> <span class="nn">GSASIIpy3</span> <span class="kn">as</span> <span class="nn">G2py3</span>
     
    112112        <span class="k">return</span> <span class="n">prmname</span>
    113113</div>
     114<div class="viewcode-block" id="ExportPowderFXYE.Writer"><a class="viewcode-back" href="../exports.html#G2export_pwdr.ExportPowderFXYE.Writer">[docs]</a>    <span class="k">def</span> <span class="nf">Writer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">TreeName</span><span class="p">,</span><span class="n">filename</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">prmname</span><span class="o">=</span><span class="s">&#39;&#39;</span><span class="p">):</span>
     115        <span class="sd">&#39;&#39;&#39;Write a single PWDR entry to a FXYE file</span>
     116<span class="sd">        &#39;&#39;&#39;</span>
     117        <span class="n">histblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Histograms</span><span class="p">[</span><span class="n">TreeName</span><span class="p">]</span>
     118        <span class="bp">self</span><span class="o">.</span><span class="n">OpenFile</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> <span class="c"># ***rethink</span>
     119        <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="n">TreeName</span><span class="p">[</span><span class="mi">5</span><span class="p">:])</span>
     120        <span class="k">if</span> <span class="n">prmname</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;Instrument parameter file:&#39;</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">prmname</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
     121        <span class="n">x</span> <span class="o">=</span> <span class="mi">100</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
     122        <span class="c"># convert weights to sigmas; use largest weight as minimum esd</span>
     123        <span class="n">s</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">2</span><span class="p">])))</span>
     124        <span class="n">s</span><span class="p">[</span><span class="n">s</span><span class="o">==</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
     125        <span class="n">s</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">s</span>
     126        <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;BANK 1 </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> CONS </span><span class="si">%.2f</span><span class="s"> </span><span class="si">%.2f</span><span class="s"> 0 0 FXYE&#39;</span> <span class="o">%</span> <span class="p">(</span>
     127            <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">),</span><span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">),</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">],(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
     128            <span class="p">))</span>
     129<span class="c">#            for X,Y,S in zip(x,histblk[&#39;Data&#39;][1],s):</span>
     130<span class="c">#                self.Write(&quot;{:15.6g} {:15.6g} {:15.6g}&quot;.format(X,Y,S))</span>
     131        <span class="k">for</span> <span class="n">XYS</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">s</span><span class="p">):</span>
     132            <span class="n">line</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
     133            <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">XYS</span><span class="p">:</span>
     134                <span class="n">line</span> <span class="o">+=</span> <span class="n">G2py3</span><span class="o">.</span><span class="n">FormatPadValue</span><span class="p">(</span><span class="n">val</span><span class="p">,(</span><span class="mi">15</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
     135            <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
     136        <span class="bp">self</span><span class="o">.</span><span class="n">CloseFile</span><span class="p">()</span>
     137        </div>
    114138<div class="viewcode-block" id="ExportPowderFXYE.Exporter"><a class="viewcode-back" href="../exports.html#G2export_pwdr.ExportPowderFXYE.Exporter">[docs]</a>    <span class="k">def</span> <span class="nf">Exporter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
    115139        <span class="sd">&#39;&#39;&#39;Export one or more sets of powder data as FXYE file(s)</span>
     140<span class="sd">        &#39;&#39;&#39;</span>
     141        <span class="c"># the export process starts here</span>
     142        <span class="bp">self</span><span class="o">.</span><span class="n">InitExport</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
     143        <span class="bp">self</span><span class="o">.</span><span class="n">loadTree</span><span class="p">()</span> <span class="c"># load all of the tree into a set of dicts</span>
     144        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ExportSelect</span><span class="p">(</span> <span class="c"># set export parameters</span>
     145            <span class="n">AskFile</span><span class="o">=</span><span class="s">&#39;single&#39;</span> <span class="c"># get a file name/directory to save in</span>
     146            <span class="p">):</span> <span class="k">return</span>
     147        <span class="n">filenamelist</span> <span class="o">=</span> <span class="p">[]</span>
     148        <span class="k">for</span> <span class="n">hist</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">histnam</span><span class="p">:</span>
     149            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">histnam</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
     150                <span class="c"># multiple files: create a unique name from the histogram</span>
     151                <span class="n">fileroot</span> <span class="o">=</span> <span class="n">G2obj</span><span class="o">.</span><span class="n">MakeUniqueLabel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MakePWDRfilename</span><span class="p">(</span><span class="n">hist</span><span class="p">),</span><span class="n">filenamelist</span><span class="p">)</span>
     152                <span class="c"># create an instrument parameter file</span>
     153                <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dirname</span><span class="p">,</span><span class="n">fileroot</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span><span class="p">)</span>
     154            <span class="k">else</span><span class="p">:</span>
     155                <span class="c"># use the supplied name, but force the extension</span>
     156                <span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span>
     157
     158            <span class="n">prmname</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">WriteInstFile</span><span class="p">(</span><span class="n">TreeName</span><span class="p">,</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Instrument Parameters&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
     159            <span class="bp">self</span><span class="o">.</span><span class="n">Writer</span><span class="p">(</span><span class="n">hist</span><span class="p">,</span><span class="n">prmname</span><span class="o">=</span><span class="n">prmname</span><span class="p">)</span>
     160            <span class="k">print</span><span class="p">(</span><span class="s">&#39;Histogram &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">hist</span><span class="p">)</span><span class="o">+</span><span class="s">&#39; written to file &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fullpath</span><span class="p">))</span>
     161
     162</div></div>
     163<div class="viewcode-block" id="ExportPowderXYE"><a class="viewcode-back" href="../exports.html#G2export_pwdr.ExportPowderXYE">[docs]</a><span class="k">class</span> <span class="nc">ExportPowderXYE</span><span class="p">(</span><span class="n">G2IO</span><span class="o">.</span><span class="n">ExportBaseclass</span><span class="p">):</span>
     164    <span class="sd">&#39;&#39;&#39;Used to create a Topas XYE file for a powder data set</span>
     165
     166<span class="sd">    :param wx.Frame G2frame: reference to main GSAS-II frame</span>
     167<span class="sd">    &#39;&#39;&#39;</span>
     168    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">G2frame</span><span class="p">):</span>
     169        <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span> <span class="c"># fancy way to say &lt;parentclass&gt;.__init__</span>
     170            <span class="n">G2frame</span><span class="o">=</span><span class="n">G2frame</span><span class="p">,</span>
     171            <span class="n">formatName</span> <span class="o">=</span> <span class="s">&#39;Topas XYE file&#39;</span><span class="p">,</span>
     172            <span class="n">extension</span><span class="o">=</span><span class="s">&#39;.xye&#39;</span><span class="p">,</span>
     173            <span class="n">longFormatName</span> <span class="o">=</span> <span class="s">&#39;Export powder data as Topas XYE (column) file&#39;</span>
     174            <span class="p">)</span>
     175        <span class="bp">self</span><span class="o">.</span><span class="n">exporttype</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;powder&#39;</span><span class="p">]</span>
     176        <span class="bp">self</span><span class="o">.</span><span class="n">multiple</span> <span class="o">=</span> <span class="bp">True</span>
     177       
     178    <span class="k">def</span> <span class="nf">Writer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">TreeName</span><span class="p">,</span><span class="n">filename</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
     179        <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">IPyBreak</span><span class="p">()</span>
     180
     181        <span class="bp">self</span><span class="o">.</span><span class="n">OpenFile</span><span class="p">()</span>
     182        <span class="n">histblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Histograms</span><span class="p">[</span><span class="n">TreeName</span><span class="p">]</span>
     183        <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;/*&#39;</span><span class="p">)</span>    <span class="c">#The ugly c comment delimiter used in topas!</span>
     184        <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;# &#39;</span><span class="o">+</span><span class="n">TreeName</span><span class="p">[</span><span class="mi">5</span><span class="p">:])</span>  <span class="c">#evidently this by itself fails in topas</span>
     185        <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;*/&#39;</span><span class="p">)</span>
     186        <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
     187        <span class="c"># convert weights to sigmas; use largest weight as minimum esd</span>
     188        <span class="n">s</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">2</span><span class="p">])))</span>
     189        <span class="n">s</span><span class="p">[</span><span class="n">s</span><span class="o">==</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
     190        <span class="n">s</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">s</span>
     191        <span class="k">for</span> <span class="n">XYS</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">s</span><span class="p">):</span>
     192            <span class="n">line</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
     193            <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">XYS</span><span class="p">:</span>
     194                <span class="n">line</span> <span class="o">+=</span> <span class="n">G2py3</span><span class="o">.</span><span class="n">FormatPadValue</span><span class="p">(</span><span class="n">val</span><span class="p">,(</span><span class="mi">15</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
     195            <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
     196        <span class="bp">self</span><span class="o">.</span><span class="n">CloseFile</span><span class="p">()</span>
     197
     198<div class="viewcode-block" id="ExportPowderXYE.Exporter"><a class="viewcode-back" href="../exports.html#G2export_pwdr.ExportPowderXYE.Exporter">[docs]</a>    <span class="k">def</span> <span class="nf">Exporter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
     199        <span class="sd">&#39;&#39;&#39;Export one or more sets of powder data as XYE file(s)</span>
    116200<span class="sd">        &#39;&#39;&#39;</span>
    117201        <span class="c"># the export process starts here</span>
     
    132216                <span class="c"># use the supplied name, but force the extension</span>
    133217                <span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span>
    134                
    135             <span class="n">histblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Histograms</span><span class="p">[</span><span class="n">hist</span><span class="p">]</span>
    136             <span class="n">prmname</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">WriteInstFile</span><span class="p">(</span><span class="n">hist</span><span class="p">,</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Instrument Parameters&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
    137            
    138             <span class="bp">self</span><span class="o">.</span><span class="n">OpenFile</span><span class="p">()</span>
    139             <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="n">hist</span><span class="p">[</span><span class="mi">5</span><span class="p">:])</span>
    140             <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;Instrument parameter file:&#39;</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">prmname</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
    141             <span class="n">x</span> <span class="o">=</span> <span class="mi">100</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
    142             <span class="c"># convert weights to sigmas; use largest weight as minimum esd</span>
    143             <span class="n">s</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">2</span><span class="p">])))</span>
    144             <span class="n">s</span><span class="p">[</span><span class="n">s</span><span class="o">==</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
    145             <span class="n">s</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">s</span>
    146             <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;BANK 1 </span><span class="si">%d</span><span class="s"> </span><span class="si">%d</span><span class="s"> CONS </span><span class="si">%.2f</span><span class="s"> </span><span class="si">%.2f</span><span class="s"> 0 0 FXYE&#39;</span> <span class="o">%</span> <span class="p">(</span>
    147                 <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">),</span><span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">),</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">],(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
    148                 <span class="p">))</span>
    149 <span class="c">#            for X,Y,S in zip(x,histblk[&#39;Data&#39;][1],s):</span>
    150 <span class="c">#                self.Write(&quot;{:15.6g} {:15.6g} {:15.6g}&quot;.format(X,Y,S))</span>
    151             <span class="k">for</span> <span class="n">XYS</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">s</span><span class="p">):</span>
    152                 <span class="n">line</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
    153                 <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">XYS</span><span class="p">:</span>
    154                     <span class="n">line</span> <span class="o">+=</span> <span class="n">G2py3</span><span class="o">.</span><span class="n">FormatPadValue</span><span class="p">(</span><span class="n">val</span><span class="p">,(</span><span class="mi">15</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
    155                 <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
    156             <span class="bp">self</span><span class="o">.</span><span class="n">CloseFile</span><span class="p">()</span>
    157             <span class="k">print</span><span class="p">(</span><span class="s">&#39;Histogram &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">hist</span><span class="p">)</span><span class="o">+</span><span class="s">&#39; written to file &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fullpath</span><span class="p">))</span>
    158 
    159 </div></div>
    160 <div class="viewcode-block" id="ExportPowderXYE"><a class="viewcode-back" href="../exports.html#G2export_pwdr.ExportPowderXYE">[docs]</a><span class="k">class</span> <span class="nc">ExportPowderXYE</span><span class="p">(</span><span class="n">G2IO</span><span class="o">.</span><span class="n">ExportBaseclass</span><span class="p">):</span>
    161     <span class="sd">&#39;&#39;&#39;Used to create a Topas XYE file for a powder data set</span>
    162 
    163 <span class="sd">    :param wx.Frame G2frame: reference to main GSAS-II frame</span>
    164 <span class="sd">    &#39;&#39;&#39;</span>
    165     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">G2frame</span><span class="p">):</span>
    166         <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span> <span class="c"># fancy way to say &lt;parentclass&gt;.__init__</span>
    167             <span class="n">G2frame</span><span class="o">=</span><span class="n">G2frame</span><span class="p">,</span>
    168             <span class="n">formatName</span> <span class="o">=</span> <span class="s">&#39;Topas XYE file&#39;</span><span class="p">,</span>
    169             <span class="n">extension</span><span class="o">=</span><span class="s">&#39;.xye&#39;</span><span class="p">,</span>
    170             <span class="n">longFormatName</span> <span class="o">=</span> <span class="s">&#39;Export powder data as Topas XYE (column) file&#39;</span>
    171             <span class="p">)</span>
    172         <span class="bp">self</span><span class="o">.</span><span class="n">exporttype</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;powder&#39;</span><span class="p">]</span>
    173         <span class="bp">self</span><span class="o">.</span><span class="n">multiple</span> <span class="o">=</span> <span class="bp">True</span>
    174 
    175 <div class="viewcode-block" id="ExportPowderXYE.Exporter"><a class="viewcode-back" href="../exports.html#G2export_pwdr.ExportPowderXYE.Exporter">[docs]</a>    <span class="k">def</span> <span class="nf">Exporter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
    176         <span class="sd">&#39;&#39;&#39;Export one or more sets of powder data as XYE file(s)</span>
    177 <span class="sd">        &#39;&#39;&#39;</span>
    178         <span class="c"># the export process starts here</span>
    179         <span class="bp">self</span><span class="o">.</span><span class="n">InitExport</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
    180         <span class="c"># load all of the tree into a set of dicts</span>
    181         <span class="bp">self</span><span class="o">.</span><span class="n">loadTree</span><span class="p">()</span>
    182         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ExportSelect</span><span class="p">(</span> <span class="c"># set export parameters</span>
    183             <span class="n">AskFile</span><span class="o">=</span><span class="s">&#39;single&#39;</span> <span class="c"># get a file name/directory to save in</span>
    184             <span class="p">):</span> <span class="k">return</span>
    185         <span class="n">filenamelist</span> <span class="o">=</span> <span class="p">[]</span>
    186         <span class="k">for</span> <span class="n">hist</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">histnam</span><span class="p">:</span>
    187             <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">histnam</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
    188                 <span class="c"># multiple files: create a unique name from the histogram</span>
    189                 <span class="n">fileroot</span> <span class="o">=</span> <span class="n">G2obj</span><span class="o">.</span><span class="n">MakeUniqueLabel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">MakePWDRfilename</span><span class="p">(</span><span class="n">hist</span><span class="p">),</span><span class="n">filenamelist</span><span class="p">)</span>
    190                 <span class="c"># create an instrument parameter file</span>
    191                 <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dirname</span><span class="p">,</span><span class="n">fileroot</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span><span class="p">)</span>
    192             <span class="k">else</span><span class="p">:</span>
    193                 <span class="c"># use the supplied name, but force the extension</span>
    194                 <span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span>
    195 
    196             <span class="bp">self</span><span class="o">.</span><span class="n">OpenFile</span><span class="p">()</span>
    197             <span class="n">histblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Histograms</span><span class="p">[</span><span class="n">hist</span><span class="p">]</span>
    198             <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;/*&#39;</span><span class="p">)</span>    <span class="c">#The ugly c comment delimiter used in topas!</span>
    199             <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;# &#39;</span><span class="o">+</span><span class="n">hist</span><span class="p">[</span><span class="mi">5</span><span class="p">:])</span>  <span class="c">#evidently this by itself fails in topas</span>
    200             <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&#39;*/&#39;</span><span class="p">)</span>
    201             <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
    202             <span class="c"># convert weights to sigmas; use largest weight as minimum esd</span>
    203             <span class="n">s</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">2</span><span class="p">])))</span>
    204             <span class="n">s</span><span class="p">[</span><span class="n">s</span><span class="o">==</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
    205             <span class="n">s</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">s</span>
    206             <span class="k">for</span> <span class="n">XYS</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">histblk</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">s</span><span class="p">):</span>
    207                 <span class="n">line</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
    208                 <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">XYS</span><span class="p">:</span>
    209                     <span class="n">line</span> <span class="o">+=</span> <span class="n">G2py3</span><span class="o">.</span><span class="n">FormatPadValue</span><span class="p">(</span><span class="n">val</span><span class="p">,(</span><span class="mi">15</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
    210                 <span class="bp">self</span><span class="o">.</span><span class="n">Write</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
    211             <span class="bp">self</span><span class="o">.</span><span class="n">CloseFile</span><span class="p">()</span>
     218
     219            <span class="bp">self</span><span class="o">.</span><span class="n">Writer</span><span class="p">(</span><span class="n">hist</span><span class="p">)</span>
    212220            <span class="k">print</span><span class="p">(</span><span class="s">&#39;Histogram &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">hist</span><span class="p">)</span><span class="o">+</span><span class="s">&#39; written to file &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fullpath</span><span class="p">))</span></div></div>
    213221</pre></div>
Note: See TracChangeset for help on using the changeset viewer.