Changeset 1998 for sphinxdocs/build/html/_modules/G2export_pwdr.html
- Timestamp:
- Oct 10, 2015 9:59:34 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sphinxdocs/build/html/_modules/G2export_pwdr.html
r1709 r1998 52 52 <span class="c"># -*- coding: utf-8 -*-</span> 53 53 <span class="c">########### SVN repository information ###################</span> 54 <span class="c"># $Date: 2015- 02-28 05:31:31 +0900 (Sat, 28 Feb2015) $</span>55 <span class="c"># $Author: vondreele$</span>56 <span class="c"># $Revision: 1 675$</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> 57 57 <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 1 675 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> 59 59 <span class="c">########### SVN repository information ###################</span> 60 60 <span class="sd">'''</span> … … 68 68 <span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span> 69 69 <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">"$Revision: 1 675$"</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">"$Revision: 1997 $"</span><span class="p">)</span> 71 71 <span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span> 72 72 <span class="kn">import</span> <span class="nn">GSASIIpy3</span> <span class="kn">as</span> <span class="nn">G2py3</span> … … 112 112 <span class="k">return</span> <span class="n">prmname</span> 113 113 </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">''</span><span class="p">):</span> 115 <span class="sd">'''Write a single PWDR entry to a FXYE file</span> 116 <span class="sd"> '''</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">'Instrument parameter file:'</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">'Data'</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">'Data'</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">'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'</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['Data'][1],s):</span> 130 <span class="c"># self.Write("{:15.6g} {:15.6g} {:15.6g}".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">'Data'</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">''</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> 114 138 <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> 115 139 <span class="sd">'''Export one or more sets of powder data as FXYE file(s)</span> 140 <span class="sd"> '''</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">'single'</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">></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">'Instrument Parameters'</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">'Histogram '</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">' written to file '</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">'''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"> '''</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 <parentclass>.__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">'Topas XYE file'</span><span class="p">,</span> 172 <span class="n">extension</span><span class="o">=</span><span class="s">'.xye'</span><span class="p">,</span> 173 <span class="n">longFormatName</span> <span class="o">=</span> <span class="s">'Export powder data as Topas XYE (column) file'</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">'powder'</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">'/*'</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">'# '</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">'*/'</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">'Data'</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">'Data'</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">'Data'</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">''</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">'''Export one or more sets of powder data as XYE file(s)</span> 116 200 <span class="sd"> '''</span> 117 201 <span class="c"># the export process starts here</span> … … 132 216 <span class="c"># use the supplied name, but force the extension</span> 133 217 <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">'Instrument Parameters'</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">'Instrument parameter file:'</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">'Data'</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">'Data'</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">'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'</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['Data'][1],s):</span> 150 <span class="c"># self.Write("{:15.6g} {:15.6g} {:15.6g}".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">'Data'</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">''</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">'Histogram '</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">' written to file '</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">'''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"> '''</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 <parentclass>.__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">'Topas XYE file'</span><span class="p">,</span> 169 <span class="n">extension</span><span class="o">=</span><span class="s">'.xye'</span><span class="p">,</span> 170 <span class="n">longFormatName</span> <span class="o">=</span> <span class="s">'Export powder data as Topas XYE (column) file'</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">'powder'</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">'''Export one or more sets of powder data as XYE file(s)</span> 177 <span class="sd"> '''</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">'single'</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">></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">'/*'</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">'# '</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">'*/'</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">'Data'</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">'Data'</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">'Data'</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">''</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> 212 220 <span class="k">print</span><span class="p">(</span><span class="s">'Histogram '</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">' written to file '</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> 213 221 </pre></div>
Note: See TracChangeset
for help on using the changeset viewer.