source: sasview/_modules/sas/dataloader/readers/hfir1d_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: 22.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>sas.dataloader.readers.hfir1d_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.hfir1d_reader</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">    HFIR 1D 4-column data reader</span>
54<span class="sd">&quot;&quot;&quot;</span>
55<span class="c">#####################################################################</span>
56<span class="c">#This software was developed by the University of Tennessee as part of the</span>
57<span class="c">#Distributed Data Analysis of Neutron Scattering Experiments (DANSE)</span>
58<span class="c">#project funded by the US National Science Foundation.</span>
59<span class="c">#See the license text in license.txt</span>
60<span class="c">#copyright 2008, University of Tennessee</span>
61<span class="c">######################################################################</span>
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
66<span class="c"># Check whether we have a converter available</span>
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<div class="viewcode-block" id="Reader"><a class="viewcode-back" href="../../../../dev/api/sas.dataloader.readers.html#sas.dataloader.readers.hfir1d_reader.Reader">[docs]</a><span class="k">class</span> <span class="nc">Reader</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
74    <span class="sd">&quot;&quot;&quot;</span>
75<span class="sd">    Class to load HFIR 1D 4-column files</span>
76<span class="sd">    &quot;&quot;&quot;</span>
77    <span class="c">## File type</span>
78    <span class="n">type_name</span> <span class="o">=</span> <span class="s">&quot;HFIR 1D&quot;</span>
79    <span class="c">## Wildcards</span>
80    <span class="nb">type</span> <span class="o">=</span> <span class="p">[</span><span class="s">&quot;HFIR 1D files (*.d1d)|*.d1d&quot;</span><span class="p">]</span>
81    <span class="c">## List of allowed extensions</span>
82    <span class="n">ext</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;.d1d&#39;</span><span class="p">]</span>
83   
84<div class="viewcode-block" id="Reader.read"><a class="viewcode-back" href="../../../../dev/api/sas.dataloader.readers.html#sas.dataloader.readers.hfir1d_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>
85        <span class="sd">&quot;&quot;&quot; </span>
86<span class="sd">        Load data file</span>
87<span class="sd">        </span>
88<span class="sd">        :param path: file path</span>
89<span class="sd">        </span>
90<span class="sd">        :return: Data1D object, or None</span>
91<span class="sd">        </span>
92<span class="sd">        :raise RuntimeError: when the file can&#39;t be opened</span>
93<span class="sd">        :raise ValueError: when the length of the data vectors are inconsistent</span>
94<span class="sd">        &quot;&quot;&quot;</span>
95        <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>
96            <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>
97            <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>
98            <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>
99                <span class="k">try</span><span class="p">:</span>
100                    <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>
101                <span class="k">except</span><span class="p">:</span>
102                    <span class="k">raise</span>  <span class="ne">RuntimeError</span><span class="p">,</span> <span class="s">&quot;hfir1d_reader: cannot open </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">path</span>
103                <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>
104                <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>
105                <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>
106                <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>
107                <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>
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">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">dx</span><span class="o">=</span><span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="n">dy</span><span class="p">)</span>
110                <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">basename</span>
111           
112                <span class="n">data_conv_q</span> <span class="o">=</span> <span class="bp">None</span>
113                <span class="n">data_conv_i</span> <span class="o">=</span> <span class="bp">None</span>
114               
115                <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>
116                    <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>
117                    <span class="c"># Test it</span>
118                    <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>
119                   
120                <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>
121                    <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>
122                    <span class="c"># Test it</span>
123                    <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>
124                           
125                <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
126                    <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>
127                    <span class="k">try</span><span class="p">:</span>
128                        <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>
129                        <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>
130                        <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>
131                        <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>
132                       
133                        <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>
134                            <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>
135                            <span class="n">_dx</span> <span class="o">=</span> <span class="n">data_conv_q</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>
136                           
137                        <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>
138                            <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>
139                            <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>
140                                                   
141                        <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>
142                        <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>
143                        <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>
144                        <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>
145                    <span class="k">except</span><span class="p">:</span>
146                        <span class="c"># Couldn&#39;t parse this line, skip it </span>
147                        <span class="k">pass</span>
148                         
149                <span class="c"># Sanity check</span>
150                <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>
151                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;hfir1d_reader: y and dy have different length&quot;</span>
152                    <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">,</span> <span class="n">msg</span>
153                <span class="k">if</span> <span class="ow">not</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="nb">len</span><span class="p">(</span><span class="n">dx</span><span class="p">):</span>
154                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;hfir1d_reader: x and dx have different length&quot;</span>
155                    <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">,</span> <span class="n">msg</span>
156
157                <span class="c"># If the data length is zero, consider this as</span>
158                <span class="c"># though we were not able to read the file.</span>
159                <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>
160                    <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">,</span> <span class="s">&quot;hfir1d_reader: could not load file&quot;</span>
161               
162                <span class="n">output</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">x</span>
163                <span class="n">output</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">y</span>
164                <span class="n">output</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">dy</span>
165                <span class="n">output</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">dx</span>
166                <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>
167                    <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>
168                <span class="k">else</span><span class="p">:</span>
169                    <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>
170                <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>
171                    <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>
172                <span class="k">else</span><span class="p">:</span>
173                    <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>
174               
175                <span class="c"># Store loading process information</span>
176                <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>
177                <span class="k">return</span> <span class="n">output</span>
178        <span class="k">else</span><span class="p">:</span>
179            <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>
180        <span class="k">return</span> <span class="bp">None</span></div></div>
181</pre></div>
182
183          </div>
184        </div>
185      </div>
186      <div class="sphinxsidebar">
187        <div class="sphinxsidebarwrapper">
188<div id="searchbox" style="display: none">
189  <h3>Quick search</h3>
190    <form class="search" action="../../../../search.html" method="get">
191      <input type="text" name="q" />
192      <input type="submit" value="Go" />
193      <input type="hidden" name="check_keywords" value="yes" />
194      <input type="hidden" name="area" value="default" />
195    </form>
196    <p class="searchtip" style="font-size: 90%">
197    Enter search terms or a module, class or function name.
198    </p>
199</div>
200<script type="text/javascript">$('#searchbox').show(0);</script>
201        </div>
202      </div>
203      <div class="clearer"></div>
204    </div>
205    <div class="related">
206      <h3>Navigation</h3>
207      <ul>
208        <li class="right" style="margin-right: 10px">
209          <a href="../../../../genindex.html" title="General Index"
210             >index</a></li>
211        <li class="right" >
212          <a href="../../../../py-modindex.html" title="Python Module Index"
213             >modules</a> |</li>
214        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
215          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
216          <li><a href="../readers.html" >sas.dataloader.readers</a> &raquo;</li> 
217      </ul>
218    </div>
219    <div class="footer">
220        &copy; Copyright 2013, The SasView Project.
221      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
222    </div>
223  </body>
224</html>
Note: See TracBrowser for help on using the repository browser.