source: sasview/_modules/sas/perspectives/pr/inversion_panel.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: 203.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.perspectives.pr.inversion_panel &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="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">SasView 3.0.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 sas.perspectives.pr.inversion_panel</h1><div class="highlight"><pre>
51<span class="c">#!/usr/bin/env python</span>
52
53<span class="c"># version</span>
54<span class="n">__id__</span> <span class="o">=</span> <span class="s">&quot;$Id: aboutdialog.py 1193 2007-05-03 17:29:59Z dmitriy $&quot;</span>
55<span class="n">__revision__</span> <span class="o">=</span> <span class="s">&quot;$Revision: 1193 $&quot;</span>
56
57<span class="kn">import</span> <span class="nn">wx</span>
58<span class="kn">import</span> <span class="nn">os</span>
59<span class="kn">import</span> <span class="nn">sys</span>
60<span class="kn">import</span> <span class="nn">logging</span>
61<span class="kn">from</span> <span class="nn">wx.lib.scrolledpanel</span> <span class="kn">import</span> <span class="n">ScrolledPanel</span>
62<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span>   
63<span class="kn">from</span> <span class="nn">sas.guiframe.panel_base</span> <span class="kn">import</span> <span class="n">PanelBase</span> 
64<span class="kn">from</span> <span class="nn">inversion_state</span> <span class="kn">import</span> <span class="n">InversionState</span>
65<span class="kn">from</span> <span class="nn">pr_widgets</span> <span class="kn">import</span> <span class="n">PrTextCtrl</span>
66<span class="kn">from</span> <span class="nn">pr_widgets</span> <span class="kn">import</span> <span class="n">DataFileTextCtrl</span>
67<span class="kn">from</span> <span class="nn">pr_widgets</span> <span class="kn">import</span> <span class="n">OutputTextCtrl</span>
68
69<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;win32&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
70    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
71<span class="k">else</span><span class="p">:</span>
72    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
73
74<div class="viewcode-block" id="InversionControl"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl">[docs]</a><span class="k">class</span> <span class="nc">InversionControl</span><span class="p">(</span><span class="n">ScrolledPanel</span><span class="p">,</span> <span class="n">PanelBase</span><span class="p">):</span>
75    <span class="sd">&quot;&quot;&quot;</span>
76<span class="sd">    &quot;&quot;&quot;</span>
77    <span class="n">window_name</span> <span class="o">=</span> <span class="s">&#39;pr_control&#39;</span>
78    <span class="n">window_caption</span> <span class="o">=</span> <span class="s">&quot;P(r) control panel&quot;</span>
79    <span class="n">CENTER_PANE</span> <span class="o">=</span> <span class="bp">True</span>
80   
81    <span class="c"># Figure of merit parameters [default]</span>
82   
83    <span class="c">## Oscillation parameters (sin function = 1.1)</span>
84    <span class="n">oscillation_max</span> <span class="o">=</span> <span class="mf">1.5</span>
85   
86    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">plots</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
87                 <span class="n">standalone</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
88        <span class="sd">&quot;&quot;&quot;</span>
89<span class="sd">        &quot;&quot;&quot;</span>
90        <span class="n">ScrolledPanel</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
91        <span class="n">PanelBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
92        <span class="bp">self</span><span class="o">.</span><span class="n">SetupScrolling</span><span class="p">()</span>
93        <span class="c">#Set window&#39;s font size </span>
94        <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">variant</span><span class="o">=</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
95       
96        <span class="bp">self</span><span class="o">.</span><span class="n">plots</span> <span class="o">=</span> <span class="n">plots</span>
97        <span class="bp">self</span><span class="o">.</span><span class="n">radio_buttons</span> <span class="o">=</span> <span class="p">{}</span>
98        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
99       
100        <span class="c">## Data file TextCtrl</span>
101        <span class="bp">self</span><span class="o">.</span><span class="n">data_file</span>  <span class="o">=</span> <span class="bp">None</span>
102        <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span>  <span class="o">=</span> <span class="bp">None</span>
103        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span>  <span class="o">=</span> <span class="bp">None</span>
104        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span>  <span class="o">=</span> <span class="bp">None</span>
105        <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span>   <span class="o">=</span> <span class="bp">None</span>
106        <span class="bp">self</span><span class="o">.</span><span class="n">time_ctl</span>   <span class="o">=</span> <span class="bp">None</span>
107        <span class="bp">self</span><span class="o">.</span><span class="n">chi2_ctl</span>   <span class="o">=</span> <span class="bp">None</span>
108        <span class="bp">self</span><span class="o">.</span><span class="n">osc_ctl</span>    <span class="o">=</span> <span class="bp">None</span>
109        <span class="bp">self</span><span class="o">.</span><span class="n">file_radio</span> <span class="o">=</span> <span class="bp">None</span>
110        <span class="bp">self</span><span class="o">.</span><span class="n">plot_radio</span> <span class="o">=</span> <span class="bp">None</span>
111        <span class="bp">self</span><span class="o">.</span><span class="n">label_sugg</span> <span class="o">=</span> <span class="bp">None</span>
112        <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span>   <span class="o">=</span> <span class="bp">None</span>
113        <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span>   <span class="o">=</span> <span class="bp">None</span>
114        <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span> <span class="o">=</span> <span class="bp">None</span>
115        <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span> <span class="o">=</span> <span class="bp">None</span>
116       
117        <span class="bp">self</span><span class="o">.</span><span class="n">rg_ctl</span>     <span class="o">=</span> <span class="bp">None</span>
118        <span class="bp">self</span><span class="o">.</span><span class="n">iq0_ctl</span>    <span class="o">=</span> <span class="bp">None</span>
119        <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span>    <span class="o">=</span> <span class="bp">None</span>
120        <span class="bp">self</span><span class="o">.</span><span class="n">bck_ctl</span>    <span class="o">=</span> <span class="bp">None</span>
121       
122        <span class="c"># TextCtrl for fraction of positive P(r)</span>
123        <span class="bp">self</span><span class="o">.</span><span class="n">pos_ctl</span> <span class="o">=</span> <span class="bp">None</span>
124       
125        <span class="c"># TextCtrl for fraction of 1 sigma positive P(r)</span>
126        <span class="bp">self</span><span class="o">.</span><span class="n">pos_err_ctl</span> <span class="o">=</span> <span class="bp">None</span> 
127       
128        <span class="c">## Estimates</span>
129        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span> <span class="o">=</span> <span class="bp">None</span>
130        <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span> <span class="o">=</span> <span class="bp">None</span>
131        <span class="c">## D_max distance explorator</span>
132        <span class="bp">self</span><span class="o">.</span><span class="n">distance_explorator_ctl</span> <span class="o">=</span> <span class="bp">None</span>
133        <span class="c">## Data manager</span>
134        <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span>   <span class="o">=</span> <span class="bp">None</span>
135        <span class="c">## Standalone flage</span>
136        <span class="bp">self</span><span class="o">.</span><span class="n">standalone</span> <span class="o">=</span> <span class="n">standalone</span>
137        <span class="c">## Default file location for save</span>
138        <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">()</span>
139        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
140            <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span>\
141                        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">_default_save_location</span>
142       
143        <span class="c"># Default width</span>
144        <span class="bp">self</span><span class="o">.</span><span class="n">_default_width</span> <span class="o">=</span> <span class="mi">350</span>
145        <span class="bp">self</span><span class="o">.</span><span class="n">_do_layout</span><span class="p">()</span>
146       
147    <span class="k">def</span> <span class="nf">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
148        <span class="sd">&quot;&quot;&quot;</span>
149<span class="sd">        Allow direct hooks to text boxes</span>
150<span class="sd">        &quot;&quot;&quot;</span>
151        <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;nfunc&#39;</span><span class="p">:</span>
152            <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
153        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;d_max&#39;</span><span class="p">:</span>
154            <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
155        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;alpha&#39;</span><span class="p">:</span>
156            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
157        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;chi2&#39;</span><span class="p">:</span>
158            <span class="bp">self</span><span class="o">.</span><span class="n">chi2_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
159        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;bck&#39;</span><span class="p">:</span>
160            <span class="bp">self</span><span class="o">.</span><span class="n">bck_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
161        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;q_min&#39;</span><span class="p">:</span>
162            <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
163        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;q_max&#39;</span><span class="p">:</span>
164            <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
165        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;elapsed&#39;</span><span class="p">:</span>
166            <span class="bp">self</span><span class="o">.</span><span class="n">time_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
167        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span><span class="s">&#39;rg&#39;</span><span class="p">:</span>
168            <span class="bp">self</span><span class="o">.</span><span class="n">rg_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
169        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;iq0&#39;</span><span class="p">:</span>
170            <span class="bp">self</span><span class="o">.</span><span class="n">iq0_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
171        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;oscillation&#39;</span><span class="p">:</span>
172            <span class="bp">self</span><span class="o">.</span><span class="n">osc_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
173        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;slit_width&#39;</span><span class="p">:</span>
174            <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
175        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;slit_height&#39;</span><span class="p">:</span>
176            <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
177        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;positive&#39;</span><span class="p">:</span>
178            <span class="bp">self</span><span class="o">.</span><span class="n">pos_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
179        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;pos_err&#39;</span><span class="p">:</span>
180            <span class="bp">self</span><span class="o">.</span><span class="n">pos_err_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-5.2g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
181        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;alpha_estimate&#39;</span><span class="p">:</span>
182            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Click to accept value.&quot;</span><span class="p">)</span>
183            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
184            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-3.1g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
185            <span class="c">#self.alpha_estimate_ctl.Show()</span>
186            <span class="c">#self.label_sugg.Show()</span>
187        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;nterms_estimate&#39;</span><span class="p">:</span>
188            <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Click to accept value.&quot;</span><span class="p">)</span>
189            <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
190            <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%-g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span><span class="p">)</span>
191        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;plotname&#39;</span><span class="p">:</span>
192            <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
193            <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
194        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;datafile&#39;</span><span class="p">:</span>
195            <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
196            <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
197        <span class="k">else</span><span class="p">:</span>
198            <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="o">.</span><span class="n">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
199       
200    <span class="k">def</span> <span class="nf">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
201        <span class="sd">&quot;&quot;&quot;</span>
202<span class="sd">        Allow direct hooks to text boxes</span>
203<span class="sd">        &quot;&quot;&quot;</span>
204        <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;nfunc&#39;</span><span class="p">:</span>
205            <span class="k">try</span><span class="p">:</span>
206                <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
207            <span class="k">except</span><span class="p">:</span>
208                <span class="k">return</span> <span class="o">-</span><span class="mi">1</span>
209        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;d_max&#39;</span><span class="p">:</span>
210            <span class="k">try</span><span class="p">:</span>
211                <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
212            <span class="k">except</span><span class="p">:</span>
213                <span class="k">return</span> <span class="o">-</span><span class="mf">1.0</span>
214        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;alpha&#39;</span><span class="p">:</span>
215            <span class="k">try</span><span class="p">:</span>
216                <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
217            <span class="k">except</span><span class="p">:</span>
218                <span class="k">return</span> <span class="o">-</span><span class="mf">1.0</span>
219        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;chi2&#39;</span><span class="p">:</span>
220            <span class="k">try</span><span class="p">:</span>
221                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">chi2_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
222            <span class="k">except</span><span class="p">:</span>
223                <span class="k">return</span> <span class="bp">None</span>
224        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;bck&#39;</span><span class="p">:</span>
225            <span class="k">try</span><span class="p">:</span>
226                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bck_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
227            <span class="k">except</span><span class="p">:</span>
228                <span class="k">return</span> <span class="bp">None</span>
229        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;q_min&#39;</span><span class="p">:</span>
230            <span class="k">try</span><span class="p">:</span>
231                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
232            <span class="k">except</span><span class="p">:</span>
233                <span class="k">return</span> <span class="mf">0.0</span>
234        <span class="k">elif</span> <span class="n">name</span><span class="o">==</span><span class="s">&#39;q_max&#39;</span><span class="p">:</span>
235            <span class="k">try</span><span class="p">:</span>
236                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
237            <span class="k">except</span><span class="p">:</span>
238                <span class="k">return</span> <span class="mf">0.0</span>
239        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;elapsed&#39;</span><span class="p">:</span>
240            <span class="k">try</span><span class="p">:</span>
241                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">time_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
242            <span class="k">except</span><span class="p">:</span>
243                <span class="k">return</span> <span class="bp">None</span>
244        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;rg&#39;</span><span class="p">:</span>
245            <span class="k">try</span><span class="p">:</span>
246                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rg_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
247            <span class="k">except</span><span class="p">:</span>
248                <span class="k">return</span> <span class="bp">None</span>
249        <span class="k">elif</span> <span class="n">name</span><span class="o">==</span><span class="s">&#39;iq0&#39;</span><span class="p">:</span>
250            <span class="k">try</span><span class="p">:</span>
251                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iq0_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
252            <span class="k">except</span><span class="p">:</span>
253                <span class="k">return</span> <span class="bp">None</span>
254        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;oscillation&#39;</span><span class="p">:</span>
255            <span class="k">try</span><span class="p">:</span>
256                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">osc_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
257            <span class="k">except</span><span class="p">:</span>
258                <span class="k">return</span> <span class="bp">None</span>
259        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;slit_width&#39;</span><span class="p">:</span>
260            <span class="k">try</span><span class="p">:</span>
261                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
262            <span class="k">except</span><span class="p">:</span>
263                <span class="k">return</span> <span class="bp">None</span>
264        <span class="k">elif</span> <span class="n">name</span><span class="o">==</span><span class="s">&#39;slit_height&#39;</span><span class="p">:</span>
265            <span class="k">try</span><span class="p">:</span>
266                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
267            <span class="k">except</span><span class="p">:</span>
268                <span class="k">return</span> <span class="bp">None</span>
269        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;pos&#39;</span><span class="p">:</span>
270            <span class="k">try</span><span class="p">:</span>
271                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pos_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
272            <span class="k">except</span><span class="p">:</span>
273                <span class="k">return</span> <span class="bp">None</span>
274        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;pos_err&#39;</span><span class="p">:</span>
275            <span class="k">try</span><span class="p">:</span>
276                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pos_err_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
277            <span class="k">except</span><span class="p">:</span>
278                <span class="k">return</span> <span class="bp">None</span>
279        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;alpha_estimate&#39;</span><span class="p">:</span>
280            <span class="k">try</span><span class="p">:</span>
281                <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">GetLabel</span><span class="p">())</span>
282            <span class="k">except</span><span class="p">:</span>
283                <span class="k">return</span> <span class="bp">None</span>
284        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;nterms_estimate&#39;</span><span class="p">:</span>
285            <span class="k">try</span><span class="p">:</span>
286                <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">GetLabel</span><span class="p">())</span>
287            <span class="k">except</span><span class="p">:</span>
288                <span class="k">return</span> <span class="bp">None</span>
289        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;plotname&#39;</span><span class="p">:</span>
290            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
291        <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">&#39;datafile&#39;</span><span class="p">:</span>
292            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
293        <span class="k">else</span><span class="p">:</span>
294            <span class="k">return</span> <span class="n">wx</span><span class="o">.</span><span class="n">Panel</span><span class="o">.</span><span class="n">__getattribute__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
295       
296<div class="viewcode-block" id="InversionControl.save_project"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.save_project">[docs]</a>    <span class="k">def</span> <span class="nf">save_project</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
297        <span class="sd">&quot;&quot;&quot;</span>
298<span class="sd">        return an xml node containing state of the panel</span>
299<span class="sd">         that guiframe can write to file</span>
300<span class="sd">        &quot;&quot;&quot;</span>
301        <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_data</span><span class="p">()</span>
302        <span class="n">state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_state</span><span class="p">()</span>
303        <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
304            <span class="n">new_doc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">state_reader</span><span class="o">.</span><span class="n">write_toXML</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">state</span><span class="p">)</span>
305            <span class="k">if</span> <span class="n">new_doc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
306                <span class="k">if</span> <span class="n">doc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="s">&quot;firstChild&quot;</span><span class="p">):</span>
307                    <span class="n">child</span> <span class="o">=</span> <span class="n">new_doc</span><span class="o">.</span><span class="n">getElementsByTagName</span><span class="p">(</span><span class="s">&quot;SASentry&quot;</span><span class="p">)</span>
308                    <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">child</span><span class="p">:</span>
309                        <span class="n">doc</span><span class="o">.</span><span class="n">firstChild</span><span class="o">.</span><span class="n">appendChild</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
310                <span class="k">else</span><span class="p">:</span>
311                    <span class="n">doc</span> <span class="o">=</span> <span class="n">new_doc</span>
312        <span class="k">return</span> <span class="n">doc</span>   
313    </div>
314<div class="viewcode-block" id="InversionControl.on_save"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.on_save">[docs]</a>    <span class="k">def</span> <span class="nf">on_save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
315        <span class="sd">&quot;&quot;&quot;</span>
316<span class="sd">        Method used to create a memento of the current state</span>
317<span class="sd">            </span>
318<span class="sd">        :return: state object </span>
319<span class="sd">        &quot;&quot;&quot;</span>
320        <span class="c"># Ask the user the location of the file to write to.</span>
321        <span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
322        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
323            <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span>\
324             <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">_default_save_location</span>
325        <span class="n">dlg</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FileDialog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">&quot;Choose a file&quot;</span><span class="p">,</span>
326                            <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span><span class="p">,</span>\
327                            <span class="bp">self</span><span class="o">.</span><span class="n">window_caption</span><span class="p">,</span> <span class="s">&quot;*.prv&quot;</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">SAVE</span><span class="p">)</span>
328        <span class="k">if</span> <span class="n">dlg</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>
329            <span class="n">path</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPath</span><span class="p">()</span>
330            <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</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">dirname</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
331            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
332                <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span>\
333                <span class="bp">self</span><span class="o">.</span><span class="n">_default_save_location</span>
334        <span class="k">else</span><span class="p">:</span>
335            <span class="k">return</span> <span class="bp">None</span>
336       
337        <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
338       
339        <span class="n">state</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_state</span><span class="p">()</span>
340       
341        <span class="c"># MAC always needs the extension for saving</span>
342        <span class="n">extens</span> <span class="o">=</span> <span class="s">&quot;.prv&quot;</span>
343        <span class="c"># Make sure the ext included in the file name</span>
344        <span class="n">fName</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">path</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">extens</span>
345        <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">save_data</span><span class="p">(</span><span class="n">filepath</span><span class="o">=</span><span class="n">fName</span><span class="p">,</span> <span class="n">prstate</span><span class="o">=</span><span class="n">state</span><span class="p">)</span>
346       
347        <span class="k">return</span> <span class="n">state</span>
348    </div>
349<div class="viewcode-block" id="InversionControl.get_data"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.get_data">[docs]</a>    <span class="k">def</span> <span class="nf">get_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
350        <span class="sd">&quot;&quot;&quot;</span>
351<span class="sd">        &quot;&quot;&quot;</span>
352        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">get_data</span><span class="p">()</span>
353    </div>
354<div class="viewcode-block" id="InversionControl.get_state"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.get_state">[docs]</a>    <span class="k">def</span> <span class="nf">get_state</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
355        <span class="sd">&quot;&quot;&quot;</span>
356<span class="sd">        Get the current state</span>
357<span class="sd">        </span>
358<span class="sd">        : return: state object</span>
359<span class="sd">        &quot;&quot;&quot;</span>
360        <span class="c"># Construct the state object    </span>
361        <span class="n">state</span> <span class="o">=</span> <span class="n">InversionState</span><span class="p">()</span>
362       
363        <span class="c"># Read the panel&#39;s parameters</span>
364        <span class="n">flag</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">dmax</span><span class="p">,</span> <span class="n">nfunc</span><span class="p">,</span> <span class="n">qmin</span><span class="p">,</span> \
365        <span class="n">qmax</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_read_pars</span><span class="p">()</span>
366       
367        <span class="n">state</span><span class="o">.</span><span class="n">nfunc</span> <span class="o">=</span> <span class="n">nfunc</span>
368        <span class="n">state</span><span class="o">.</span><span class="n">d_max</span> <span class="o">=</span> <span class="n">dmax</span>
369        <span class="n">state</span><span class="o">.</span><span class="n">alpha</span> <span class="o">=</span> <span class="n">alpha</span>
370        <span class="n">state</span><span class="o">.</span><span class="n">qmin</span>  <span class="o">=</span> <span class="n">qmin</span>
371        <span class="n">state</span><span class="o">.</span><span class="n">qmax</span>  <span class="o">=</span> <span class="n">qmax</span>
372        <span class="n">state</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="n">width</span>
373        <span class="n">state</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="n">height</span>
374       
375        <span class="c"># Data file</span>
376        <span class="n">state</span><span class="o">.</span><span class="n">file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
377       
378        <span class="c"># Background evaluation checkbox</span>
379        <span class="n">state</span><span class="o">.</span><span class="n">estimate_bck</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">()</span>
380       
381        <span class="c"># Estimates</span>
382        <span class="n">state</span><span class="o">.</span><span class="n">nterms_estimate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate</span>
383        <span class="n">state</span><span class="o">.</span><span class="n">alpha_estimate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate</span>
384       
385        <span class="c"># Read the output values</span>
386        <span class="n">state</span><span class="o">.</span><span class="n">chi2</span>    <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">chi2</span>
387        <span class="n">state</span><span class="o">.</span><span class="n">elapsed</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">elapsed</span>
388        <span class="n">state</span><span class="o">.</span><span class="n">osc</span>     <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">oscillation</span>
389        <span class="n">state</span><span class="o">.</span><span class="n">pos</span>     <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pos</span>
390        <span class="n">state</span><span class="o">.</span><span class="n">pos_err</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pos_err</span>
391        <span class="n">state</span><span class="o">.</span><span class="n">rg</span>      <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rg</span>
392        <span class="n">state</span><span class="o">.</span><span class="n">iq0</span>     <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">iq0</span>
393        <span class="n">state</span><span class="o">.</span><span class="n">bck</span>     <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bck</span>
394       
395        <span class="k">return</span> <span class="n">state</span>
396    </div>
397<div class="viewcode-block" id="InversionControl.set_state"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.set_state">[docs]</a>    <span class="k">def</span> <span class="nf">set_state</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">state</span><span class="p">):</span>
398        <span class="sd">&quot;&quot;&quot;</span>
399<span class="sd">        Set the state of the panel and inversion problem to</span>
400<span class="sd">        the state passed as a parameter.</span>
401<span class="sd">        Execute the inversion immediately after filling the </span>
402<span class="sd">        controls.</span>
403<span class="sd">        </span>
404<span class="sd">        :param state: InversionState object</span>
405<span class="sd">        &quot;&quot;&quot;</span>
406        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">nfunc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
407            <span class="bp">self</span><span class="o">.</span><span class="n">nfunc</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">nfunc</span>
408        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">d_max</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
409            <span class="bp">self</span><span class="o">.</span><span class="n">d_max</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">d_max</span>
410        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">alpha</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
411            <span class="bp">self</span><span class="o">.</span><span class="n">alpha</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">alpha</span>
412        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">qmin</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
413            <span class="bp">self</span><span class="o">.</span><span class="n">q_min</span>  <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">qmin</span>
414        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">qmax</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
415            <span class="bp">self</span><span class="o">.</span><span class="n">q_max</span>  <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">qmax</span>
416        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">width</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
417            <span class="bp">self</span><span class="o">.</span><span class="n">slit_width</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">width</span>
418        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">height</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
419            <span class="bp">self</span><span class="o">.</span><span class="n">slit_height</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">height</span>
420       
421        <span class="c"># Data file</span>
422        <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">state</span><span class="o">.</span><span class="n">file</span><span class="p">))</span>
423   
424        <span class="c"># Background evaluation checkbox</span>
425        <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">state</span><span class="o">.</span><span class="n">estimate_bck</span><span class="p">)</span>
426       
427        <span class="c"># Estimates</span>
428        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">nterms_estimate</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
429            <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">nterms_estimate</span>
430        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">alpha_estimate</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span> 
431            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">alpha_estimate</span> 
432   
433       
434        <span class="c"># Read the output values</span>
435        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">chi2</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
436            <span class="bp">self</span><span class="o">.</span><span class="n">chi2</span>    <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">chi2</span>
437        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">elapsed</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
438            <span class="bp">self</span><span class="o">.</span><span class="n">elapsed</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">elapsed</span>
439        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">osc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
440            <span class="bp">self</span><span class="o">.</span><span class="n">oscillation</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">osc</span>
441        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">pos</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
442            <span class="bp">self</span><span class="o">.</span><span class="n">positive</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">pos</span>
443        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">pos_err</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
444            <span class="bp">self</span><span class="o">.</span><span class="n">pos_err</span> <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">pos_err</span>
445        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">rg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
446            <span class="bp">self</span><span class="o">.</span><span class="n">rg</span>      <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">rg</span>
447        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">iq0</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
448            <span class="bp">self</span><span class="o">.</span><span class="n">iq0</span>     <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">iq0</span>
449        <span class="k">if</span> <span class="n">state</span><span class="o">.</span><span class="n">bck</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
450            <span class="bp">self</span><span class="o">.</span><span class="n">bck</span>     <span class="o">=</span> <span class="n">state</span><span class="o">.</span><span class="n">bck</span>
451
452        <span class="c"># Perform inversion</span>
453        <span class="bp">self</span><span class="o">.</span><span class="n">_on_invert</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>   
454        </div>
455<div class="viewcode-block" id="InversionControl.set_manager"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.set_manager">[docs]</a>    <span class="k">def</span> <span class="nf">set_manager</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">manager</span><span class="p">):</span>
456        <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span> <span class="o">=</span> <span class="n">manager</span>
457        </div>
458    <span class="k">def</span> <span class="nf">_do_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
459        <span class="n">vbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
460        <span class="n">iy_vb</span> <span class="o">=</span> <span class="mi">0</span>
461
462        <span class="c"># ----- I(q) data -----</span>
463        <span class="n">databox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;I(q) data source&quot;</span><span class="p">)</span>
464       
465        <span class="n">boxsizer1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">databox</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
466        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">_default_width</span><span class="p">,</span> <span class="mi">50</span><span class="p">))</span>
467        <span class="n">pars_sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
468
469        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
470        <span class="bp">self</span><span class="o">.</span><span class="n">file_radio</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Name:&quot;</span><span class="p">)</span>
471        <span class="n">pars_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_radio</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
472                       <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
473       
474        <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span> <span class="o">=</span> <span class="n">DataFileTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">260</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
475       
476        <span class="n">pars_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
477                       <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
478       
479        <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">CheckBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Estimate background level&quot;</span><span class="p">)</span>
480        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Check box to let the fit estimate &quot;</span>
481        <span class="n">hint_msg</span> <span class="o">+=</span> <span class="s">&quot;the constant background level.&quot;</span>
482        <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
483        <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_CHECKBOX</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">)</span>
484        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
485        <span class="n">pars_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
486                       <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
487        <span class="n">boxsizer1</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">pars_sizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">)</span> 
488        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">boxsizer1</span><span class="p">,</span> <span class="p">(</span><span class="n">iy_vb</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
489                 <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
490       
491        <span class="c"># ----- Add slit parameters -----</span>
492        <span class="k">if</span> <span class="bp">True</span><span class="p">:</span>
493            <span class="n">sbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Slit parameters&quot;</span><span class="p">)</span>
494            <span class="n">sboxsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">sbox</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
495            <span class="n">sboxsizer</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">_default_width</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
496           
497            <span class="n">sizer_slit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
498   
499            <span class="n">label_sheight</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Height&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">40</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
500            <span class="n">label_swidth</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Width&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">40</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
501            <span class="c">#label_sunits1 = wx.StaticText(self, -1, &quot;[A^(-1)]&quot;)</span>
502            <span class="n">label_sunits2</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;[A^(-1)]&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">55</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
503            <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span> <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">,</span>
504                                          <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
505            <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span> <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">,</span>
506                                         <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
507            <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Enter slit height in units of Q or leave blank.&quot;</span>
508            <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
509            <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Enter slit width in units of Q or leave blank.&quot;</span>
510            <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
511            <span class="c">#self.sheight_ctl.Bind(wx.EVT_TEXT, self._on_pars_changed)</span>
512            <span class="c">#self.swidth_ctl.Bind(wx.EVT_TEXT,  self._on_pars_changed)</span>
513           
514            <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
515            <span class="n">sizer_slit</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_sheight</span><span class="p">,</span>    <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
516                           <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
517            <span class="n">sizer_slit</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
518                           <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
519   
520            <span class="n">sizer_slit</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_swidth</span><span class="p">,</span>     <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
521                           <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
522            <span class="n">sizer_slit</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="p">,</span>  <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
523                           <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
524            <span class="n">sizer_slit</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_sunits2</span><span class="p">,</span>    <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">4</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
525                           <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
526           
527            <span class="n">sboxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_slit</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
528            <span class="n">iy_vb</span> <span class="o">+=</span> <span class="mi">1</span>
529            <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sboxsizer</span><span class="p">,</span> <span class="p">(</span><span class="n">iy_vb</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
530                     <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
531       
532       
533        <span class="c"># ----- Q range -----</span>
534        <span class="n">qbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Q range&quot;</span><span class="p">)</span>
535        <span class="n">qboxsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">qbox</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
536        <span class="n">qboxsizer</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">_default_width</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
537       
538        <span class="n">sizer_q</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
539
540        <span class="n">label_qmin</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Q min&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">40</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
541        <span class="n">label_qmax</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Q max&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">40</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
542        <span class="c">#label_qunits1 = wx.StaticText(self, -1, &quot;[A^(-1)]&quot;)</span>
543        <span class="n">label_qunits2</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;[A^(-1)]&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">55</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
544        <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span> <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">,</span>
545                                   <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
546        <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span> <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">,</span>
547                                   <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
548        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Select a lower bound for Q or leave blank.&quot;</span>
549        <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
550        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Select an upper bound for Q or leave blank.&quot;</span>
551        <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
552        <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">)</span>
553        <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">)</span>
554       
555        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
556        <span class="n">sizer_q</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_qmin</span><span class="p">,</span>    <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
557        <span class="n">sizer_q</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
558        <span class="c">#sizer_q.Add(label_qunits1, (iy,2), (1,1), wx.LEFT|wx.EXPAND, 15)</span>
559        <span class="n">sizer_q</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_qmax</span><span class="p">,</span>    <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
560        <span class="n">sizer_q</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
561        <span class="n">sizer_q</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_qunits2</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">4</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
562        <span class="n">qboxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_q</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
563
564        <span class="n">iy_vb</span> <span class="o">+=</span> <span class="mi">1</span>
565        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">qboxsizer</span><span class="p">,</span> <span class="p">(</span><span class="n">iy_vb</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
566                 <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
567   
568        <span class="c"># ----- Parameters -----</span>
569        <span class="n">parsbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Parameters&quot;</span><span class="p">)</span>
570        <span class="n">boxsizer2</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">parsbox</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
571        <span class="n">boxsizer2</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">_default_width</span><span class="p">,</span><span class="mi">50</span><span class="p">))</span>
572       
573        <span class="n">explanation</span>  <span class="o">=</span> <span class="s">&quot;P(r) is found by fitting a set of base functions&quot;</span>
574        <span class="n">explanation</span> <span class="o">+=</span> <span class="s">&quot; to I(Q). The minimization involves&quot;</span>
575        <span class="n">explanation</span> <span class="o">+=</span> <span class="s">&quot; a regularization term to ensure a smooth P(r).&quot;</span>
576        <span class="n">explanation</span> <span class="o">+=</span> <span class="s">&quot; The regularization constant gives the size of that &quot;</span> 
577        <span class="n">explanation</span> <span class="o">+=</span> <span class="s">&quot;term. The suggested value is the value above which the&quot;</span>
578        <span class="n">explanation</span> <span class="o">+=</span> <span class="s">&quot; output P(r) will have only one peak.&quot;</span>
579        <span class="n">label_explain</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">explanation</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">280</span><span class="p">,</span><span class="mi">90</span><span class="p">))</span>
580        <span class="n">boxsizer2</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_explain</span><span class="p">,</span>  <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
581       
582       
583       
584        <span class="n">label_nfunc</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Number of terms&quot;</span><span class="p">)</span>
585        <span class="n">label_nfunc</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="mi">120</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
586        <span class="n">label_alpha</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Regularization constant&quot;</span><span class="p">)</span>
587        <span class="n">label_dmax</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Max distance [A]&quot;</span><span class="p">)</span>
588        <span class="bp">self</span><span class="o">.</span><span class="n">label_sugg</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Suggested value&quot;</span><span class="p">)</span>
589        <span class="c">#self.label_sugg.Hide()</span>
590       
591        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span> <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">,</span>
592                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
593        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Number of terms in the expansion.&quot;</span><span class="p">)</span>
594        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span> <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">,</span>
595                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
596        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Control parameter for the size of the regularization term.&quot;</span>
597        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
598        <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span>  <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_PROCESS_ENTER</span><span class="p">,</span>
599                                    <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
600        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Maximum distance between any two points in the system.&quot;</span>
601        <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
602        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
603        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">)</span>
604        <span class="c">#self.alpha_estimate_ctl.Hide()</span>
605        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_accept_alpha</span><span class="p">,</span> <span class="nb">id</span> <span class="o">=</span> <span class="nb">id</span><span class="p">)</span>   
606        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
607        <span class="c">#self.alpha_estimate_ctl.SetBackgroundColour(&#39;#ffdf85&#39;)</span>
608        <span class="c">#self.alpha_estimate_ctl.SetBackgroundColour(self.GetBackgroundColour())</span>
609        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Waiting for estimate...&quot;</span><span class="p">)</span>
610       
611        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
612        <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">)</span>
613        <span class="c">#self.nterms_estimate_ctl.Hide()</span>
614        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_accept_nterms</span><span class="p">,</span> <span class="nb">id</span> <span class="o">=</span> <span class="nb">id</span><span class="p">)</span>   
615        <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
616     
617        <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Waiting for estimate...&quot;</span><span class="p">)</span>
618       
619        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_read_pars</span><span class="p">)</span>
620        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_read_pars</span><span class="p">)</span>
621        <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">)</span>
622       
623        <span class="c"># Distance explorator</span>
624        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
625        <span class="bp">self</span><span class="o">.</span><span class="n">distance_explorator_ctl</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">&quot;Explore&quot;</span><span class="p">)</span>
626        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_explore</span><span class="p">,</span> <span class="nb">id</span> <span class="o">=</span> <span class="nb">id</span><span class="p">)</span>           
627       
628       
629        <span class="n">sizer_params</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
630
631        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
632        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">label_sugg</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
633        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
634        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_nfunc</span><span class="p">,</span>      <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
635        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
636        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
637        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
638        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_alpha</span><span class="p">,</span>      <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
639        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
640        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
641        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
642        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_dmax</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
643        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
644        <span class="n">sizer_params</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">distance_explorator_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
645                         <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
646
647        <span class="n">boxsizer2</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_params</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
648       
649        <span class="n">iy_vb</span> <span class="o">+=</span> <span class="mi">1</span>
650        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">boxsizer2</span><span class="p">,</span> <span class="p">(</span><span class="n">iy_vb</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
651                 <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
652
653
654        <span class="c"># ----- Results -----</span>
655        <span class="n">resbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Outputs&quot;</span><span class="p">)</span>
656        <span class="n">ressizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">resbox</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
657        <span class="n">ressizer</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">_default_width</span><span class="p">,</span> <span class="mi">50</span><span class="p">))</span>
658       
659        <span class="n">label_rg</span>       <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Rg&quot;</span><span class="p">)</span>
660        <span class="n">label_rg_unit</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;[A]&quot;</span><span class="p">)</span>
661        <span class="n">label_iq0</span>      <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;I(Q=0)&quot;</span><span class="p">)</span>
662        <span class="n">label_iq0_unit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;[A^(-1)]&quot;</span><span class="p">)</span>
663        <span class="n">label_bck</span>      <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Background&quot;</span><span class="p">)</span>
664        <span class="n">label_bck_unit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;[A^(-1)]&quot;</span><span class="p">)</span>
665        <span class="bp">self</span><span class="o">.</span><span class="n">rg_ctl</span>    <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
666        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Radius of gyration for the computed P(r).&quot;</span>
667        <span class="bp">self</span><span class="o">.</span><span class="n">rg_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
668        <span class="bp">self</span><span class="o">.</span><span class="n">iq0_ctl</span>   <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
669        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Scattering intensity at Q=0 for the computed P(r).&quot;</span>
670        <span class="bp">self</span><span class="o">.</span><span class="n">iq0_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
671        <span class="bp">self</span><span class="o">.</span><span class="n">bck_ctl</span>   <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
672        <span class="bp">self</span><span class="o">.</span><span class="n">bck_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Value of estimated constant background.&quot;</span><span class="p">)</span>
673       
674        <span class="n">label_time</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Computation time&quot;</span><span class="p">)</span>
675        <span class="n">label_time_unit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;secs&quot;</span><span class="p">)</span>
676        <span class="n">label_time</span><span class="o">.</span><span class="n">SetMinSize</span><span class="p">((</span><span class="mi">120</span><span class="p">,</span><span class="mi">20</span><span class="p">))</span>
677        <span class="n">label_chi2</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Chi2/dof&quot;</span><span class="p">)</span>
678        <span class="n">label_osc</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Oscillations&quot;</span><span class="p">)</span>
679        <span class="n">label_pos</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Positive fraction&quot;</span><span class="p">)</span>
680        <span class="n">label_pos_err</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;1-sigma positive fraction&quot;</span><span class="p">)</span>
681       
682        <span class="bp">self</span><span class="o">.</span><span class="n">time_ctl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
683        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Computation time for the last inversion, in seconds.&quot;</span>
684        <span class="bp">self</span><span class="o">.</span><span class="n">time_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
685       
686        <span class="bp">self</span><span class="o">.</span><span class="n">chi2_ctl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
687        <span class="bp">self</span><span class="o">.</span><span class="n">chi2_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Chi^2 over degrees of freedom.&quot;</span><span class="p">)</span>
688       
689        <span class="c"># Oscillation parameter</span>
690        <span class="bp">self</span><span class="o">.</span><span class="n">osc_ctl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
691        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Oscillation parameter. P(r) for a sphere has an &quot;</span>
692        <span class="n">hint_msg</span> <span class="o">+=</span> <span class="s">&quot; oscillation parameter of 1.1.&quot;</span>
693        <span class="bp">self</span><span class="o">.</span><span class="n">osc_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
694       
695        <span class="c"># Positive fraction figure of merit</span>
696        <span class="bp">self</span><span class="o">.</span><span class="n">pos_ctl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
697        <span class="n">hint_msg</span> <span class="o">=</span> <span class="s">&quot;Fraction of P(r) that is positive. &quot;</span>
698        <span class="n">hint_msg</span> <span class="o">+=</span> <span class="s">&quot;Theoretically, P(r) is defined positive.&quot;</span>
699        <span class="bp">self</span><span class="o">.</span><span class="n">pos_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">hint_msg</span><span class="p">)</span>
700       
701        <span class="c"># 1-simga positive fraction figure of merit</span>
702        <span class="bp">self</span><span class="o">.</span><span class="n">pos_err_ctl</span> <span class="o">=</span> <span class="n">OutputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">60</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
703        <span class="n">message</span>  <span class="o">=</span> <span class="s">&quot;Fraction of P(r) that is at least 1 standard deviation&quot;</span>
704        <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot; greater than zero.</span><span class="se">\n</span><span class="s">&quot;</span>
705        <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;This figure of merit tells you about the size of the &quot;</span>
706        <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;P(r) errors.</span><span class="se">\n</span><span class="s">&quot;</span>
707        <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;If it is close to 1 and the other figures of merit are bad,&quot;</span>
708        <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot; consider changing the maximum distance.&quot;</span>
709        <span class="bp">self</span><span class="o">.</span><span class="n">pos_err_ctl</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
710       
711        <span class="n">sizer_res</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
712
713        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
714        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_rg</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
715        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rg_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
716        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_rg_unit</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
717        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
718        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_iq0</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
719        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iq0_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
720        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_iq0_unit</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
721        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
722        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_bck</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
723        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bck_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
724        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_bck_unit</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
725        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
726        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_time</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
727        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">time_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
728        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_time_unit</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
729        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
730        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_chi2</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
731        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">chi2_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
732        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
733        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_osc</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
734        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">osc_ctl</span><span class="p">,</span>   <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
735
736        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
737        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_pos</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
738        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pos_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
739
740        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
741        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_pos_err</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
742        <span class="n">sizer_res</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pos_err_ctl</span><span class="p">,</span>  <span class="p">(</span><span class="n">iy</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
743
744        <span class="n">ressizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_res</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
745        <span class="n">iy_vb</span> <span class="o">+=</span> <span class="mi">1</span>
746        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ressizer</span><span class="p">,</span> <span class="p">(</span><span class="n">iy_vb</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
747                 <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
748
749        <span class="c"># ----- Buttons -----</span>
750        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
751        <span class="n">button_OK</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">&quot;Compute&quot;</span><span class="p">)</span>
752        <span class="n">button_OK</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Perform P(r) inversion.&quot;</span><span class="p">)</span>
753        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_invert</span><span class="p">,</span> <span class="nb">id</span> <span class="o">=</span> <span class="nb">id</span><span class="p">)</span>   
754       
755        <span class="bp">self</span><span class="o">.</span><span class="n">_set_reset_flag</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
756        <span class="bp">self</span><span class="o">.</span><span class="n">_set_save_flag</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
757        <span class="n">sizer_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
758        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
759        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_OK</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
760       
761        <span class="n">iy_vb</span> <span class="o">+=</span> <span class="mi">1</span>
762        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_button</span><span class="p">,</span> <span class="p">(</span><span class="n">iy_vb</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
763                 <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
764
765        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT_ENTER</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_invert</span><span class="p">)</span>
766
767        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">vbox</span><span class="p">)</span>
768       
769    <span class="k">def</span> <span class="nf">_on_accept_alpha</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
770        <span class="sd">&quot;&quot;&quot;</span>
771<span class="sd">        User has accepted the estimated alpha, </span>
772<span class="sd">        set it as part of the input parameters</span>
773<span class="sd">        &quot;&quot;&quot;</span>
774        <span class="k">try</span><span class="p">:</span>
775            <span class="n">alpha</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">GetLabel</span><span class="p">()</span>
776            <span class="n">tmp</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
777            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
778        <span class="k">except</span><span class="p">:</span>
779            <span class="c"># No estimate or bad estimate, either do nothing</span>
780            <span class="c">#import sys</span>
781            <span class="k">print</span> <span class="s">&quot;InversionControl._on_accept_alpha: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span>
782            <span class="k">pass</span>
783   
784    <span class="k">def</span> <span class="nf">_on_accept_nterms</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
785        <span class="sd">&quot;&quot;&quot;</span>
786<span class="sd">        User has accepted the estimated number of terms, </span>
787<span class="sd">        set it as part of the input parameters</span>
788<span class="sd">        &quot;&quot;&quot;</span>
789        <span class="k">try</span><span class="p">:</span>
790            <span class="n">nterms</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">GetLabel</span><span class="p">()</span>
791            <span class="n">tmp</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">nterms</span><span class="p">)</span>
792            <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">nterms</span><span class="p">)</span>
793        <span class="k">except</span><span class="p">:</span>
794            <span class="c"># No estimate or bad estimate, either do nothing</span>
795            <span class="kn">import</span> <span class="nn">sys</span>
796            <span class="k">print</span> <span class="s">&quot;InversionControl._on_accept_nterms: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span>
797            <span class="k">pass</span>
798       
799<div class="viewcode-block" id="InversionControl.clear_panel"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.clear_panel">[docs]</a>    <span class="k">def</span> <span class="nf">clear_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
800        <span class="sd">&quot;&quot;&quot;</span>
801<span class="sd">        &quot;&quot;&quot;</span>
802        <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
803        <span class="bp">self</span><span class="o">.</span><span class="n">on_reset</span><span class="p">(</span><span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
804        </div>
805<div class="viewcode-block" id="InversionControl.on_reset"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.InversionControl.on_reset">[docs]</a>    <span class="k">def</span> <span class="nf">on_reset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
806        <span class="sd">&quot;&quot;&quot;</span>
807<span class="sd">        Resets inversion parameters</span>
808<span class="sd">        &quot;&quot;&quot;</span>
809        <span class="bp">self</span><span class="o">.</span><span class="n">nfunc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">DEFAULT_NFUNC</span>
810        <span class="bp">self</span><span class="o">.</span><span class="n">d_max</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">DEFAULT_DMAX</span>
811        <span class="bp">self</span><span class="o">.</span><span class="n">alpha</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">DEFAULT_ALPHA</span>
812        <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
813        <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
814        <span class="bp">self</span><span class="o">.</span><span class="n">time_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
815        <span class="bp">self</span><span class="o">.</span><span class="n">rg_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
816        <span class="bp">self</span><span class="o">.</span><span class="n">iq0_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
817        <span class="bp">self</span><span class="o">.</span><span class="n">bck_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
818        <span class="bp">self</span><span class="o">.</span><span class="n">chi2_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
819        <span class="bp">self</span><span class="o">.</span><span class="n">osc_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
820        <span class="bp">self</span><span class="o">.</span><span class="n">pos_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
821        <span class="bp">self</span><span class="o">.</span><span class="n">pos_err_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
822        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
823        <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
824        <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
825        <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span>
826        <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">()</span>
827        </div>
828    <span class="k">def</span> <span class="nf">_on_pars_changed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
829        <span class="sd">&quot;&quot;&quot;</span>
830<span class="sd">        Called when an input parameter has changed</span>
831<span class="sd">        We will estimate the alpha parameter behind the</span>
832<span class="sd">        scenes. </span>
833<span class="sd">        &quot;&quot;&quot;</span>
834        <span class="n">flag</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">dmax</span><span class="p">,</span> <span class="n">nfunc</span><span class="p">,</span> <span class="n">qmin</span><span class="p">,</span> <span class="n">qmax</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_read_pars</span><span class="p">()</span>
835        <span class="n">has_bck</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">()</span>
836       
837        <span class="c"># If the pars are valid, estimate alpha</span>
838        <span class="k">if</span> <span class="n">flag</span><span class="p">:</span>
839            <span class="bp">self</span><span class="o">.</span><span class="n">nterms_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
840            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_estimate_ctl</span><span class="o">.</span><span class="n">Enable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
841           
842            <span class="n">dataset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
843            <span class="k">if</span> <span class="n">dataset</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">dataset</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s">&quot;&quot;</span><span class="p">:</span>
844                <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">estimate_plot_inversion</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">,</span> <span class="n">nfunc</span><span class="o">=</span><span class="n">nfunc</span><span class="p">,</span> 
845                                                 <span class="n">d_max</span><span class="o">=</span><span class="n">dmax</span><span class="p">,</span>
846                                                 <span class="n">q_min</span><span class="o">=</span><span class="n">qmin</span><span class="p">,</span> <span class="n">q_max</span><span class="o">=</span><span class="n">qmax</span><span class="p">,</span>
847                                                 <span class="n">bck</span><span class="o">=</span><span class="n">has_bck</span><span class="p">,</span> 
848                                                 <span class="n">height</span><span class="o">=</span><span class="n">height</span><span class="p">,</span>
849                                                 <span class="n">width</span><span class="o">=</span><span class="n">width</span><span class="p">)</span>
850       
851    <span class="k">def</span> <span class="nf">_read_pars</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
852        <span class="sd">&quot;&quot;&quot;</span>
853<span class="sd">        &quot;&quot;&quot;</span>   
854        <span class="n">alpha</span> <span class="o">=</span> <span class="mi">0</span>
855        <span class="n">nfunc</span> <span class="o">=</span> <span class="mi">5</span>
856        <span class="n">dmax</span>  <span class="o">=</span> <span class="mi">120</span>
857        <span class="n">qmin</span>  <span class="o">=</span> <span class="mi">0</span>
858        <span class="n">qmax</span>  <span class="o">=</span> <span class="mi">0</span>
859        <span class="n">height</span> <span class="o">=</span> <span class="mi">0</span>
860        <span class="n">width</span>  <span class="o">=</span> <span class="mi">0</span>
861        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
862        <span class="c"># Read slit height</span>
863        <span class="k">try</span><span class="p">:</span>
864            <span class="n">height_str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
865            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">height_str</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">())</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
866                <span class="n">height</span> <span class="o">=</span> <span class="mi">0</span>
867            <span class="k">else</span><span class="p">:</span>
868                <span class="n">height</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">height_str</span><span class="p">)</span>
869                <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
870                <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
871        <span class="k">except</span><span class="p">:</span>
872            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
873            <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
874            <span class="bp">self</span><span class="o">.</span><span class="n">sheight_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
875           
876        <span class="c"># Read slit width</span>
877        <span class="k">try</span><span class="p">:</span>
878            <span class="n">width_str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
879            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">width_str</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">())</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span>
880                <span class="n">width</span> <span class="o">=</span> <span class="mi">0</span>
881            <span class="k">else</span><span class="p">:</span>
882                <span class="n">width</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">width_str</span><span class="p">)</span>
883                <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
884                <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
885        <span class="k">except</span><span class="p">:</span>
886            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
887            <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
888            <span class="bp">self</span><span class="o">.</span><span class="n">swidth_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
889       
890        <span class="c"># Read alpha</span>
891        <span class="k">try</span><span class="p">:</span>
892            <span class="n">alpha</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
893            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
894            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
895        <span class="k">except</span><span class="p">:</span>
896            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
897            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
898            <span class="bp">self</span><span class="o">.</span><span class="n">alpha_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
899       
900        <span class="c"># Read d_max    </span>
901        <span class="k">try</span><span class="p">:</span>
902            <span class="n">dmax</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
903            <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
904            <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
905        <span class="k">except</span><span class="p">:</span>
906            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
907            <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
908            <span class="bp">self</span><span class="o">.</span><span class="n">dmax_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
909           
910        <span class="c"># Read nfunc</span>
911        <span class="k">try</span><span class="p">:</span>
912            <span class="n">nfunc</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
913            <span class="n">npts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">get_npts</span><span class="p">()</span>
914            <span class="k">if</span> <span class="n">npts</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">nfunc</span> <span class="o">&gt;</span> <span class="n">npts</span><span class="p">:</span>
915                <span class="n">message</span> <span class="o">=</span> <span class="s">&quot;Number of function terms should be smaller &quot;</span>
916                <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;than the number of points&quot;</span>
917                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">message</span><span class="p">))</span>
918                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">message</span>
919            <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
920            <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
921        <span class="k">except</span><span class="p">:</span>
922            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
923            <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
924            <span class="bp">self</span><span class="o">.</span><span class="n">nfunc_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
925       
926        <span class="c"># Read qmin</span>
927        <span class="k">try</span><span class="p">:</span>
928            <span class="n">qmin_str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
929            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">qmin_str</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">())</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
930                <span class="n">qmin</span> <span class="o">=</span> <span class="bp">None</span>
931            <span class="k">else</span><span class="p">:</span>
932                <span class="n">qmin</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">qmin_str</span><span class="p">)</span>
933                <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
934                <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
935        <span class="k">except</span><span class="p">:</span>
936            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
937            <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
938            <span class="bp">self</span><span class="o">.</span><span class="n">qmin_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
939       
940        <span class="c"># Read qmax</span>
941        <span class="k">try</span><span class="p">:</span>
942            <span class="n">qmax_str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
943            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">qmax_str</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">())</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
944                <span class="n">qmax</span> <span class="o">=</span> <span class="bp">None</span>
945            <span class="k">else</span><span class="p">:</span>
946                <span class="n">qmax</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">qmax_str</span><span class="p">)</span>
947                <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
948                <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
949        <span class="k">except</span><span class="p">:</span>
950            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
951            <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
952            <span class="bp">self</span><span class="o">.</span><span class="n">qmax_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
953       
954        <span class="k">return</span> <span class="n">flag</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">dmax</span><span class="p">,</span> <span class="n">nfunc</span><span class="p">,</span> <span class="n">qmin</span><span class="p">,</span> <span class="n">qmax</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">width</span>
955   
956    <span class="k">def</span> <span class="nf">_on_explore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
957        <span class="sd">&quot;&quot;&quot;</span>
958<span class="sd">        Invoke the d_max exploration dialog</span>
959<span class="sd">        &quot;&quot;&quot;</span>
960        <span class="kn">from</span> <span class="nn">explore_dialog</span> <span class="kn">import</span> <span class="n">ExploreDialog</span>
961        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">_last_pr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
962            <span class="n">pr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">_create_plot_pr</span><span class="p">()</span>
963            <span class="n">dialog</span> <span class="o">=</span> <span class="n">ExploreDialog</span><span class="p">(</span><span class="n">pr</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">)</span>
964            <span class="n">dialog</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
965        <span class="k">else</span><span class="p">:</span>
966            <span class="n">message</span> <span class="o">=</span> <span class="s">&quot;No data to analyze. Please load a data set to proceed.&quot;</span>
967            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">message</span><span class="p">))</span>
968           
969    <span class="k">def</span> <span class="nf">_on_invert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="p">):</span>
970        <span class="sd">&quot;&quot;&quot;</span>
971<span class="sd">        Perform inversion</span>
972<span class="sd">        </span>
973<span class="sd">        :param silent: when True, there will be no output for the user </span>
974<span class="sd">        </span>
975<span class="sd">        &quot;&quot;&quot;</span>
976        <span class="c"># Get the data from the form</span>
977        <span class="c"># Push it to the manager</span>
978       
979        <span class="n">flag</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">dmax</span><span class="p">,</span> <span class="n">nfunc</span><span class="p">,</span> <span class="n">qmin</span><span class="p">,</span> <span class="n">qmax</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_read_pars</span><span class="p">()</span>
980        <span class="n">has_bck</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bck_chk</span><span class="o">.</span><span class="n">IsChecked</span><span class="p">()</span>
981       
982        <span class="k">if</span> <span class="n">flag</span><span class="p">:</span>
983            <span class="n">dataset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
984            <span class="k">if</span> <span class="n">dataset</span><span class="o">==</span><span class="bp">None</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">dataset</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span>
985                <span class="n">message</span> <span class="o">=</span> <span class="s">&quot;No data to invert. Select a data set before&quot;</span>
986                <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot; proceeding with P(r) inversion.&quot;</span>
987                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">message</span><span class="p">))</span>
988            <span class="k">else</span><span class="p">:</span>
989                <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">setup_plot_inversion</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">,</span> <span class="n">nfunc</span><span class="o">=</span><span class="n">nfunc</span><span class="p">,</span> 
990                                                  <span class="n">d_max</span><span class="o">=</span><span class="n">dmax</span><span class="p">,</span>
991                                                  <span class="n">q_min</span><span class="o">=</span><span class="n">qmin</span><span class="p">,</span> <span class="n">q_max</span><span class="o">=</span><span class="n">qmax</span><span class="p">,</span>
992                                                  <span class="n">bck</span><span class="o">=</span><span class="n">has_bck</span><span class="p">,</span>
993                                                  <span class="n">height</span><span class="o">=</span><span class="n">height</span><span class="p">,</span>
994                                                  <span class="n">width</span><span class="o">=</span><span class="n">width</span><span class="p">)</span>
995        <span class="k">else</span><span class="p">:</span>
996            <span class="n">message</span> <span class="o">=</span> <span class="s">&quot;The P(r) form contains invalid values: &quot;</span>
997            <span class="n">message</span> <span class="o">+=</span> <span class="s">&quot;please submit it again.&quot;</span>
998            <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">message</span><span class="p">))</span>
999       
1000    <span class="k">def</span> <span class="nf">_change_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evt</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">filepath</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
1001        <span class="sd">&quot;&quot;&quot;</span>
1002<span class="sd">        Choose a new input file for I(q)</span>
1003<span class="sd">        &quot;&quot;&quot;</span>
1004        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
1005            <span class="bp">self</span><span class="o">.</span><span class="n">plot_data</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
1006            <span class="k">try</span><span class="p">:</span>
1007                <span class="bp">self</span><span class="o">.</span><span class="n">_manager</span><span class="o">.</span><span class="n">show_data</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">reset</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
1008                <span class="bp">self</span><span class="o">.</span><span class="n">_on_pars_changed</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
1009                <span class="bp">self</span><span class="o">.</span><span class="n">_on_invert</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>
1010            <span class="k">except</span><span class="p">:</span>
1011                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;InversionControl._change_file: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_value</span>
1012                <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>                   
1013</div>
1014<div class="viewcode-block" id="HelpDialog"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.HelpDialog">[docs]</a><span class="k">class</span> <span class="nc">HelpDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
1015    <span class="sd">&quot;&quot;&quot;</span>
1016<span class="sd">    &quot;&quot;&quot;</span>
1017    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">):</span>
1018        <span class="sd">&quot;&quot;&quot;</span>
1019<span class="sd">        &quot;&quot;&quot;</span>
1020        <span class="kn">from</span> <span class="nn">sas.pr.invertor</span> <span class="kn">import</span> <span class="n">help</span>
1021        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span> <span class="mi">450</span><span class="p">))</span>
1022        <span class="bp">self</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">&quot;P(r) help&quot;</span><span class="p">)</span> 
1023        <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">variant</span><span class="o">=</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
1024
1025        <span class="n">vbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
1026
1027        <span class="n">explanation</span> <span class="o">=</span> <span class="n">help</span><span class="p">()</span>
1028           
1029        <span class="n">label_explain</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">explanation</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">360</span><span class="p">,</span> <span class="mi">350</span><span class="p">))</span>
1030           
1031        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_explain</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
1032
1033
1034        <span class="n">static_line</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticLine</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
1035        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">static_line</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1036       
1037        <span class="n">button_OK</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">,</span> <span class="s">&quot;OK&quot;</span><span class="p">)</span>
1038        <span class="c">#button_Cancel = wx.Button(self, wx.ID_CANCEL, &quot;Cancel&quot;)</span>
1039       
1040        <span class="n">sizer_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
1041        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1042        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_OK</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
1043       
1044        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_button</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
1045
1046        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">vbox</span><span class="p">)</span>
1047        <span class="bp">self</span><span class="o">.</span><span class="n">SetAutoLayout</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
1048       
1049        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
1050        <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
1051</div>
1052<div class="viewcode-block" id="PrDistDialog"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.PrDistDialog">[docs]</a><span class="k">class</span> <span class="nc">PrDistDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
1053    <span class="sd">&quot;&quot;&quot;</span>
1054<span class="sd">    Property dialog to let the user change the number</span>
1055<span class="sd">    of points on the P(r) plot.</span>
1056<span class="sd">    &quot;&quot;&quot;</span>
1057    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">):</span>
1058        <span class="kn">from</span> <span class="nn">sas.pr.invertor</span> <span class="kn">import</span> <span class="n">help</span>
1059        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span> <span class="mi">120</span><span class="p">))</span>
1060        <span class="bp">self</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">&quot;P(r) distribution&quot;</span><span class="p">)</span> 
1061       
1062
1063        <span class="n">vbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
1064       
1065        <span class="n">label_npts</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;Number of points&quot;</span><span class="p">)</span>
1066        <span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span> <span class="o">=</span> <span class="n">PrTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
1067                 
1068        <span class="n">pars_sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
1069        <span class="n">iy</span> <span class="o">=</span> <span class="mi">0</span>
1070        <span class="n">pars_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">label_npts</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
1071        <span class="n">pars_sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1072       
1073        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">pars_sizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ALL</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
1074
1075        <span class="n">static_line</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticLine</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
1076        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">static_line</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1077       
1078        <span class="n">button_OK</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">,</span> <span class="s">&quot;OK&quot;</span><span class="p">)</span>
1079        <span class="bp">self</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_checkValues</span><span class="p">,</span> <span class="n">button_OK</span><span class="p">)</span>
1080        <span class="n">button_Cancel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">,</span> <span class="s">&quot;Cancel&quot;</span><span class="p">)</span>
1081       
1082        <span class="n">sizer_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
1083        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
1084        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_OK</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
1085        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button_Cancel</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
1086                         <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>       
1087        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_button</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
1088
1089        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">vbox</span><span class="p">)</span>
1090        <span class="bp">self</span><span class="o">.</span><span class="n">SetAutoLayout</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
1091       
1092        <span class="bp">self</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span>
1093        <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
1094
1095    <span class="k">def</span> <span class="nf">_checkValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
1096        <span class="sd">&quot;&quot;&quot;</span>
1097<span class="sd">        Check the dialog content.</span>
1098<span class="sd">        &quot;&quot;&quot;</span>
1099        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
1100        <span class="k">try</span><span class="p">:</span>
1101            <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
1102            <span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
1103            <span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
1104        <span class="k">except</span><span class="p">:</span>
1105            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
1106            <span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
1107            <span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
1108        <span class="k">if</span> <span class="n">flag</span><span class="p">:</span>
1109            <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
1110
1111<div class="viewcode-block" id="PrDistDialog.get_content"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.PrDistDialog.get_content">[docs]</a>    <span class="k">def</span> <span class="nf">get_content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1112        <span class="sd">&quot;&quot;&quot;</span>
1113<span class="sd">        Return the content of the dialog.</span>
1114<span class="sd">        At this point the values have already been</span>
1115<span class="sd">        checked.</span>
1116<span class="sd">        &quot;&quot;&quot;</span>
1117        <span class="n">value</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
1118        <span class="k">return</span> <span class="n">value</span>
1119    </div>
1120<div class="viewcode-block" id="PrDistDialog.set_content"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.pr.html#sas.perspectives.pr.inversion_panel.PrDistDialog.set_content">[docs]</a>    <span class="k">def</span> <span class="nf">set_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">npts</span><span class="p">):</span>
1121        <span class="sd">&quot;&quot;&quot;</span>
1122<span class="sd">        Initialize the content of the dialog.</span>
1123<span class="sd">        &quot;&quot;&quot;</span>
1124        <span class="bp">self</span><span class="o">.</span><span class="n">npts_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%i</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">npts</span><span class="p">)</span>
1125
1126<span class="c">##### testing code ############################################################</span></div></div>
1127<span class="sd">&quot;&quot;&quot;</span>
1128<span class="sd">Example: ::</span>
1129
1130<span class="sd">class TestPlot:</span>
1131<span class="sd">    def __init__(self, text):</span>
1132<span class="sd">        self.name = text</span>
1133<span class="sd">    </span>
1134<span class="sd">class MyApp(wx.App):</span>
1135<span class="sd">    def OnInit(self):</span>
1136<span class="sd">        wx.InitAllImageHandlers()</span>
1137<span class="sd">        dialog = PrDistDialog(None, -1)</span>
1138<span class="sd">        if dialog.ShowModal() == wx.ID_OK:</span>
1139<span class="sd">            pass</span>
1140<span class="sd">        dialog.Destroy()</span>
1141<span class="sd">        </span>
1142<span class="sd">        return 1</span>
1143
1144<span class="sd"># end of class MyApp</span>
1145
1146<span class="sd">if __name__ == &quot;__main__&quot;:</span>
1147<span class="sd">    app = MyApp(0)</span>
1148<span class="sd">    app.MainLoop()</span>
1149<span class="sd">    </span>
1150<span class="sd">&quot;&quot;&quot;</span>
1151<span class="c">##### end of testing code #####################################################    </span>
1152</pre></div>
1153
1154          </div>
1155        </div>
1156      </div>
1157      <div class="sphinxsidebar">
1158        <div class="sphinxsidebarwrapper">
1159<div id="searchbox" style="display: none">
1160  <h3>Quick search</h3>
1161    <form class="search" action="../../../../search.html" method="get">
1162      <input type="text" name="q" />
1163      <input type="submit" value="Go" />
1164      <input type="hidden" name="check_keywords" value="yes" />
1165      <input type="hidden" name="area" value="default" />
1166    </form>
1167    <p class="searchtip" style="font-size: 90%">
1168    Enter search terms or a module, class or function name.
1169    </p>
1170</div>
1171<script type="text/javascript">$('#searchbox').show(0);</script>
1172        </div>
1173      </div>
1174      <div class="clearer"></div>
1175    </div>
1176    <div class="related">
1177      <h3>Navigation</h3>
1178      <ul>
1179        <li class="right" style="margin-right: 10px">
1180          <a href="../../../../genindex.html" title="General Index"
1181             >index</a></li>
1182        <li class="right" >
1183          <a href="../../../../py-modindex.html" title="Python Module Index"
1184             >modules</a> |</li>
1185        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
1186          <li><a href="../../../index.html" >Module code</a> &raquo;</li> 
1187      </ul>
1188    </div>
1189    <div class="footer">
1190        &copy; Copyright 2013, The SasView Project.
1191      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
1192    </div>
1193  </body>
1194</html>
Note: See TracBrowser for help on using the repository browser.