source: sasview/_modules/sas/dataloader/readers/abs_reader.html @ a462c6a

gh-pages
Last change on this file since a462c6a was a462c6a, checked in by ajj, 9 years ago

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 39.0 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>sas.dataloader.readers.abs_reader &mdash; SasView 3.0.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:     '3.0.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="SasView 3.0.0 documentation" href="../../../../index.html" />
28    <link rel="up" title="sas.dataloader.readers" href="../readers.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">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
42          <li><a href="../readers.html" accesskey="U">sas.dataloader.readers</a> &raquo;</li> 
43      </ul>
44    </div> 
45
46    <div class="document">
47      <div class="documentwrapper">
48        <div class="bodywrapper">
49          <div class="body">
50           
51  <h1>Source code for sas.dataloader.readers.abs_reader</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">&quot;&quot;&quot;</span>
54<span class="c">#####################################################################</span>
55<span class="c">#This software was developed by the University of Tennessee as part of the</span>
56<span class="c">#Distributed Data Analysis of Neutron Scattering Experiments (DANSE)</span>
57<span class="c">#project funded by the US National Science Foundation.</span>
58<span class="c">#See the license text in license.txt</span>
59<span class="c">#copyright 2008, University of Tennessee</span>
60<span class="c">######################################################################</span>
61
62<span class="kn">import</span> <span class="nn">numpy</span>
63<span class="kn">import</span> <span class="nn">os</span>
64<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Data1D</span>
65<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Detector</span>
66
67<span class="n">has_converter</span> <span class="o">=</span> <span class="bp">True</span>
68<span class="k">try</span><span class="p">:</span>
69    <span class="kn">from</span> <span class="nn">sas.data_util.nxsunit</span> <span class="kn">import</span> <span class="n">Converter</span>
70<span class="k">except</span><span class="p">:</span>
71    <span class="n">has_converter</span> <span class="o">=</span> <span class="bp">False</span>
72   
73   
74<div class="viewcode-block" id="Reader"><a class="viewcode-back" href="../../../../dev/api/sas.dataloader.readers.html#sas.dataloader.readers.abs_reader.Reader">[docs]</a><span class="k">class</span> <span class="nc">Reader</span><span class="p">:</span>
75    <span class="sd">&quot;&quot;&quot;</span>
76<span class="sd">    Class to load IGOR reduced .ABS files</span>
77<span class="sd">    &quot;&quot;&quot;</span>
78    <span class="c">## File type</span>
79    <span class="n">type_name</span> <span class="o">=</span> <span class="s">&quot;IGOR 1D&quot;</span>
80    <span class="c">## Wildcards</span>
81    <span class="nb">type</span> <span class="o">=</span> <span class="p">[</span><span class="s">&quot;IGOR 1D files (*.abs)|*.abs&quot;</span><span class="p">]</span>
82    <span class="c">## List of allowed extensions</span>
83    <span class="n">ext</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;.abs&#39;</span><span class="p">,</span> <span class="s">&#39;.ABS&#39;</span><span class="p">]</span>
84   
85<div class="viewcode-block" id="Reader.read"><a class="viewcode-back" href="../../../../dev/api/sas.dataloader.readers.html#sas.dataloader.readers.abs_reader.Reader.read">[docs]</a>    <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
86        <span class="sd">&quot;&quot;&quot; </span>
87<span class="sd">        Load data file.</span>
88<span class="sd">        </span>
89<span class="sd">        :param path: file path</span>
90<span class="sd">        </span>
91<span class="sd">        :return: Data1D object, or None</span>
92<span class="sd">        </span>
93<span class="sd">        :raise RuntimeError: when the file can&#39;t be opened</span>
94<span class="sd">        :raise ValueError: when the length of the data vectors are inconsistent</span>
95<span class="sd">        &quot;&quot;&quot;</span>
96        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
97            <span class="n">basename</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">basename</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
98            <span class="n">root</span><span class="p">,</span> <span class="n">extension</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="n">basename</span><span class="p">)</span>
99            <span class="k">if</span> <span class="n">extension</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ext</span><span class="p">:</span>
100                <span class="k">try</span><span class="p">:</span>
101                    <span class="n">input_f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span><span class="s">&#39;r&#39;</span><span class="p">)</span>
102                <span class="k">except</span><span class="p">:</span>
103                    <span class="k">raise</span>  <span class="ne">RuntimeError</span><span class="p">,</span> <span class="s">&quot;abs_reader: cannot open </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">path</span>
104                <span class="n">buff</span> <span class="o">=</span> <span class="n">input_f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
105                <span class="n">lines</span> <span class="o">=</span> <span class="n">buff</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)</span>
106                <span class="n">x</span>  <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
107                <span class="n">y</span>  <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
108                <span class="n">dy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
109                <span class="n">dx</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
110                <span class="n">output</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="n">dy</span><span class="p">,</span> <span class="n">dx</span><span class="o">=</span><span class="n">dx</span><span class="p">)</span>
111                <span class="n">detector</span> <span class="o">=</span> <span class="n">Detector</span><span class="p">()</span>
112                <span class="n">output</span><span class="o">.</span><span class="n">detector</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">detector</span><span class="p">)</span>
113                <span class="n">output</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">basename</span>
114               
115                <span class="n">is_info</span> <span class="o">=</span> <span class="bp">False</span>
116                <span class="n">is_center</span> <span class="o">=</span> <span class="bp">False</span>
117                <span class="n">is_data_started</span> <span class="o">=</span> <span class="bp">False</span>
118               
119                <span class="n">data_conv_q</span> <span class="o">=</span> <span class="bp">None</span>
120                <span class="n">data_conv_i</span> <span class="o">=</span> <span class="bp">None</span>
121               
122                <span class="k">if</span> <span class="n">has_converter</span> <span class="o">==</span> <span class="bp">True</span> <span class="ow">and</span> <span class="n">output</span><span class="o">.</span><span class="n">x_unit</span> <span class="o">!=</span> <span class="s">&#39;1/A&#39;</span><span class="p">:</span>
123                    <span class="n">data_conv_q</span> <span class="o">=</span> <span class="n">Converter</span><span class="p">(</span><span class="s">&#39;1/A&#39;</span><span class="p">)</span>
124                    <span class="c"># Test it</span>
125                    <span class="n">data_conv_q</span><span class="p">(</span><span class="mf">1.0</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">x_unit</span><span class="p">)</span>
126                   
127                <span class="k">if</span> <span class="n">has_converter</span> <span class="o">==</span> <span class="bp">True</span> <span class="ow">and</span> <span class="n">output</span><span class="o">.</span><span class="n">y_unit</span> <span class="o">!=</span> <span class="s">&#39;1/cm&#39;</span><span class="p">:</span>
128                    <span class="n">data_conv_i</span> <span class="o">=</span> <span class="n">Converter</span><span class="p">(</span><span class="s">&#39;1/cm&#39;</span><span class="p">)</span>
129                    <span class="c"># Test it</span>
130                    <span class="n">data_conv_i</span><span class="p">(</span><span class="mf">1.0</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">y_unit</span><span class="p">)</span>
131               
132                <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
133                   
134                    <span class="c"># Information line 1</span>
135                    <span class="k">if</span> <span class="n">is_info</span> <span class="o">==</span> <span class="bp">True</span><span class="p">:</span>
136                        <span class="n">is_info</span> <span class="o">=</span> <span class="bp">False</span>
137                        <span class="n">line_toks</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
138                       
139                        <span class="c"># Wavelength in Angstrom</span>
140                        <span class="k">try</span><span class="p">:</span>
141                            <span class="n">value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">line_toks</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
142                            <span class="k">if</span> <span class="n">has_converter</span> <span class="o">==</span> <span class="bp">True</span> <span class="ow">and</span> \
143                                <span class="n">output</span><span class="o">.</span><span class="n">source</span><span class="o">.</span><span class="n">wavelength_unit</span> <span class="o">!=</span> <span class="s">&#39;A&#39;</span><span class="p">:</span>
144                                <span class="n">conv</span> <span class="o">=</span> <span class="n">Converter</span><span class="p">(</span><span class="s">&#39;A&#39;</span><span class="p">)</span>
145                                <span class="n">output</span><span class="o">.</span><span class="n">source</span><span class="o">.</span><span class="n">wavelength</span> <span class="o">=</span> <span class="n">conv</span><span class="p">(</span><span class="n">value</span><span class="p">,</span>
146                                        <span class="n">units</span><span class="o">=</span><span class="n">output</span><span class="o">.</span><span class="n">source</span><span class="o">.</span><span class="n">wavelength_unit</span><span class="p">)</span>
147                            <span class="k">else</span><span class="p">:</span>
148                                <span class="n">output</span><span class="o">.</span><span class="n">source</span><span class="o">.</span><span class="n">wavelength</span> <span class="o">=</span> <span class="n">value</span>
149                        <span class="k">except</span><span class="p">:</span>
150                            <span class="c">#goes to ASC reader</span>
151                            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;abs_reader: cannot open </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">path</span>
152                            <span class="k">raise</span>  <span class="ne">RuntimeError</span><span class="p">,</span> <span class="n">msg</span>
153                       
154                        <span class="c"># Distance in meters</span>
155                        <span class="k">try</span><span class="p">:</span>
156                            <span class="n">value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">line_toks</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span>
157                            <span class="k">if</span> <span class="n">has_converter</span> <span class="o">==</span> <span class="bp">True</span> <span class="ow">and</span> \
158                                <span class="n">detector</span><span class="o">.</span><span class="n">distance_unit</span> <span class="o">!=</span> <span class="s">&#39;m&#39;</span><span class="p">:</span>
159                                <span class="n">conv</span> <span class="o">=</span> <span class="n">Converter</span><span class="p">(</span><span class="s">&#39;m&#39;</span><span class="p">)</span>
160                                <span class="n">detector</span><span class="o">.</span><span class="n">distance</span> <span class="o">=</span> <span class="n">conv</span><span class="p">(</span><span class="n">value</span><span class="p">,</span>
161                                                <span class="n">units</span><span class="o">=</span><span class="n">detector</span><span class="o">.</span><span class="n">distance_unit</span><span class="p">)</span>
162                            <span class="k">else</span><span class="p">:</span>
163                                <span class="n">detector</span><span class="o">.</span><span class="n">distance</span> <span class="o">=</span> <span class="n">value</span>
164                        <span class="k">except</span><span class="p">:</span>
165                            <span class="c">#goes to ASC reader</span>
166                            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;abs_reader: cannot open </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">path</span>
167                            <span class="k">raise</span>  <span class="ne">RuntimeError</span><span class="p">,</span> <span class="n">msg</span>
168                        <span class="c"># Transmission</span>
169                        <span class="k">try</span><span class="p">:</span>
170                            <span class="n">output</span><span class="o">.</span><span class="n">sample</span><span class="o">.</span><span class="n">transmission</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">line_toks</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span>
171                        <span class="k">except</span><span class="p">:</span>
172                            <span class="c"># Transmission is not a mandatory entry</span>
173                            <span class="k">pass</span>
174                   
175                        <span class="c"># Thickness in mm</span>
176                        <span class="k">try</span><span class="p">:</span>
177                            <span class="n">value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">line_toks</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span>
178                            <span class="k">if</span> <span class="n">has_converter</span> <span class="o">==</span> <span class="bp">True</span> <span class="ow">and</span> \
179                                <span class="n">output</span><span class="o">.</span><span class="n">sample</span><span class="o">.</span><span class="n">thickness_unit</span> <span class="o">!=</span> <span class="s">&#39;cm&#39;</span><span class="p">:</span>
180                                <span class="n">conv</span> <span class="o">=</span> <span class="n">Converter</span><span class="p">(</span><span class="s">&#39;cm&#39;</span><span class="p">)</span>
181                                <span class="n">output</span><span class="o">.</span><span class="n">sample</span><span class="o">.</span><span class="n">thickness</span> <span class="o">=</span> <span class="n">conv</span><span class="p">(</span><span class="n">value</span><span class="p">,</span>
182                                            <span class="n">units</span><span class="o">=</span><span class="n">output</span><span class="o">.</span><span class="n">sample</span><span class="o">.</span><span class="n">thickness_unit</span><span class="p">)</span>
183                            <span class="k">else</span><span class="p">:</span>
184                                <span class="n">output</span><span class="o">.</span><span class="n">sample</span><span class="o">.</span><span class="n">thickness</span> <span class="o">=</span> <span class="n">value</span>
185                        <span class="k">except</span><span class="p">:</span>
186                            <span class="c"># Thickness is not a mandatory entry</span>
187                            <span class="k">pass</span>
188                   
189                    <span class="c">#MON CNT   LAMBDA   DET ANG   DET DIST   TRANS   THICK </span>
190                    <span class="c">#  AVE   STEP</span>
191                    <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;LAMBDA&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
192                        <span class="n">is_info</span> <span class="o">=</span> <span class="bp">True</span>
193                       
194                    <span class="c"># Find center info line</span>
195                    <span class="k">if</span> <span class="n">is_center</span> <span class="o">==</span> <span class="bp">True</span><span class="p">:</span>
196                        <span class="n">is_center</span> <span class="o">=</span> <span class="bp">False</span>
197                        <span class="n">line_toks</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
198                        <span class="c"># Center in bin number</span>
199                        <span class="n">center_x</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">line_toks</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
200                        <span class="n">center_y</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">line_toks</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
201                       
202                        <span class="c"># Bin size</span>
203                        <span class="k">if</span> <span class="n">has_converter</span> <span class="o">==</span> <span class="bp">True</span> <span class="ow">and</span> \
204                            <span class="n">detector</span><span class="o">.</span><span class="n">pixel_size_unit</span> <span class="o">!=</span> <span class="s">&#39;mm&#39;</span><span class="p">:</span>
205                            <span class="n">conv</span> <span class="o">=</span> <span class="n">Converter</span><span class="p">(</span><span class="s">&#39;mm&#39;</span><span class="p">)</span>
206                            <span class="n">detector</span><span class="o">.</span><span class="n">pixel_size</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">conv</span><span class="p">(</span><span class="mf">5.0</span><span class="p">,</span>
207                                                <span class="n">units</span><span class="o">=</span><span class="n">detector</span><span class="o">.</span><span class="n">pixel_size_unit</span><span class="p">)</span>
208                            <span class="n">detector</span><span class="o">.</span><span class="n">pixel_size</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">conv</span><span class="p">(</span><span class="mf">5.0</span><span class="p">,</span>
209                                                <span class="n">units</span><span class="o">=</span><span class="n">detector</span><span class="o">.</span><span class="n">pixel_size_unit</span><span class="p">)</span>
210                        <span class="k">else</span><span class="p">:</span>
211                            <span class="n">detector</span><span class="o">.</span><span class="n">pixel_size</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="mf">5.0</span>
212                            <span class="n">detector</span><span class="o">.</span><span class="n">pixel_size</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="mf">5.0</span>
213                       
214                        <span class="c"># Store beam center in distance units</span>
215                        <span class="c"># Det 640 x 640 mm</span>
216                        <span class="k">if</span> <span class="n">has_converter</span> <span class="o">==</span> <span class="bp">True</span> <span class="ow">and</span> \
217                            <span class="n">detector</span><span class="o">.</span><span class="n">beam_center_unit</span> <span class="o">!=</span> <span class="s">&#39;mm&#39;</span><span class="p">:</span>
218                            <span class="n">conv</span> <span class="o">=</span> <span class="n">Converter</span><span class="p">(</span><span class="s">&#39;mm&#39;</span><span class="p">)</span>
219                            <span class="n">detector</span><span class="o">.</span><span class="n">beam_center</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">conv</span><span class="p">(</span><span class="n">center_x</span> <span class="o">*</span> <span class="mf">5.0</span><span class="p">,</span>
220                                             <span class="n">units</span><span class="o">=</span><span class="n">detector</span><span class="o">.</span><span class="n">beam_center_unit</span><span class="p">)</span>
221                            <span class="n">detector</span><span class="o">.</span><span class="n">beam_center</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">conv</span><span class="p">(</span><span class="n">center_y</span> <span class="o">*</span> <span class="mf">5.0</span><span class="p">,</span>
222                                            <span class="n">units</span><span class="o">=</span><span class="n">detector</span><span class="o">.</span><span class="n">beam_center_unit</span><span class="p">)</span>
223                        <span class="k">else</span><span class="p">:</span>
224                            <span class="n">detector</span><span class="o">.</span><span class="n">beam_center</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">center_x</span> <span class="o">*</span> <span class="mf">5.0</span>
225                            <span class="n">detector</span><span class="o">.</span><span class="n">beam_center</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">center_y</span> <span class="o">*</span> <span class="mf">5.0</span>
226                       
227                        <span class="c"># Detector type</span>
228                        <span class="k">try</span><span class="p">:</span>
229                            <span class="n">detector</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">line_toks</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span>
230                        <span class="k">except</span><span class="p">:</span>
231                            <span class="c"># Detector name is not a mandatory entry</span>
232                            <span class="k">pass</span>
233                   
234                    <span class="c">#BCENT(X,Y)   A1(mm)   A2(mm)   A1A2DIST(m)   DL/L</span>
235                    <span class="c">#  BSTOP(mm)   DET_TYP</span>
236                    <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;BCENT&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
237                        <span class="n">is_center</span> <span class="o">=</span> <span class="bp">True</span>
238                       
239                    <span class="c"># Parse the data</span>
240                    <span class="k">if</span> <span class="n">is_data_started</span> <span class="o">==</span> <span class="bp">True</span><span class="p">:</span>
241                        <span class="n">toks</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
242
243                        <span class="k">try</span><span class="p">:</span>
244                            <span class="n">_x</span>  <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">toks</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
245                            <span class="n">_y</span>  <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">toks</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
246                            <span class="n">_dy</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">toks</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
247                            <span class="n">_dx</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">toks</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span>
248                           
249                            <span class="k">if</span> <span class="n">data_conv_q</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
250                                <span class="n">_x</span> <span class="o">=</span> <span class="n">data_conv_q</span><span class="p">(</span><span class="n">_x</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">output</span><span class="o">.</span><span class="n">x_unit</span><span class="p">)</span>
251                                <span class="n">_dx</span> <span class="o">=</span> <span class="n">data_conv_i</span><span class="p">(</span><span class="n">_dx</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">output</span><span class="o">.</span><span class="n">x_unit</span><span class="p">)</span>
252                               
253                            <span class="k">if</span> <span class="n">data_conv_i</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
254                                <span class="n">_y</span> <span class="o">=</span> <span class="n">data_conv_i</span><span class="p">(</span><span class="n">_y</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">output</span><span class="o">.</span><span class="n">y_unit</span><span class="p">)</span>
255                                <span class="n">_dy</span> <span class="o">=</span> <span class="n">data_conv_i</span><span class="p">(</span><span class="n">_dy</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">output</span><span class="o">.</span><span class="n">y_unit</span><span class="p">)</span>
256                           
257                            <span class="n">x</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">_x</span><span class="p">)</span>
258                            <span class="n">y</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">_y</span><span class="p">)</span>
259                            <span class="n">dy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dy</span><span class="p">,</span> <span class="n">_dy</span><span class="p">)</span>
260                            <span class="n">dx</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span> <span class="n">_dx</span><span class="p">)</span>
261                           
262                        <span class="k">except</span><span class="p">:</span>
263                            <span class="c"># Could not read this data line. If we are here</span>
264                            <span class="c"># it is because we are in the data section. Just</span>
265                            <span class="c"># skip it.</span>
266                            <span class="k">pass</span>
267                           
268                    <span class="c">#The 6 columns are | Q (1/A) | I(Q) (1/cm) | std. dev.</span>
269                    <span class="c"># I(Q) (1/cm) | sigmaQ | meanQ | ShadowFactor|</span>
270                    <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;The 6 columns&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
271                        <span class="n">is_data_started</span> <span class="o">=</span> <span class="bp">True</span>
272           
273                <span class="c"># Sanity check</span>
274                <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">dy</span><span class="p">):</span>
275                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;abs_reader: y and dy have different length&quot;</span>
276                    <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">msg</span>
277                <span class="c"># If the data length is zero, consider this as</span>
278                <span class="c"># though we were not able to read the file.</span>
279                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
280                    <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="s">&quot;ascii_reader: could not load file&quot;</span>
281               
282                <span class="n">output</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">x</span><span class="p">[</span><span class="n">x</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">]</span>
283                <span class="n">output</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">y</span><span class="p">[</span><span class="n">x</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">]</span>
284                <span class="n">output</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">dy</span><span class="p">[</span><span class="n">x</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">]</span>
285                <span class="n">output</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">dx</span><span class="p">[</span><span class="n">x</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">]</span>
286                <span class="k">if</span> <span class="n">data_conv_q</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
287                    <span class="n">output</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Q}&quot;</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">x_unit</span><span class="p">)</span>
288                <span class="k">else</span><span class="p">:</span>
289                    <span class="n">output</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Q}&quot;</span><span class="p">,</span> <span class="s">&#39;A^{-1}&#39;</span><span class="p">)</span>
290                <span class="k">if</span> <span class="n">data_conv_i</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
291                    <span class="n">output</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Intensity}&quot;</span><span class="p">,</span> <span class="n">output</span><span class="o">.</span><span class="n">y_unit</span><span class="p">)</span>
292                <span class="k">else</span><span class="p">:</span>
293                    <span class="n">output</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\\</span><span class="s">rm{Intensity}&quot;</span><span class="p">,</span> <span class="s">&quot;cm^{-1}&quot;</span><span class="p">)</span>
294                   
295                <span class="c"># Store loading process information</span>
296                <span class="n">output</span><span class="o">.</span><span class="n">meta_data</span><span class="p">[</span><span class="s">&#39;loader&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type_name</span>
297                <span class="k">return</span> <span class="n">output</span>
298        <span class="k">else</span><span class="p">:</span>
299            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">,</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s"> is not a file&quot;</span> <span class="o">%</span> <span class="n">path</span>
300        <span class="k">return</span> <span class="bp">None</span></div></div>
301</pre></div>
302
303          </div>
304        </div>
305      </div>
306      <div class="sphinxsidebar">
307        <div class="sphinxsidebarwrapper">
308<div id="searchbox" style="display: none">
309  <h3>Quick search</h3>
310    <form class="search" action="../../../../search.html" method="get">
311      <input type="text" name="q" />
312      <input type="submit" value="Go" />
313      <input type="hidden" name="check_keywords" value="yes" />
314      <input type="hidden" name="area" value="default" />
315    </form>
316    <p class="searchtip" style="font-size: 90%">
317    Enter search terms or a module, class or function name.
318    </p>
319</div>
320<script type="text/javascript">$('#searchbox').show(0);</script>
321        </div>
322      </div>
323      <div class="clearer"></div>
324    </div>
325    <div class="related">
326      <h3>Navigation</h3>
327      <ul>
328        <li class="right" style="margin-right: 10px">
329          <a href="../../../../genindex.html" title="General Index"
330             >index</a></li>
331        <li class="right" >
332          <a href="../../../../py-modindex.html" title="Python Module Index"
333             >modules</a> |</li>
334        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
335          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
336          <li><a href="../readers.html" >sas.dataloader.readers</a> &raquo;</li> 
337      </ul>
338    </div>
339    <div class="footer">
340        &copy; Copyright 2013, The SasView Project.
341      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
342    </div>
343  </body>
344</html>
Note: See TracBrowser for help on using the repository browser.