source: sphinxdocs/build/html/_modules/G2sfact_CIF.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: 56.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>G2sfact_CIF &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 G2sfact_CIF</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-08-12 13:30:41 -0500 (Wed, 12 Aug 2015) $</span>
54<span class="c"># $Author: vondreele $</span>
55<span class="c"># $Revision: 1956 $</span>
56<span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/imports/G2sfact_CIF.py $</span>
57<span class="c"># $Id: G2sfact_CIF.py 1956 2015-08-12 18:30:41Z vondreele $</span>
58<span class="c">########### SVN repository information ###################</span>
59<span class="sd">&#39;&#39;&#39;</span>
60<span class="sd">*Module G2sfact_CIF: CIF import*</span>
61<span class="sd">-----------------------------------</span>
62<span class="sd">Read structure factors from a CIF reflection table.</span>
63
64<span class="sd">&#39;&#39;&#39;</span>
65<span class="c"># routines to read in structure factors from a CIF</span>
66<span class="c"># </span>
67<span class="kn">import</span> <span class="nn">sys</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">os.path</span>
70<span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span>
71<span class="kn">import</span> <span class="nn">GSASIIpath</span>
72<span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1956 $&quot;</span><span class="p">)</span>
73<span class="kn">import</span> <span class="nn">CifFile</span> <span class="kn">as</span> <span class="nn">cif</span> <span class="c"># PyCifRW from James Hester</span>
74
75<div class="viewcode-block" id="CIFhklReader"><a class="viewcode-back" href="../imports.html#G2sfact_CIF.CIFhklReader">[docs]</a><span class="k">class</span> <span class="nc">CIFhklReader</span><span class="p">(</span><span class="n">G2IO</span><span class="o">.</span><span class="n">ImportStructFactor</span><span class="p">):</span>
76    <span class="s">&#39;Routines to import Phase information from a CIF file&#39;</span>
77    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
78        <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>
79            <span class="n">extensionlist</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;.CIF&#39;</span><span class="p">,</span><span class="s">&#39;.cif&#39;</span><span class="p">,</span><span class="s">&#39;.FCF&#39;</span><span class="p">,</span><span class="s">&#39;.fcf&#39;</span><span class="p">,</span><span class="s">&#39;.HKL&#39;</span><span class="p">,</span><span class="s">&#39;.hkl&#39;</span><span class="p">),</span>
80            <span class="n">strictExtension</span> <span class="o">=</span> <span class="bp">False</span><span class="p">,</span>
81            <span class="n">formatName</span> <span class="o">=</span> <span class="s">&#39;CIF&#39;</span><span class="p">,</span>
82            <span class="n">longFormatName</span> <span class="o">=</span> <span class="s">&#39;CIF format structure factor file (.cif or .hkl)&#39;</span>
83            <span class="p">)</span>
84    <span class="c"># Validate the contents</span>
85<div class="viewcode-block" id="CIFhklReader.ContentsValidator"><a class="viewcode-back" href="../imports.html#G2sfact_CIF.CIFhklReader.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>
86        <span class="s">&#39;Use standard CIF validator&#39;</span>
87        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">CIFValidator</span><span class="p">(</span><span class="n">filepointer</span><span class="p">)</span>
88</div>
89<div class="viewcode-block" id="CIFhklReader.Reader"><a class="viewcode-back" href="../imports.html#G2sfact_CIF.CIFhklReader.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>
90        <span class="sd">&#39;&#39;&#39;Read single crystal data from a CIF.</span>
91<span class="sd">        If multiple datasets are requested, use self.repeat and buffer caching.</span>
92<span class="sd">        &#39;&#39;&#39;</span>
93        <span class="n">hklitems</span> <span class="o">=</span> <span class="p">[(</span><span class="s">&#39;_refln_index_h&#39;</span><span class="p">,</span><span class="s">&#39;_refln_index_k&#39;</span><span class="p">,</span><span class="s">&#39;_refln_index_l&#39;</span><span class="p">,</span><span class="s">&#39;_refln_index_m_1&#39;</span><span class="p">),</span>
94                    <span class="p">(</span><span class="s">&#39;_refln.index_h&#39;</span><span class="p">,</span><span class="s">&#39;_refln.index_k&#39;</span><span class="p">,</span><span class="s">&#39;_refln.index_l&#39;</span><span class="p">,</span><span class="s">&#39;_refln.index_m_1&#39;</span><span class="p">)]</span>
95        <span class="n">cellitems</span> <span class="o">=</span> <span class="p">[</span>
96            <span class="p">(</span><span class="s">&#39;_cell_length_a&#39;</span><span class="p">,</span><span class="s">&#39;_cell_length_b&#39;</span><span class="p">,</span><span class="s">&#39;_cell_length_c&#39;</span><span class="p">,</span>
97             <span class="s">&#39;_cell_angle_alpha&#39;</span><span class="p">,</span><span class="s">&#39;_cell_angle_beta&#39;</span><span class="p">,</span><span class="s">&#39;_cell_angle_gamma&#39;</span><span class="p">,),</span>
98            <span class="p">(</span><span class="s">&#39;_cell.length_a&#39;</span><span class="p">,</span><span class="s">&#39;_cell.length_b&#39;</span><span class="p">,</span><span class="s">&#39;_cell.length_c&#39;</span><span class="p">,</span>
99             <span class="s">&#39;_cell.angle_alpha&#39;</span><span class="p">,</span><span class="s">&#39;_cell.angle_beta&#39;</span><span class="p">,</span><span class="s">&#39;_cell.angle_gamma&#39;</span><span class="p">,),]</span>
100
101        <span class="n">Fdatanames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_f_meas&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_meas&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_meas_au&#39;</span><span class="p">,</span>
102                      <span class="p">)</span>
103       
104        <span class="n">F2datanames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_f_squared_meas&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_squared_meas&#39;</span><span class="p">,</span>
105            <span class="s">&#39;_refln_intensity_meas&#39;</span><span class="p">,</span><span class="s">&#39;_refln.intensity_meas&#39;</span><span class="p">,</span>
106                      <span class="p">)</span>
107
108        <span class="n">Idatanames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_intensity_meas&#39;</span><span class="p">,</span><span class="s">&#39;_refln.intensity_meas&#39;</span><span class="p">,</span>
109                      <span class="p">)</span> <span class="c"># not used yet</span>
110
111        <span class="n">Isignames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_intensity_meas_sigma&#39;</span><span class="p">,</span><span class="s">&#39;_refln.intensity_meas_sigma&#39;</span><span class="p">,</span>
112                      <span class="p">)</span> <span class="c"># not used yet</span>
113
114        <span class="n">Fcalcnames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_f_calc&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_calc&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_calc_au&#39;</span><span class="p">,</span>
115                      <span class="p">)</span>
116       
117        <span class="n">F2calcnames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_f_squared_calc&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_squared_calc&#39;</span><span class="p">,</span>
118                      <span class="p">)</span>
119
120        <span class="n">Fsignames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_f_meas_sigma&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_meas_sigma&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_meas_sigma_au&#39;</span><span class="p">,</span>
121                    <span class="s">&#39;_refln_f_sigma&#39;</span><span class="p">,</span>
122                      <span class="p">)</span>
123       
124        <span class="n">F2signames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_f_squared_meas_sigma&#39;</span><span class="p">,</span><span class="s">&#39;_refln.f_squared_meas_sigma&#39;</span><span class="p">,</span>
125                      <span class="s">&#39;_refln_f_squared_sigma&#39;</span><span class="p">,</span>
126                      <span class="s">&#39;_refln_intensity_meas_sigma&#39;</span><span class="p">,</span><span class="s">&#39;_refln.intensity_meas_sigma&#39;</span><span class="p">,</span>
127                      <span class="s">&#39;_refln.intensity_sigma&#39;</span><span class="p">,)</span>
128
129        <span class="n">phasenames</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_refln_phase_calc&#39;</span><span class="p">,</span><span class="s">&#39;_refln.phase_calc&#39;</span><span class="p">,</span>
130                      <span class="p">)</span>
131
132
133        <span class="n">SGdataname</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;_symmetry_space_group_name_H-M&#39;</span><span class="p">,</span> <span class="s">&#39;_symmetry.space_group_name_H-M&#39;</span><span class="p">)</span>
134                     
135        <span class="n">phasenamefields</span> <span class="o">=</span> <span class="p">(</span>
136            <span class="s">&#39;_chemical_name_common&#39;</span><span class="p">,</span>
137            <span class="s">&#39;_pd_phase_name&#39;</span><span class="p">,</span>
138            <span class="s">&#39;_chemical_formula_sum&#39;</span>
139            <span class="p">)</span>
140        <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>
141        <span class="n">cf</span> <span class="o">=</span> <span class="bp">None</span>
142        <span class="k">try</span><span class="p">:</span>
143            <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>
144                <span class="n">cf</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;lastcif&#39;</span><span class="p">)</span>
145                <span class="k">print</span> <span class="s">&#39;Reusing previously parsed CIF&#39;</span>
146            <span class="k">if</span> <span class="n">cf</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
147                <span class="bp">self</span><span class="o">.</span><span class="n">ShowBusy</span><span class="p">()</span> <span class="c"># this can take a while</span>
148                <span class="k">try</span><span class="p">:</span>
149                    <span class="n">cf</span> <span class="o">=</span> <span class="n">G2IO</span><span class="o">.</span><span class="n">ReadCIF</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
150                <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">detail</span><span class="p">:</span>
151                    <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&quot;Parse or reading of file failed in pyCifRW; check syntax of file in enCIFer or CheckCIF&quot;</span>
152                    <span class="k">return</span> <span class="bp">False</span>
153                <span class="k">finally</span><span class="p">:</span>
154                    <span class="bp">self</span><span class="o">.</span><span class="n">DoneBusy</span><span class="p">()</span>
155            <span class="c"># scan blocks for reflections</span>
156            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error during scan of blocks for datasets&#39;</span>
157            <span class="n">blklist</span> <span class="o">=</span> <span class="p">[]</span>
158            <span class="k">for</span> <span class="n">blk</span> <span class="ow">in</span> <span class="n">cf</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span> <span class="c"># scan for reflections, F or F2 values and cell lengths.</span>
159                <span class="c"># Ignore blocks that do not have structure factors and a cell</span>
160                <span class="n">blkkeys</span> <span class="o">=</span> <span class="p">[</span><span class="n">k</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">cf</span><span class="p">[</span><span class="n">blk</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()]</span>
161                <span class="n">gotFo</span> <span class="o">=</span> <span class="bp">False</span>
162                <span class="n">gotFo2</span> <span class="o">=</span> <span class="bp">False</span>
163                <span class="n">im</span> <span class="o">=</span> <span class="mi">0</span>
164                <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">2</span><span class="p">):</span>
165                    <span class="k">if</span> <span class="n">hklitems</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span> <span class="ow">in</span> <span class="n">blkkeys</span><span class="p">:</span>   <span class="c">#Super lattice reflections h,k,l,m</span>
166                        <span class="n">im</span> <span class="o">=</span> <span class="mi">1</span>
167                    <span class="k">if</span> <span class="n">hklitems</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="n">blkkeys</span> <span class="ow">and</span> <span class="n">hklitems</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="n">blkkeys</span> <span class="ow">and</span> <span class="n">hklitems</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> <span class="ow">in</span> <span class="n">blkkeys</span><span class="p">:</span>
168                        <span class="n">dnIndex</span> <span class="o">=</span> <span class="n">i</span>
169                        <span class="k">break</span>
170                <span class="k">else</span><span class="p">:</span>
171                    <span class="k">break</span> <span class="c"># no reflections</span>
172                <span class="k">for</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">Fdatanames</span><span class="p">:</span> 
173                    <span class="k">if</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">blkkeys</span><span class="p">:</span>
174                        <span class="n">blklist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">blk</span><span class="p">)</span>
175                        <span class="n">gotFo</span> <span class="o">=</span> <span class="bp">True</span>
176                        <span class="k">break</span>
177                <span class="k">if</span> <span class="n">gotFo</span><span class="p">:</span> <span class="k">break</span>
178                <span class="k">for</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">F2datanames</span><span class="p">:</span> 
179                    <span class="k">if</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">blkkeys</span><span class="p">:</span>
180                        <span class="n">blklist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">blk</span><span class="p">)</span>
181                        <span class="k">break</span>
182                <span class="k">else</span><span class="p">:</span>
183                    <span class="k">break</span>
184            <span class="k">if</span> <span class="ow">not</span> <span class="n">blklist</span><span class="p">:</span>
185                <span class="n">selblk</span> <span class="o">=</span> <span class="bp">None</span> <span class="c"># no block to choose</span>
186            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">blklist</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="c"># only one choice</span>
187                <span class="n">selblk</span> <span class="o">=</span> <span class="mi">0</span>
188            <span class="k">else</span><span class="p">:</span>                       <span class="c"># choose from options</span>
189                <span class="n">choice</span> <span class="o">=</span> <span class="p">[]</span>
190                <span class="k">for</span> <span class="n">blknm</span> <span class="ow">in</span> <span class="n">blklist</span><span class="p">:</span>
191                    <span class="n">choice</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
192                    <span class="c"># accumulate some info about this phase</span>
193                    <span class="n">choice</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">blknm</span> <span class="o">+</span> <span class="s">&#39;: &#39;</span>
194                    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">phasenamefields</span><span class="p">:</span> <span class="c"># get a name for the phase</span>
195                        <span class="n">name</span> <span class="o">=</span> <span class="n">cf</span><span class="p">[</span><span class="n">blknm</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
196                        <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;?&#39;</span> <span class="ow">or</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;.&#39;</span><span class="p">:</span>
197                            <span class="k">continue</span>
198                        <span class="k">else</span><span class="p">:</span>
199                            <span class="n">choice</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">name</span><span class="o">.</span><span class="n">strip</span><span class="p">()[:</span><span class="mi">20</span><span class="p">]</span> <span class="o">+</span> <span class="s">&#39;, &#39;</span>
200                            <span class="k">break</span>
201                    <span class="n">s</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
202                    <span class="n">fmt</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%.2f</span><span class="s">,&quot;</span>
203                    <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">key</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">cellitems</span><span class="p">[</span><span class="n">dnIndex</span><span class="p">]):</span>
204                        <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> <span class="n">fmt</span> <span class="o">=</span> <span class="s">&quot;%.f,&quot;</span>
205                        <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">5</span><span class="p">:</span> <span class="n">fmt</span> <span class="o">=</span> <span class="s">&quot;%.f&quot;</span>
206                        <span class="n">val</span> <span class="o">=</span> <span class="n">cf</span><span class="p">[</span><span class="n">blknm</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
207                        <span class="k">if</span> <span class="n">val</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="k">break</span>
208                        <span class="n">s</span> <span class="o">+=</span> <span class="n">fmt</span> <span class="o">%</span> <span class="n">cif</span><span class="o">.</span><span class="n">get_number_with_esd</span><span class="p">(</span><span class="n">val</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
209                    <span class="k">if</span> <span class="n">s</span><span class="p">:</span> <span class="n">choice</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="s">&#39;, cell: &#39;</span> <span class="o">+</span> <span class="n">s</span>
210                    <span class="k">for</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">SGdataname</span><span class="p">:</span>
211                        <span class="n">sg</span> <span class="o">=</span> <span class="n">cf</span><span class="p">[</span><span class="n">blknm</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">dn</span><span class="p">)</span>
212                        <span class="k">if</span> <span class="n">sg</span><span class="p">:</span> 
213                            <span class="n">choice</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="s">&#39;, (&#39;</span> <span class="o">+</span> <span class="n">sg</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">+</span> <span class="s">&#39;)&#39;</span>
214                            <span class="k">break</span>
215                <span class="n">choice</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&#39;Import all of the above&#39;</span><span class="p">)</span>
216                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span><span class="p">:</span> <span class="c"># we were called to repeat the read</span>
217                    <span class="n">selblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span>
218                    <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">+=</span> <span class="mi">1</span>
219                    <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="n">blklist</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>
220                <span class="k">else</span><span class="p">:</span>
221                    <span class="n">selblk</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">BlockSelector</span><span class="p">(</span>
222                        <span class="n">choice</span><span class="p">,</span>
223                        <span class="n">ParentFrame</span><span class="o">=</span><span class="n">ParentFrame</span><span class="p">,</span>
224                        <span class="n">title</span><span class="o">=</span><span class="s">&#39;Select a dataset from one the CIF data_ blocks below&#39;</span><span class="p">,</span>
225                        <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>
226                        <span class="n">header</span><span class="o">=</span><span class="s">&#39;Dataset Selector&#39;</span><span class="p">)</span>
227            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error during reading of selected block&#39;</span>
228            <span class="k">if</span> <span class="n">selblk</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
229                <span class="k">return</span> <span class="bp">False</span> <span class="c"># no block selected or available</span>
230            <span class="k">if</span> <span class="n">selblk</span> <span class="o">&gt;=</span> <span class="nb">len</span><span class="p">(</span><span class="n">blklist</span><span class="p">):</span> <span class="c"># all blocks selected</span>
231                <span class="n">selblk</span> <span class="o">=</span> <span class="mi">0</span>
232                <span class="bp">self</span><span class="o">.</span><span class="n">repeat</span> <span class="o">=</span> <span class="bp">True</span>
233                <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>
234                    <span class="n">rdbuffer</span><span class="p">[</span><span class="s">&#39;lastcif&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cf</span> <span class="c"># save the parsed cif for the next loop</span>
235                <span class="bp">self</span><span class="o">.</span><span class="n">repeatcount</span> <span class="o">=</span> <span class="mi">1</span>
236            <span class="n">blknm</span> <span class="o">=</span> <span class="n">blklist</span><span class="p">[</span><span class="n">selblk</span><span class="p">]</span>
237            <span class="n">blk</span> <span class="o">=</span> <span class="n">cf</span><span class="p">[</span><span class="n">blklist</span><span class="p">[</span><span class="n">selblk</span><span class="p">]]</span>
238            <span class="bp">self</span><span class="o">.</span><span class="n">objname</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">filename</span><span class="p">)</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">blknm</span><span class="p">)</span>
239            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error during reading of reflections&#39;</span>
240            <span class="c"># read in reflections</span>
241            <span class="k">try</span><span class="p">:</span>
242                <span class="n">refloop</span> <span class="o">=</span> <span class="n">blk</span><span class="o">.</span><span class="n">GetLoop</span><span class="p">(</span><span class="n">hklitems</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
243                <span class="n">dnIndex</span> <span class="o">=</span> <span class="mi">0</span>
244            <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
245                <span class="k">try</span><span class="p">:</span>
246                    <span class="n">refloop</span> <span class="o">=</span> <span class="n">blk</span><span class="o">.</span><span class="n">GetLoop</span><span class="p">(</span><span class="n">hklitems</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
247                    <span class="n">dnIndex</span> <span class="o">=</span> <span class="mi">1</span>
248                <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
249                    <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">+=</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">Unexpected: &#39;_refln[-.]index_h not found!&quot;</span>
250                    <span class="k">return</span> <span class="bp">False</span>
251            <span class="n">itemkeys</span> <span class="o">=</span> <span class="p">{}</span>
252            <span class="c"># prepare an index to the CIF reflection loop</span>
253            <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">key</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refloop</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
254                <span class="n">itemkeys</span><span class="p">[</span><span class="n">key</span><span class="o">.</span><span class="n">lower</span><span class="p">()]</span> <span class="o">=</span> <span class="n">i</span>
255               
256            <span class="c"># scan for data names:</span>
257            <span class="n">F2dn</span> <span class="o">=</span> <span class="bp">None</span>
258            <span class="n">Fdn</span> <span class="o">=</span> <span class="bp">None</span>
259            <span class="n">F2cdn</span> <span class="o">=</span> <span class="bp">None</span>
260            <span class="n">Fcdn</span> <span class="o">=</span> <span class="bp">None</span>
261            <span class="n">F2sdn</span> <span class="o">=</span> <span class="bp">None</span>
262            <span class="n">Fsdn</span> <span class="o">=</span> <span class="bp">None</span>
263            <span class="n">Phdn</span> <span class="o">=</span> <span class="bp">None</span>
264            <span class="n">FcalcPresent</span> <span class="o">=</span> <span class="bp">False</span>
265            <span class="k">for</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">F2datanames</span><span class="p">:</span>
266                <span class="k">if</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">itemkeys</span><span class="p">:</span>
267                    <span class="n">F2dn</span> <span class="o">=</span> <span class="n">dn</span>
268                    <span class="k">for</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">F2calcnames</span><span class="p">:</span>
269                        <span class="k">if</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">itemkeys</span><span class="p">:</span>
270                            <span class="n">F2cdn</span> <span class="o">=</span> <span class="n">dm</span>
271                            <span class="n">FcalcPresent</span> <span class="o">=</span> <span class="bp">True</span>
272                            <span class="k">break</span>
273                    <span class="k">for</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">F2signames</span><span class="p">:</span>
274                        <span class="k">if</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">itemkeys</span><span class="p">:</span>
275                            <span class="n">F2sdn</span> <span class="o">=</span> <span class="n">dm</span>
276                            <span class="k">break</span>
277                    <span class="k">break</span>
278            <span class="k">else</span><span class="p">:</span>
279                <span class="k">for</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">Fdatanames</span><span class="p">:</span>
280                    <span class="k">if</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">itemkeys</span><span class="p">:</span>
281                        <span class="n">Fdn</span> <span class="o">=</span> <span class="n">dn</span>
282                        <span class="k">for</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">Fcalcnames</span><span class="p">:</span>
283                            <span class="k">if</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">itemkeys</span><span class="p">:</span>
284                                <span class="n">Fcdn</span> <span class="o">=</span> <span class="n">dm</span>
285                                <span class="n">FcalcPresent</span> <span class="o">=</span> <span class="bp">True</span>
286                                <span class="k">break</span>
287                        <span class="k">for</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">Fsignames</span><span class="p">:</span>
288                            <span class="k">if</span> <span class="n">dm</span> <span class="ow">in</span> <span class="n">itemkeys</span><span class="p">:</span>
289                                <span class="n">Fsdn</span> <span class="o">=</span> <span class="n">dm</span>
290                                <span class="k">break</span>
291                        <span class="k">break</span>
292                <span class="k">else</span><span class="p">:</span>
293                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">no F or F2 loop value found in file</span><span class="se">\n</span><span class="s">&quot;</span>
294                    <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;A CIF reflection file needs to have at least one of</span><span class="se">\n</span><span class="s">&quot;</span>
295                    <span class="k">for</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">F2datanames</span><span class="o">+</span><span class="n">Fdatanames</span><span class="p">:</span>
296                        <span class="n">msg</span> <span class="o">+=</span> <span class="n">dn</span> <span class="o">+</span> <span class="s">&#39;, &#39;</span>
297                    <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">+=</span> <span class="n">msg</span>                       
298                    <span class="k">return</span> <span class="bp">False</span>
299            <span class="k">for</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">phasenames</span><span class="p">:</span>
300                <span class="k">if</span> <span class="n">dn</span> <span class="ow">in</span> <span class="n">itemkeys</span><span class="p">:</span>
301                    <span class="n">Phdn</span> <span class="o">=</span> <span class="n">dn</span>
302                    <span class="k">break</span>
303               
304            <span class="c"># loop over all reflections</span>
305            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">refloop</span><span class="p">:</span>
306                <span class="n">F2c</span> <span class="o">=</span> <span class="mf">0.0</span>
307                <span class="n">sigF2</span> <span class="o">=</span> <span class="mf">0.0</span>
308                <span class="n">HKL</span> <span class="o">=</span> <span class="p">[]</span>
309                <span class="k">try</span><span class="p">:</span>
310                    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">hklitems</span><span class="p">[</span><span class="n">dnIndex</span><span class="p">][:</span><span class="mi">3</span><span class="o">+</span><span class="n">im</span><span class="p">]:</span> <span class="c"># &#39;_refln[._]index_[hkl]&#39;</span>
311                        <span class="n">num</span> <span class="o">=</span> <span class="n">itemkeys</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
312                        <span class="k">try</span><span class="p">:</span>
313                            <span class="n">HKL</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">num</span><span class="p">]))</span>
314                        <span class="k">except</span><span class="p">:</span>
315                            <span class="n">HKL</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)</span>
316                    <span class="c">#h,k,l,m,dsp,Fo2,sig,Fc2,Fot2,Fct2,phase,Ext</span>
317                    <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
318                        <span class="n">ref</span> <span class="o">=</span> <span class="n">HKL</span><span class="o">+</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span> 
319                    <span class="k">else</span><span class="p">:</span>
320                        <span class="n">ref</span> <span class="o">=</span> <span class="n">HKL</span><span class="o">+</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span> 
321                    <span class="k">if</span> <span class="n">F2dn</span><span class="p">:</span>
322                        <span class="n">F2</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="n">itemkeys</span><span class="p">[</span><span class="n">F2dn</span><span class="p">]]</span>
323                        <span class="k">if</span> <span class="s">&#39;(&#39;</span> <span class="ow">in</span> <span class="n">F2</span><span class="p">:</span>
324                            <span class="n">F2</span><span class="p">,</span> <span class="n">sigF2</span> <span class="o">=</span> <span class="n">cif</span><span class="o">.</span><span class="n">get_number_with_esd</span><span class="p">(</span><span class="n">F2</span><span class="p">)</span>
325                            <span class="n">F2</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">F2</span><span class="p">)</span>
326                            <span class="n">sigF2</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">sigF2</span><span class="p">)</span>
327                        <span class="k">elif</span> <span class="n">F2sdn</span><span class="p">:</span>
328                            <span class="n">F2</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">F2</span><span class="p">)</span>
329                            <span class="n">sigF2</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">itemkeys</span><span class="p">[</span><span class="n">F2sdn</span><span class="p">]])</span>
330                        <span class="k">else</span><span class="p">:</span>
331                            <span class="n">F2</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">F2</span><span class="p">)</span>
332                        <span class="k">try</span><span class="p">:</span>
333                            <span class="k">if</span> <span class="n">F2cdn</span><span class="p">:</span>
334                                <span class="n">F2c</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">itemkeys</span><span class="p">[</span><span class="n">F2cdn</span><span class="p">]])</span>
335                        <span class="k">except</span><span class="p">:</span>
336                            <span class="k">pass</span>
337                    <span class="k">else</span><span class="p">:</span>
338                        <span class="n">F</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="n">itemkeys</span><span class="p">[</span><span class="n">Fdn</span><span class="p">]]</span>
339                        <span class="k">if</span> <span class="s">&#39;(&#39;</span> <span class="ow">in</span> <span class="n">F</span><span class="p">:</span>
340                            <span class="n">F</span><span class="p">,</span> <span class="n">sig</span> <span class="o">=</span> <span class="n">cif</span><span class="o">.</span><span class="n">get_number_with_esd</span><span class="p">(</span><span class="n">F</span><span class="p">)</span>
341                        <span class="k">elif</span> <span class="n">Fsdn</span><span class="p">:</span>
342                            <span class="n">F</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">F</span><span class="p">)</span>
343                            <span class="n">sig</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">itemkeys</span><span class="p">[</span><span class="n">Fsdn</span><span class="p">]])</span>
344                        <span class="k">else</span><span class="p">:</span>
345                            <span class="n">F</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">F</span><span class="p">)</span>
346                            <span class="n">sig</span> <span class="o">=</span> <span class="mf">0.0</span>
347                        <span class="n">F2</span> <span class="o">=</span> <span class="n">F</span><span class="o">**</span><span class="mi">2</span>
348                        <span class="n">sigF2</span> <span class="o">=</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">F</span><span class="o">*</span><span class="n">sig</span>
349                        <span class="k">try</span><span class="p">:</span>
350                            <span class="k">if</span> <span class="n">Fcdn</span><span class="p">:</span>
351                                <span class="n">Fc</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">itemkeys</span><span class="p">[</span><span class="n">Fcdn</span><span class="p">]])</span>
352                                <span class="n">F2c</span> <span class="o">=</span> <span class="n">Fc</span><span class="o">*</span><span class="n">Fc</span>
353                        <span class="k">except</span><span class="p">:</span>
354                            <span class="k">pass</span>
355                               
356                    <span class="n">ref</span><span class="p">[</span><span class="mi">8</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">F2</span>
357                    <span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">F2</span>
358                    <span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">sigF2</span>
359                    <span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">F2c</span>
360                    <span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">F2c</span>
361                    <span class="k">try</span><span class="p">:</span>
362                        <span class="k">if</span> <span class="n">Phdn</span><span class="p">:</span>
363                            <span class="n">ref</span><span class="p">[</span><span class="mi">10</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="n">itemkeys</span><span class="p">[</span><span class="n">Phdn</span><span class="p">]])</span>
364                    <span class="k">except</span><span class="p">:</span>
365                        <span class="k">pass</span>
366                <span class="k">except</span><span class="p">:</span>
367                    <span class="k">continue</span> <span class="c"># skip over incompletely parsed reflections</span>
368                <span class="bp">self</span><span class="o">.</span><span class="n">RefDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ref</span><span class="p">)</span>
369<span class="c">#                self.RefDict[&#39;FF&#39;].append({})</span>
370            <span class="bp">self</span><span class="o">.</span><span class="n">RefDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]</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="bp">self</span><span class="o">.</span><span class="n">RefDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">])</span>
371            <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="s">&#39;Error during reading of dataset parameters&#39;</span>
372            <span class="k">if</span> <span class="n">blk</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;_diffrn_radiation_probe&#39;</span><span class="p">):</span>
373                <span class="k">if</span> <span class="n">blk</span><span class="p">[</span><span class="s">&#39;_diffrn_radiation_probe&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;neutron&#39;</span><span class="p">:</span>
374                    <span class="n">Type</span> <span class="o">=</span> <span class="s">&#39;SNC&#39;</span>
375            <span class="k">elif</span> <span class="n">blk</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;_diffrn_radiation.probe&#39;</span><span class="p">):</span>
376                <span class="k">if</span> <span class="n">blk</span><span class="p">[</span><span class="s">&#39;_diffrn_radiation.probe&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;neutron&#39;</span><span class="p">:</span>
377                    <span class="n">Type</span> <span class="o">=</span> <span class="s">&#39;SNC&#39;</span>
378            <span class="k">else</span><span class="p">:</span>
379                <span class="n">Type</span> <span class="o">=</span> <span class="s">&#39;SXC&#39;</span>
380            <span class="bp">self</span><span class="o">.</span><span class="n">RefDict</span><span class="p">[</span><span class="s">&#39;Type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Type</span>
381            <span class="bp">self</span><span class="o">.</span><span class="n">RefDict</span><span class="p">[</span><span class="s">&#39;Super&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">im</span>
382            <span class="k">if</span> <span class="n">blk</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;_diffrn_radiation_wavelength&#39;</span><span class="p">):</span>
383                <span class="n">wave</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">blk</span><span class="p">[</span><span class="s">&#39;_diffrn_radiation_wavelength&#39;</span><span class="p">])</span>
384            <span class="k">elif</span> <span class="n">blk</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;_diffrn_radiation.wavelength&#39;</span><span class="p">):</span>
385                <span class="n">wave</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">blk</span><span class="p">[</span><span class="s">&#39;_diffrn_radiation.wavelength&#39;</span><span class="p">])</span>
386            <span class="k">else</span><span class="p">:</span>
387                <span class="n">wave</span> <span class="o">=</span> <span class="mf">0.70926</span>
388            <span class="bp">self</span><span class="o">.</span><span class="n">UpdateParameters</span><span class="p">(</span><span class="n">Type</span><span class="o">=</span><span class="n">Type</span><span class="p">,</span><span class="n">Wave</span><span class="o">=</span><span class="n">wave</span><span class="p">)</span> <span class="c"># histogram type</span>
389            <span class="k">return</span> <span class="bp">True</span>
390        <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">detail</span><span class="p">:</span>
391            <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>
392            <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>
393            <span class="kn">import</span> <span class="nn">traceback</span>
394            <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>
395        <span class="k">return</span> <span class="bp">False</span></div></div>
396</pre></div>
397
398          </div>
399        </div>
400      </div>
401      <div class="sphinxsidebar">
402        <div class="sphinxsidebarwrapper">
403            <p class="logo"><a href="../index.html">
404              <img class="logo" src="../_static/G2_html_logo.png" alt="Logo"/>
405            </a></p>
406<div id="searchbox" style="display: none">
407  <h3>Quick search</h3>
408    <form class="search" action="../search.html" method="get">
409      <input type="text" name="q" />
410      <input type="submit" value="Go" />
411      <input type="hidden" name="check_keywords" value="yes" />
412      <input type="hidden" name="area" value="default" />
413    </form>
414    <p class="searchtip" style="font-size: 90%">
415    Enter search terms or a module, class or function name.
416    </p>
417</div>
418<script type="text/javascript">$('#searchbox').show(0);</script>
419        </div>
420      </div>
421      <div class="clearer"></div>
422    </div>
423    <div class="related">
424      <h3>Navigation</h3>
425      <ul>
426        <li class="right" style="margin-right: 10px">
427          <a href="../genindex.html" title="General Index"
428             >index</a></li>
429        <li class="right" >
430          <a href="../py-modindex.html" title="Python Module Index"
431             >modules</a> |</li>
432        <li><a href="../index.html">GSAS-II 0.2.0 documentation</a> &raquo;</li>
433          <li><a href="index.html" >Module code</a> &raquo;</li> 
434      </ul>
435    </div>
436    <div class="footer">
437        &copy; Copyright 2013, Von Dreele and Toby for Argonne National Laboratory.
438      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
439    </div>
440  </body>
441</html>
Note: See TracBrowser for help on using the repository browser.