source: sasview/_modules/sas/guiframe/dataFitting.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: 117.8 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.guiframe.dataFitting &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.guiframe" href="../guiframe.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="../guiframe.html" accesskey="U">sas.guiframe</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.guiframe.dataFitting</h1><div class="highlight"><pre>
52<span class="sd">&quot;&quot;&quot;</span>
53<span class="sd">Adapters for fitting module</span>
54<span class="sd">&quot;&quot;&quot;</span>
55<span class="kn">import</span> <span class="nn">copy</span>
56<span class="kn">import</span> <span class="nn">numpy</span>
57<span class="kn">import</span> <span class="nn">math</span>
58<span class="kn">from</span> <span class="nn">sas.data_util.uncertainty</span> <span class="kn">import</span> <span class="n">Uncertainty</span>
59<span class="kn">from</span> <span class="nn">sas.plottools.plottables</span> <span class="kn">import</span> <span class="n">Data1D</span> <span class="k">as</span> <span class="n">PlotData1D</span>
60<span class="kn">from</span> <span class="nn">sas.plottools.plottables</span> <span class="kn">import</span> <span class="n">Data2D</span> <span class="k">as</span> <span class="n">PlotData2D</span>
61<span class="kn">from</span> <span class="nn">sas.plottools.plottables</span> <span class="kn">import</span> <span class="n">Theory1D</span> <span class="k">as</span> <span class="n">PlotTheory1D</span>
62
63<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Data1D</span> <span class="k">as</span> <span class="n">LoadData1D</span>
64<span class="kn">from</span> <span class="nn">sas.dataloader.data_info</span> <span class="kn">import</span> <span class="n">Data2D</span> <span class="k">as</span> <span class="n">LoadData2D</span>
65
66
67<div class="viewcode-block" id="Data1D"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.dataFitting.Data1D">[docs]</a><span class="k">class</span> <span class="nc">Data1D</span><span class="p">(</span><span class="n">PlotData1D</span><span class="p">,</span> <span class="n">LoadData1D</span><span class="p">):</span>
68    <span class="sd">&quot;&quot;&quot;</span>
69<span class="sd">    &quot;&quot;&quot;</span>
70    <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">x</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dx</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
71        <span class="sd">&quot;&quot;&quot;</span>
72<span class="sd">        &quot;&quot;&quot;</span>
73        <span class="k">if</span> <span class="n">x</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
74            <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
75        <span class="k">if</span> <span class="n">y</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
76            <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
77        <span class="n">PlotData1D</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">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="p">)</span>
78        <span class="n">LoadData1D</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">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="p">)</span>
79        <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="bp">None</span>
80        <span class="bp">self</span><span class="o">.</span><span class="n">list_group_id</span> <span class="o">=</span> <span class="p">[]</span>
81        <span class="bp">self</span><span class="o">.</span><span class="n">group_id</span> <span class="o">=</span> <span class="bp">None</span>
82        <span class="bp">self</span><span class="o">.</span><span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
83        <span class="bp">self</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
84        <span class="bp">self</span><span class="o">.</span><span class="n">xtransform</span> <span class="o">=</span> <span class="bp">None</span>
85        <span class="bp">self</span><span class="o">.</span><span class="n">ytransform</span> <span class="o">=</span> <span class="bp">None</span>
86        <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
87        <span class="bp">self</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="bp">None</span>
88       
89<div class="viewcode-block" id="Data1D.copy_from_datainfo"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.dataFitting.Data1D.copy_from_datainfo">[docs]</a>    <span class="k">def</span> <span class="nf">copy_from_datainfo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data1d</span><span class="p">):</span>
90        <span class="sd">&quot;&quot;&quot;</span>
91<span class="sd">        copy values of Data1D of type DataLaoder.Data_info</span>
92<span class="sd">        &quot;&quot;&quot;</span>
93        <span class="bp">self</span><span class="o">.</span><span class="n">x</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">data1d</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
94        <span class="bp">self</span><span class="o">.</span><span class="n">y</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">data1d</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
95        <span class="bp">self</span><span class="o">.</span><span class="n">dy</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">data1d</span><span class="o">.</span><span class="n">dy</span><span class="p">)</span>
96       
97        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data1d</span><span class="p">,</span> <span class="s">&quot;dx&quot;</span><span class="p">):</span>
98            <span class="bp">self</span><span class="o">.</span><span class="n">dx</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">data1d</span><span class="o">.</span><span class="n">dx</span><span class="p">)</span>   
99        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data1d</span><span class="p">,</span> <span class="s">&quot;dxl&quot;</span><span class="p">):</span>
100            <span class="bp">self</span><span class="o">.</span><span class="n">dxl</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">data1d</span><span class="o">.</span><span class="n">dxl</span><span class="p">)</span>
101        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data1d</span><span class="p">,</span> <span class="s">&quot;dxw&quot;</span><span class="p">):</span>
102            <span class="bp">self</span><span class="o">.</span><span class="n">dxw</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">data1d</span><span class="o">.</span><span class="n">dxw</span><span class="p">)</span>
103   
104        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="n">data1d</span><span class="o">.</span><span class="n">_xaxis</span><span class="p">,</span> <span class="n">data1d</span><span class="o">.</span><span class="n">_xunit</span><span class="p">)</span>
105        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="n">data1d</span><span class="o">.</span><span class="n">_yaxis</span><span class="p">,</span> <span class="n">data1d</span><span class="o">.</span><span class="n">_yunit</span><span class="p">)</span>
106        <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">data1d</span><span class="o">.</span><span class="n">title</span>
107        </div>
108    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
109        <span class="sd">&quot;&quot;&quot;</span>
110<span class="sd">        print data</span>
111<span class="sd">        &quot;&quot;&quot;</span>
112        <span class="n">_str</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">LoadData1D</span><span class="o">.</span><span class="n">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
113     
114        <span class="k">return</span> <span class="n">_str</span> 
115   
116    <span class="k">def</span> <span class="nf">_perform_operation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">operation</span><span class="p">):</span>
117        <span class="sd">&quot;&quot;&quot;</span>
118<span class="sd">        &quot;&quot;&quot;</span>
119        <span class="c"># First, check the data compatibility</span>
120        <span class="n">dy</span><span class="p">,</span> <span class="n">dy_other</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_validity_check</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
121        <span class="n">result</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="p">[],</span> <span class="n">y</span><span class="o">=</span><span class="p">[],</span> <span class="n">dx</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
122        <span class="n">result</span><span class="o">.</span><span class="n">clone_without_data</span><span class="p">(</span><span class="n">length</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">),</span> <span class="n">clone</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
123        <span class="n">result</span><span class="o">.</span><span class="n">copy_from_datainfo</span><span class="p">(</span><span class="n">data1d</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
124        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
125            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="bp">None</span>
126        <span class="k">else</span><span class="p">:</span>
127            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">))</span>
128        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
129            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="bp">None</span>
130        <span class="k">else</span><span class="p">:</span>
131            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">))</span>
132
133        <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="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)):</span>
134            <span class="n">result</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
135            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">):</span>
136                <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
137            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxw</span><span class="p">):</span>
138                <span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
139            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">):</span>
140                <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
141           
142            <span class="n">a</span> <span class="o">=</span> <span class="n">Uncertainty</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
143            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Data1D</span><span class="p">):</span>
144                <span class="n">b</span> <span class="o">=</span> <span class="n">Uncertainty</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">dy_other</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
145                <span class="k">if</span> <span class="n">other</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
146                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
147                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
148                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="mi">2</span>
149                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
150                <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">other</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
151                    <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
152                    <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
153                    <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="mi">2</span>
154                    <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
155            <span class="k">else</span><span class="p">:</span>
156                <span class="n">b</span> <span class="o">=</span> <span class="n">other</span>
157           
158            <span class="n">output</span> <span class="o">=</span> <span class="n">operation</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
159            <span class="n">result</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">x</span>
160            <span class="n">result</span><span class="o">.</span><span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">variance</span><span class="p">))</span>
161        <span class="k">return</span> <span class="n">result</span>
162   
163    <span class="k">def</span> <span class="nf">_perform_union</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
164        <span class="sd">&quot;&quot;&quot;</span>
165<span class="sd">        &quot;&quot;&quot;</span>
166        <span class="c"># First, check the data compatibility</span>
167        <span class="bp">self</span><span class="o">.</span><span class="n">_validity_check_union</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
168        <span class="n">result</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="p">[],</span> <span class="n">y</span><span class="o">=</span><span class="p">[],</span> <span class="n">dx</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
169        <span class="n">tot_length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
170        <span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">clone_without_data</span><span class="p">(</span><span class="n">length</span><span class="o">=</span><span class="n">tot_length</span><span class="p">,</span> <span class="n">clone</span><span class="o">=</span><span class="n">result</span><span class="p">)</span>
171        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dy</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dy</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
172            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="bp">None</span>
173        <span class="k">else</span><span class="p">:</span>
174            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
175        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
176            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="bp">None</span>
177        <span class="k">else</span><span class="p">:</span>
178            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
179        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
180            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="bp">None</span>
181        <span class="k">else</span><span class="p">:</span>
182            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
183        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
184            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="bp">None</span>
185        <span class="k">else</span><span class="p">:</span>
186            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
187
188        <span class="n">result</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
189        <span class="c">#argsorting</span>
190        <span class="n">ind</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
191        <span class="n">result</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
192        <span class="n">result</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
193        <span class="n">result</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
194        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
195            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dy</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dy</span><span class="p">)</span>
196            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dy</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
197        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
198            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dx</span><span class="p">)</span>
199            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
200        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
201            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxw</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dxw</span><span class="p">)</span>
202            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
203        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
204            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dxl</span><span class="p">)</span>
205            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
206        <span class="k">return</span> <span class="n">result</span>
207   
208 
209    </div>
210<div class="viewcode-block" id="Theory1D"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.dataFitting.Theory1D">[docs]</a><span class="k">class</span> <span class="nc">Theory1D</span><span class="p">(</span><span class="n">PlotTheory1D</span><span class="p">,</span> <span class="n">LoadData1D</span><span class="p">):</span>
211    <span class="sd">&quot;&quot;&quot;</span>
212<span class="sd">    &quot;&quot;&quot;</span>
213    <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">x</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
214        <span class="sd">&quot;&quot;&quot;</span>
215<span class="sd">        &quot;&quot;&quot;</span>
216        <span class="k">if</span> <span class="n">x</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
217            <span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
218        <span class="k">if</span> <span class="n">y</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
219            <span class="n">y</span> <span class="o">=</span> <span class="p">[]</span>
220        <span class="n">PlotTheory1D</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">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">dy</span><span class="p">)</span>
221        <span class="n">LoadData1D</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">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">dy</span><span class="p">)</span>
222        <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="bp">None</span>
223        <span class="bp">self</span><span class="o">.</span><span class="n">list_group_id</span> <span class="o">=</span> <span class="p">[]</span>
224        <span class="bp">self</span><span class="o">.</span><span class="n">group_id</span> <span class="o">=</span> <span class="bp">None</span>
225        <span class="bp">self</span><span class="o">.</span><span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
226        <span class="bp">self</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
227        <span class="bp">self</span><span class="o">.</span><span class="n">xtransform</span> <span class="o">=</span> <span class="bp">None</span>
228        <span class="bp">self</span><span class="o">.</span><span class="n">ytransform</span> <span class="o">=</span> <span class="bp">None</span>
229        <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
230        <span class="bp">self</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="bp">None</span>
231   
232<div class="viewcode-block" id="Theory1D.copy_from_datainfo"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.dataFitting.Theory1D.copy_from_datainfo">[docs]</a>    <span class="k">def</span> <span class="nf">copy_from_datainfo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data1d</span><span class="p">):</span>
233        <span class="sd">&quot;&quot;&quot;</span>
234<span class="sd">        copy values of Data1D of type DataLaoder.Data_info</span>
235<span class="sd">        &quot;&quot;&quot;</span>
236        <span class="bp">self</span><span class="o">.</span><span class="n">x</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">data1d</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
237        <span class="bp">self</span><span class="o">.</span><span class="n">y</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">data1d</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
238        <span class="bp">self</span><span class="o">.</span><span class="n">dy</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">data1d</span><span class="o">.</span><span class="n">dy</span><span class="p">)</span>
239        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data1d</span><span class="p">,</span> <span class="s">&quot;dx&quot;</span><span class="p">):</span>
240            <span class="bp">self</span><span class="o">.</span><span class="n">dx</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">data1d</span><span class="o">.</span><span class="n">dx</span><span class="p">)</span> 
241        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data1d</span><span class="p">,</span> <span class="s">&quot;dxl&quot;</span><span class="p">):</span>
242            <span class="bp">self</span><span class="o">.</span><span class="n">dxl</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">data1d</span><span class="o">.</span><span class="n">dxl</span><span class="p">)</span>
243        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data1d</span><span class="p">,</span> <span class="s">&quot;dxw&quot;</span><span class="p">):</span>
244            <span class="bp">self</span><span class="o">.</span><span class="n">dxw</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">data1d</span><span class="o">.</span><span class="n">dxw</span><span class="p">)</span>   
245        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="n">data1d</span><span class="o">.</span><span class="n">_xaxis</span><span class="p">,</span> <span class="n">data1d</span><span class="o">.</span><span class="n">_xunit</span><span class="p">)</span>
246        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="n">data1d</span><span class="o">.</span><span class="n">_yaxis</span><span class="p">,</span> <span class="n">data1d</span><span class="o">.</span><span class="n">_yunit</span><span class="p">)</span>
247        <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">data1d</span><span class="o">.</span><span class="n">title</span>
248        </div>
249    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
250        <span class="sd">&quot;&quot;&quot;</span>
251<span class="sd">        print data</span>
252<span class="sd">        &quot;&quot;&quot;</span>
253        <span class="n">_str</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">LoadData1D</span><span class="o">.</span><span class="n">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
254     
255        <span class="k">return</span> <span class="n">_str</span> 
256   
257    <span class="k">def</span> <span class="nf">_perform_operation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">operation</span><span class="p">):</span>
258        <span class="sd">&quot;&quot;&quot;</span>
259<span class="sd">        &quot;&quot;&quot;</span>
260        <span class="c"># First, check the data compatibility</span>
261        <span class="n">dy</span><span class="p">,</span> <span class="n">dy_other</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_validity_check</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
262        <span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">clone_without_data</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">))</span>
263        <span class="n">result</span><span class="o">.</span><span class="n">copy_from_datainfo</span><span class="p">(</span><span class="n">data1d</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
264        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
265            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="bp">None</span>
266        <span class="k">else</span><span class="p">:</span>
267            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">))</span>
268        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
269            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="bp">None</span>
270        <span class="k">else</span><span class="p">:</span>
271            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">))</span>
272
273        <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="n">numpy</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)):</span>
274            <span class="n">result</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
275            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">):</span>
276                <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
277            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxw</span><span class="p">):</span>
278                <span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
279            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">):</span>
280                <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
281           
282            <span class="n">a</span> <span class="o">=</span> <span class="n">Uncertainty</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
283            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Data1D</span><span class="p">):</span>
284                <span class="n">b</span> <span class="o">=</span> <span class="n">Uncertainty</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">dy_other</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
285                <span class="k">if</span> <span class="n">other</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
286                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
287                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
288                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="mi">2</span>
289                    <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
290                <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">other</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
291                    <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
292                    <span class="n">other</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
293                    <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="mi">2</span>
294                    <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
295                <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
296                    <span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
297                    <span class="n">other</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
298                    <span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="mi">2</span>
299                    <span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
300            <span class="k">else</span><span class="p">:</span>
301                <span class="n">b</span> <span class="o">=</span> <span class="n">other</span>
302           
303            <span class="n">output</span> <span class="o">=</span> <span class="n">operation</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
304            <span class="n">result</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">x</span>
305            <span class="n">result</span><span class="o">.</span><span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">variance</span><span class="p">))</span>
306        <span class="k">return</span> <span class="n">result</span>
307   
308    <span class="k">def</span> <span class="nf">_perform_union</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
309        <span class="sd">&quot;&quot;&quot;</span>
310<span class="sd">        &quot;&quot;&quot;</span>
311        <span class="c"># First, check the data compatibility</span>
312        <span class="bp">self</span><span class="o">.</span><span class="n">_validity_check_union</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
313        <span class="n">result</span> <span class="o">=</span> <span class="n">Data1D</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="p">[],</span> <span class="n">y</span><span class="o">=</span><span class="p">[],</span> <span class="n">dx</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dy</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
314        <span class="n">tot_length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span><span class="o">+</span><span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
315        <span class="n">result</span><span class="o">.</span><span class="n">clone_without_data</span><span class="p">(</span><span class="n">length</span><span class="o">=</span><span class="n">tot_length</span><span class="p">,</span> <span class="n">clone</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
316        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dy</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dy</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
317            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="bp">None</span>
318        <span class="k">else</span><span class="p">:</span>
319            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
320        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
321            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="bp">None</span>
322        <span class="k">else</span><span class="p">:</span>
323            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
324        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxw</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
325            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="bp">None</span>
326        <span class="k">else</span><span class="p">:</span>
327            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
328        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dxl</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
329            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="bp">None</span>
330        <span class="k">else</span><span class="p">:</span>
331            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
332        <span class="n">result</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
333        <span class="c">#argsorting</span>
334        <span class="n">ind</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
335        <span class="n">result</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
336        <span class="n">result</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
337        <span class="n">result</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
338        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
339            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dy</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dy</span><span class="p">)</span>
340            <span class="n">result</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dy</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
341        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
342            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dx</span><span class="p">)</span>
343            <span class="n">result</span><span class="o">.</span><span class="n">dx</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dx</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
344        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
345            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxw</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dxw</span><span class="p">)</span>
346            <span class="n">result</span><span class="o">.</span><span class="n">dxw</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dxw</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
347        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
348            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dxl</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dxl</span><span class="p">)</span>
349            <span class="n">result</span><span class="o">.</span><span class="n">dxl</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">dxl</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span>
350        <span class="k">return</span> <span class="n">result</span>
351 
352      </div>
353<div class="viewcode-block" id="Data2D"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.dataFitting.Data2D">[docs]</a><span class="k">class</span> <span class="nc">Data2D</span><span class="p">(</span><span class="n">PlotData2D</span><span class="p">,</span> <span class="n">LoadData2D</span><span class="p">):</span>
354    <span class="sd">&quot;&quot;&quot;</span>
355<span class="sd">    &quot;&quot;&quot;</span>
356    <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">image</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">err_image</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
357                 <span class="n">qx_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">qy_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">q_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
358                 <span class="n">mask</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dqx_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">dqy_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> 
359                 <span class="n">xmin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ymin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
360                 <span class="n">zmin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">zmax</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
361        <span class="sd">&quot;&quot;&quot;</span>
362<span class="sd">        &quot;&quot;&quot;</span>
363        <span class="n">PlotData2D</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">image</span><span class="o">=</span><span class="n">image</span><span class="p">,</span> <span class="n">err_image</span><span class="o">=</span><span class="n">err_image</span><span class="p">,</span>
364                            <span class="n">xmin</span><span class="o">=</span><span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="n">xmax</span><span class="p">,</span> <span class="n">ymin</span><span class="o">=</span><span class="n">ymin</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="n">ymax</span><span class="p">,</span>
365                            <span class="n">zmin</span><span class="o">=</span><span class="n">zmin</span><span class="p">,</span> <span class="n">zmax</span><span class="o">=</span><span class="n">zmax</span><span class="p">,</span> <span class="n">qx_data</span><span class="o">=</span><span class="n">qx_data</span><span class="p">,</span> 
366                            <span class="n">qy_data</span><span class="o">=</span><span class="n">qy_data</span><span class="p">)</span>
367       
368        <span class="n">LoadData2D</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">data</span><span class="o">=</span><span class="n">image</span><span class="p">,</span> <span class="n">err_data</span><span class="o">=</span><span class="n">err_image</span><span class="p">,</span>
369                            <span class="n">qx_data</span><span class="o">=</span><span class="n">qx_data</span><span class="p">,</span> <span class="n">qy_data</span><span class="o">=</span><span class="n">qy_data</span><span class="p">,</span>
370                            <span class="n">dqx_data</span><span class="o">=</span><span class="n">dqx_data</span><span class="p">,</span> <span class="n">dqy_data</span><span class="o">=</span><span class="n">dqy_data</span><span class="p">,</span>
371                            <span class="n">q_data</span><span class="o">=</span><span class="n">q_data</span><span class="p">,</span> <span class="n">mask</span><span class="o">=</span><span class="n">mask</span><span class="p">)</span>
372        <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="bp">None</span>
373        <span class="bp">self</span><span class="o">.</span><span class="n">list_group_id</span> <span class="o">=</span> <span class="p">[]</span>
374        <span class="bp">self</span><span class="o">.</span><span class="n">group_id</span> <span class="o">=</span> <span class="bp">None</span>
375        <span class="bp">self</span><span class="o">.</span><span class="n">is_data</span> <span class="o">=</span> <span class="bp">True</span>
376        <span class="bp">self</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="bp">None</span>
377        <span class="bp">self</span><span class="o">.</span><span class="n">xtransform</span> <span class="o">=</span> <span class="bp">None</span>
378        <span class="bp">self</span><span class="o">.</span><span class="n">ytransform</span> <span class="o">=</span> <span class="bp">None</span>
379        <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
380        <span class="bp">self</span><span class="o">.</span><span class="n">scale</span> <span class="o">=</span> <span class="bp">None</span>
381       
382<div class="viewcode-block" id="Data2D.copy_from_datainfo"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.dataFitting.Data2D.copy_from_datainfo">[docs]</a>    <span class="k">def</span> <span class="nf">copy_from_datainfo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data2d</span><span class="p">):</span>
383        <span class="sd">&quot;&quot;&quot;</span>
384<span class="sd">        copy value of Data2D of type DataLoader.data_info</span>
385<span class="sd">        &quot;&quot;&quot;</span>
386        <span class="bp">self</span><span class="o">.</span><span class="n">data</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">data2d</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
387        <span class="bp">self</span><span class="o">.</span><span class="n">qx_data</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">data2d</span><span class="o">.</span><span class="n">qx_data</span><span class="p">)</span>
388        <span class="bp">self</span><span class="o">.</span><span class="n">qy_data</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">data2d</span><span class="o">.</span><span class="n">qy_data</span><span class="p">)</span>
389        <span class="bp">self</span><span class="o">.</span><span class="n">q_data</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">data2d</span><span class="o">.</span><span class="n">q_data</span><span class="p">)</span>
390        <span class="bp">self</span><span class="o">.</span><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">data2d</span><span class="o">.</span><span class="n">mask</span><span class="p">)</span>
391        <span class="bp">self</span><span class="o">.</span><span class="n">err_data</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">data2d</span><span class="o">.</span><span class="n">err_data</span><span class="p">)</span>
392        <span class="bp">self</span><span class="o">.</span><span class="n">x_bins</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">data2d</span><span class="o">.</span><span class="n">x_bins</span><span class="p">)</span>
393        <span class="bp">self</span><span class="o">.</span><span class="n">y_bins</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">data2d</span><span class="o">.</span><span class="n">y_bins</span><span class="p">)</span>
394        <span class="k">if</span> <span class="n">data2d</span><span class="o">.</span><span class="n">dqx_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
395            <span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</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">data2d</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">)</span>
396        <span class="k">if</span> <span class="n">data2d</span><span class="o">.</span><span class="n">dqy_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
397            <span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</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">data2d</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">)</span>
398        <span class="bp">self</span><span class="o">.</span><span class="n">xmin</span> <span class="o">=</span> <span class="n">data2d</span><span class="o">.</span><span class="n">xmin</span>
399        <span class="bp">self</span><span class="o">.</span><span class="n">xmax</span> <span class="o">=</span> <span class="n">data2d</span><span class="o">.</span><span class="n">xmax</span>
400        <span class="bp">self</span><span class="o">.</span><span class="n">ymin</span> <span class="o">=</span> <span class="n">data2d</span><span class="o">.</span><span class="n">ymin</span>
401        <span class="bp">self</span><span class="o">.</span><span class="n">ymax</span> <span class="o">=</span> <span class="n">data2d</span><span class="o">.</span><span class="n">ymax</span>
402        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data2d</span><span class="p">,</span> <span class="s">&quot;zmin&quot;</span><span class="p">):</span>
403            <span class="bp">self</span><span class="o">.</span><span class="n">zmin</span> <span class="o">=</span> <span class="n">data2d</span><span class="o">.</span><span class="n">zmin</span>
404        <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">data2d</span><span class="p">,</span> <span class="s">&quot;zmax&quot;</span><span class="p">):</span>
405            <span class="bp">self</span><span class="o">.</span><span class="n">zmax</span> <span class="o">=</span> <span class="n">data2d</span><span class="o">.</span><span class="n">zmax</span>
406        <span class="bp">self</span><span class="o">.</span><span class="n">xaxis</span><span class="p">(</span><span class="n">data2d</span><span class="o">.</span><span class="n">_xaxis</span><span class="p">,</span> <span class="n">data2d</span><span class="o">.</span><span class="n">_xunit</span><span class="p">)</span>
407        <span class="bp">self</span><span class="o">.</span><span class="n">yaxis</span><span class="p">(</span><span class="n">data2d</span><span class="o">.</span><span class="n">_yaxis</span><span class="p">,</span> <span class="n">data2d</span><span class="o">.</span><span class="n">_yunit</span><span class="p">)</span>
408        <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">data2d</span><span class="o">.</span><span class="n">title</span>
409        </div>
410    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
411        <span class="sd">&quot;&quot;&quot;</span>
412<span class="sd">        print data</span>
413<span class="sd">        &quot;&quot;&quot;</span>
414        <span class="n">_str</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">LoadData2D</span><span class="o">.</span><span class="n">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
415        <span class="k">return</span> <span class="n">_str</span> 
416   
417    <span class="k">def</span> <span class="nf">_validity_check</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
418        <span class="sd">&quot;&quot;&quot;</span>
419<span class="sd">        Checks that the data lengths are compatible.</span>
420<span class="sd">        Checks that the x vectors are compatible.</span>
421<span class="sd">        Returns errors vectors equal to original</span>
422<span class="sd">        errors vectors if they were present or vectors</span>
423<span class="sd">        of zeros when none was found.</span>
424<span class="sd">        </span>
425<span class="sd">        :param other: other data set for operation</span>
426<span class="sd">        </span>
427<span class="sd">        :return: dy for self, dy for other [numpy arrays]</span>
428<span class="sd">        </span>
429<span class="sd">        :raise ValueError: when lengths are not compatible</span>
430<span class="sd">        </span>
431<span class="sd">        &quot;&quot;&quot;</span>
432        <span class="n">err_other</span> <span class="o">=</span> <span class="bp">None</span>
433        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Data2D</span><span class="p">):</span>
434            <span class="c"># Check that data lengths are the same</span>
435            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="ow">or</span> \
436                <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qx_data</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">qx_data</span><span class="p">)</span> <span class="ow">or</span> \
437                <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qy_data</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">qy_data</span><span class="p">):</span>
438                <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Unable to perform operation: data length are not equal&quot;</span>
439                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">msg</span>
440            <span class="c">#if len(self.data) &lt; 1:</span>
441            <span class="c">#    msg = &quot;Incompatible data sets: I-values do not match&quot;</span>
442            <span class="c">#    raise ValueError, msg </span>
443            <span class="k">for</span> <span class="n">ind</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="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)):</span>
444                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qx_data</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> <span class="o">!=</span> <span class="n">other</span><span class="o">.</span><span class="n">qx_data</span><span class="p">[</span><span class="n">ind</span><span class="p">]:</span>
445                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Incompatible data sets: qx-values do not match&quot;</span>
446                    <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">msg</span>
447                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">qy_data</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> <span class="o">!=</span> <span class="n">other</span><span class="o">.</span><span class="n">qy_data</span><span class="p">[</span><span class="n">ind</span><span class="p">]:</span>
448                    <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Incompatible data sets: qy-values do not match&quot;</span>
449                    <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">msg</span>
450                   
451            <span class="c"># Check that the scales match</span>
452            <span class="n">err_other</span> <span class="o">=</span> <span class="n">other</span><span class="o">.</span><span class="n">err_data</span>
453            <span class="k">if</span> <span class="n">other</span><span class="o">.</span><span class="n">err_data</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> \
454                <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">err_data</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">)):</span>
455                <span class="n">err_other</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">))</span>
456           
457        <span class="c"># Check that we have errors, otherwise create zero vector</span>
458        <span class="n">err</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">err_data</span>
459        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">err_data</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> \
460            <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">err_data</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)):</span>
461            <span class="n">err</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">))</span>
462           
463        <span class="k">return</span> <span class="n">err</span><span class="p">,</span> <span class="n">err_other</span>
464
465    <span class="k">def</span> <span class="nf">_validity_check_union</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
466        <span class="sd">&quot;&quot;&quot;</span>
467<span class="sd">        Checks that the data lengths are compatible.</span>
468<span class="sd">        Checks that the x vectors are compatible.</span>
469<span class="sd">        Returns errors vectors equal to original</span>
470<span class="sd">        errors vectors if they were present or vectors</span>
471<span class="sd">        of zeros when none was found.</span>
472<span class="sd">        </span>
473<span class="sd">        :param other: other data set for operation</span>
474<span class="sd">        </span>
475<span class="sd">        :return: bool</span>
476<span class="sd">        </span>
477<span class="sd">        :raise ValueError: when data types are not compatible</span>
478<span class="sd">        </span>
479<span class="sd">        &quot;&quot;&quot;</span>
480        <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Data2D</span><span class="p">):</span>
481            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Unable to perform operation: different types of data set&quot;</span>
482            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">msg</span>   
483        <span class="k">return</span> <span class="bp">True</span>
484   
485    <span class="k">def</span> <span class="nf">_perform_operation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">operation</span><span class="p">):</span>
486        <span class="sd">&quot;&quot;&quot;</span>
487<span class="sd">        Perform 2D operations between data sets</span>
488<span class="sd">        </span>
489<span class="sd">        :param other: other data set</span>
490<span class="sd">        :param operation: function defining the operation</span>
491<span class="sd">        </span>
492<span class="sd">        &quot;&quot;&quot;</span>
493        <span class="c"># First, check the data compatibility</span>
494        <span class="n">dy</span><span class="p">,</span> <span class="n">dy_other</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_validity_check</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
495        <span class="n">result</span> <span class="o">=</span> <span class="n">Data2D</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">qx_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">qy_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
496                         <span class="n">q_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">err_image</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">xmin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
497                         <span class="n">ymin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">zmin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">zmax</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
498        <span class="n">result</span><span class="o">.</span><span class="n">clone_without_data</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">))</span>
499        <span class="n">result</span><span class="o">.</span><span class="n">copy_from_datainfo</span><span class="p">(</span><span class="n">data2d</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
500        <span class="n">result</span><span class="o">.</span><span class="n">xmin</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmin</span>
501        <span class="n">result</span><span class="o">.</span><span class="n">xmax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmax</span>
502        <span class="n">result</span><span class="o">.</span><span class="n">ymin</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ymin</span>
503        <span class="n">result</span><span class="o">.</span><span class="n">ymax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ymax</span>
504        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
505            <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">=</span> <span class="bp">None</span>
506            <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">=</span> <span class="bp">None</span>
507        <span class="k">else</span><span class="p">:</span>
508            <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">))</span>
509            <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">))</span>
510        <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="n">numpy</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)):</span>
511            <span class="n">result</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
512            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">err_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> \
513                <span class="n">numpy</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="o">==</span> <span class="n">numpy</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">err_data</span><span class="p">):</span>
514                <span class="n">result</span><span class="o">.</span><span class="n">err_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">err_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>   
515            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
516                <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
517            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
518                <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
519            <span class="n">result</span><span class="o">.</span><span class="n">qx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
520            <span class="n">result</span><span class="o">.</span><span class="n">qy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">qy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
521            <span class="n">result</span><span class="o">.</span><span class="n">q_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">q_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
522            <span class="n">result</span><span class="o">.</span><span class="n">mask</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mask</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
523           
524            <span class="n">a</span> <span class="o">=</span> <span class="n">Uncertainty</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
525            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Data2D</span><span class="p">):</span>
526                <span class="n">b</span> <span class="o">=</span> <span class="n">Uncertainty</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">dy_other</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
527                <span class="k">if</span> <span class="n">other</span><span class="o">.</span><span class="n">dqx_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> \
528                        <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
529                    <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
530                    <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
531                    <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="mi">2</span>
532                    <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>     
533                <span class="k">if</span> <span class="n">other</span><span class="o">.</span><span class="n">dqy_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> \
534                        <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
535                    <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
536                    <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
537                    <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="mi">2</span>
538                    <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
539            <span class="k">else</span><span class="p">:</span>
540                <span class="n">b</span> <span class="o">=</span> <span class="n">other</span>
541           
542            <span class="n">output</span> <span class="o">=</span> <span class="n">operation</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
543            <span class="n">result</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">x</span>
544            <span class="n">result</span><span class="o">.</span><span class="n">err_data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">fabs</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">variance</span><span class="p">))</span>
545        <span class="k">return</span> <span class="n">result</span>
546   
547    <span class="k">def</span> <span class="nf">_perform_union</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
548        <span class="sd">&quot;&quot;&quot;</span>
549<span class="sd">        Perform 2D operations between data sets</span>
550<span class="sd">        </span>
551<span class="sd">        :param other: other data set</span>
552<span class="sd">        :param operation: function defining the operation</span>
553<span class="sd">        </span>
554<span class="sd">        &quot;&quot;&quot;</span>
555        <span class="c"># First, check the data compatibility</span>
556        <span class="bp">self</span><span class="o">.</span><span class="n">_validity_check_union</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
557        <span class="n">result</span> <span class="o">=</span> <span class="n">Data2D</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">qx_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">qy_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
558                         <span class="n">q_data</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">err_image</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">xmin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
559                         <span class="n">ymin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">zmin</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">zmax</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
560        <span class="n">length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
561        <span class="n">tot_length</span> <span class="o">=</span> <span class="n">length</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
562        <span class="n">result</span><span class="o">.</span><span class="n">clone_without_data</span><span class="p">(</span><span class="n">tot_length</span><span class="p">)</span>
563        <span class="n">result</span><span class="o">.</span><span class="n">xmin</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmin</span>
564        <span class="n">result</span><span class="o">.</span><span class="n">xmax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmax</span>
565        <span class="n">result</span><span class="o">.</span><span class="n">ymin</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ymin</span>
566        <span class="n">result</span><span class="o">.</span><span class="n">ymax</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ymax</span>
567        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> \
568                <span class="n">other</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">==</span> <span class="bp">None</span> <span class="ow">or</span> <span class="n">other</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">==</span> <span class="bp">None</span> <span class="p">:</span>
569            <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">=</span> <span class="bp">None</span>
570            <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">=</span> <span class="bp">None</span>
571        <span class="k">else</span><span class="p">:</span>
572            <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="o">+</span> \
573                                         <span class="n">numpy</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">))</span>
574            <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="o">+</span> \
575                                         <span class="n">numpy</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">))</span>
576       
577        <span class="n">result</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
578        <span class="n">result</span><span class="o">.</span><span class="n">qx_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qx_data</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">qx_data</span><span class="p">)</span>
579        <span class="n">result</span><span class="o">.</span><span class="n">qy_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">qy_data</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">qy_data</span><span class="p">)</span>
580        <span class="n">result</span><span class="o">.</span><span class="n">q_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">q_data</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">q_data</span><span class="p">)</span>
581        <span class="n">result</span><span class="o">.</span><span class="n">mask</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mask</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">mask</span><span class="p">)</span>
582        <span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">err_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
583            <span class="n">result</span><span class="o">.</span><span class="n">err_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">err_data</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">err_data</span><span class="p">)</span> 
584        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
585            <span class="n">result</span><span class="o">.</span><span class="n">dqx_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dqx_data</span><span class="p">)</span>
586        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
587            <span class="n">result</span><span class="o">.</span><span class="n">dqy_data</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">dqy_data</span><span class="p">)</span>
588
589        <span class="k">return</span> <span class="n">result</span>
590        </div>
591<div class="viewcode-block" id="check_data_validity"><a class="viewcode-back" href="../../../dev/api/sas.guiframe.html#sas.guiframe.dataFitting.check_data_validity">[docs]</a><span class="k">def</span> <span class="nf">check_data_validity</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
592    <span class="sd">&quot;&quot;&quot;</span>
593<span class="sd">    Return True is data is valid enough to compute chisqr, else False</span>
594<span class="sd">    &quot;&quot;&quot;</span>
595    <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
596    <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
597        <span class="k">if</span> <span class="nb">issubclass</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span> <span class="n">Data2D</span><span class="p">):</span>
598            <span class="k">if</span> <span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">data</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>\
599            <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">err_data</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span>
600                <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
601        <span class="k">else</span><span class="p">:</span>
602            <span class="k">if</span> <span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">y</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">y</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span> 
603                <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
604        <span class="k">if</span> <span class="ow">not</span> <span class="n">data</span><span class="o">.</span><span class="n">is_data</span><span class="p">:</span>
605            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
606    <span class="k">else</span><span class="p">:</span>
607        <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
608    <span class="k">return</span> <span class="n">flag</span></div>
609</pre></div>
610
611          </div>
612        </div>
613      </div>
614      <div class="sphinxsidebar">
615        <div class="sphinxsidebarwrapper">
616<div id="searchbox" style="display: none">
617  <h3>Quick search</h3>
618    <form class="search" action="../../../search.html" method="get">
619      <input type="text" name="q" />
620      <input type="submit" value="Go" />
621      <input type="hidden" name="check_keywords" value="yes" />
622      <input type="hidden" name="area" value="default" />
623    </form>
624    <p class="searchtip" style="font-size: 90%">
625    Enter search terms or a module, class or function name.
626    </p>
627</div>
628<script type="text/javascript">$('#searchbox').show(0);</script>
629        </div>
630      </div>
631      <div class="clearer"></div>
632    </div>
633    <div class="related">
634      <h3>Navigation</h3>
635      <ul>
636        <li class="right" style="margin-right: 10px">
637          <a href="../../../genindex.html" title="General Index"
638             >index</a></li>
639        <li class="right" >
640          <a href="../../../py-modindex.html" title="Python Module Index"
641             >modules</a> |</li>
642        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
643          <li><a href="../../index.html" >Module code</a> &raquo;</li>
644          <li><a href="../guiframe.html" >sas.guiframe</a> &raquo;</li> 
645      </ul>
646    </div>
647    <div class="footer">
648        &copy; Copyright 2013, The SasView Project.
649      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
650    </div>
651  </body>
652</html>
Note: See TracBrowser for help on using the repository browser.