source: sasview/_modules/sas/perspectives/calculator/image_viewer.html @ a462c6a

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

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 86.3 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.perspectives.calculator.image_viewer &mdash; SasView 3.0.0 documentation</title>
10   
11    <link rel="stylesheet" href="../../../../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../../../../',
17        VERSION:     '3.0.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../../../../_static/jquery.js"></script>
24    <script type="text/javascript" src="../../../../_static/underscore.js"></script>
25    <script type="text/javascript" src="../../../../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="SasView 3.0.0 documentation" href="../../../../index.html" />
28    <link rel="up" title="sas.perspectives.calculator" href="../calculator.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../../../../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../../../../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
42          <li><a href="../calculator.html" accesskey="U">sas.perspectives.calculator</a> &raquo;</li> 
43      </ul>
44    </div> 
45
46    <div class="document">
47      <div class="documentwrapper">
48        <div class="bodywrapper">
49          <div class="body">
50           
51  <h1>Source code for sas.perspectives.calculator.image_viewer</h1><div class="highlight"><pre>
52<span class="kn">import</span> <span class="nn">os</span>
53<span class="kn">import</span> <span class="nn">sys</span>
54<span class="kn">import</span> <span class="nn">wx</span>
55<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
56<span class="kn">import</span> <span class="nn">matplotlib</span>
57<span class="n">matplotlib</span><span class="o">.</span><span class="n">interactive</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
58<span class="c">#Use the WxAgg back end. The Wx one takes too long to render</span>
59<span class="n">matplotlib</span><span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="s">&#39;WXAgg&#39;</span><span class="p">)</span>
60<span class="kn">from</span> <span class="nn">sas.guiframe.local_perspectives.plotting.SimplePlot</span> <span class="kn">import</span> <span class="n">PlotFrame</span>
61<span class="c">#import matplotlib.pyplot as plt</span>
62<span class="kn">import</span> <span class="nn">matplotlib.image</span> <span class="kn">as</span> <span class="nn">mpimg</span>
63<span class="kn">import</span> <span class="nn">matplotlib.colors</span> <span class="kn">as</span> <span class="nn">colors</span>
64<span class="kn">from</span> <span class="nn">sas.guiframe.events</span> <span class="kn">import</span> <span class="n">StatusEvent</span>
65<span class="kn">from</span> <span class="nn">sas.perspectives.calculator.calculator_widgets</span> <span class="kn">import</span> <span class="n">InputTextCtrl</span>
66<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Data2D</span>
67<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Detector</span>
68<span class="kn">from</span> <span class="nn">sas.dataloader.manipulations</span> <span class="kn">import</span> <span class="n">reader2D_converter</span>
69<span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">60</span>
70<span class="n">IS_WIN</span> <span class="o">=</span> <span class="bp">True</span>
71<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;win32&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
72    <span class="n">_DIALOG_WIDTH</span> <span class="o">=</span> <span class="mi">400</span>
73<span class="k">else</span><span class="p">:</span>
74    <span class="n">_DIALOG_WIDTH</span> <span class="o">=</span> <span class="mi">480</span>
75    <span class="n">IS_WIN</span> <span class="o">=</span> <span class="bp">False</span>
76
77<div class="viewcode-block" id="ImageView"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.ImageView">[docs]</a><span class="k">class</span> <span class="nc">ImageView</span><span class="p">:</span>
78    <span class="sd">&quot;&quot;&quot;</span>
79<span class="sd">    Open a file dialog to allow the user to select a given file.</span>
80<span class="sd">    Display the loaded data if available.</span>
81<span class="sd">    &quot;&quot;&quot;</span>
82    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
83        <span class="sd">&quot;&quot;&quot;</span>
84<span class="sd">        Init</span>
85<span class="sd">        &quot;&quot;&quot;</span>
86        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
87       
88<div class="viewcode-block" id="ImageView.load"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.ImageView.load">[docs]</a>    <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
89        <span class="sd">&quot;&quot;&quot;</span>
90<span class="sd">        load image files</span>
91<span class="sd">        &quot;&quot;&quot;</span>
92        <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
93        <span class="k">if</span> <span class="n">parent</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
94            <span class="n">location</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">()</span>
95        <span class="k">else</span><span class="p">:</span>
96            <span class="n">location</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">_default_save_location</span>
97        <span class="n">path_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">choose_data_file</span><span class="p">(</span><span class="n">location</span><span class="o">=</span><span class="n">location</span><span class="p">)</span>
98        <span class="k">if</span> <span class="n">path_list</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
99            <span class="k">return</span>
100        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_list</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span><span class="p">(</span><span class="n">path_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="ow">is</span> <span class="bp">None</span><span class="p">):</span>
101            <span class="k">if</span> <span class="n">parent</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
102                <span class="n">parent</span><span class="o">.</span><span class="n">_default_save_location</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">path_list</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
103        <span class="n">err_msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
104        <span class="k">for</span> <span class="n">file_path</span> <span class="ow">in</span> <span class="n">path_list</span><span class="p">:</span>
105            <span class="n">basename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
106            <span class="n">_</span><span class="p">,</span> <span class="n">extension</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">basename</span><span class="p">)</span>
107            <span class="k">try</span><span class="p">:</span>
108                <span class="n">img</span> <span class="o">=</span> <span class="n">mpimg</span><span class="o">.</span><span class="n">imread</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
109                <span class="n">is_png</span> <span class="o">=</span> <span class="n">extension</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;.png&#39;</span>
110                <span class="n">plot_frame</span> <span class="o">=</span> <span class="n">ImageFrame</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">basename</span><span class="p">,</span> <span class="n">img</span><span class="p">)</span>
111                <span class="n">plot_frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
112                <span class="c">#plot_frame.im_show(img)</span>
113                <span class="n">ax</span> <span class="o">=</span> <span class="n">plot_frame</span><span class="o">.</span><span class="n">plotpanel</span>
114                <span class="k">if</span> <span class="ow">not</span> <span class="n">is_png</span><span class="p">:</span>
115                    <span class="n">ax</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="n">ax</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">get_ylim</span><span class="p">()[::</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
116                <span class="n">ax</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s">&#39;x [pixel]&#39;</span><span class="p">)</span>
117                <span class="n">ax</span><span class="o">.</span><span class="n">subplot</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s">&#39;y [pixel]&#39;</span><span class="p">)</span>
118                <span class="n">ax</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">subplots_adjust</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="mf">0.15</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> 
119                                          <span class="n">right</span><span class="o">=</span><span class="mf">0.95</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="mf">0.95</span><span class="p">)</span>
120                <span class="n">plot_frame</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="s">&#39;Picture -- </span><span class="si">%s</span><span class="s"> --&#39;</span><span class="o">%</span> <span class="n">basename</span><span class="p">)</span>
121                <span class="n">plot_frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
122                <span class="k">if</span> <span class="n">parent</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
123                    <span class="n">parent</span><span class="o">.</span><span class="n">put_icon</span><span class="p">(</span><span class="n">plot_frame</span><span class="p">)</span>
124            <span class="k">except</span><span class="p">:</span>
125                <span class="k">print</span> <span class="s">&quot;parent&quot;</span><span class="p">,</span> <span class="n">parent</span>
126                <span class="k">raise</span>
127                <span class="n">err_msg</span> <span class="o">+=</span> <span class="s">&quot;Failed to load &#39;</span><span class="si">%s</span><span class="s">&#39;.</span><span class="se">\n</span><span class="s">&quot;</span><span class="o">%</span> <span class="n">basename</span>
128        <span class="k">if</span> <span class="n">err_msg</span><span class="p">:</span>
129            <span class="k">if</span> <span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
130                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">err_msg</span><span class="p">,</span> <span class="n">info</span><span class="o">=</span><span class="s">&quot;error&quot;</span><span class="p">))</span>
131            <span class="k">else</span><span class="p">:</span>
132                <span class="k">print</span> <span class="n">err_msg</span>
133
134        </div>
135<div class="viewcode-block" id="ImageView.choose_data_file"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.ImageView.choose_data_file">[docs]</a>    <span class="k">def</span> <span class="nf">choose_data_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">location</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
136        <span class="sd">&quot;&quot;&quot;</span>
137<span class="sd">        Open a file dialog to allow loading a file</span>
138<span class="sd">        &quot;&quot;&quot;</span>
139        <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
140        <span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
141        <span class="k">if</span> <span class="n">location</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
142            <span class="n">location</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">()</span>
143        <span class="n">wlist</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
144        <span class="n">elist</span> <span class="o">=</span> <span class="p">[</span><span class="s">&quot;All images (*.png, *.bmp, *.gif, *.jpg, *.tif, *.tiff) | </span><span class="se">\</span>
145<span class="s">                *.png; *.bmp; *.gif; *.jpg; *.tif; *.tiff&quot;</span><span class="p">,</span> 
146                <span class="s">&quot;PNG files (*.PNG, *.png) | *.png&quot;</span><span class="p">,</span> 
147                <span class="s">&quot;BMP files (*.BMP, *.bmp) | *.bmp&quot;</span><span class="p">,</span> 
148                <span class="s">&quot;GIF files (*.GIF, *.gif) | *.gif&quot;</span><span class="p">,</span>
149                <span class="s">&quot;JPG files (*.JPG, *.jpg) | *.jpg&quot;</span><span class="p">,</span>
150                <span class="s">&quot;TIF files (*.TIF, *.tif) | *.tif&quot;</span><span class="p">,</span>
151                <span class="s">&quot;TIFF files (*.TIFF, *.tiff) | *.tiff&quot;</span><span class="p">]</span>
152        <span class="k">if</span> <span class="ow">not</span> <span class="n">IS_WIN</span><span class="p">:</span>
153            <span class="k">del</span> <span class="n">elist</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
154        <span class="n">elist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&quot;All files (*.*) | *.*&quot;</span><span class="p">)</span>
155        <span class="n">wlist</span> <span class="o">=</span> <span class="s">&#39;|&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">elist</span><span class="p">)</span>       
156        <span class="n">style</span> <span class="o">=</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">FD_MULTIPLE</span>
157        <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">parent</span><span class="p">,</span> <span class="s">&quot;Image Viewer: Choose a image file&quot;</span><span class="p">,</span> 
158                            <span class="n">location</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">,</span> <span class="n">wlist</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="n">style</span><span class="p">)</span>
159        <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>
160            <span class="n">path</span> <span class="o">=</span> <span class="n">dlg</span><span class="o">.</span><span class="n">GetPaths</span><span class="p">()</span>
161        <span class="k">else</span><span class="p">:</span>
162            <span class="k">return</span> <span class="bp">None</span>
163        <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
164        <span class="k">return</span> <span class="n">path</span>
165</div></div>
166<div class="viewcode-block" id="ImageFrame"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.ImageFrame">[docs]</a><span class="k">class</span> <span class="nc">ImageFrame</span><span class="p">(</span><span class="n">PlotFrame</span><span class="p">):</span>
167    <span class="sd">&quot;&quot;&quot;</span>
168<span class="sd">    Frame for simple plot</span>
169<span class="sd">    &quot;&quot;&quot;</span>
170    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">image</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="s">&#39;log_{10}&#39;</span><span class="p">,</span> 
171                 <span class="n">size</span><span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="mi">550</span><span class="p">,</span> <span class="mi">470</span><span class="p">)):</span> 
172        <span class="sd">&quot;&quot;&quot;</span>
173<span class="sd">        comment</span>
174<span class="sd">        :Param data: image array got from imread() of matplotlib [narray]</span>
175<span class="sd">        :param parent: parent panel/container</span>
176<span class="sd">        &quot;&quot;&quot;</span>
177        <span class="c"># Initialize the Frame object</span>
178        <span class="n">PlotFrame</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">scale</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
179        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
180        <span class="bp">self</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">image</span> 
181        <span class="bp">self</span><span class="o">.</span><span class="n">file_name</span> <span class="o">=</span> <span class="n">title</span>
182                   
183        <span class="n">menu</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Menu</span><span class="p">()</span>
184        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
185        <span class="n">item</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">MenuItem</span><span class="p">(</span><span class="n">menu</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">&quot;&amp;Convert to Data&quot;</span><span class="p">)</span>
186        <span class="n">menu</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
187        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_set_data</span><span class="p">)</span>
188        <span class="bp">self</span><span class="o">.</span><span class="n">menu_bar</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">menu</span><span class="p">,</span> <span class="s">&quot;&amp;Image&quot;</span><span class="p">)</span>
189
190        <span class="n">menu_help</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Menu</span><span class="p">()</span>
191        <span class="nb">id</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">NewId</span><span class="p">()</span>
192        <span class="n">item</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">MenuItem</span><span class="p">(</span><span class="n">menu_help</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="s">&quot;&amp;HowTo&quot;</span><span class="p">)</span>
193        <span class="n">menu_help</span><span class="o">.</span><span class="n">AppendItem</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
194        <span class="n">wx</span><span class="o">.</span><span class="n">EVT_MENU</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_help</span><span class="p">)</span>
195        <span class="bp">self</span><span class="o">.</span><span class="n">menu_bar</span><span class="o">.</span><span class="n">Append</span><span class="p">(</span><span class="n">menu_help</span><span class="p">,</span> <span class="s">&quot;&amp;Help&quot;</span><span class="p">)</span>
196       
197        <span class="bp">self</span><span class="o">.</span><span class="n">SetMenuBar</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">menu_bar</span><span class="p">)</span>
198        <span class="bp">self</span><span class="o">.</span><span class="n">im_show</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
199   
200<div class="viewcode-block" id="ImageFrame.on_set_data"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.ImageFrame.on_set_data">[docs]</a>    <span class="k">def</span> <span class="nf">on_set_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
201        <span class="sd">&quot;&quot;&quot;</span>
202<span class="sd">        Rescale the x y range, make 2D data and send it to data explore</span>
203<span class="sd">        &quot;&quot;&quot;</span>
204        <span class="n">title</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file_name</span>
205        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span> <span class="o">=</span> <span class="n">SetDialog</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="n">title</span><span class="p">,</span> <span class="n">image</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
206        <span class="bp">self</span><span class="o">.</span><span class="n">panel</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span>
207</div>
208<div class="viewcode-block" id="ImageFrame.on_help"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.ImageFrame.on_help">[docs]</a>    <span class="k">def</span> <span class="nf">on_help</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>   
209        <span class="sd">&quot;&quot;&quot;</span>
210<span class="sd">        Image Viewer help panel</span>
211<span class="sd">        &quot;&quot;&quot;</span>
212        <span class="kn">from</span> <span class="nn">sas.perspectives.calculator.help_panel</span> <span class="kn">import</span>  <span class="n">HelpWindow</span>
213        <span class="c"># Get models help model_function path</span>
214        <span class="kn">import</span> <span class="nn">sas.perspectives.calculator</span> <span class="kn">as</span> <span class="nn">calmedia</span>
215
216        <span class="n">media</span> <span class="o">=</span> <span class="n">calmedia</span><span class="o">.</span><span class="n">get_data_path</span><span class="p">(</span><span class="n">media</span><span class="o">=</span><span class="s">&#39;media&#39;</span><span class="p">)</span>
217        <span class="n">path</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">join</span><span class="p">(</span><span class="n">media</span><span class="p">,</span><span class="s">&quot;load_image_help.html&quot;</span><span class="p">)</span> 
218        <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Image Viewer&quot;</span>
219        <span class="n">frame</span> <span class="o">=</span> <span class="n">HelpWindow</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s">&#39; Help: Image Viewer&#39;</span><span class="p">,</span> 
220                           <span class="n">pageToOpen</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">640</span><span class="p">,</span> <span class="mi">450</span><span class="p">))</span>   
221        <span class="k">try</span><span class="p">:</span> 
222            <span class="n">frame</span><span class="o">.</span><span class="n">splitter</span><span class="o">.</span><span class="n">DetachWindow</span><span class="p">(</span><span class="n">frame</span><span class="o">.</span><span class="n">lpanel</span><span class="p">)</span>
223            <span class="c"># Display only the right side one</span>
224            <span class="n">frame</span><span class="o">.</span><span class="n">lpanel</span><span class="o">.</span><span class="n">Hide</span><span class="p">()</span> 
225            <span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
226        <span class="k">except</span><span class="p">:</span>
227            <span class="n">frame</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 
228            <span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;Display Error</span><span class="se">\n</span><span class="s">&#39;</span>
229            <span class="n">info</span> <span class="o">=</span> <span class="s">&quot;Info&quot;</span>
230            <span class="n">wx</span><span class="o">.</span><span class="n">MessageBox</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">info</span><span class="p">)</span>
231            </div></div>
232<div class="viewcode-block" id="SetDialog"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.SetDialog">[docs]</a><span class="k">class</span> <span class="nc">SetDialog</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
233    <span class="sd">&quot;&quot;&quot;</span>
234<span class="sd">    Dialog for Data Set</span>
235<span class="sd">    &quot;&quot;&quot;</span>
236    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s">&quot;Convert to Data&quot;</span><span class="p">,</span> <span class="n">image</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
237                 <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_DIALOG_WIDTH</span><span class="p">,</span> <span class="mi">270</span><span class="p">)):</span>
238        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
239        <span class="c"># parent</span>
240        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
241        <span class="bp">self</span><span class="o">.</span><span class="n">base</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
242        <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
243        <span class="bp">self</span><span class="o">.</span><span class="n">image</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
244        <span class="bp">self</span><span class="o">.</span><span class="n">z_ctrl</span> <span class="o">=</span> <span class="bp">None</span>
245        <span class="bp">self</span><span class="o">.</span><span class="n">xy_ctrls</span> <span class="o">=</span> <span class="p">[]</span>
246        <span class="bp">self</span><span class="o">.</span><span class="n">is_png</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_is_png</span><span class="p">()</span>
247        <span class="bp">self</span><span class="o">.</span><span class="n">_build_layout</span><span class="p">()</span>
248        <span class="n">my_title</span> <span class="o">=</span> <span class="s">&quot;Convert Image to Data - </span><span class="si">%s</span><span class="s"> -&quot;</span><span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">title</span>
249        <span class="bp">self</span><span class="o">.</span><span class="n">SetTitle</span><span class="p">(</span><span class="n">my_title</span><span class="p">)</span>
250        <span class="bp">self</span><span class="o">.</span><span class="n">SetSize</span><span class="p">(</span><span class="n">size</span><span class="p">)</span>
251   
252    <span class="k">def</span> <span class="nf">_get_is_png</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
253        <span class="sd">&quot;&quot;&quot;</span>
254<span class="sd">        Get if the image file is png</span>
255<span class="sd">        &quot;&quot;&quot;</span>
256        <span class="n">_</span><span class="p">,</span> <span class="n">extension</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
257        <span class="k">return</span> <span class="n">extension</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;.png&#39;</span>
258           
259    <span class="k">def</span> <span class="nf">_build_layout</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
260        <span class="sd">&quot;&quot;&quot;</span>
261<span class="sd">        Layout</span>
262<span class="sd">        &quot;&quot;&quot;</span>
263        <span class="n">vbox</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
264        <span class="n">zbox</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>
265        <span class="n">xbox</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>
266        <span class="n">ybox</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>
267        <span class="n">btnbox</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>
268       
269        <span class="n">sb_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBox</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Transform Axes&#39;</span><span class="p">)</span>
270        <span class="n">boxsizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticBoxSizer</span><span class="p">(</span><span class="n">sb_title</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
271        <span class="n">z_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;z values (range: 0 - 255) to:&#39;</span><span class="p">)</span>
272        <span class="n">ztime_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;z *&#39;</span><span class="p">)</span>
273        <span class="n">x_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;x values from pixel # to:&#39;</span><span class="p">)</span>
274        <span class="n">xmin_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;xmin:&#39;</span><span class="p">)</span>
275        <span class="n">xmax_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;xmax:&#39;</span><span class="p">)</span>
276        <span class="n">y_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;y values from pixel # to:&#39;</span><span class="p">)</span>
277        <span class="n">ymin_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;ymin: &#39;</span><span class="p">)</span>
278        <span class="n">ymax_title</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;ymax:&#39;</span><span class="p">)</span>
279        <span class="n">z_ctl</span> <span class="o">=</span> <span class="n">InputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span> <span class="p">,</span> <span class="mi">20</span><span class="p">),</span>
280                                <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>
281       
282        <span class="n">xmin_ctl</span> <span class="o">=</span> <span class="n">InputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span>
283                                <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>
284        <span class="n">xmax_ctl</span> <span class="o">=</span> <span class="n">InputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span>
285                                <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>
286        <span class="n">ymin_ctl</span> <span class="o">=</span> <span class="n">InputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span>
287                                <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>
288        <span class="n">ymax_ctl</span> <span class="o">=</span> <span class="n">InputTextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span>
289                                <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>
290        <span class="n">z_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;1.0&#39;</span><span class="p">)</span>
291        <span class="n">xmin_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;-0.3&#39;</span><span class="p">)</span>
292        <span class="n">xmax_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;0.3&#39;</span><span class="p">)</span>
293        <span class="n">ymin_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;-0.3&#39;</span><span class="p">)</span>
294        <span class="n">ymax_ctl</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="s">&#39;0.3&#39;</span><span class="p">)</span>
295        <span class="n">z_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_z_enter</span><span class="p">)</span>
296        <span class="n">xmin_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onparam</span><span class="p">)</span>
297        <span class="n">xmax_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onparam</span><span class="p">)</span>
298        <span class="n">ymin_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onparam</span><span class="p">)</span>
299        <span class="n">ymax_ctl</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_TEXT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onparam</span><span class="p">)</span>
300        <span class="n">xbox</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">x_title</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> 
301                      <span class="p">(</span><span class="n">xmin_title</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> 
302                      <span class="p">(</span><span class="n">xmin_ctl</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> 
303                      <span class="p">(</span><span class="n">xmax_title</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> 
304                      <span class="p">(</span><span class="n">xmax_ctl</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">)])</span>
305        <span class="n">ybox</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">y_title</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> 
306                      <span class="p">(</span><span class="n">ymin_title</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> 
307                      <span class="p">(</span><span class="n">ymin_ctl</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> 
308                      <span class="p">(</span><span class="n">ymax_title</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> 
309                      <span class="p">(</span><span class="n">ymax_ctl</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">)])</span>     
310        <span class="n">zbox</span><span class="o">.</span><span class="n">AddMany</span><span class="p">([(</span><span class="n">z_title</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> 
311                      <span class="p">(</span><span class="n">ztime_title</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
312                      <span class="p">(</span><span class="n">z_ctl</span> <span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">7</span><span class="p">),</span> 
313                      <span class="p">])</span>   
314        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;The data rescaled will show up in the Data Explorer. </span><span class="se">\n</span><span class="s">&quot;</span>
315        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;*Note: Recommend to use an image with 8 bit Grey </span><span class="se">\n</span><span class="s">&quot;</span>
316        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;  scale (and with No. of pixels &lt; 300 x 300).</span><span class="se">\n</span><span class="s">&quot;</span>
317        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;  Otherwise, z = 0.299R + 0.587G + 0.114B.&quot;</span>
318        <span class="n">note_txt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
319        <span class="n">note_txt</span><span class="o">.</span><span class="n">SetForegroundColour</span><span class="p">(</span><span class="s">&quot;black&quot;</span><span class="p">)</span>
320        <span class="n">hbox</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>
321        <span class="n">okButton</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;OK&#39;</span><span class="p">)</span>
322        <span class="n">okButton</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_set</span><span class="p">)</span>
323        <span class="n">cancelButton</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Cancel&#39;</span><span class="p">)</span>
324        <span class="n">cancelButton</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnClose</span><span class="p">)</span>
325        <span class="n">btnbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">okButton</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
326        <span class="n">btnbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">cancelButton</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
327        <span class="n">hbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">note_txt</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
328        <span class="n">hbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnbox</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
329        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">10</span><span class="p">,</span> <span class="mi">15</span><span class="p">))</span>
330        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">xbox</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
331        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">ybox</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
332        <span class="n">boxsizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">zbox</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
333        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">boxsizer</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> <span class="mi">20</span><span class="p">)</span>
334        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">hbox</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span> <span class="o">|</span> <span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
335        <span class="n">okButton</span><span class="o">.</span><span class="n">SetFocus</span><span class="p">()</span>
336        <span class="c"># set sizer</span>
337        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">vbox</span><span class="p">)</span>
338        <span class="c">#pos = self.parent.GetPosition()</span>
339        <span class="c">#self.SetPosition(pos)</span>
340        <span class="bp">self</span><span class="o">.</span><span class="n">z_ctrl</span> <span class="o">=</span> <span class="n">z_ctl</span>
341        <span class="bp">self</span><span class="o">.</span><span class="n">xy_ctrls</span> <span class="o">=</span> <span class="p">[[</span><span class="n">xmin_ctl</span><span class="p">,</span> <span class="n">xmax_ctl</span><span class="p">],</span> <span class="p">[</span><span class="n">ymin_ctl</span><span class="p">,</span> <span class="n">ymax_ctl</span><span class="p">]]</span>
342
343    <span class="k">def</span> <span class="nf">_onparamEnter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
344        <span class="sd">&quot;&quot;&quot;</span>
345<span class="sd">        By pass original txtcrl binding</span>
346<span class="sd">        &quot;&quot;&quot;</span>
347        <span class="k">pass</span>   
348       
349    <span class="k">def</span> <span class="nf">_onparam</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
350        <span class="sd">&quot;&quot;&quot;</span>
351<span class="sd">        Set to default</span>
352<span class="sd">        &quot;&quot;&quot;</span>
353        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
354        <span class="bp">self</span><span class="o">.</span><span class="n">_check_ctrls</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
355
356    <span class="k">def</span> <span class="nf">_check_ctrls</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">is_button</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
357        <span class="sd">&quot;&quot;&quot;</span>
358<span class="sd">        &quot;&quot;&quot;</span>
359        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
360        <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;white&quot;</span><span class="p">)</span>
361        <span class="k">try</span><span class="p">:</span>
362            <span class="n">val</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span> 
363            <span class="k">if</span> <span class="n">val</span> <span class="o">&lt;</span> <span class="o">-</span><span class="mf">10.0</span> <span class="ow">or</span> <span class="n">val</span> <span class="o">&gt;</span> <span class="mf">10.0</span><span class="p">:</span>
364                <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
365                <span class="n">item</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
366                <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
367        <span class="k">except</span><span class="p">:</span>
368            <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
369            <span class="n">item</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
370            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
371        <span class="k">if</span> <span class="ow">not</span> <span class="n">flag</span> <span class="ow">and</span> <span class="n">is_button</span><span class="p">:</span>
372            <span class="n">err_msg</span> <span class="o">=</span> <span class="s">&quot;The allowed range of the min and max values are </span><span class="se">\n</span><span class="s">&quot;</span>
373            <span class="n">err_msg</span> <span class="o">+=</span> <span class="s">&quot;between -10 and 10.&quot;</span>
374            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
375                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">err_msg</span><span class="p">,</span> 
376                                                    <span class="n">info</span><span class="o">=</span><span class="s">&quot;error&quot;</span><span class="p">))</span>
377            <span class="k">else</span><span class="p">:</span>
378                <span class="k">print</span> <span class="n">err_msg</span>
379        <span class="k">return</span> <span class="n">flag</span>
380
381    <span class="k">def</span> <span class="nf">_on_z_enter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="o">=</span> <span class="bp">None</span><span class="p">):</span> 
382        <span class="sd">&quot;&quot;&quot;</span>
383<span class="sd">        On z factor enter</span>
384<span class="sd">        &quot;&quot;&quot;</span>
385        <span class="n">item</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">GetEventObject</span><span class="p">()</span>
386        <span class="bp">self</span><span class="o">.</span><span class="n">_check_z_ctrl</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
387       
388    <span class="k">def</span> <span class="nf">_check_z_ctrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">is_button</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
389        <span class="sd">&quot;&quot;&quot;</span>
390<span class="sd">        &quot;&quot;&quot;</span>
391        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
392        <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;white&quot;</span><span class="p">)</span>
393        <span class="k">try</span><span class="p">:</span>
394            <span class="n">val</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span> 
395            <span class="k">if</span> <span class="n">val</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
396                <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
397                <span class="n">item</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
398                <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
399        <span class="k">except</span><span class="p">:</span>
400            <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
401            <span class="n">item</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span> 
402            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
403        <span class="k">if</span> <span class="ow">not</span> <span class="n">flag</span> <span class="ow">and</span> <span class="n">is_button</span><span class="p">:</span>
404            <span class="n">err_msg</span> <span class="o">=</span> <span class="s">&quot;The z scale value should be larger than 0.&quot;</span>
405            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
406                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">err_msg</span><span class="p">,</span> 
407                                                    <span class="n">info</span><span class="o">=</span><span class="s">&quot;error&quot;</span><span class="p">))</span>
408            <span class="k">else</span><span class="p">:</span>
409                <span class="k">print</span> <span class="n">err_msg</span>
410        <span class="k">return</span> <span class="n">flag</span> 
411   
412<div class="viewcode-block" id="SetDialog.on_set"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.SetDialog.on_set">[docs]</a>    <span class="k">def</span> <span class="nf">on_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
413        <span class="sd">&quot;&quot;&quot;</span>
414<span class="sd">        Set image as data   </span>
415<span class="sd">        &quot;&quot;&quot;</span>
416        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
417        <span class="c"># Check the textctrl values</span>
418        <span class="k">for</span> <span class="n">item_list</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">xy_ctrls</span><span class="p">:</span>
419            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">item_list</span><span class="p">:</span>
420                 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_ctrls</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="bp">True</span><span class="p">):</span>
421                     <span class="k">return</span>
422        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_z_ctrl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">z_ctrl</span><span class="p">,</span> <span class="bp">True</span><span class="p">):</span>
423            <span class="k">return</span>
424        <span class="k">try</span><span class="p">:</span>
425            <span class="n">image</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">image</span>
426            <span class="n">xmin</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xy_ctrls</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="o">.</span><span class="n">GetValue</span><span class="p">())</span>
427            <span class="n">xmax</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xy_ctrls</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="o">.</span><span class="n">GetValue</span><span class="p">())</span>
428            <span class="n">ymin</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xy_ctrls</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">GetValue</span><span class="p">())</span>
429            <span class="n">ymax</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xy_ctrls</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="n">GetValue</span><span class="p">())</span>
430            <span class="n">zscale</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">z_ctrl</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
431            <span class="bp">self</span><span class="o">.</span><span class="n">convert_image</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">zscale</span><span class="p">)</span>
432        <span class="k">except</span><span class="p">:</span>
433            <span class="n">err_msg</span> <span class="o">=</span> <span class="s">&quot;Error occurred while converting Image to Data.&quot;</span>
434            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
435                <span class="n">wx</span><span class="o">.</span><span class="n">PostEvent</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="p">,</span> <span class="n">StatusEvent</span><span class="p">(</span><span class="n">status</span><span class="o">=</span><span class="n">err_msg</span><span class="p">,</span> 
436                                                    <span class="n">info</span><span class="o">=</span><span class="s">&quot;error&quot;</span><span class="p">))</span>
437            <span class="k">else</span><span class="p">:</span>
438                <span class="k">print</span> <span class="n">err_msg</span>
439           
440        <span class="bp">self</span><span class="o">.</span><span class="n">OnClose</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
441    </div>
442<div class="viewcode-block" id="SetDialog.convert_image"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.SetDialog.convert_image">[docs]</a>    <span class="k">def</span> <span class="nf">convert_image</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">rgb</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">zscale</span><span class="p">):</span>
443        <span class="sd">&quot;&quot;&quot;</span>
444<span class="sd">        Convert image to data2D</span>
445<span class="sd">        &quot;&quot;&quot;</span>
446        <span class="n">x_len</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">rgb</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
447        <span class="n">y_len</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">rgb</span><span class="p">)</span>
448        <span class="n">x_vals</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">num</span><span class="o">=</span><span class="n">x_len</span><span class="p">)</span>
449        <span class="n">y_vals</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="p">,</span> <span class="n">num</span><span class="o">=</span><span class="n">y_len</span><span class="p">)</span>
450        <span class="c"># Instantiate data object</span>
451        <span class="n">output</span> <span class="o">=</span> <span class="n">Data2D</span><span class="p">()</span>
452        <span class="n">output</span><span class="o">.</span><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">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
453        <span class="n">output</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">filename</span>
454        <span class="n">detector</span> <span class="o">=</span> <span class="n">Detector</span><span class="p">()</span>
455        <span class="n">detector</span><span class="o">.</span><span class="n">pixel_size</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="bp">None</span>
456        <span class="n">detector</span><span class="o">.</span><span class="n">pixel_size</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="bp">None</span>
457        <span class="c"># Store the sample to detector distance</span>
458        <span class="n">detector</span><span class="o">.</span><span class="n">distance</span> <span class="o">=</span> <span class="bp">None</span>
459        <span class="n">output</span><span class="o">.</span><span class="n">detector</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">detector</span><span class="p">)</span>
460        <span class="c"># Initiazed the output data object</span>
461        <span class="n">output</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">zscale</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">rgb2gray</span><span class="p">(</span><span class="n">rgb</span><span class="p">)</span>
462        <span class="n">output</span><span class="o">.</span><span class="n">err_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">([</span><span class="n">x_len</span><span class="p">,</span> <span class="n">y_len</span><span class="p">])</span>
463        <span class="n">output</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">([</span><span class="n">x_len</span><span class="p">,</span> <span class="n">y_len</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">bool</span><span class="p">)</span>
464        <span class="n">output</span><span class="o">.</span><span class="n">xbins</span> <span class="o">=</span> <span class="n">x_len</span>
465        <span class="n">output</span><span class="o">.</span><span class="n">ybins</span> <span class="o">=</span> <span class="n">y_len</span>
466        <span class="n">output</span><span class="o">.</span><span class="n">x_bins</span> <span class="o">=</span> <span class="n">x_vals</span>
467        <span class="n">output</span><span class="o">.</span><span class="n">y_bins</span> <span class="o">=</span> <span class="n">y_vals</span>
468        <span class="n">output</span><span class="o">.</span><span class="n">qx_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">x_vals</span><span class="p">)</span>
469        <span class="n">output</span><span class="o">.</span><span class="n">qy_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">y_vals</span><span class="p">)</span>
470        <span class="n">output</span><span class="o">.</span><span class="n">xmin</span> <span class="o">=</span> <span class="n">xmin</span>
471        <span class="n">output</span><span class="o">.</span><span class="n">xmax</span> <span class="o">=</span> <span class="n">xmax</span>
472        <span class="n">output</span><span class="o">.</span><span class="n">ymin</span> <span class="o">=</span> <span class="n">ymin</span>
473        <span class="n">output</span><span class="o">.</span><span class="n">ymax</span> <span class="o">=</span> <span class="n">ymax</span>
474        <span class="n">output</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{Q_{x}}&#39;</span><span class="p">,</span> <span class="s">&#39;\AA^{-1}&#39;</span><span class="p">)</span>
475        <span class="n">output</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\\</span><span class="s">rm{Q_{y}}&#39;</span><span class="p">,</span> <span class="s">&#39;\AA^{-1}&#39;</span><span class="p">)</span>
476        <span class="c"># Store loading process information</span>
477        <span class="n">output</span><span class="o">.</span><span class="n">meta_data</span><span class="p">[</span><span class="s">&#39;loader&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s">&quot;Reader&quot;</span>
478        <span class="n">output</span><span class="o">.</span><span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
479        <span class="n">output</span> <span class="o">=</span> <span class="n">reader2D_converter</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
480        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
481            <span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">create_gui_data</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
482            <span class="bp">self</span><span class="o">.</span><span class="n">base</span><span class="o">.</span><span class="n">add_data</span><span class="p">({</span><span class="n">data</span><span class="o">.</span><span class="n">id</span><span class="p">:</span><span class="n">data</span><span class="p">})</span>
483            </div>
484<div class="viewcode-block" id="SetDialog.rgb2gray"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.SetDialog.rgb2gray">[docs]</a>    <span class="k">def</span> <span class="nf">rgb2gray</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">rgb</span><span class="p">):</span>
485        <span class="sd">&quot;&quot;&quot;</span>
486<span class="sd">        RGB to Grey</span>
487<span class="sd">        &quot;&quot;&quot;</span>
488        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_png</span><span class="p">:</span>
489            <span class="c"># png image limits: 0 to 1, others 0 to 255</span>
490            <span class="c">#factor = 255.0</span>
491            <span class="n">rgb</span> <span class="o">=</span> <span class="n">rgb</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
492        <span class="k">if</span> <span class="n">rgb</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
493            <span class="n">grey</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">rollaxis</span><span class="p">(</span><span class="n">rgb</span><span class="p">,</span> <span class="n">axis</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span>
494        <span class="k">else</span><span class="p">:</span>
495            <span class="n">red</span><span class="p">,</span> <span class="n">green</span><span class="p">,</span> <span class="n">blue</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">rollaxis</span><span class="p">(</span><span class="n">rgb</span><span class="p">[</span><span class="o">...</span><span class="p">,:</span><span class="mi">3</span><span class="p">],</span> <span class="n">axis</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
496            <span class="n">grey</span> <span class="o">=</span> <span class="mf">0.299</span> <span class="o">*</span> <span class="n">red</span> <span class="o">+</span> <span class="mf">0.587</span> <span class="o">*</span> <span class="n">green</span> <span class="o">+</span> <span class="mf">0.114</span> <span class="o">*</span> <span class="n">blue</span>
497        <span class="n">max_i</span> <span class="o">=</span> <span class="n">rgb</span><span class="o">.</span><span class="n">max</span><span class="p">()</span>
498        <span class="n">factor</span> <span class="o">=</span> <span class="mf">255.0</span> <span class="o">/</span> <span class="n">max_i</span>
499        <span class="n">grey</span> <span class="o">*=</span> <span class="n">factor</span> 
500        <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">grey</span><span class="p">)</span>
501                      </div>
502<div class="viewcode-block" id="SetDialog.OnClose"><a class="viewcode-back" href="../../../../dev/api/sas.perspectives.calculator.html#sas.perspectives.calculator.image_viewer.SetDialog.OnClose">[docs]</a>    <span class="k">def</span> <span class="nf">OnClose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
503        <span class="sd">&quot;&quot;&quot;</span>
504<span class="sd">        Close event</span>
505<span class="sd">        &quot;&quot;&quot;</span>
506        <span class="c"># clear event</span>
507        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
508        <span class="bp">self</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
509                       </div></div>
510<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span>
511    <span class="n">app</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">App</span><span class="p">()</span>
512    <span class="n">ImageView</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
513    <span class="n">app</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span>   
514   
515 
516</pre></div>
517
518          </div>
519        </div>
520      </div>
521      <div class="sphinxsidebar">
522        <div class="sphinxsidebarwrapper">
523<div id="searchbox" style="display: none">
524  <h3>Quick search</h3>
525    <form class="search" action="../../../../search.html" method="get">
526      <input type="text" name="q" />
527      <input type="submit" value="Go" />
528      <input type="hidden" name="check_keywords" value="yes" />
529      <input type="hidden" name="area" value="default" />
530    </form>
531    <p class="searchtip" style="font-size: 90%">
532    Enter search terms or a module, class or function name.
533    </p>
534</div>
535<script type="text/javascript">$('#searchbox').show(0);</script>
536        </div>
537      </div>
538      <div class="clearer"></div>
539    </div>
540    <div class="related">
541      <h3>Navigation</h3>
542      <ul>
543        <li class="right" style="margin-right: 10px">
544          <a href="../../../../genindex.html" title="General Index"
545             >index</a></li>
546        <li class="right" >
547          <a href="../../../../py-modindex.html" title="Python Module Index"
548             >modules</a> |</li>
549        <li><a href="../../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
550          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
551          <li><a href="../calculator.html" >sas.perspectives.calculator</a> &raquo;</li> 
552      </ul>
553    </div>
554    <div class="footer">
555        &copy; Copyright 2013, The SasView Project.
556      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
557    </div>
558  </body>
559</html>
Note: See TracBrowser for help on using the repository browser.