source: sphinxdocs/build/html/_modules/G2pwd_fxye.html @ 1998

Last change on this file since 1998 was 1998, checked in by toby, 7 years ago

rebuild docs

  • Property svn:mime-type set to text/html
File size: 88.1 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>G2pwd_fxye &mdash; GSAS-II 0.2.0 documentation</title>
10   
11    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../',
17        VERSION:     '0.2.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../_static/jquery.js"></script>
24    <script type="text/javascript" src="../_static/underscore.js"></script>
25    <script type="text/javascript" src="../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="GSAS-II 0.2.0 documentation" href="../index.html" />
28    <link rel="up" title="Module code" href="index.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../index.html">GSAS-II 0.2.0 documentation</a> &raquo;</li>
41          <li><a href="index.html" accesskey="U">Module code</a> &raquo;</li> 
42      </ul>
43    </div> 
44
45    <div class="document">
46      <div class="documentwrapper">
47        <div class="bodywrapper">
48          <div class="body">
49           
50  <h1>Source code for G2pwd_fxye</h1><div class="highlight"><pre>
51<span class="c"># -*- coding: utf-8 -*-</span>
52<span class="c">########### SVN repository information ###################</span>
53<span class="c"># $Date: 2015-06-04 13:49:58 -0500 (Thu, 04 Jun 2015) $</span>
54<span class="c"># $Author: vondreele $</span>
55<span class="c"># $Revision: 1878 $</span>
56<span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/imports/G2pwd_fxye.py $</span>
57<span class="c"># $Id: G2pwd_fxye.py 1878 2015-06-04 18:49:58Z vondreele $</span>
58<span class="c">########### SVN repository information ###################</span>
59<span class="sd">&#39;&#39;&#39;</span>
60<span class="sd">*Module G2pwd_fxye: GSAS data files*</span>
61<span class="sd">------------------------------------</span>
62<span class="sd">Routine to read in powder data in a variety of formats</span>
63<span class="sd">that are defined for GSAS.</span>
64
65<span class="sd">&#39;&#39;&#39;</span>
66<span class="kn">import</span> <span class="nn">sys</span>
67<span class="kn">import</span> <span class="nn">os.path</span> <span class="kn">as</span> <span class="nn">ospath</span>
68<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
69<span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span>
70<span class="kn">import</span> <span class="nn">GSASIIpath</span>
71<span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1878 $&quot;</span><span class="p">)</span>
72
73<div class="viewcode-block" id="GSAS_ReaderClass"><a class="viewcode-back" href="../imports.html#G2pwd_fxye.GSAS_ReaderClass">[docs]</a><span class="k">class</span> <span class="nc">GSAS_ReaderClass</span><span class="p">(</span><span class="n">G2IO</span><span class="o">.</span><span class="n">ImportPowderData</span><span class="p">):</span>
74    <span class="s">&#39;Routines to import powder data from a GSAS files&#39;</span>
75    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
76        <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 self-reference</span>
77            <span class="n">extensionlist</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;.fxye&#39;</span><span class="p">,</span><span class="s">&#39;.raw&#39;</span><span class="p">,</span><span class="s">&#39;.gsas&#39;</span><span class="p">,</span><span class="s">&#39;.gda&#39;</span><span class="p">,</span><span class="s">&#39;gsa.&#39;</span><span class="p">,</span><span class="s">&#39;.RAW&#39;</span><span class="p">,</span><span class="s">&#39;.GSAS&#39;</span><span class="p">,</span><span class="s">&#39;.GDA&#39;</span><span class="p">,</span><span class="s">&#39;.GSA&#39;</span><span class="p">),</span>
78            <span class="n">strictExtension</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
79            <span class="n">formatName</span> <span class="o">=</span> <span class="s">&#39;GSAS powder data&#39;</span><span class="p">,</span>
80            <span class="n">longFormatName</span> <span class="o">=</span> <span class="s">&#39;GSAS powder data files (.fxye, .raw, .gsas...)&#39;</span>
81            <span class="p">)</span>
82        <span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span> <span class="o">=</span> <span class="p">{}</span>
83        <span class="bp">self</span><span class="o">.</span><span class="n">TimeMap</span> <span class="o">=</span> <span class="p">{}</span>
84
85    <span class="c"># Validate the contents -- look for a bank line</span>
86<div class="viewcode-block" id="GSAS_ReaderClass.ContentsValidator"><a class="viewcode-back" href="../imports.html#G2pwd_fxye.GSAS_ReaderClass.ContentsValidator">[docs]</a>    <span class="k">def</span> <span class="nf">ContentsValidator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepointer</span><span class="p">):</span>
87        <span class="s">&#39;Validate by checking to see if the file has BANK lines&#39;</span>
88        <span class="c">#print &#39;ContentsValidator: &#39;+self.formatName</span>
89        <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">filepointer</span><span class="p">):</span>
90            <span class="bp">self</span><span class="o">.</span><span class="n">GSAS</span> <span class="o">=</span> <span class="bp">True</span>
91            <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span> <span class="c"># first line is always a comment</span>
92                <span class="k">continue</span>
93            <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="mi">1</span> <span class="ow">and</span> <span class="n">line</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;inst&#39;</span><span class="p">:</span>
94                <span class="c"># 2nd line is optional instrument parameter file</span>
95                <span class="k">continue</span>
96            <span class="k">if</span> <span class="n">line</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;#&#39;</span><span class="p">:</span> <span class="k">continue</span>
97            <span class="k">if</span> <span class="n">line</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;BANK&#39;</span><span class="p">:</span>
98                <span class="k">return</span> <span class="bp">True</span>
99            <span class="k">elif</span> <span class="n">line</span><span class="p">[:</span><span class="mi">7</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;Monitor&#39;</span><span class="p">:</span> <span class="k">continue</span>
100            <span class="k">elif</span> <span class="n">line</span> <span class="p">[:</span><span class="mi">8</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;TIME_MAP&#39;</span><span class="p">:</span>          <span class="c">#LANSCE TOF data</span>
101                <span class="k">return</span> <span class="bp">True</span>
102            <span class="k">else</span><span class="p">:</span>
103                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Unexpected information in line: &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
104                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">+=</span> <span class="s">&#39;  &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
105                <span class="k">return</span> <span class="bp">False</span>
106        <span class="k">return</span> <span class="bp">False</span> <span class="c"># no bank records</span>
107</div>
108<div class="viewcode-block" id="GSAS_ReaderClass.Reader"><a class="viewcode-back" href="../imports.html#G2pwd_fxye.GSAS_ReaderClass.Reader">[docs]</a>    <span class="k">def</span> <span class="nf">Reader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">filename</span><span class="p">,</span><span class="n">filepointer</span><span class="p">,</span> <span class="n">ParentFrame</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwarg</span><span class="p">):</span>
109        <span class="sd">&#39;&#39;&#39;Read a GSAS (old formats) file of type FXY, FXYE, ESD or STD types.</span>
110<span class="sd">        If multiple datasets are requested, use self.repeat and buffer caching.</span>
111<span class="sd">        &#39;&#39;&#39;</span>
112        <span class="k">def</span> <span class="nf">GetFXYEdata</span><span class="p">(</span><span class="n">File</span><span class="p">,</span><span class="n">Pos</span><span class="p">,</span><span class="n">Bank</span><span class="p">):</span>
113            <span class="n">File</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">Pos</span><span class="p">)</span>
114            <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
115            <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
116            <span class="n">w</span> <span class="o">=</span> <span class="p">[]</span>
117            <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
118            <span class="k">while</span> <span class="n">S</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;BANK&#39;</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;#&#39;</span><span class="p">:</span>
119                <span class="n">vals</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
120                <span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">vals</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">/</span><span class="mf">100.</span><span class="p">)</span>               <span class="c">#CW: from centidegrees to degrees</span>
121                <span class="n">f</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">vals</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
122                <span class="n">s</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">vals</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
123                <span class="k">if</span> <span class="n">f</span> <span class="o">&lt;=</span> <span class="mf">0.0</span> <span class="ow">or</span> <span class="n">s</span> <span class="o">&lt;=</span> <span class="mf">0.0</span><span class="p">:</span>
124                    <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
125                    <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
126                <span class="k">else</span><span class="p">:</span>
127                    <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">vals</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
128                    <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">1.0</span><span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="n">vals</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
129                <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
130            <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
131            <span class="k">return</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">x</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">y</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">w</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">)]</span>   
132           
133        <span class="k">def</span> <span class="nf">GetFXYdata</span><span class="p">(</span><span class="n">File</span><span class="p">,</span><span class="n">Pos</span><span class="p">,</span><span class="n">Bank</span><span class="p">):</span>
134            <span class="n">File</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">Pos</span><span class="p">)</span>
135            <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
136            <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
137            <span class="n">w</span> <span class="o">=</span> <span class="p">[]</span>
138            <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
139            <span class="k">while</span> <span class="n">S</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;BANK&#39;</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;#&#39;</span><span class="p">:</span>
140                <span class="n">vals</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
141                <span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">vals</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">/</span><span class="mf">100.</span><span class="p">)</span>               <span class="c">#CW: from centidegrees to degrees</span>
142                <span class="n">f</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">vals</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
143                <span class="k">if</span> <span class="n">f</span> <span class="o">&gt;</span> <span class="mf">0.0</span><span class="p">:</span>
144                    <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
145                    <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">1.0</span><span class="o">/</span><span class="n">f</span><span class="p">)</span>
146                <span class="k">else</span><span class="p">:</span>             
147                    <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
148                    <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
149                <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
150            <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
151            <span class="k">return</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">x</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">y</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">w</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">)]</span>
152           
153        <span class="k">def</span> <span class="nf">GetESDdata</span><span class="p">(</span><span class="n">File</span><span class="p">,</span><span class="n">Pos</span><span class="p">,</span><span class="n">Bank</span><span class="p">):</span>
154            <span class="n">File</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">Pos</span><span class="p">)</span>
155            <span class="n">cons</span> <span class="o">=</span> <span class="n">Bank</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
156            <span class="k">if</span> <span class="s">&#39;TIME_MAP&#39;</span> <span class="o">==</span> <span class="n">cons</span><span class="p">[</span><span class="mi">4</span><span class="p">]:</span>
157                <span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
158                <span class="n">step</span> <span class="o">=</span> <span class="mi">1</span>
159            <span class="k">else</span><span class="p">:</span>
160                <span class="n">start</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span><span class="o">/</span><span class="mf">100.0</span>               <span class="c">#CW: from centidegrees to degrees</span>
161                <span class="n">step</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">6</span><span class="p">])</span><span class="o">/</span><span class="mf">100.0</span>
162            <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
163            <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
164            <span class="n">w</span> <span class="o">=</span> <span class="p">[]</span>
165            <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
166            <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span>
167            <span class="k">while</span> <span class="n">S</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;BANK&#39;</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;#&#39;</span><span class="p">:</span>
168                <span class="k">if</span> <span class="s">&#39;TIME_MAP&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="p">:</span>
169                    <span class="k">break</span>
170                <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">80</span><span class="p">,</span><span class="mi">16</span><span class="p">):</span>
171                    <span class="k">if</span> <span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">8</span><span class="p">]</span> <span class="o">==</span> <span class="mi">8</span><span class="o">*</span><span class="s">&#39; &#39;</span><span class="p">:</span>
172                        <span class="k">break</span>
173                    <span class="n">xi</span> <span class="o">=</span> <span class="n">start</span><span class="o">+</span><span class="n">step</span><span class="o">*</span><span class="n">j</span>
174                    <span class="n">yi</span> <span class="o">=</span> <span class="n">sfloat</span><span class="p">(</span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">8</span><span class="p">])</span>
175                    <span class="n">ei</span> <span class="o">=</span> <span class="n">sfloat</span><span class="p">(</span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">8</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">16</span><span class="p">])</span>
176                    <span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xi</span><span class="p">)</span>
177                    <span class="k">if</span> <span class="n">yi</span> <span class="o">&gt;</span> <span class="mf">0.0</span><span class="p">:</span>
178                        <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">yi</span><span class="p">)</span>
179                        <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">1.0</span><span class="o">/</span><span class="n">ei</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
180                    <span class="k">else</span><span class="p">:</span>             
181                        <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
182                        <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
183                    <span class="n">j</span> <span class="o">+=</span> <span class="mi">1</span>
184                <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
185            <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
186            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">clockWd</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">clockWd</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
188                    <span class="n">x</span> <span class="o">=</span> <span class="n">Tmap2TOF</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TimeMap</span><span class="p">[</span><span class="s">&#39;1&#39;</span><span class="p">],</span><span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">[</span><span class="s">&#39;1&#39;</span><span class="p">])</span>
189                <span class="k">else</span><span class="p">:</span>
190                    <span class="n">x</span> <span class="o">=</span> <span class="n">Tmap2TOF</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TimeMap</span><span class="p">[</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">]],</span><span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">[</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">]])</span>
191            <span class="k">return</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">x</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">y</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">w</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">)]</span>
192       
193        <span class="k">def</span> <span class="nf">GetSTDdata</span><span class="p">(</span><span class="n">File</span><span class="p">,</span><span class="n">Pos</span><span class="p">,</span><span class="n">Bank</span><span class="p">):</span>
194            <span class="n">File</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">Pos</span><span class="p">)</span>
195            <span class="n">cons</span> <span class="o">=</span> <span class="n">Bank</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
196            <span class="n">Nch</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
197            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">:</span>
198                <span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
199                <span class="n">step</span> <span class="o">=</span> <span class="mi">1</span>
200            <span class="k">else</span><span class="p">:</span>
201                <span class="n">start</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span><span class="o">/</span><span class="mf">100.0</span>               <span class="c">#CW: from centidegrees to degrees</span>
202                <span class="n">step</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">6</span><span class="p">])</span><span class="o">/</span><span class="mf">100.0</span>                 <span class="c">#NB TOF 0.1*ms!</span>
203            <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
204            <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
205            <span class="n">w</span> <span class="o">=</span> <span class="p">[]</span>
206            <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
207            <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span>
208            <span class="k">while</span> <span class="n">S</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;BANK&#39;</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;#&#39;</span><span class="p">:</span>
209                <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">80</span><span class="p">,</span><span class="mi">8</span><span class="p">):</span>
210                    <span class="k">if</span> <span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">10</span><span class="p">]</span> <span class="o">==</span> <span class="mi">10</span><span class="o">*</span><span class="s">&#39; &#39;</span><span class="p">:</span>
211                        <span class="k">break</span>
212                    <span class="n">xi</span> <span class="o">=</span> <span class="n">start</span><span class="o">+</span><span class="n">step</span><span class="o">*</span><span class="n">j</span>
213                    <span class="n">ni</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">sint</span><span class="p">(</span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">]),</span><span class="mi">1</span><span class="p">)</span>
214                    <span class="n">yi</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">sfloat</span><span class="p">(</span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">8</span><span class="p">]),</span><span class="mf">0.0</span><span class="p">)</span>
215                    <span class="k">if</span> <span class="n">yi</span><span class="p">:</span>
216                        <span class="n">vi</span> <span class="o">=</span> <span class="n">yi</span><span class="o">/</span><span class="n">ni</span>
217                    <span class="k">else</span><span class="p">:</span>
218                        <span class="n">yi</span> <span class="o">=</span> <span class="mf">0.0</span>
219                        <span class="n">vi</span> <span class="o">=</span> <span class="mf">0.0</span>
220                    <span class="n">j</span> <span class="o">+=</span> <span class="mi">1</span>
221                    <span class="k">if</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">Nch</span><span class="p">:</span>
222                        <span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xi</span><span class="p">)</span>
223                        <span class="k">if</span> <span class="n">vi</span> <span class="o">&lt;=</span> <span class="mf">0.</span><span class="p">:</span>
224                            <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.</span><span class="p">)</span>
225                            <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.</span><span class="p">)</span>
226                        <span class="k">else</span><span class="p">:</span>
227                            <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">yi</span><span class="p">)</span>
228                            <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">1.0</span><span class="o">/</span><span class="n">vi</span><span class="p">)</span>
229                <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
230            <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
231            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">:</span>
232                <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">clockWd</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
233                    <span class="n">x</span> <span class="o">=</span> <span class="n">Tmap2TOF</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TimeMap</span><span class="p">[</span><span class="s">&#39;1&#39;</span><span class="p">],</span><span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">[</span><span class="s">&#39;1&#39;</span><span class="p">])</span>
234                <span class="k">else</span><span class="p">:</span>
235                    <span class="n">x</span> <span class="o">=</span> <span class="n">Tmap2TOF</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TimeMap</span><span class="p">[</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">]],</span><span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">[</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">]])</span>
236            <span class="k">return</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">x</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">y</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">w</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">)]</span>
237           
238        <span class="k">def</span> <span class="nf">GetALTdata</span><span class="p">(</span><span class="n">File</span><span class="p">,</span><span class="n">Pos</span><span class="p">,</span><span class="n">Bank</span><span class="p">):</span>
239            <span class="n">File</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">Pos</span><span class="p">)</span>
240            <span class="n">cons</span> <span class="o">=</span> <span class="n">Bank</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
241            <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
242            <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
243            <span class="n">w</span> <span class="o">=</span> <span class="p">[]</span>
244            <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
245            <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span>
246            <span class="k">while</span> <span class="n">S</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;BANK&#39;</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;#&#39;</span><span class="p">:</span>
247                <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">80</span><span class="p">,</span><span class="mi">20</span><span class="p">):</span>
248                    <span class="k">if</span> <span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">8</span><span class="p">]</span> <span class="o">==</span> <span class="mi">9</span><span class="o">*</span><span class="s">&#39; &#39;</span><span class="p">:</span>
249                        <span class="k">break</span>
250                    <span class="n">xi</span> <span class="o">=</span> <span class="n">sfloat</span><span class="p">(</span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">9</span><span class="p">])</span><span class="o">/</span><span class="mf">3200.</span>
251                    <span class="n">yi</span> <span class="o">=</span> <span class="n">sfloat</span><span class="p">(</span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">9</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">16</span><span class="p">])</span><span class="o">/</span><span class="mf">1000.</span>
252                    <span class="n">ei</span> <span class="o">=</span> <span class="n">sfloat</span><span class="p">(</span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">16</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="mi">21</span><span class="p">])</span><span class="o">/</span><span class="mf">1000.</span>
253                    <span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xi</span><span class="p">)</span>
254                    <span class="k">if</span> <span class="n">yi</span> <span class="o">&gt;</span> <span class="mf">0.0</span><span class="p">:</span>
255                        <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">yi</span><span class="p">)</span>
256                        <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">1.0</span><span class="o">/</span><span class="n">ei</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
257                    <span class="k">else</span><span class="p">:</span>             
258                        <span class="n">y</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
259                        <span class="n">w</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
260                    <span class="n">j</span> <span class="o">+=</span> <span class="mi">1</span>
261                <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
262            <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
263            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">:</span>
264                <span class="n">x</span> <span class="o">=</span> <span class="n">Tmap2TOF</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TimeMap</span><span class="p">[</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">]],</span><span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">[</span><span class="n">cons</span><span class="p">[</span><span class="mi">5</span><span class="p">]])</span>
265            <span class="k">return</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">x</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">y</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">w</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">N</span><span class="p">)]</span>
266           
267        <span class="k">def</span> <span class="nf">GetTimeMap</span><span class="p">(</span><span class="n">File</span><span class="p">,</span><span class="n">Pos</span><span class="p">,</span><span class="n">TimeMap</span><span class="p">):</span>
268            <span class="n">File</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="n">Pos</span><span class="p">)</span>
269            <span class="n">cons</span> <span class="o">=</span> <span class="n">TimeMap</span><span class="p">[</span><span class="mi">8</span><span class="p">:]</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
270            <span class="n">mapNo</span> <span class="o">=</span> <span class="n">cons</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
271            <span class="k">if</span> <span class="s">&#39;TIME_MAP10&#39;</span> <span class="ow">in</span> <span class="n">TimeMap</span><span class="p">:</span> <span class="n">mapNo</span> <span class="o">=</span> <span class="s">&#39;1&#39;</span>   <span class="c">#HIPD cluge!</span>
272            <span class="n">Nch</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
273            <span class="n">Nrec</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
274            <span class="n">clockWd</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">cons</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span><span class="o">/</span><span class="mf">1000.</span>          <span class="c">#in mus</span>
275            <span class="n">TMap</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">Nch</span><span class="o">+</span><span class="mi">2</span><span class="p">,</span><span class="n">dtype</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
276            <span class="n">ind</span> <span class="o">=</span> <span class="mi">0</span>
277            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">Nrec</span><span class="p">):</span>
278                <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)</span>
279                <span class="n">vals</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
280                <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">vals</span><span class="p">:</span>
281                    <span class="n">TMap</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">val</span><span class="p">)</span>
282                    <span class="n">ind</span> <span class="o">+=</span> <span class="mi">1</span>
283            <span class="n">TMap</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">TMap</span><span class="p">,(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span>
284            <span class="n">TMax</span> <span class="o">=</span> <span class="n">TMap</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
285            <span class="n">Nch</span> <span class="o">=</span> <span class="n">TMap</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="p">(</span><span class="n">TMax</span><span class="o">-</span><span class="n">TMap</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="n">TMap</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">TMap</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span>
286            <span class="n">TMap</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">Nch</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">TMax</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span>
287            <span class="n">TMap</span> <span class="o">=</span> <span class="n">TMap</span><span class="o">.</span><span class="n">T</span>
288            <span class="n">TMap</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-=</span> <span class="mi">1</span>
289            <span class="k">return</span> <span class="n">TMap</span><span class="o">.</span><span class="n">T</span><span class="p">,</span><span class="n">clockWd</span><span class="p">,</span><span class="n">mapNo</span>
290           
291        <span class="k">def</span> <span class="nf">Tmap2TOF</span><span class="p">(</span><span class="n">TMap</span><span class="p">,</span><span class="n">clockWd</span><span class="p">):</span>
292            <span class="n">TOF</span> <span class="o">=</span> <span class="p">[]</span>
293            <span class="n">chWdt</span> <span class="o">=</span> <span class="p">[]</span>
294            <span class="n">Tch</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">Step</span> <span class="o">=</span> <span class="n">TMap</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
295            <span class="k">for</span> <span class="n">tmap</span> <span class="ow">in</span> <span class="n">TMap</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
296                <span class="n">tch</span><span class="p">,</span><span class="n">t</span><span class="p">,</span><span class="n">step</span> <span class="o">=</span> <span class="n">tmap</span>
297                <span class="n">TOF</span> <span class="o">+=</span> <span class="p">[</span><span class="n">T</span><span class="o">+</span><span class="n">Step</span><span class="o">*</span><span class="p">(</span><span class="n">i</span><span class="o">-</span><span class="n">Tch</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">Tch</span><span class="p">,</span><span class="n">tch</span><span class="p">)]</span>
298                <span class="n">Tch</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">Step</span> <span class="o">=</span> <span class="n">tmap</span>
299            <span class="n">TOF</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">TOF</span><span class="p">)</span><span class="o">*</span><span class="n">clockWd</span>
300            <span class="k">return</span> <span class="n">TOF</span>
301
302        <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
303        <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
304        <span class="n">w</span> <span class="o">=</span> <span class="p">[]</span>
305        <span class="n">Banks</span> <span class="o">=</span> <span class="p">[]</span>
306        <span class="n">Pos</span> <span class="o">=</span> <span class="p">[]</span>
307        <span class="n">rdbuffer</span> <span class="o">=</span> <span class="n">kwarg</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;buffer&#39;</span><span class="p">)</span>
308        <span class="n">title</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
309        <span class="n">comments</span> <span class="o">=</span> <span class="bp">None</span>
310<span class="c">#        selections = None</span>
311
312        <span class="c"># reload previously saved values</span>
313        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="ow">and</span> <span class="n">rdbuffer</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
314            <span class="n">Banks</span> <span class="o">=</span> <span class="n">rdbuffer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;Banks&#39;</span><span class="p">)</span>
315            <span class="n">Pos</span> <span class="o">=</span> <span class="n">rdbuffer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;Pos&#39;</span><span class="p">)</span>
316            <span class="bp">self</span><span class="o">.</span><span class="n">selections</span> <span class="o">=</span> <span class="n">rdbuffer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;selections&#39;</span><span class="p">)</span>
317            <span class="n">comments</span> <span class="o">=</span> <span class="n">rdbuffer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;comments&#39;</span><span class="p">)</span>
318
319        <span class="c"># read through the file and find the beginning of each bank</span>
320        <span class="c"># Save the offset (Pos), BANK line (Banks), comments for each bank</span>
321        <span class="c">#</span>
322        <span class="c"># This is going to need a fair amount of work to track line numbers</span>
323        <span class="c"># in the input file. </span>
324        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">Banks</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">Pos</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">Banks</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
325            <span class="k">try</span><span class="p">:</span>
326                <span class="n">i</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
327                <span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
328                    <span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
329                    <span class="n">S</span> <span class="o">=</span> <span class="n">filepointer</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
330                    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">S</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> <span class="k">break</span>
331                       
332                    <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span> <span class="c"># first line is always a comment</span>
333                        <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading title&#39;</span>
334                        <span class="n">title</span> <span class="o">=</span> <span class="n">S</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
335                        <span class="n">comments</span> <span class="o">=</span> <span class="p">[[</span><span class="n">title</span><span class="p">,]]</span>
336                        <span class="k">continue</span>
337                    <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="mi">1</span> <span class="ow">and</span> <span class="n">S</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;inst&#39;</span> <span class="ow">and</span> <span class="s">&#39;:&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="p">:</span>
338                        <span class="c"># 2nd line is instrument parameter file (optional)</span>
339                        <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading instrument parameter filename&#39;</span>
340                        <span class="bp">self</span><span class="o">.</span><span class="n">instparm</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s">&#39;[]&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
341                        <span class="k">continue</span>
342                    <span class="k">if</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;#&#39;</span><span class="p">:</span> <span class="c"># allow comments anywhere in the file</span>
343                        <span class="c"># comments in fact should only preceed BANK lines</span>
344                        <span class="n">comments</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">S</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
345                        <span class="k">continue</span>
346                    <span class="k">if</span> <span class="n">S</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;BANK&#39;</span><span class="p">:</span>
347                        <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading bank:&#39;</span>
348                        <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">+=</span> <span class="s">&#39;  &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">S</span><span class="p">)</span>
349                        <span class="n">comments</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">title</span><span class="p">,])</span>
350                        <span class="n">Banks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">S</span><span class="p">)</span>
351                        <span class="n">Pos</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filepointer</span><span class="o">.</span><span class="n">tell</span><span class="p">())</span>
352                    <span class="k">if</span> <span class="n">S</span><span class="p">[:</span><span class="mi">8</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;TIME_MAP&#39;</span><span class="p">:</span>     <span class="c">#assumes one time map; HIPPO has multiple time maps</span>
353                        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">Banks</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
354                            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading time map before any bank lines&#39;</span>
355                        <span class="k">else</span><span class="p">:</span>
356                            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading time map after bank:</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">Banks</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
357                        <span class="n">timemap</span><span class="p">,</span><span class="n">clockwd</span><span class="p">,</span><span class="n">mapNo</span> <span class="o">=</span> <span class="n">GetTimeMap</span><span class="p">(</span><span class="n">filepointer</span><span class="p">,</span><span class="n">filepointer</span><span class="o">.</span><span class="n">tell</span><span class="p">(),</span><span class="n">S</span><span class="p">)</span>
358                        <span class="bp">self</span><span class="o">.</span><span class="n">TimeMap</span><span class="p">[</span><span class="n">mapNo</span><span class="p">]</span> <span class="o">=</span> <span class="n">timemap</span>
359                        <span class="bp">self</span><span class="o">.</span><span class="n">clockWd</span><span class="p">[</span><span class="n">mapNo</span><span class="p">]</span> <span class="o">=</span> <span class="n">clockwd</span> 
360                       
361            <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">detail</span><span class="p">:</span>
362                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">+=</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">detail</span><span class="p">)</span>
363                <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatName</span><span class="o">+</span><span class="s">&#39; scan error:&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">detail</span><span class="p">)</span> <span class="c"># for testing</span>
364                <span class="kn">import</span> <span class="nn">traceback</span>
365                <span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">)</span>
366                <span class="k">return</span> <span class="bp">False</span>
367
368        <span class="c"># Now select the bank to read</span>
369        <span class="k">if</span> <span class="ow">not</span> <span class="n">Banks</span><span class="p">:</span> <span class="c"># use of ContentsValidator should prevent this error</span>
370            <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatName</span><span class="o">+</span><span class="s">&#39; scan error: no BANK records&#39;</span>
371            <span class="n">selblk</span> <span class="o">=</span> <span class="bp">None</span> <span class="c"># no block to choose</span>
372            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;No BANK records found (strange!)&#39;</span>
373            <span class="k">return</span> <span class="bp">False</span>
374        <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">Banks</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="c"># only one Bank, don&#39;t ask</span>
375            <span class="n">selblk</span> <span class="o">=</span> <span class="mi">0</span>
376        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">selections</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
377            <span class="c"># we were called to repeat the read</span>
378            <span class="c">#print &#39;debug: repeat #&#39;,self.repeatcount,&#39;selection&#39;,self.selections[self.repeatcount]</span>
379            <span class="n">selblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">selections</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span><span class="p">]</span>
380            <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">+=</span> <span class="mi">1</span>
381            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">&gt;=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selections</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="o">=</span> <span class="bp">False</span>
382        <span class="k">else</span><span class="p">:</span>                       <span class="c"># choose from options</span>
383            <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selections</span><span class="p">):</span>    <span class="c">#use previous selection, otherwise...</span>
384                <span class="bp">self</span><span class="o">.</span><span class="n">selections</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">MultipleBlockSelector</span><span class="p">(</span>
385                    <span class="n">Banks</span><span class="p">,</span>
386                    <span class="n">ParentFrame</span><span class="o">=</span><span class="n">ParentFrame</span><span class="p">,</span>
387                    <span class="n">title</span><span class="o">=</span><span class="s">&#39;Select Bank(s) to read from the list below&#39;</span><span class="p">,</span>
388                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">600</span><span class="p">,</span><span class="mi">100</span><span class="p">),</span>
389                    <span class="n">header</span><span class="o">=</span><span class="s">&#39;Dataset Selector&#39;</span><span class="p">)</span>
390            <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">selections</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> <span class="k">return</span> <span class="bp">False</span>
391            <span class="n">selblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">selections</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c"># select first in list</span>
392            <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">selections</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span> <span class="c"># prepare to loop through again</span>
393                <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="o">=</span> <span class="bp">True</span>
394                <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">=</span> <span class="mi">1</span>
395                <span class="k">if</span> <span class="n">rdbuffer</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
396                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;Banks&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Banks</span>
397                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;Pos&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Pos</span>
398                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;selections&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">selections</span>
399                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;comments&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">comments</span>
400
401        <span class="c"># got a selection, now read it</span>
402        <span class="n">Bank</span> <span class="o">=</span> <span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
403        <span class="k">try</span><span class="p">:</span>
404            <span class="n">bnkNo</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">Bank</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">1</span><span class="p">])</span>
405        <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
406            <span class="n">bnkNo</span> <span class="o">=</span> <span class="mi">1</span>
407        <span class="k">try</span><span class="p">:</span>
408            <span class="k">if</span> <span class="s">&#39;FXYE&#39;</span> <span class="ow">in</span> <span class="n">Bank</span><span class="p">:</span>
409                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading FXYE data in Bank</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
410                <span class="bp">self</span><span class="o">.</span><span class="n">powderdata</span> <span class="o">=</span> <span class="n">GetFXYEdata</span><span class="p">(</span><span class="n">filepointer</span><span class="p">,</span><span class="n">Pos</span><span class="p">[</span><span class="n">selblk</span><span class="p">],</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">])</span>
411            <span class="k">elif</span> <span class="s">&#39;FXY&#39;</span> <span class="ow">in</span> <span class="n">Bank</span><span class="p">:</span>
412                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading FXY data in Bank</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
413                <span class="bp">self</span><span class="o">.</span><span class="n">powderdata</span> <span class="o">=</span> <span class="n">GetFXYdata</span><span class="p">(</span><span class="n">filepointer</span><span class="p">,</span><span class="n">Pos</span><span class="p">[</span><span class="n">selblk</span><span class="p">],</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">])</span>
414            <span class="k">elif</span> <span class="s">&#39;ESD&#39;</span> <span class="ow">in</span> <span class="n">Bank</span><span class="p">:</span>
415                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading ESD data in Bank</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
416                <span class="bp">self</span><span class="o">.</span><span class="n">powderdata</span> <span class="o">=</span> <span class="n">GetESDdata</span><span class="p">(</span><span class="n">filepointer</span><span class="p">,</span><span class="n">Pos</span><span class="p">[</span><span class="n">selblk</span><span class="p">],</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">])</span>
417            <span class="k">elif</span> <span class="s">&#39;STD&#39;</span> <span class="ow">in</span> <span class="n">Bank</span><span class="p">:</span>
418                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading STD data in Bank</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
419                <span class="bp">self</span><span class="o">.</span><span class="n">powderdata</span> <span class="o">=</span> <span class="n">GetSTDdata</span><span class="p">(</span><span class="n">filepointer</span><span class="p">,</span><span class="n">Pos</span><span class="p">[</span><span class="n">selblk</span><span class="p">],</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">])</span>
420            <span class="k">elif</span> <span class="s">&#39;ALT&#39;</span> <span class="ow">in</span> <span class="n">Bank</span><span class="p">:</span>
421                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading ALT data in Bank</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
422                <span class="bp">self</span><span class="o">.</span><span class="n">powderdata</span> <span class="o">=</span> <span class="n">GetALTdata</span><span class="p">(</span><span class="n">filepointer</span><span class="p">,</span><span class="n">Pos</span><span class="p">[</span><span class="n">selblk</span><span class="p">],</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">])</span>
423            <span class="k">else</span><span class="p">:</span>
424                <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error reading STD data in Bank</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
425                <span class="bp">self</span><span class="o">.</span><span class="n">powderdata</span> <span class="o">=</span> <span class="n">GetSTDdata</span><span class="p">(</span><span class="n">filepointer</span><span class="p">,</span><span class="n">Pos</span><span class="p">[</span><span class="n">selblk</span><span class="p">],</span><span class="n">Banks</span><span class="p">[</span><span class="n">selblk</span><span class="p">])</span>
426        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">detail</span><span class="p">:</span>
427            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">+=</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">  &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">detail</span><span class="p">)</span>
428            <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatName</span><span class="o">+</span><span class="s">&#39; read error:&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">detail</span><span class="p">)</span> <span class="c"># for testing</span>
429            <span class="kn">import</span> <span class="nn">traceback</span>
430            <span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">(</span><span class="nb">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">)</span>
431            <span class="k">return</span> <span class="bp">False</span>
432
433        <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error processing information after read complete&#39;</span>
434        <span class="k">if</span> <span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
435            <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
436        <span class="bp">self</span><span class="o">.</span><span class="n">powderentry</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">filename</span>
437        <span class="bp">self</span><span class="o">.</span><span class="n">powderentry</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">Pos</span> <span class="c"># position offset (never used, I hope)</span>
438        <span class="bp">self</span><span class="o">.</span><span class="n">powderentry</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">bnkNo</span> <span class="c">#selblk+1 # bank number</span>
439        <span class="bp">self</span><span class="o">.</span><span class="n">idstring</span> <span class="o">=</span> <span class="n">ospath</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> <span class="o">+</span> <span class="s">&#39; Bank &#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">bnkNo</span><span class="p">)</span> <span class="c">#selblk+1)</span>
440        <span class="bp">self</span><span class="o">.</span><span class="n">numbanks</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">Banks</span><span class="p">)</span>
441        <span class="c"># scan comments for temperature &amp; radius</span>
442        <span class="n">Temperature</span> <span class="o">=</span> <span class="mf">300.</span>
443        <span class="k">for</span> <span class="n">S</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span>
444            <span class="k">if</span> <span class="s">&#39;Temp&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]:</span>
445                <span class="k">try</span><span class="p">:</span>
446                    <span class="n">Temperature</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
447                <span class="k">except</span><span class="p">:</span>
448                    <span class="k">pass</span>
449            <span class="k">elif</span> <span class="s">&#39;Gonio&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]:</span>
450                <span class="k">try</span><span class="p">:</span>
451                    <span class="bp">self</span><span class="o">.</span><span class="n">Sample</span><span class="p">[</span><span class="s">&#39;Gonio. radius&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
452                <span class="k">except</span><span class="p">:</span>
453                    <span class="k">pass</span>
454            <span class="k">elif</span> <span class="s">&#39;Omega&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">or</span> <span class="s">&#39;Theta&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]:</span>  <span class="c">#HIPD weirdness</span>
455                <span class="k">try</span><span class="p">:</span>
456                    <span class="bp">self</span><span class="o">.</span><span class="n">Sample</span><span class="p">[</span><span class="s">&#39;Omega&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mf">90.</span><span class="o">-</span><span class="nb">float</span><span class="p">(</span><span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
457                <span class="k">except</span><span class="p">:</span>
458                    <span class="k">pass</span>
459            <span class="k">elif</span> <span class="s">&#39;Chi&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]:</span>
460                <span class="k">try</span><span class="p">:</span>
461                    <span class="bp">self</span><span class="o">.</span><span class="n">Sample</span><span class="p">[</span><span class="s">&#39;Chi&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="nb">float</span><span class="p">(</span><span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
462                <span class="k">except</span><span class="p">:</span>
463                    <span class="k">pass</span>                   
464            <span class="k">elif</span> <span class="s">&#39;Phi&#39;</span> <span class="ow">in</span> <span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]:</span>
465                <span class="k">try</span><span class="p">:</span>
466                    <span class="bp">self</span><span class="o">.</span><span class="n">Sample</span><span class="p">[</span><span class="s">&#39;Phi&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">S</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
467                <span class="k">except</span><span class="p">:</span>
468                    <span class="k">pass</span>                   
469        <span class="bp">self</span><span class="o">.</span><span class="n">Sample</span><span class="p">[</span><span class="s">&#39;Temperature&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Temperature</span>
470        <span class="k">return</span> <span class="bp">True</span>       
471</div></div>
472<div class="viewcode-block" id="sfloat"><a class="viewcode-back" href="../imports.html#G2pwd_fxye.sfloat">[docs]</a><span class="k">def</span> <span class="nf">sfloat</span><span class="p">(</span><span class="n">S</span><span class="p">):</span>
473    <span class="s">&#39;convert a string to a float, treating an all-blank string as zero&#39;</span>
474    <span class="k">if</span> <span class="n">S</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
475        <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="n">S</span><span class="p">)</span>
476    <span class="k">else</span><span class="p">:</span>
477        <span class="k">return</span> <span class="mf">0.0</span>
478</div>
479<div class="viewcode-block" id="sint"><a class="viewcode-back" href="../imports.html#G2pwd_fxye.sint">[docs]</a><span class="k">def</span> <span class="nf">sint</span><span class="p">(</span><span class="n">S</span><span class="p">):</span>
480    <span class="s">&#39;convert a string to an integer, treating an all-blank string as zero&#39;</span>
481    <span class="k">if</span> <span class="n">S</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
482        <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">S</span><span class="p">)</span>
483    <span class="k">else</span><span class="p">:</span>
484        <span class="k">return</span> <span class="mi">0</span>
485</pre></div></div>
486
487          </div>
488        </div>
489      </div>
490      <div class="sphinxsidebar">
491        <div class="sphinxsidebarwrapper">
492            <p class="logo"><a href="../index.html">
493              <img class="logo" src="../_static/G2_html_logo.png" alt="Logo"/>
494            </a></p>
495<div id="searchbox" style="display: none">
496  <h3>Quick search</h3>
497    <form class="search" action="../search.html" method="get">
498      <input type="text" name="q" />
499      <input type="submit" value="Go" />
500      <input type="hidden" name="check_keywords" value="yes" />
501      <input type="hidden" name="area" value="default" />
502    </form>
503    <p class="searchtip" style="font-size: 90%">
504    Enter search terms or a module, class or function name.
505    </p>
506</div>
507<script type="text/javascript">$('#searchbox').show(0);</script>
508        </div>
509      </div>
510      <div class="clearer"></div>
511    </div>
512    <div class="related">
513      <h3>Navigation</h3>
514      <ul>
515        <li class="right" style="margin-right: 10px">
516          <a href="../genindex.html" title="General Index"
517             >index</a></li>
518        <li class="right" >
519          <a href="../py-modindex.html" title="Python Module Index"
520             >modules</a> |</li>
521        <li><a href="../index.html">GSAS-II 0.2.0 documentation</a> &raquo;</li>
522          <li><a href="index.html" >Module code</a> &raquo;</li> 
523      </ul>
524    </div>
525    <div class="footer">
526        &copy; Copyright 2013, Von Dreele and Toby for Argonne National Laboratory.
527      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
528    </div>
529  </body>
530</html>
Note: See TracBrowser for help on using the repository browser.