@@ -1234,7 +1234,7 @@ <h1>Source code for ehtim.obsdata</h1><div class="highlight"><pre>
1234
1234
1235
1235
<span class="k">return</span> <span class="n">chisq</span></div>
1236
1236
1237
- <div class="viewcode-block" id="Obsdata.polchisq"><a class="viewcode-back" href="../../obsdata.html#ehtim.obsdata.Obsdata.polchisq">[docs]</a> <span class="k">def</span> <span class="nf">polchisq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s1">'pvis'</span><span class="p">,</span> <span class="n">ttype</span><span class="o">=</span><span class="s1">'nfft'</span><span class="p">,</span> <span class="n">pol_trans</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n"> mask</span><span class="o">=</span><span class="p">[],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
1237
+ <div class="viewcode-block" id="Obsdata.polchisq"><a class="viewcode-back" href="../../obsdata.html#ehtim.obsdata.Obsdata.polchisq">[docs]</a> <span class="k">def</span> <span class="nf">polchisq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="s1">'pvis'</span><span class="p">,</span> <span class="n">ttype</span><span class="o">=</span><span class="s1">'nfft'</span><span class="p">,</span> <span class="n">mask</span><span class="o">=</span><span class="p">[],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
1238
1238
<span class="sd">"""Give the reduced chi^2 for the specified image and polarimetric datatype.</span>
1239
1239
1240
1240
<span class="sd"> Args:</span>
@@ -1243,7 +1243,7 @@ <h1>Source code for ehtim.obsdata</h1><div class="highlight"><pre>
1243
1243
<span class="sd"> pol (str): polarization type ('I', 'Q', 'U', 'V', 'LL', 'RR', 'LR', or 'RL'</span>
1244
1244
<span class="sd"> mask (arr): mask of same dimension as im.imvec</span>
1245
1245
<span class="sd"> ttype (str): if "fast" or "nfft" or "direct"</span>
1246
- <span class="sd"> pol_trans (bool): True for I,m,chi, False for IQU</span>
1246
+
1247
1247
<span class="sd"> fft_pad_factor (float): zero pad the image to (fft_pad_factor * image size) in FFT</span>
1248
1248
<span class="sd"> conv_func ('str'): The convolving function for gridding; 'gaussian', 'pill','cubic'</span>
1249
1249
<span class="sd"> p_rad (int): The pixel radius for the convolving function</span>
@@ -1273,33 +1273,22 @@ <h1>Source code for ehtim.obsdata</h1><div class="highlight"><pre>
1273
1273
1274
1274
<span class="c1"># Pack the comparison image in the proper format</span>
1275
1275
<span class="n">imstokes</span> <span class="o">=</span> <span class="n">im</span><span class="o">.</span><span class="n">switch_polrep</span><span class="p">(</span><span class="n">polrep_out</span><span class="o">=</span><span class="s1">'stokes'</span><span class="p">,</span> <span class="n">pol_prim_out</span><span class="o">=</span><span class="s1">'I'</span><span class="p">)</span>
1276
- <span class="k">if</span> <span class="n">pol_trans</span><span class="p">:</span>
1277
- <span class="n">ivec</span> <span class="o">=</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">imvec</span>
1278
- <span class="n">mvec</span> <span class="o">=</span> <span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">imstokes</span><span class="o">.</span><span class="n">qvec</span> <span class="o">+</span> <span class="mi">1</span><span class="n">j</span> <span class="o">*</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">uvec</span><span class="p">)</span> <span class="o">/</span> <span class="n">ivec</span><span class="p">)</span>
1279
- <span class="n">chivec</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">angle</span><span class="p">(</span><span class="n">imstokes</span><span class="o">.</span><span class="n">qvec</span> <span class="o">+</span> <span class="mi">1</span><span class="n">j</span> <span class="o">*</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">uvec</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
1280
- <span class="n">vvec</span> <span class="o">=</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">vvec</span><span class="o">/</span><span class="n">ivec</span>
1281
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">mask</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">invert</span><span class="p">(</span><span class="n">mask</span><span class="p">)):</span>
1282
- <span class="n">ivec</span> <span class="o">=</span> <span class="n">ivec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1283
- <span class="n">mvec</span> <span class="o">=</span> <span class="n">mvec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1284
- <span class="n">chivec</span> <span class="o">=</span> <span class="n">chivec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1285
- <span class="n">vvec</span> <span class="o">=</span> <span class="n">vvec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1286
- <span class="n">imtuple</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">((</span><span class="n">ivec</span><span class="p">,</span> <span class="n">mvec</span><span class="p">,</span> <span class="n">chivec</span><span class="p">,</span><span class="n">vvec</span><span class="p">))</span>
1287
- <span class="k">else</span><span class="p">:</span>
1288
- <span class="n">ivec</span> <span class="o">=</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">imvec</span>
1289
- <span class="n">qvec</span> <span class="o">=</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">qvec</span>
1290
- <span class="n">uvec</span> <span class="o">=</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">uvec</span>
1291
- <span class="n">vvec</span> <span class="o">=</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">vvec</span>
1292
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">mask</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">invert</span><span class="p">(</span><span class="n">mask</span><span class="p">)):</span>
1293
- <span class="n">ivec</span> <span class="o">=</span> <span class="n">ivec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1294
- <span class="n">qvec</span> <span class="o">=</span> <span class="n">qvec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1295
- <span class="n">uvec</span> <span class="o">=</span> <span class="n">uvec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1296
- <span class="n">vvec</span> <span class="o">=</span> <span class="n">vvec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1297
- <span class="n">imtuple</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">((</span><span class="n">ivec</span><span class="p">,</span> <span class="n">qvec</span><span class="p">,</span> <span class="n">uvec</span><span class="p">,</span><span class="n">vvec</span><span class="p">))</span>
1276
+
1277
+ <span class="n">ivec</span> <span class="o">=</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">imvec</span>
1278
+ <span class="n">rhovec</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">imstokes</span><span class="o">.</span><span class="n">qvec</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">uvec</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">vvec</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="o">/</span> <span class="n">ivec</span>
1279
+ <span class="n">phivec</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">angle</span><span class="p">(</span><span class="n">imstokes</span><span class="o">.</span><span class="n">qvec</span> <span class="o">+</span> <span class="mi">1</span><span class="n">j</span> <span class="o">*</span> <span class="n">imstokes</span><span class="o">.</span><span class="n">uvec</span><span class="p">)</span>
1280
+ <span class="n">psivec</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arcsin</span><span class="p">(</span><span class="n">vvec</span><span class="o">/</span><span class="n">ivec</span><span class="p">)</span>
1281
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">mask</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">invert</span><span class="p">(</span><span class="n">mask</span><span class="p">)):</span>
1282
+ <span class="n">ivec</span> <span class="o">=</span> <span class="n">ivec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1283
+ <span class="n">rhovec</span> <span class="o">=</span> <span class="n">rhovec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1284
+ <span class="n">phivec</span> <span class="o">=</span> <span class="n">phivec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1285
+ <span class="n">psivec</span> <span class="o">=</span> <span class="n">psivec</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span>
1286
+ <span class="n">imarr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">((</span><span class="n">ivec</span><span class="p">,</span> <span class="n">rhovec</span><span class="p">,</span> <span class="n">phivec</span><span class="p">,</span> <span class="n">psivec</span><span class="p">))</span>
1298
1287
1299
1288
1300
1289
<span class="c1"># Calculate the chi^2</span>
1301
- <span class="n">chisq</span> <span class="o">=</span> <span class="n">piu</span><span class="o">.</span><span class="n">polchisq</span><span class="p">(</span><span class="n">imtuple </span><span class="p">,</span> <span class="n">A</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">sigma</span><span class="p">,</span> <span class="n">dtype</span><span class="p">,</span>
1302
- <span class="n">ttype</span><span class="o">=</span><span class="n">ttype</span><span class="p">,</span> <span class="n">mask</span><span class="o">=</span><span class="n">mask</span><span class="p">,</span> <span class="n">pol_trans</span><span class="o">=</span><span class="n">pol_trans</span><span class="p"> )</span>
1290
+ <span class="n">chisq</span> <span class="o">=</span> <span class="n">piu</span><span class="o">.</span><span class="n">polchisq</span><span class="p">(</span><span class="n">imarr </span><span class="p">,</span> <span class="n">A</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">sigma</span><span class="p">,</span> <span class="n">dtype</span><span class="p">,</span>
1291
+ <span class="n">ttype</span><span class="o">=</span><span class="n">ttype</span><span class="p">,</span> <span class="n">mask</span><span class="o">=</span><span class="n">mask</span><span class="p">)</span>
1303
1292
1304
1293
<span class="k">return</span> <span class="n">chisq</span></div>
1305
1294
0 commit comments