Changeset 1709 for sphinxdocs/build/html/_modules/GSASIIimgGUI.html
- Timestamp:
- Mar 14, 2015 5:35:03 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sphinxdocs/build/html/_modules/GSASIIimgGUI.html
r1513 r1709 52 52 <span class="c">#GSASII - image data display routines</span> 53 53 <span class="c">########### SVN repository information ###################</span> 54 <span class="c"># $Date: 201 4-08-20 13:31:24 -0500 (Wed, 20 Aug 2014) $</span>55 <span class="c"># $Author: toby$</span>56 <span class="c"># $Revision: 1 472$</span>57 <span class="c"># $URL: https://subversion.x or.aps.anl.gov/pyGSAS/trunk/GSASIIimgGUI.py $</span>58 <span class="c"># $Id: GSASIIimgGUI.py 1 472 2014-08-20 18:31:24Z toby$</span>54 <span class="c"># $Date: 2015-02-24 07:09:20 +0900 (Tue, 24 Feb 2015) $</span> 55 <span class="c"># $Author: vondreele $</span> 56 <span class="c"># $Revision: 1667 $</span> 57 <span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIIimgGUI.py $</span> 58 <span class="c"># $Id: GSASIIimgGUI.py 1667 2015-02-23 22:09:20Z vondreele $</span> 59 59 <span class="c">########### SVN repository information ###################</span> 60 60 <span class="sd">'''</span> … … 65 65 66 66 <span class="sd">'''</span> 67 <span class="kn">import</span> <span class="nn">os.path</span> 67 68 <span class="kn">import</span> <span class="nn">wx</span> 68 69 <span class="kn">import</span> <span class="nn">wx.lib.scrolledpanel</span> <span class="kn">as</span> <span class="nn">wxscroll</span> … … 72 73 <span class="kn">import</span> <span class="nn">copy</span> 73 74 <span class="kn">import</span> <span class="nn">GSASIIpath</span> 74 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1 472$"</span><span class="p">)</span>75 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1667 $"</span><span class="p">)</span> 75 76 <span class="kn">import</span> <span class="nn">GSASIIimage</span> <span class="kn">as</span> <span class="nn">G2img</span> 76 77 <span class="kn">import</span> <span class="nn">GSASIImath</span> <span class="kn">as</span> <span class="nn">G2mth</span> … … 78 79 <span class="kn">import</span> <span class="nn">GSASIIIO</span> <span class="kn">as</span> <span class="nn">G2IO</span> 79 80 <span class="kn">import</span> <span class="nn">GSASIIgrid</span> <span class="kn">as</span> <span class="nn">G2gd</span> 81 <span class="kn">import</span> <span class="nn">GSASIIctrls</span> <span class="kn">as</span> <span class="nn">G2G</span> 80 82 <span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span> 81 83 … … 92 94 <span class="c">##### Image Data</span> 93 95 <span class="c">################################################################################</span> 96 94 97 <span class="k">def</span> <span class="nf">UpdateImageData</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">):</span> 95 98 … … 103 106 <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">'</span><span class="si">%.3f</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'pixelSize'</span><span class="p">][</span><span class="nb">id</span><span class="p">]))</span> 104 107 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 105 106 107 108 108 109 <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">:</span> … … 146 147 <span class="k">if</span> <span class="s">'DetDepth'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 147 148 <span class="n">data</span><span class="p">[</span><span class="s">'DetDepth'</span><span class="p">]</span> <span class="o">=</span> <span class="mf">0.</span> 148 <span class="n">data</span><span class="p">[</span><span class="s">'DetDepthRef'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>149 149 <span class="k">if</span> <span class="s">'SampleAbs'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 150 150 <span class="n">data</span><span class="p">[</span><span class="s">'SampleShape'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'Cylinder'</span> … … 155 155 <span class="k">elif</span> <span class="s">'SASD'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'type'</span><span class="p">]:</span> 156 156 <span class="n">data</span><span class="p">[</span><span class="s">'binType'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'log(q)'</span> 157 <span class="k">if</span> <span class="s">'varyList'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 158 <span class="n">data</span><span class="p">[</span><span class="s">'varyList'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s">'dist'</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">'det-X'</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">'det-Y'</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">'tilt'</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">'phi'</span><span class="p">:</span><span class="bp">True</span><span class="p">,</span><span class="s">'dep'</span><span class="p">:</span><span class="bp">False</span><span class="p">,</span><span class="s">'wave'</span><span class="p">:</span><span class="bp">False</span><span class="p">}</span> 157 159 <span class="c">#end patch</span> 158 160 … … 166 168 <span class="k">def</span> <span class="nf">OnRecalibrate</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 167 169 <span class="n">G2img</span><span class="o">.</span><span class="n">ImageRecalibrate</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span> 168 <span class="n"> UpdateImageControls</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>170 <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span> 169 171 170 172 <span class="k">def</span> <span class="nf">OnClearCalib</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> … … 176 178 177 179 <span class="k">def</span> <span class="nf">OnIntegrate</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 180 <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">masks</span><span class="p">)</span> 178 181 <span class="n">blkSize</span> <span class="o">=</span> <span class="mi">128</span> <span class="c">#this seems to be optimal; will break in polymask if >1024</span> 179 182 <span class="n">Nx</span><span class="p">,</span><span class="n">Ny</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'size'</span><span class="p">]</span> … … 268 271 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span> 269 272 <span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">Image</span><span class="p">,</span> <span class="s">'Masks'</span><span class="p">),</span><span class="n">Masks</span><span class="p">)</span> 273 <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">Masks</span><span class="p">)</span> 270 274 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">backImage</span><span class="p">):</span> 271 275 <span class="n">G2frame</span><span class="o">.</span><span class="n">Integrate</span> <span class="o">=</span> <span class="n">G2img</span><span class="o">.</span><span class="n">ImageIntegrate</span><span class="p">(</span><span class="n">image</span><span class="o">+</span><span class="n">backImage</span><span class="p">,</span><span class="n">Data</span><span class="p">,</span><span class="n">Masks</span><span class="p">,</span><span class="n">blkSize</span><span class="p">,</span><span class="n">dlgp</span><span class="p">)</span> … … 336 340 <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> 337 341 <span class="n">filename</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPath</span><span class="p">()</span> 342 <span class="c"># make sure extension is .imctrl</span> 343 <span class="n">filename</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">filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s">'.imctrl'</span> 338 344 <span class="n">File</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="s">'w'</span><span class="p">)</span> 339 345 <span class="n">save</span> <span class="o">=</span> <span class="p">{}</span> … … 384 390 <span class="n">data</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">save</span><span class="p">)</span> 385 391 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">Image</span><span class="p">,</span> <span class="s">'Image Controls'</span><span class="p">),</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">data</span><span class="p">))</span> 386 <span class="n"> UpdateImageControls</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>392 <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span> 387 393 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 388 394 … … 512 518 <span class="k">def</span> <span class="nf">CalibCoeffSizer</span><span class="p">():</span> 513 519 514 <span class="k">def</span> <span class="nf">OnWavelength</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 515 <span class="k">try</span><span class="p">:</span> 516 <span class="n">wave</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">waveSel</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span> 517 <span class="k">if</span> <span class="n">wave</span> <span class="o"><</span> <span class="o">.</span><span class="mo">01</span><span class="p">:</span> 520 <span class="k">def</span> <span class="nf">OnCalRef</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 521 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 522 <span class="n">name</span> <span class="o">=</span> <span class="n">Indx</span><span class="p">[</span><span class="n">Obj</span><span class="p">]</span> 523 <span class="n">data</span><span class="p">[</span><span class="s">'varyList'</span><span class="p">][</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> 524 525 <span class="k">def</span> <span class="nf">OnCalVal</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 526 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 527 <span class="n">name</span> <span class="o">=</span> <span class="n">Indx</span><span class="p">[</span><span class="n">Obj</span><span class="p">]</span> 528 <span class="k">try</span><span class="p">:</span> 529 <span class="n">value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span> 530 <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'wave'</span> <span class="ow">and</span> <span class="n">value</span> <span class="o"><</span> <span class="mf">0.01</span><span class="p">:</span> 518 531 <span class="k">raise</span> <span class="ne">ValueError</span> 519 <span class="n">data</span><span class="p">[</span><span class="s">'wavelength'</span><span class="p">]</span> <span class="o">=</span> <span class="n">wave</span>520 532 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 521 <span class="k">pass</span> 522 <span class="n">waveSel</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%7.5f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'wavelength'</span><span class="p">]))</span> <span class="c">#reset in case of error</span> 523 524 <span class="k">def</span> <span class="nf">OnDetDepthRef</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 525 <span class="n">data</span><span class="p">[</span><span class="s">'DetDepthRef'</span><span class="p">]</span> <span class="o">=</span> <span class="n">penSel</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> 526 527 <span class="k">def</span> <span class="nf">OnDetDepth</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 528 <span class="k">try</span><span class="p">:</span> 529 <span class="n">data</span><span class="p">[</span><span class="s">'DetDepth'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">penVal</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span> 530 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 531 <span class="k">pass</span> 532 <span class="n">penVal</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%6.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'DetDepth'</span><span class="p">]))</span> <span class="c">#reset in case of error </span> 533 <span class="n">value</span> <span class="o">=</span> <span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> 534 <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'dist'</span><span class="p">:</span> 535 <span class="n">data</span><span class="p">[</span><span class="s">'distance'</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 536 <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'det-X'</span><span class="p">:</span> 537 <span class="n">data</span><span class="p">[</span><span class="s">'center'</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 538 <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'det-Y'</span><span class="p">:</span> 539 <span class="n">data</span><span class="p">[</span><span class="s">'center'</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 540 <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'tilt'</span><span class="p">:</span> 541 <span class="n">data</span><span class="p">[</span><span class="s">'tilt'</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 542 <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'phi'</span><span class="p">:</span> 543 <span class="n">data</span><span class="p">[</span><span class="s">'rotation'</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 544 <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'wave'</span><span class="p">:</span> 545 <span class="n">data</span><span class="p">[</span><span class="s">'wavelength'</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 546 <span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s">'dep'</span><span class="p">:</span> 547 <span class="n">data</span><span class="p">[</span><span class="s">'DetDepth'</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 548 <span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> 549 <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">%</span><span class="p">(</span><span class="n">value</span><span class="p">))</span> 533 550 534 551 <span class="n">calibSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> … … 536 553 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span> 537 554 <span class="n">cent</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'center'</span><span class="p">]</span> 538 <span class="k">for</span> <span class="n">axis</span><span class="p">,</span><span class="n">cnt</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">([</span><span class="s">'X'</span><span class="p">,</span><span class="s">'Y'</span><span class="p">],</span><span class="n">cent</span><span class="p">):</span> 539 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Beam center '</span><span class="o">+</span><span class="n">axis</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 540 <span class="n">centText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%7.2f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">cnt</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_READONLY</span><span class="p">)</span> 541 <span class="n">centText</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span> 542 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">centText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 543 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Wavelength'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 544 <span class="n">waveSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%7.5f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'wavelength'</span><span class="p">])),</span> 545 <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> 546 <span class="n">waveSel</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="n">OnWavelength</span><span class="p">)</span> 547 <span class="n">waveSel</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnWavelength</span><span class="p">)</span> 548 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">waveSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 549 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Distance'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 550 <span class="n">distSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%8.2f</span><span class="s">"</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'distance'</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_READONLY</span><span class="p">)</span> 551 <span class="n">distSel</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span> 552 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">distSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 553 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Tilt angle'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 554 <span class="n">tiltSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%9.3f</span><span class="s">"</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'tilt'</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_READONLY</span><span class="p">)</span> 555 <span class="n">tiltSel</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span> 556 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">tiltSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 557 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Tilt rotation'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 558 <span class="n">rotSel</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%9.3f</span><span class="s">"</span><span class="o">%</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'rotation'</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_READONLY</span><span class="p">)</span> 559 <span class="n">rotSel</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span> 560 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">rotSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 555 <span class="n">Names</span> <span class="o">=</span> <span class="p">[</span><span class="s">'det-X'</span><span class="p">,</span><span class="s">'det-Y'</span><span class="p">,</span><span class="s">'wave'</span><span class="p">,</span><span class="s">'dist'</span><span class="p">,</span><span class="s">'tilt'</span><span class="p">,</span><span class="s">'phi'</span><span class="p">]</span> 561 556 <span class="k">if</span> <span class="s">'PWDR'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'type'</span><span class="p">]:</span> 562 <span class="n">penSel</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'Penetration?'</span><span class="p">)</span> 563 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">penSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 564 <span class="n">penSel</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="n">OnDetDepthRef</span><span class="p">)</span> 565 <span class="n">penSel</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'DetDepthRef'</span><span class="p">])</span> 566 <span class="n">penVal</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%6.5f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'DetDepth'</span><span class="p">])),</span> 567 <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> 568 <span class="n">penVal</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="n">OnDetDepth</span><span class="p">)</span> 569 <span class="n">penVal</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnDetDepth</span><span class="p">)</span> 570 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">penVal</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 571 557 <span class="n">Names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">'dep'</span><span class="p">)</span> 558 <span class="n">Parms</span> <span class="o">=</span> <span class="p">{</span><span class="s">'dist'</span><span class="p">:[</span><span class="s">'Distance'</span><span class="p">,</span><span class="s">'</span><span class="si">%.3f</span><span class="s">'</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">'distance'</span><span class="p">]],</span><span class="s">'det-X'</span><span class="p">:[</span><span class="s">'Beam center X'</span><span class="p">,</span><span class="s">'</span><span class="si">%.3f</span><span class="s">'</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">'center'</span><span class="p">][</span><span class="mi">0</span><span class="p">]],</span> 559 <span class="s">'det-Y'</span><span class="p">:[</span><span class="s">'Beam center X'</span><span class="p">,</span><span class="s">'</span><span class="si">%.3f</span><span class="s">'</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">'center'</span><span class="p">][</span><span class="mi">1</span><span class="p">]],</span><span class="s">'tilt'</span><span class="p">:[</span><span class="s">'Tilt angle'</span><span class="p">,</span><span class="s">'</span><span class="si">%.3f</span><span class="s">'</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">'tilt'</span><span class="p">]],</span> 560 <span class="s">'phi'</span><span class="p">:[</span><span class="s">'Tilt rotation'</span><span class="p">,</span><span class="s">'</span><span class="si">%.2f</span><span class="s">'</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">'rotation'</span><span class="p">]],</span><span class="s">'dep'</span><span class="p">:[</span><span class="s">'Penetration'</span><span class="p">,</span><span class="s">'</span><span class="si">%.2f</span><span class="s">'</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">'DetDepth'</span><span class="p">]],</span> 561 <span class="s">'wave'</span><span class="p">:[</span><span class="s">'Wavelength'</span><span class="p">,</span><span class="s">'</span><span class="si">%.6f</span><span class="s">'</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="s">'wavelength'</span><span class="p">]]}</span> 562 <span class="n">Indx</span> <span class="o">=</span> <span class="p">{}</span> 563 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">Names</span><span class="p">:</span> 564 <span class="n">calSel</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> 565 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">calSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 566 <span class="n">calSel</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="n">OnCalRef</span><span class="p">)</span> 567 <span class="n">calSel</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'varyList'</span><span class="p">][</span><span class="n">name</span><span class="p">])</span> 568 <span class="n">Indx</span><span class="p">[</span><span class="n">calSel</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span> 569 <span class="n">calVal</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">%</span><span class="p">(</span><span class="n">Parms</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">2</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> 570 <span class="n">calVal</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="n">OnCalVal</span><span class="p">)</span> 571 <span class="n">calVal</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnCalVal</span><span class="p">)</span> 572 <span class="n">Indx</span><span class="p">[</span><span class="n">calVal</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span> 573 <span class="n">calibSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">calVal</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 572 574 <span class="k">return</span> <span class="n">calibSizer</span> 573 575 … … 576 578 <span class="k">def</span> <span class="nf">OnNewBinType</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 577 579 <span class="n">data</span><span class="p">[</span><span class="s">'binType'</span><span class="p">]</span> <span class="o">=</span> <span class="n">binSel</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span> 580 <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span> 578 581 579 582 <span class="k">def</span> <span class="nf">OnIOtth</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> … … 582 585 <span class="k">if</span> <span class="n">Ltth</span> <span class="o">></span> <span class="n">Utth</span><span class="p">:</span> 583 586 <span class="n">Ltth</span><span class="p">,</span><span class="n">Utth</span> <span class="o">=</span> <span class="n">Utth</span><span class="p">,</span><span class="n">Ltth</span> 584 <span class="n">data</span><span class="p">[</span><span class="s">'IOtth'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">Ltth</span><span class="p">,</span><span class="n">Utth</span><span class="p">]</span> 587 <span class="k">if</span> <span class="s">'q'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'binType'</span><span class="p">]:</span> 588 <span class="n">data</span><span class="p">[</span><span class="s">'IOtth'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mf">2.</span><span class="o">*</span><span class="n">asind</span><span class="p">(</span><span class="n">Ltth</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">)),</span><span class="mf">2.</span><span class="o">*</span><span class="n">asind</span><span class="p">(</span><span class="n">Utth</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">))]</span> 589 <span class="k">else</span><span class="p">:</span> 590 <span class="n">data</span><span class="p">[</span><span class="s">'IOtth'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">Ltth</span><span class="p">,</span><span class="n">Utth</span><span class="p">]</span> 585 591 <span class="n">G2frame</span><span class="o">.</span><span class="n">InnerTth</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%8.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">Ltth</span><span class="p">))</span> 586 <span class="n">G2frame</span><span class="o">.</span><span class="n">OuterTth</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%8. 2f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">Utth</span><span class="p">))</span>592 <span class="n">G2frame</span><span class="o">.</span><span class="n">OuterTth</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%8.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">Utth</span><span class="p">))</span> 587 593 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 588 594 … … 672 678 <span class="n">data</span><span class="p">[</span><span class="s">'fullIntegrate'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span> 673 679 <span class="n">data</span><span class="p">[</span><span class="s">'LRazimuth'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">Lazm</span><span class="p">,</span><span class="n">Lazm</span><span class="o">+</span><span class="mi">360</span><span class="p">]</span> 674 <span class="n"> UpdateImageControls</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span>680 <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateImageControls</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">masks</span><span class="p">)</span> 675 681 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 676 682 … … 719 725 <span class="n">binSel</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_COMBOBOX</span><span class="p">,</span> <span class="n">OnNewBinType</span><span class="p">)</span> 720 726 <span class="n">dataSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">binSel</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 721 <span class="n">dataSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Inner/Outer 2-theta'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 722 <span class="n">IOtth</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'IOtth'</span><span class="p">]</span> 727 <span class="n">binType</span> <span class="o">=</span> <span class="s">'2-theta'</span> 728 <span class="k">if</span> <span class="s">'q'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'binType'</span><span class="p">]:</span> 729 <span class="n">binType</span> <span class="o">=</span> <span class="s">'q'</span> 730 <span class="n">dataSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Inner/Outer '</span><span class="o">+</span><span class="n">binType</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 731 <span class="n">IOtth</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'IOtth'</span><span class="p">][:]</span> 732 <span class="k">if</span> <span class="s">'q'</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s">'binType'</span><span class="p">]:</span> 733 <span class="n">wave</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'wavelength'</span><span class="p">]</span> 734 <span class="n">IOtth</span> <span class="o">=</span> <span class="p">[</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">IOtth</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">wave</span><span class="p">,</span><span class="mf">4.</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">IOtth</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">wave</span><span class="p">]</span> 723 735 <span class="n">littleSizer</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> 724 736 <span class="n">G2frame</span><span class="o">.</span><span class="n">InnerTth</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span> … … 1066 1078 <span class="c">################################################################################</span> 1067 1079 <span class="c">##### Masks</span> 1068 <span class="c">################################################################################</span> 1080 <span class="c">################################################################################</span></div> 1081 <div class="viewcode-block" id="CleanupMasks"><a class="viewcode-back" href="../GSASIIGUI.html#GSASIIimgGUI.CleanupMasks">[docs]</a><span class="k">def</span> <span class="nf">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">):</span> 1082 <span class="sd">'''If a mask creation is not completed, an empty mask entry is created in the</span> 1083 <span class="sd"> masks array. This cleans them out. It is called when the masks page is first loaded</span> 1084 <span class="sd"> and before saving them or after reading them in. This should also probably be done</span> 1085 <span class="sd"> before they are used for integration.</span> 1086 <span class="sd"> '''</span> 1087 <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Points'</span><span class="p">,</span><span class="s">'Rings'</span><span class="p">,</span><span class="s">'Arcs'</span><span class="p">,</span><span class="s">'Polygons'</span><span class="p">]:</span> 1088 <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">,[])</span> 1089 <span class="n">l1</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> 1090 <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="k">if</span> <span class="n">i</span><span class="p">]</span> 1091 <span class="n">l2</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> 1092 <span class="k">if</span> <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">GetConfigValue</span><span class="p">(</span><span class="s">'debug'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">l1</span> <span class="o">!=</span> <span class="n">l2</span><span class="p">:</span> 1093 <span class="k">print</span> <span class="s">'Mask Cleanup:'</span><span class="p">,</span><span class="n">key</span><span class="p">,</span><span class="s">'was'</span><span class="p">,</span><span class="n">l1</span><span class="p">,</span><span class="s">'entries'</span><span class="p">,</span><span class="s">'now'</span><span class="p">,</span><span class="n">l2</span> 1069 1094 </div> 1070 1095 <div class="viewcode-block" id="UpdateMasks"><a class="viewcode-back" href="../GSASIIGUI.html#GSASIIimgGUI.UpdateMasks">[docs]</a><span class="k">def</span> <span class="nf">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">):</span> 1071 <span class="sd">'''Shows and handles the controls on the "Masks"</span> 1072 <span class="sd"> data tree entry</span> 1096 <span class="sd">'''Shows and handles the controls on the "Masks" data tree entry</span> 1073 1097 <span class="sd"> '''</span> 1074 1098 … … 1076 1100 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1077 1101 <span class="n">Obj</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">'Drag this mask on 2D Powder Image with mouse to change '</span><span class="p">)</span> 1078 1079 <span class="k">def</span> <span class="nf">OnThreshold</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1080 <span class="k">try</span><span class="p">:</span> 1081 <span class="n">lower</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">lowerThreshold</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()),</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> 1082 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 1083 <span class="n">lower</span> <span class="o">=</span> <span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> 1084 <span class="k">try</span><span class="p">:</span> 1085 <span class="n">upper</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">upperThreshold</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()),</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span> 1086 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 1087 <span class="n">upper</span> <span class="o">=</span> <span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> 1088 <span class="n">data</span><span class="p">[</span><span class="s">'Thresholds'</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">lower</span><span class="p">,</span><span class="n">upper</span><span class="p">]</span> 1089 <span class="n">lowerThreshold</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%8d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">lower</span><span class="p">))</span> 1090 <span class="n">upperThreshold</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%8d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">upper</span><span class="p">))</span> 1102 1103 <span class="k">def</span> <span class="nf">Replot</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span><span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> 1104 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">newPlot</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> 1105 1106 <span class="k">def</span> <span class="nf">onDeleteMask</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1107 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1108 <span class="n">typ</span> <span class="o">=</span> <span class="n">Obj</span><span class="o">.</span><span class="n">locationcode</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'+'</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> 1109 <span class="n">num</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">locationcode</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'+'</span><span class="p">)[</span><span class="mi">2</span><span class="p">])</span> 1110 <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">typ</span><span class="p">][</span><span class="n">num</span><span class="p">])</span> 1111 <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateMasks</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1091 1112 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1092 1093 <span class="k">def</span> <span class="nf">OnSpotDiameter</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1094 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1095 <span class="k">try</span><span class="p">:</span> 1096 <span class="n">diameter</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">100.</span><span class="p">,</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.1</span><span class="p">,</span><span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())))</span> 1097 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 1098 <span class="n">diameter</span> <span class="o">=</span> <span class="mf">1.0</span> 1099 <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%.2f</span><span class="s">"</span><span class="o">%</span><span class="p">(</span><span class="n">diameter</span><span class="p">))</span> 1100 <span class="n">data</span><span class="p">[</span><span class="s">'Points'</span><span class="p">][</span><span class="n">spotIds</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">())][</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">diameter</span> 1101 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1102 1103 <span class="k">def</span> <span class="nf">OnDeleteSpot</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1104 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1105 <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'Points'</span><span class="p">][</span><span class="n">delSpotId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span> 1106 <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1107 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1108 1109 <span class="k">def</span> <span class="nf">OnRingThickness</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1110 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1111 <span class="k">try</span><span class="p">:</span> 1112 <span class="n">thick</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">1.0</span><span class="p">,</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())))</span> 1113 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 1114 <span class="n">thick</span> <span class="o">=</span> <span class="mf">0.1</span> 1115 <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%.3f</span><span class="s">"</span><span class="o">%</span><span class="p">(</span><span class="n">thick</span><span class="p">))</span> 1116 <span class="n">data</span><span class="p">[</span><span class="s">'Rings'</span><span class="p">][</span><span class="n">ringIds</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">())][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">thick</span> 1117 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1118 1119 <span class="k">def</span> <span class="nf">OnDeleteRing</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1120 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1121 <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'Rings'</span><span class="p">][</span><span class="n">delRingId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span> 1122 <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1123 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1124 1125 <span class="k">def</span> <span class="nf">OnArcThickness</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1126 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1127 <span class="k">try</span><span class="p">:</span> 1128 <span class="n">thick</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">20.0</span><span class="p">,</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">float</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())))</span> 1129 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> 1130 <span class="n">thick</span> <span class="o">=</span> <span class="mf">0.1</span> 1131 <span class="n">Obj</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">"</span><span class="si">%.3f</span><span class="s">"</span><span class="o">%</span><span class="p">(</span><span class="n">thick</span><span class="p">))</span> 1132 <span class="n">data</span><span class="p">[</span><span class="s">'Arcs'</span><span class="p">][</span><span class="n">arcIds</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="o">.</span><span class="n">GetId</span><span class="p">())][</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">thick</span> 1133 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1134 1135 <span class="k">def</span> <span class="nf">OnDeleteArc</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1136 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1137 <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'Arcs'</span><span class="p">][</span><span class="n">delArcId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span> 1138 <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1139 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1140 1141 <span class="k">def</span> <span class="nf">OnDeletePoly</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1142 <span class="n">Obj</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span> 1143 <span class="k">del</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'Polygons'</span><span class="p">][</span><span class="n">delPolyId</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">Obj</span><span class="p">)])</span> 1144 <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1145 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1146 1147 <span class="k">def</span> <span class="nf">OnDeleteFrame</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1113 1114 <span class="k">def</span> <span class="nf">onDeleteFrame</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1148 1115 <span class="n">data</span><span class="p">[</span><span class="s">'Frames'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> 1149 <span class="n"> UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span>1116 <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateMasks</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1150 1117 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1151 1118 … … 1162 1129 <span class="n">Source</span> <span class="o">=</span> <span class="n">name</span> 1163 1130 <span class="n">Mask</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">id</span><span class="p">,</span> <span class="s">'Masks'</span><span class="p">)))</span> 1164 <span class="n"> Mask</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">'Thresholds'</span><span class="p">)</span> <span class="c">#remove Thresholds from source mask</span>1131 <span class="n">Thresh</span> <span class="o">=</span> <span class="n">Mask</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">'Thresholds'</span><span class="p">)</span> <span class="c">#remove Thresholds from source mask & save it for later</span> 1165 1132 <span class="k">else</span><span class="p">:</span> 1166 1133 <span class="n">TextList</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="bp">False</span><span class="p">,</span><span class="n">name</span><span class="p">,</span><span class="nb">id</span><span class="p">])</span> … … 1182 1149 <span class="c"># Mask['Thresholds'][0] = mask['Thresholds'][0]</span> 1183 1150 <span class="c"># Mask['Thresholds'][1][1] = min(mask['Thresholds'][1][1],Mask['Thresholds'][1][1])</span> 1184 <span class="n">mask</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">Mask</span><span class="p">)</span> 1151 <span class="n">mask</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">Mask</span><span class="p">)</span> 1152 <span class="n">mask</span><span class="p">[</span><span class="s">'Thresholds'</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">Thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="c">#copy only lower threshold </span> 1185 1153 <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">SetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="nb">id</span><span class="p">,</span> <span class="s">'Masks'</span><span class="p">),</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">mask</span><span class="p">))</span> 1186 1154 <span class="k">finally</span><span class="p">:</span> … … 1188 1156 1189 1157 <span class="k">def</span> <span class="nf">OnSaveMask</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1158 <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> 1190 1159 <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="n">G2frame</span><span class="p">,</span> <span class="s">'Choose image mask file'</span><span class="p">,</span> <span class="s">'.'</span><span class="p">,</span> <span class="s">''</span><span class="p">,</span> 1191 1160 <span class="s">'image mask files (*.immask)|*.immask'</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">FD_SAVE</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">FD_OVERWRITE_PROMPT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CHANGE_DIR</span><span class="p">)</span> … … 1203 1172 1204 1173 <span class="k">def</span> <span class="nf">OnLoadMask</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1174 <span class="k">if</span> <span class="n">event</span><span class="o">.</span><span class="n">Id</span> <span class="o">==</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKLOADNOT</span><span class="p">:</span> 1175 <span class="n">ignoreThreshold</span> <span class="o">=</span> <span class="bp">True</span> 1176 <span class="k">else</span><span class="p">:</span> 1177 <span class="n">ignoreThreshold</span> <span class="o">=</span> <span class="bp">False</span> 1205 1178 <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="n">G2frame</span><span class="p">,</span> <span class="s">'Choose image mask file'</span><span class="p">,</span> <span class="s">'.'</span><span class="p">,</span> <span class="s">''</span><span class="p">,</span> 1206 1179 <span class="s">'image mask files (*.immask)|*.immask'</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">OPEN</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CHANGE_DIR</span><span class="p">)</span> … … 1218 1191 <span class="p">[</span><span class="n">key</span><span class="p">,</span><span class="n">val</span><span class="p">]</span> <span class="o">=</span> <span class="n">S</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">':'</span><span class="p">)</span> 1219 1192 <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Points'</span><span class="p">,</span><span class="s">'Rings'</span><span class="p">,</span><span class="s">'Arcs'</span><span class="p">,</span><span class="s">'Polygons'</span><span class="p">,</span><span class="s">'Frames'</span><span class="p">,</span><span class="s">'Thresholds'</span><span class="p">]:</span> 1193 <span class="k">if</span> <span class="n">ignoreThreshold</span> <span class="ow">and</span> <span class="n">key</span> <span class="o">==</span> <span class="s">'Thresholds'</span><span class="p">:</span> 1194 <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> 1195 <span class="k">continue</span> 1220 1196 <span class="n">save</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="nb">eval</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> 1221 1197 <span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s">'Thresholds'</span><span class="p">:</span> … … 1223 1199 <span class="n">save</span><span class="p">[</span><span class="n">key</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="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">oldThreshold</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">save</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span> 1224 1200 <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> 1201 <span class="n">File</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> 1225 1202 <span class="n">data</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">save</span><span class="p">)</span> 1226 <span class="n">UpdateMasks</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1203 <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> 1204 <span class="n">wx</span><span class="o">.</span><span class="n">CallAfter</span><span class="p">(</span><span class="n">UpdateMasks</span><span class="p">,</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1227 1205 <span class="n">G2plt</span><span class="o">.</span><span class="n">PlotExposedImage</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">event</span><span class="o">=</span><span class="n">event</span><span class="p">)</span> 1228 <span class="n">File</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>1229 1206 <span class="k">finally</span><span class="p">:</span> 1230 1207 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> … … 1254 1231 <span class="n">G2frame</span><span class="o">.</span><span class="n">MaskKey</span> <span class="o">=</span> <span class="s">'f'</span> 1255 1232 <span class="n">G2plt</span><span class="o">.</span><span class="n">OnStartMask</span><span class="p">(</span><span class="n">G2frame</span><span class="p">)</span> 1256 1233 1234 <span class="n">startScroll</span> <span class="o">=</span> <span class="bp">None</span> 1257 1235 <span class="k">if</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">:</span> 1236 <span class="n">startScroll</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">GetScrollPos</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span> <span class="c"># save scroll position</span> 1258 1237 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 1238 <span class="k">else</span><span class="p">:</span> 1239 <span class="n">CleanupMasks</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="c"># posting page for 1st time; clean out anything unfinished</span> 1259 1240 <span class="n">G2gd</span><span class="o">.</span><span class="n">SetDataMenuBar</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">MaskMenu</span><span class="p">)</span> 1260 1241 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnCopyMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKCOPY</span><span class="p">)</span> 1261 1242 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnLoadMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKLOAD</span><span class="p">)</span> 1243 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnLoadMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKLOADNOT</span><span class="p">)</span> 1262 1244 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnSaveMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_MASKSAVE</span><span class="p">)</span> 1263 1245 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnNewSpotMask</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_NEWMASKSPOT</span><span class="p">)</span> … … 1279 1261 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">()</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="s">'Ring mask active - LB pick ring location'</span><span class="p">)</span> 1280 1262 <span class="k">else</span><span class="p">:</span> 1281 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">()</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="s">"To add mask: On 2D Powder Image, key a:arc, r:ring, s:spot, p:polygon, f:frame"</span><span class="p">)</span>1282 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span> <span class="o">=</span> <span class="n">wx </span><span class="o">.</span><span class="n">Panel</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span>1263 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">()</span><span class="o">.</span><span class="n">SetStatusText</span><span class="p">(</span><span class="s">"To add mask: press a,r,s,p or f on 2D image for arc/ring/spot/polygon/frame"</span><span class="p">)</span> 1264 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span> <span class="o">=</span> <span class="n">wxscroll</span><span class="o">.</span><span class="n">ScrolledPanel</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span> 1283 1265 <span class="n">mainSizer</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> 1284 1266 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">10</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span> 1285 1267 1286 1268 <span class="n">thresh</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Thresholds'</span><span class="p">]</span> <span class="c">#min/max intensity range</span> 1287 <span class="n"> spots</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Points'</span><span class="p">]</span> <span class="c">#x,y,radius in mm</span>1288 <span class="n"> rings</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Rings'</span><span class="p">]</span> <span class="c">#radius, thickness</span>1289 <span class="n"> polygons</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Polygons'</span><span class="p">]</span> <span class="c">#3+ x,y pairs</span>1269 <span class="n">Spots</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Points'</span><span class="p">]</span> <span class="c">#x,y,radius in mm</span> 1270 <span class="n">Rings</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Rings'</span><span class="p">]</span> <span class="c">#radius, thickness</span> 1271 <span class="n">Polygons</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Polygons'</span><span class="p">]</span> <span class="c">#3+ x,y pairs</span> 1290 1272 <span class="k">if</span> <span class="s">'Frames'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> 1291 1273 <span class="n">data</span><span class="p">[</span><span class="s">'Frames'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> 1292 1274 <span class="n">frame</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Frames'</span><span class="p">]</span> <span class="c">#3+ x,y pairs</span> 1293 <span class="n"> arcs</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Arcs'</span><span class="p">]</span> <span class="c">#radius, start/end azimuth, thickness</span>1275 <span class="n">Arcs</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s">'Arcs'</span><span class="p">]</span> <span class="c">#radius, start/end azimuth, thickness</span> 1294 1276 1295 1277 <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> 1296 1278 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Lower/Upper limits '</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1297 <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class=" p">(</span><span class="s">"</span><span class="si">%8d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>1279 <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span> 1298 1280 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Text</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1299 1281 <span class="n">Text</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span> 1300 <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class=" p">(</span><span class="s">"</span><span class="si">%8d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">])),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span>1282 <span class="n">Text</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]),</span><span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span> 1301 1283 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Text</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1302 1284 <span class="n">Text</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span> 1303 1285 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Lower/Upper thresholds '</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1304 <span class="n">lowerThreshold</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span> 1305 <span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%8d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">])),</span><span class="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> 1306 <span class="n">lowerThreshold</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="n">OnThreshold</span><span class="p">)</span> 1307 <span class="n">lowerThreshold</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnThreshold</span><span class="p">)</span> 1286 <span class="n">lowerThreshold</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> 1287 <span class="nb">min</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">typeHint</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span> 1308 1288 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lowerThreshold</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1309 <span class="n">upperThreshold</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span> 1310 <span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%8d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">thresh</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">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> 1311 <span class="n">upperThreshold</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="n">OnThreshold</span><span class="p">)</span> 1312 <span class="n">upperThreshold</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnThreshold</span><span class="p">)</span> 1289 <span class="n">upperThreshold</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> 1290 <span class="nb">max</span><span class="o">=</span><span class="n">thresh</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">typeHint</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span> 1313 1291 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">upperThreshold</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1314 1292 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span> 1315 <span class="n">spotIds</span> <span class="o">=</span> <span class="p">[]</span> 1316 <span class="n">delSpotId</span> <span class="o">=</span> <span class="p">[]</span> 1317 <span class="k">if</span> <span class="n">spots</span><span class="p">:</span> 1293 <span class="k">if</span> <span class="n">Spots</span><span class="p">:</span> 1294 <span class="n">lbl</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Spot masks'</span><span class="p">)</span> 1295 <span class="n">lbl</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">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span> 1296 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</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">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> 1318 1297 <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> 1319 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Spot masks:'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1320 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1321 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1322 1298 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' position, mm'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1323 1299 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' diameter, mm'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1324 1300 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span> 1325 <span class="k">for</span> <span class="n"> spot</span> <span class="ow">in</span> <span class="n">spots</span><span class="p">:</span>1326 <span class="k">if</span> <span class="n"> spot</span><span class="p">:</span>1327 <span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span><span class="n">d</span> <span class="o">=</span> <span class="n"> spot</span>1301 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Spots</span><span class="p">)):</span> 1302 <span class="k">if</span> <span class="n">Spots</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span> 1303 <span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">,</span><span class="n">d</span> <span class="o">=</span> <span class="n">Spots</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> 1328 1304 <span class="n">spotText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%.2f</span><span class="s">,</span><span class="si">%.2f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)),</span> 1329 1305 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span> … … 1331 1307 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">spotText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1332 1308 <span class="n">spotText</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_ENTER_WINDOW</span><span class="p">,</span><span class="n">OnTextMsg</span><span class="p">)</span> 1333 <span class="n">spotDiameter</span> <span class="o">=</span> <span class="n"> wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%.2f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">d</span><span class="p">)),</span>1334 <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>1309 <span class="n">spotDiameter</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">Spots</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> 1310 <span class="nb">max</span><span class="o">=</span><span class="mf">100.</span><span class="p">,</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">])</span> 1335 1311 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">spotDiameter</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1336 <span class="n">spotDiameter</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="n">OnSpotDiameter</span><span class="p">)</span> 1337 <span class="n">spotDiameter</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnSpotDiameter</span><span class="p">)</span> 1338 <span class="n">spotIds</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">spotDiameter</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> 1339 <span class="n">spotDelete</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">)</span> 1340 <span class="n">spotDelete</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="n">OnDeleteSpot</span><span class="p">)</span> 1341 <span class="n">delSpotId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">spotDelete</span><span class="p">)</span> 1312 <span class="n">spotDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">,</span> 1313 <span class="n">locationcode</span><span class="o">=</span><span class="s">'Delete+Points+'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> 1314 <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span> 1342 1315 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">spotDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1343 1316 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span> 1344 <span class="n">ringIds</span> <span class="o">=</span> <span class="p">[]</span> 1345 <span class="n">delRingId</span> <span class="o">=</span> <span class="p">[]</span> 1346 <span class="k">if</span> <span class="n">rings</span><span class="p">:</span> 1317 <span class="k">if</span> <span class="n">Rings</span><span class="p">:</span> 1318 <span class="n">lbl</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Ring masks'</span><span class="p">)</span> 1319 <span class="n">lbl</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">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span> 1320 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</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">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> 1347 1321 <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> 1348 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Ring masks:'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1349 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1350 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1351 1322 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' 2-theta,deg'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1352 1323 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' thickness, deg'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1353 1324 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span> 1354 <span class="k">for</span> <span class="n">ring</span> <span class="ow">in</span> <span class="n">rings</span><span class="p">:</span> 1355 <span class="k">if</span> <span class="n">ring</span><span class="p">:</span> 1356 <span class="n">tth</span><span class="p">,</span><span class="n">thick</span> <span class="o">=</span> <span class="n">ring</span> 1357 <span class="n">ringText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">tth</span><span class="p">)),</span> 1325 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Rings</span><span class="p">)):</span> 1326 <span class="k">if</span> <span class="n">Rings</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span> 1327 <span class="n">ringText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">Rings</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">])),</span> 1358 1328 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span> 1359 1329 <span class="n">ringText</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">VERY_LIGHT_GREY</span><span class="p">)</span> 1360 1330 <span class="n">ringText</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_ENTER_WINDOW</span><span class="p">,</span><span class="n">OnTextMsg</span><span class="p">)</span> 1361 1331 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ringText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1362 <span class="n">ringThick</span> <span class="o">=</span> <span class="n"> wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">thick</span><span class="p">)),</span>1363 <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>1332 <span class="n">ringThick</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">Rings</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> 1333 <span class="nb">min</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">max</span><span class="o">=</span><span class="mf">1.</span><span class="p">,</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span> 1364 1334 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ringThick</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1365 <span class="n">ringThick</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="n">OnRingThickness</span><span class="p">)</span> 1366 <span class="n">ringThick</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnRingThickness</span><span class="p">)</span> 1367 <span class="n">ringIds</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ringThick</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> 1368 <span class="n">ringDelete</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">)</span> 1369 <span class="n">ringDelete</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="n">OnDeleteRing</span><span class="p">)</span> 1370 <span class="n">delRingId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ringDelete</span><span class="p">)</span> 1335 <span class="n">ringDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">,</span> 1336 <span class="n">locationcode</span><span class="o">=</span><span class="s">'Delete+Rings+'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> 1337 <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span> 1371 1338 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ringDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1372 1339 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span> 1373 <span class="n">arcIds</span> <span class="o">=</span> <span class="p">[]</span> 1374 <span class="n">delArcId</span> <span class="o">=</span> <span class="p">[]</span> 1375 <span class="k">if</span> <span class="n">arcs</span><span class="p">:</span> 1340 <span class="k">if</span> <span class="n">Arcs</span><span class="p">:</span> 1341 <span class="n">lbl</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Arc masks'</span><span class="p">)</span> 1342 <span class="n">lbl</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">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span> 1343 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</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">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> 1376 1344 <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> 1377 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Arc masks:'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1378 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1379 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1380 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1381 1345 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' 2-theta,deg'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1382 1346 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' azimuth, deg'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1383 1347 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' thickness, deg'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1384 1348 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span> 1385 <span class="k">for</span> <span class="n"> arc</span> <span class="ow">in</span> <span class="n">arcs</span><span class="p">:</span>1386 <span class="k">if</span> <span class="n"> arc</span><span class="p">:</span>1387 <span class="n">tth</span><span class="p">,</span><span class="n">azimuth</span><span class="p">,</span><span class="n">thick</span> <span class="o">=</span> <span class="n"> arc</span>1349 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Arcs</span><span class="p">)):</span> 1350 <span class="k">if</span> <span class="n">Arcs</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span> 1351 <span class="n">tth</span><span class="p">,</span><span class="n">azimuth</span><span class="p">,</span><span class="n">thick</span> <span class="o">=</span> <span class="n">Arcs</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> 1388 1352 <span class="n">arcText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">tth</span><span class="p">)),</span> 1389 1353 <span class="n">style</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">TE_READONLY</span><span class="p">)</span> … … 1396 1360 <span class="n">azmText</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_ENTER_WINDOW</span><span class="p">,</span><span class="n">OnTextMsg</span><span class="p">)</span> 1397 1361 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">azmText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1398 <span class="n">arcThick</span> <span class="o">=</span> <span class="n"> wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="p">(</span><span class="s">"</span><span class="si">%.3f</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">thick</span><span class="p">)),</span>1399 <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>1362 <span class="n">arcThick</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">loc</span><span class="o">=</span><span class="n">Arcs</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">key</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> 1363 <span class="nb">min</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span><span class="nb">max</span><span class="o">=</span><span class="mf">20.</span><span class="p">,</span><span class="n">OnLeave</span><span class="o">=</span><span class="n">Replot</span><span class="p">,</span><span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span> 1400 1364 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">arcThick</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1401 <span class="n">arcThick</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="n">OnArcThickness</span><span class="p">)</span> 1402 <span class="n">arcThick</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnArcThickness</span><span class="p">)</span> 1403 <span class="n">arcIds</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arcThick</span><span class="o">.</span><span class="n">GetId</span><span class="p">())</span> 1404 <span class="n">arcDelete</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">)</span> 1405 <span class="n">arcDelete</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="n">OnDeleteArc</span><span class="p">)</span> 1406 <span class="n">delArcId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arcDelete</span><span class="p">)</span> 1365 <span class="n">arcDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">,</span> 1366 <span class="n">locationcode</span><span class="o">=</span><span class="s">'Delete+Arcs+'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> 1367 <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span> 1407 1368 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">arcDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1408 1369 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span> 1409 <span class="n">polyIds</span> <span class="o">=</span> <span class="p">[]</span> 1410 <span class="n">delPolyId</span> <span class="o">=</span> <span class="p">[]</span> 1411 <span class="n">delFrameId</span> <span class="o">=</span> <span class="p">[]</span> 1412 <span class="k">if</span> <span class="n">polygons</span><span class="p">:</span> 1370 <span class="k">if</span> <span class="n">Polygons</span><span class="p">:</span> 1371 <span class="n">lbl</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span> 1372 <span class="n">label</span><span class="o">=</span><span class="s">' Polygon masks (on plot RB vertex drag to move,</span><span class="se">\n</span><span class="s">LB vertex drag to insert)'</span><span class="p">)</span> 1373 <span class="n">lbl</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">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span> 1374 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</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">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> 1413 1375 <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> 1414 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Polygon masks:'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1415 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span> 1416 <span class="k">for</span> <span class="n">polygon</span> <span class="ow">in</span> <span class="n">polygons</span><span class="p">:</span> 1417 <span class="k">if</span> <span class="n">polygon</span><span class="p">:</span> 1376 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Polygons</span><span class="p">)):</span> 1377 <span class="k">if</span> <span class="n">Polygons</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span> 1418 1378 <span class="n">polyList</span> <span class="o">=</span> <span class="p">[]</span> 1419 <span class="k">for</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span> <span class="ow">in</span> <span class="n"> polygon</span><span class="p">:</span>1379 <span class="k">for</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span> <span class="ow">in</span> <span class="n">Polygons</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span> 1420 1380 <span class="n">polyList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"</span><span class="si">%.2f</span><span class="s">, </span><span class="si">%.2f</span><span class="s">"</span><span class="o">%</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">))</span> 1421 1381 <span class="n">polyText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="n">polyList</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">choices</span><span class="o">=</span><span class="n">polyList</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">CB_READONLY</span><span class="p">)</span> 1422 1382 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">polyText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1423 <span class="n">polyDelete</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">)</span>1424 <span class="n">polyDelete</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="n">OnDeletePoly</span><span class="p">)</span>1425 <span class="n">delPolyId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">polyDelete</span><span class="p">)</span>1383 <span class="n">polyDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">,</span> 1384 <span class="n">locationcode</span><span class="o">=</span><span class="s">'Delete+Polygons+'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> 1385 <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteMask</span><span class="p">)</span> 1426 1386 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">polyDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1427 1387 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span> 1428 1388 <span class="k">if</span> <span class="n">frame</span><span class="p">:</span> 1389 <span class="n">lbl</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span> 1390 <span class="n">label</span><span class="o">=</span><span class="s">' Frame mask (on plot RB vertex drag to move,LB vertex drag to insert)'</span><span class="p">)</span> 1391 <span class="n">lbl</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">Colour</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">210</span><span class="p">))</span> 1392 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lbl</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">ALIGN_CENTER</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> 1429 1393 <span class="n">littleSizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">FlexGridSizer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span> 1430 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Frame mask:'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span>1431 <span class="n">WACV</span><span class="p">)</span>1432 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">5</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span><span class="mi">0</span><span class="p">)</span>1433 1394 <span class="n">frameList</span> <span class="o">=</span> <span class="p">[]</span> 1434 1395 <span class="k">for</span> <span class="n">x</span><span class="p">,</span><span class="n">y</span> <span class="ow">in</span> <span class="n">frame</span><span class="p">:</span> … … 1436 1397 <span class="n">frameText</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">ComboBox</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">value</span><span class="o">=</span><span class="n">frameList</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">choices</span><span class="o">=</span><span class="n">frameList</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">CB_READONLY</span><span class="p">)</span> 1437 1398 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">frameText</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1438 <span class="n">frameDelete</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="n">parent</span><span class="o">=</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">)</span>1439 <span class="n">frameDelete</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="n">OnDeleteFrame</span><span class="p">)</span>1440 <span class="n">delFrameId</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frameDelete</span><span class="p">)</span>1399 <span class="n">frameDelete</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2LoggedButton</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">'delete?'</span><span class="p">,</span> 1400 <span class="n">locationcode</span><span class="o">=</span><span class="s">'Delete+Frame'</span><span class="p">,</span> 1401 <span class="n">handler</span><span class="o">=</span><span class="n">onDeleteFrame</span><span class="p">)</span> 1441 1402 <span class="n">littleSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">frameDelete</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1442 1403 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">littleSizer</span><span class="p">,</span><span class="mi">0</span><span class="p">,)</span> 1443 <span class="k">if</span> <span class="p">(</span><span class="n">frame</span> <span class="ow">or</span> <span class="n">polygons</span><span class="p">):</span>1444 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span>1445 <span class="n">label</span><span class="o">=</span><span class="s">' For frame and polygons: on plot RB vertex drag to move, LB vertex drag to insert'</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span>1446 1404 <span class="n">mainSizer</span><span class="o">.</span><span class="n">Layout</span><span class="p">()</span> 1447 1405 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">mainSizer</span><span class="p">)</span> 1448 1406 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">mainSizer</span><span class="o">.</span><span class="n">Fit</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">))</span> 1407 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetupScrolling</span><span class="p">()</span> 1449 1408 <span class="n">Size</span> <span class="o">=</span> <span class="n">mainSizer</span><span class="o">.</span><span class="n">Fit</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="p">)</span> 1450 <span class="n">Size</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">450</span> 1409 <span class="n">Size</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">50</span> <span class="c"># room for scrollbar & status msg</span> 1410 <span class="n">Size</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">Size</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="mi">500</span><span class="p">)</span> 1411 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">Size</span><span class="p">)</span> 1451 1412 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">setSizePosLeft</span><span class="p">(</span><span class="n">Size</span><span class="p">)</span> 1413 <span class="n">wx</span><span class="o">.</span><span class="n">Yield</span><span class="p">()</span> 1414 <span class="k">if</span> <span class="n">startScroll</span><span class="p">:</span> <span class="c"># reset scroll to saved position</span> 1415 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="o">.</span><span class="n">Scroll</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">startScroll</span><span class="p">)</span> <span class="c"># set to saved scroll position</span> 1416 <span class="n">wx</span><span class="o">.</span><span class="n">Yield</span><span class="p">()</span> 1452 1417 1453 1418 <span class="c">################################################################################</span> … … 1550 1515 <span class="k">finally</span><span class="p">:</span> 1551 1516 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 1552 1517 1518 <span class="k">def</span> <span class="nf">OnStrStaSample</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1519 <span class="n">filename</span> <span class="o">=</span> <span class="s">''</span> 1520 <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="n">G2frame</span><span class="p">,</span> <span class="s">'Choose multihistogram metadata text file'</span><span class="p">,</span> <span class="s">'.'</span><span class="p">,</span> <span class="s">''</span><span class="p">,</span> 1521 <span class="s">'metadata file (*.*)|*.*'</span><span class="p">,</span><span class="n">wx</span><span class="o">.</span><span class="n">OPEN</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">CHANGE_DIR</span><span class="p">)</span> 1522 <span class="k">try</span><span class="p">:</span> 1523 <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> 1524 <span class="n">filename</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPath</span><span class="p">()</span> 1525 <span class="n">File</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span><span class="s">'r'</span><span class="p">)</span> 1526 <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> 1527 <span class="n">newItems</span> <span class="o">=</span> <span class="p">[]</span> 1528 <span class="n">itemNames</span> <span class="o">=</span> <span class="p">[]</span> 1529 <span class="n">Comments</span> <span class="o">=</span> <span class="p">[]</span> 1530 <span class="k">while</span> <span class="n">S</span><span class="p">:</span> 1531 <span class="k">if</span> <span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">'#'</span><span class="p">:</span> 1532 <span class="n">Comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">S</span><span class="p">)</span> 1533 <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> 1534 <span class="k">continue</span> 1535 <span class="n">S</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">','</span><span class="p">,</span><span class="s">' '</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">'</span><span class="se">\t</span><span class="s">'</span><span class="p">,</span><span class="s">' '</span><span class="p">)</span> 1536 <span class="n">Stuff</span> <span class="o">=</span> <span class="n">S</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()</span> 1537 <span class="n">itemNames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Stuff</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> 1538 <span class="n">newItems</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Stuff</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span> 1539 <span class="n">S</span> <span class="o">=</span> <span class="n">File</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> 1540 <span class="n">File</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> 1541 <span class="k">finally</span><span class="p">:</span> 1542 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 1543 <span class="k">if</span> <span class="ow">not</span> <span class="n">filename</span><span class="p">:</span> 1544 <span class="n">G2frame</span><span class="o">.</span><span class="n">ErrorDialog</span><span class="p">(</span><span class="s">'Nothing to do'</span><span class="p">,</span><span class="s">'No file selected'</span><span class="p">)</span> 1545 <span class="k">return</span> 1546 <span class="n">dataDict</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">itemNames</span><span class="p">,</span><span class="n">newItems</span><span class="p">))</span> 1547 <span class="n">ifany</span> <span class="o">=</span> <span class="bp">False</span> 1548 <span class="n">Names</span> <span class="o">=</span> <span class="p">[</span><span class="s">' '</span><span class="p">,</span><span class="s">'Sample phi'</span><span class="p">,</span><span class="s">'Sample z'</span><span class="p">,</span><span class="s">'Sample load'</span><span class="p">]</span> 1549 <span class="n">dlg</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">G2ColumnIDDialog</span><span class="p">(</span> <span class="n">G2frame</span><span class="p">,</span><span class="s">' Choose multihistogram metadata columns:'</span><span class="p">,</span> 1550 <span class="s">'Select columns'</span><span class="p">,</span><span class="n">Comments</span><span class="p">,</span><span class="n">Names</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">newItems</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">)</span> 1551 <span class="k">try</span><span class="p">:</span> 1552 <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> 1553 <span class="n">colNames</span><span class="p">,</span><span class="n">newData</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetSelection</span><span class="p">()</span> 1554 <span class="n">dataDict</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">itemNames</span><span class="p">,</span><span class="n">newData</span><span class="o">.</span><span class="n">T</span><span class="p">))</span> 1555 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">colNames</span><span class="p">:</span> 1556 <span class="k">if</span> <span class="n">item</span> <span class="o">!=</span> <span class="s">' '</span><span class="p">:</span> 1557 <span class="n">ifany</span> <span class="o">=</span> <span class="bp">True</span> 1558 <span class="k">finally</span><span class="p">:</span> 1559 <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 1560 <span class="k">if</span> <span class="ow">not</span> <span class="n">ifany</span><span class="p">:</span> 1561 <span class="n">G2frame</span><span class="o">.</span><span class="n">ErrorDialog</span><span class="p">(</span><span class="s">'Nothing to do'</span><span class="p">,</span><span class="s">'No columns identified'</span><span class="p">)</span> 1562 <span class="k">return</span> 1563 <span class="n">histList</span> <span class="o">=</span> <span class="p">[]</span> 1564 <span class="n">item</span><span class="p">,</span> <span class="n">cookie</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetFirstChild</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">)</span> 1565 <span class="k">while</span> <span class="n">item</span><span class="p">:</span> 1566 <span class="n">name</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemText</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 1567 <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'IMG'</span><span class="p">):</span> 1568 <span class="n">histList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> 1569 <span class="n">item</span><span class="p">,</span> <span class="n">cookie</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetNextChild</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">,</span> <span class="n">cookie</span><span class="p">)</span> 1570 <span class="n">colIds</span> <span class="o">=</span> <span class="p">{}</span> 1571 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">colNames</span><span class="p">):</span> 1572 <span class="k">if</span> <span class="n">name</span> <span class="o">!=</span> <span class="s">' '</span><span class="p">:</span> 1573 <span class="n">colIds</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span> 1574 <span class="k">for</span> <span class="n">hist</span> <span class="ow">in</span> <span class="n">histList</span><span class="p">:</span> 1575 <span class="n">name</span> <span class="o">=</span> <span class="n">hist</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">1</span><span class="p">]</span> <span class="c">#this is file name</span> 1576 <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">dataDict</span><span class="p">:</span> 1577 <span class="n">newItems</span> <span class="o">=</span> <span class="p">{}</span> 1578 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">colIds</span><span class="p">:</span> 1579 <span class="n">newItems</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">dataDict</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">colIds</span><span class="p">[</span><span class="n">item</span><span class="p">]])</span> 1580 <span class="n">Id</span> <span class="o">=</span> <span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">G2frame</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">hist</span><span class="p">)</span> 1581 <span class="n">stsrData</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span><span class="n">G2gd</span><span class="o">.</span><span class="n">GetPatternTreeItemId</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">Id</span><span class="p">,</span><span class="s">'Stress/Strain'</span><span class="p">))</span> 1582 <span class="n">stsrData</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">newItems</span><span class="p">)</span> 1583 <span class="n">UpdateStressStrain</span><span class="p">(</span><span class="n">G2frame</span><span class="p">,</span><span class="n">data</span><span class="p">)</span> 1584 1553 1585 <span class="k">def</span> <span class="nf">OnFitStrSta</span><span class="p">(</span><span class="n">event</span><span class="p">):</span> 1554 1586 <span class="n">Controls</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">PatternTree</span><span class="o">.</span><span class="n">GetItemPyData</span><span class="p">(</span> … … 1612 1644 <span class="n">variables</span> <span class="o">+=</span> <span class="n">item</span><span class="p">[</span><span class="s">'Emat'</span><span class="p">]</span> 1613 1645 <span class="n">sig</span> <span class="o">+=</span> <span class="n">item</span><span class="p">[</span><span class="s">'Esig'</span><span class="p">]</span> 1614 <span class="n">varylist</span> <span class="o">=</span> <span class="p">[</span><span class="s">'</span><span class="si">%d%s%s</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="s">' :'</span><span class="p">,</span><span class="n">Name</span><span class="p">)</span> <span class="k">for</span> <span class="n">Name</span> <span class="ow">in</span> <span class="n">varyNames</span><span class="p">]</span>1646 <span class="n">varylist</span> <span class="o">=</span> <span class="p">[</span><span class="s">'</span><span class="si">%d%s%s</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="s">';'</span><span class="p">,</span><span class="n">Name</span><span class="p">)</span> <span class="k">for</span> <span class="n">Name</span> <span class="ow">in</span> <span class="n">varyNames</span><span class="p">]</span> 1615 1647 <span class="n">varyList</span> <span class="o">+=</span> <span class="n">varylist</span> 1616 1648 <span class="n">parmDict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">varylist</span><span class="p">,</span><span class="n">item</span><span class="p">[</span><span class="s">'Emat'</span><span class="p">])))</span> … … 1683 1715 <span class="n">samZ</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_KILL_FOCUS</span><span class="p">,</span><span class="n">OnSamZ</span><span class="p">)</span> 1684 1716 <span class="n">samSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">label</span><span class="o">=</span><span class="s">' Sample load(MPa): '</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> 1685 <span class="n">samLoad</span> <span class="o">=</span> <span class="n">G2 gd</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="s">'Sample load'</span><span class="p">,</span>1717 <span class="n">samLoad</span> <span class="o">=</span> <span class="n">G2G</span><span class="o">.</span><span class="n">ValidatedTxtCtrl</span><span class="p">(</span><span class="n">G2frame</span><span class="o">.</span><span class="n">dataDisplay</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="s">'Sample load'</span><span class="p">,</span> 1686 1718 <span class="n">nDig</span><span class="o">=</span><span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span><span class="n">typeHint</span><span class="o">=</span><span class="nb">float</span><span class="p">,)</span> 1687 1719 <span class="n">samSizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">samLoad</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">WACV</span><span class="p">)</span> … … 1795 1827 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnCopyStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTACOPY</span><span class="p">)</span> 1796 1828 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnLoadStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTALOAD</span><span class="p">)</span> 1797 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnSaveStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTASAVE</span><span class="p">)</span> 1829 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnSaveStrSta</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTASAVE</span><span class="p">)</span> 1830 <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</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_MENU</span><span class="p">,</span> <span class="n">OnStrStaSample</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">G2gd</span><span class="o">.</span><span class="n">wxID_STRSTSAMPLE</span><span class="p">)</span> 1798 1831 <span class="k">if</span> <span class="ow">not</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">GetStatusBar</span><span class="p">():</span> 1799 1832 <span class="n">Status</span> <span class="o">=</span> <span class="n">G2frame</span><span class="o">.</span><span class="n">dataFrame</span><span class="o">.</span><span class="n">CreateStatusBar</span><span class="p">()</span>
Note: See TracChangeset
for help on using the changeset viewer.