7. ADI+IFS: PSF subtraction and forward modeling

Author: Valentin Christiaens
Suitable for VIP v1.2.2 onwards (Warning this is a different version requirement than other tutorials)
Last update: 2022/04/13

Table of contents

The purpose of this tutorial is to show: - how to inject a planet spectrum in a 4D (IFS+ADI) datacube; - how to post-process 4D (IFS+ADI) datacubes; - how to retrieve the parameters of a planet present in a 4D (IFS+ADI) datacube (astro- and spectrometry).

Note that the model spectra (for the star and planet) used in this notebook are provided after resampling for the purpose of highlighting the capabilities of VIP only (i.e. to avoid having to install additional requirements to be able to run this tutorial). If you are interested in a more complete planet spectrum injection procedure, check out this Exoplanet Data Challenge Phase 2 tutorial, which also requires the following external packages: `special <https://github.com/VChristiaens/special>`__ (for model resampling) and `eidc2 <https://github.com/exoplanet-imaging-challenge/phase2>`__ (for better flux normalization before spectrum injection).


Let’s first load all packages needed in this tutorial:

[1]:
import astropy.constants as c
import glob
from hciplot import plot_frames, plot_cubes
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd

#from special.model_resampling import resample_model
#from special.utils_spec import find_nearest

from vip_hci.config import VLT_SPHERE_IFS
from vip_hci.fits import open_fits, write_fits
from vip_hci.fm import (cube_inject_companions, firstguess, mcmc_negfc_sampling, normalize_psf,
                        show_walk_plot, show_corner_plot, confidence)
from vip_hci.metrics import snr, significance
from vip_hci.psfsub import median_sub, pca, pca_annular, pca_annulus, pca_grid
from vip_hci.preproc import find_scal_vector, frame_rescaling
from vip_hci.var import frame_center, dist, mask_circle
[2]:
firstguess?

7.1. Loading and visualizing the data

In the ‘datasets’ folder of the VIP_extras repository you can find a toy SPHERE/IFS coronagraphic cube acquired in pupil-stabilized mode on the source HIP39826 (a star with no reported directly imaged companion). The folder also contains the associated non-coronagraphic point spread function (PSF), wavelength vector, parallactic angles, and airmass of the source.

Let’s now load the data. Note that more info on opening and visualizing fits files with VIP in general is available in the first VIP tutorial.

[3]:
path = '../datasets/'

cubename = path+'sphere_ifs_HIP39826_cube.fits'
psfname = path+'sphere_ifs_HIP39826_psf.fits'
lbdaname = path+'sphere_ifs_HIP39826_wl.fits'
angname = path+'sphere_ifs_HIP39826_pa.fits'
Xname = path+'sphere_ifs_HIP39826_airmass.fits'

cube = open_fits(cubename)
psf = open_fits(psfname)
lbda = open_fits(lbdaname)
derot_angles = -1*open_fits(angname) # note: SPHERE DRH returns parallactic angles, while VIP routines take derotation angles as input
X_sci = open_fits(Xname)

nch, nz, ny, nx = cube.shape
Fits HDU-0 data successfully loaded, header available. Data shape: (39, 55, 107, 107)
Fits HDU-0 data successfully loaded, header available. Data shape: (39, 29, 29)
Fits HDU-0 data successfully loaded, header available. Data shape: (39,)
Fits HDU-0 data successfully loaded, header available. Data shape: (55,)
Fits HDU-0 data successfully loaded, header available. Data shape: (55,)

Each IFS spectral cube consists of 39 monochromatic images spread in wavelengths between the Y and J bands (‘YJ’ mode) or Y and H bands (‘YJH’ mode). Here the IFS+ADI cube contains 55 such spectral cubes combined into a single master cube.

The master spectral cube is already centered, trimmed from bad frames, and mostly corrected from bad pixels (check Tutorial 2 for example uses).

Let’s inspect the first wavelength using hciplot.plot_cubes (feel free to set the backend to ‘bokeh’ to read pixel values interactively):

[4]:
plot_cubes(cube)#, backend='bokeh')
:Dataset   [x,y,time,lambda]   (flux)
:Cube_shape     [107, 107, 55, 39]
[4]:

We notice that the flux varies and the PSF size increases, both as a function of wavelength.

Now let’s inspect the PSF cube (one frame per wavelength), which will be used for the actual injection of a fake planet:

[5]:
plot_cubes(psf)
:Dataset   [x,y,time]   (flux)
:Cube_shape     [29, 29, 39]
[5]:

As we can see, the flux varies as a function of wavelength. This reflects the intrinsic spectrum of the star but also the instrumental transmission and atmospheric absorption bands (e.g. associated to the water molecule) affecting some wavelengths more than others. The flux will be normalized in the next section, before injection.

Now let’s check the parallactic angle and airmass variations:

[6]:
%matplotlib inline
fig, axes = plt.subplots(1,2, figsize = (14,5))
ax1, ax2 = axes
ax1.plot(range(1,nz+1), derot_angles)
ax1.set_xlabel("Cube index")
ax1.set_ylabel("Parallactic angle (deg)")
ax2.plot(range(1,nz+1), X_sci)
ax2.set_xlabel("Cube index")
ax2.set_ylabel("Airmass")
plt.show()
../_images/tutorials_07_ifs_psfsub_fm_planets_19_0.png

Note the sudden variation in parallactic angle at the end of the sequence is because we trimmed bad frames from the sequence (all were located towards the end of the observation).

Let’s define the pixel scale for IFS - note that this is optional since the planet coordinates will be given in pixels. It will still be useful to have meaningful radial separations expressed in arcsec.

[7]:
plsc = VLT_SPHERE_IFS['plsc']
print(plsc, "arcsec/px")
0.00746 arcsec/px

Let’s now load and visualize the coronagraphic radial transmission profile:

[8]:
trans = open_fits(path+"../datasets/sphere_ifs_YJ_APLC_CoroTransmission.fits")
Fits HDU-0 data successfully loaded, header available. Data shape: (40, 23)
[9]:
last_r = 20
plt.figure(figsize=(10,6))
plt.plot(trans[0,:last_r]*1000, trans[1,:last_r], 'b', label='ch 1')
plt.plot(trans[0,:last_r]*1000, trans[10,:last_r], 'c', label='ch 10')
plt.plot(trans[0,:last_r]*1000, trans[20,:last_r], 'y', label='ch 20')
plt.plot(trans[0,:last_r]*1000, trans[30,:last_r], 'm', label='ch 30')
plt.plot(trans[0,:last_r]*1000, trans[-1,:last_r], 'r', label='ch 39')
plt.xlabel("Radius (mas)")
plt.ylabel("Transmission")
plt.legend()
[9]:
<matplotlib.legend.Legend at 0x16d1601d0>
../_images/tutorials_07_ifs_psfsub_fm_planets_25_1.png

EDIT: this is not the most up-to-date SPHERE coronagraphic transmission curve. Please contact relevant SPHERE colleagues or check the ESO website for a newer version. Do not use the above curve for your research.

7.2. Planet parameters and spectra

Now let’s set the ground truth coordinates and average contrast (over all wavelengths) at which two planets will be injected in this cube:

[10]:
xy_b = (58.6,37.7)
contrast_b = 1e-3

xy_c = (83.8,29.9)
contrast_c = 2e-4

Let’s convert cartesian to polar coordinates:

[11]:
cy, cx = frame_center(cube)
r_b = dist(cy, cx, xy_b[1], xy_b[0])
r_c = dist(cy, cx, xy_c[1], xy_c[0])

theta_b = np.rad2deg(np.arctan2(xy_b[1]-cy, xy_b[0]-cx))
theta_c = np.rad2deg(np.arctan2(xy_c[1]-cy, xy_c[0]-cx))
[12]:
print(cy, cx)
print(r_b, theta_b)
print(r_c, theta_c)
53 53
16.292636373527763 -69.89671372878468
38.5 -36.86989764584403

Now let’s consider two fiducial model spectra for the injection of the 2 planets: a flat spectrum and a 1000K blackbody model (note that this exercise is purely academic).

[13]:
def blackbody(lbda, T):
    fac = 2*c.h.value*(c.c.value**2)/(np.power(lbda*1e-6,5))
    div = (1/(np.exp((c.h.value*c.c.value)/((lbda*1e-6)*c.k_B.value*T))-1))
    # convert from W m-3 Sr-1 to W m-2 mu-1 Sr-1
    conv = 1e-6
    return fac*div*conv
[14]:
fluxes_b = np.ones_like(lbda)
fluxes_c = blackbody(lbda, 1000)

spec_b = np.array([lbda, fluxes_b])
spec_c = np.array([lbda, fluxes_c])
[15]:
plt.plot(lbda, fluxes_b/np.amax(fluxes_b), 'k', label='flat')
plt.plot(lbda, fluxes_c/np.amax(fluxes_c), 'r', label='1000 K BB')
plt.xlabel(r"$\lambda (\mu$m)")
plt.ylabel(r"$ F_{\lambda}$ (arbitrary units)")
plt.legend()
[15]:
<matplotlib.legend.Legend at 0x16d20c990>
../_images/tutorials_07_ifs_psfsub_fm_planets_36_1.png

7.3. Flux normalization

7.3.1. Non-coronagraphic PSF normalization

Let’s measure the flux and FWHM of the non-coronagraphic PSF and normalize its flux to 1 in a 1-FWHM radius aperture (all at once), in all channels, using VIP’s fm/normalize_psf function. We use the debug option to check that each 2D Gaussian fit worked properly:

[16]:
%matplotlib inline
psfn, flux_st, fwhm = normalize_psf(psf, fwhm='fit', full_output=True, debug=True)
../_images/tutorials_07_ifs_psfsub_fm_planets_40_0.png
FWHM_y = 6.2499185906038734
FWHM_x = 5.955174570808004

centroid y = 13.91271280451398
centroid x = 13.899308522396119
centroid y subim = 13.91271280451398
centroid x subim = 13.899308522396119

amplitude = 636.3209207163184
theta = -40.20327494893463
../_images/tutorials_07_ifs_psfsub_fm_planets_40_2.png
FWHM_y = 6.115031733429569
FWHM_x = 5.839092912200307

centroid y = 14.027611189747118
centroid x = 13.902123414264741
centroid y subim = 14.027611189747118
centroid x subim = 13.902123414264741

amplitude = 1054.2949916060757
theta = -37.53607125551687
../_images/tutorials_07_ifs_psfsub_fm_planets_40_4.png
FWHM_y = 6.017536940985172
FWHM_x = 5.754055056932398

centroid y = 14.064675014829234
centroid x = 13.921899407828272
centroid y subim = 14.064675014829234
centroid x subim = 13.921899407828272

amplitude = 1404.794695125425
theta = -32.75340696040898
../_images/tutorials_07_ifs_psfsub_fm_planets_40_6.png
FWHM_y = 5.991878155204902
FWHM_x = 5.682647009421292

centroid y = 14.065184394206566
centroid x = 13.946038597175642
centroid y subim = 14.065184394206566
centroid x subim = 13.946038597175642

amplitude = 1705.2716467835362
theta = -37.3838283117331
../_images/tutorials_07_ifs_psfsub_fm_planets_40_8.png
FWHM_y = 6.025210456840216
FWHM_x = 5.719302651409165

centroid y = 14.075784813017492
centroid x = 13.955473078460203
centroid y subim = 14.075784813017492
centroid x subim = 13.955473078460203

amplitude = 1975.5120237812189
theta = -39.22716810162709
../_images/tutorials_07_ifs_psfsub_fm_planets_40_10.png
FWHM_y = 5.985037638845696
FWHM_x = 5.719904342290713

centroid y = 14.090563585852337
centroid x = 13.954901979145369
centroid y subim = 14.090563585852337
centroid x subim = 13.954901979145369

amplitude = 2143.9966998784653
theta = -37.89243906967075
../_images/tutorials_07_ifs_psfsub_fm_planets_40_12.png
FWHM_y = 6.037449649433551
FWHM_x = 5.7537333670610575

centroid y = 14.109510955089712
centroid x = 13.980317492176528
centroid y subim = 14.109510955089712
centroid x subim = 13.980317492176528

amplitude = 2165.8668020759737
theta = -38.98816537803606
../_images/tutorials_07_ifs_psfsub_fm_planets_40_14.png
FWHM_y = 6.010425979656497
FWHM_x = 5.749988204486838

centroid y = 14.09139902516843
centroid x = 13.986593684665714
centroid y subim = 14.09139902516843
centroid x subim = 13.986593684665714

amplitude = 2237.452674183443
theta = -42.08255560940275
../_images/tutorials_07_ifs_psfsub_fm_planets_40_16.png
FWHM_y = 6.005151597188339
FWHM_x = 5.76618913736032

centroid y = 14.090254937281216
centroid x = 14.000261828564383
centroid y subim = 14.090254937281216
centroid x subim = 14.000261828564383

amplitude = 2355.107335363224
theta = -38.12872688402823
../_images/tutorials_07_ifs_psfsub_fm_planets_40_18.png
FWHM_y = 5.968097471114103
FWHM_x = 5.732989798767101

centroid y = 14.102026780112466
centroid x = 14.00192256597961
centroid y subim = 14.102026780112466
centroid x subim = 14.00192256597961

amplitude = 2523.9552216610077
theta = -36.166718794700756
../_images/tutorials_07_ifs_psfsub_fm_planets_40_20.png
FWHM_y = 6.2010452530776154
FWHM_x = 5.952529125955214

centroid y = 14.095618864845
centroid x = 14.011238141279225
centroid y subim = 14.095618864845
centroid x subim = 14.011238141279225

amplitude = 2483.278573203233
theta = -40.01453306581354
../_images/tutorials_07_ifs_psfsub_fm_planets_40_22.png
FWHM_y = 6.116743999603686
FWHM_x = 5.8392716209686455

centroid y = 14.100847253492372
centroid x = 14.00962801008164
centroid y subim = 14.100847253492372
centroid x subim = 14.00962801008164

amplitude = 2649.287384055851
theta = -42.972115252638694
../_images/tutorials_07_ifs_psfsub_fm_planets_40_24.png
FWHM_y = 6.037056836634695
FWHM_x = 5.786392745945851

centroid y = 14.110142788418528
centroid x = 14.004784235107898
centroid y subim = 14.110142788418528
centroid x subim = 14.004784235107898

amplitude = 2770.024028598639
theta = -39.87700223679414
../_images/tutorials_07_ifs_psfsub_fm_planets_40_26.png
FWHM_y = 6.066318706454739
FWHM_x = 5.822724547903064

centroid y = 14.099317823674594
centroid x = 14.003150239115127
centroid y subim = 14.099317823674594
centroid x subim = 14.003150239115127

amplitude = 2830.2548549551825
theta = -47.812018317067206
../_images/tutorials_07_ifs_psfsub_fm_planets_40_28.png
FWHM_y = 6.0762534866894
FWHM_x = 5.806486874018672

centroid y = 14.112521461447967
centroid x = 14.034377198494248
centroid y subim = 14.112521461447967
centroid x subim = 14.034377198494248

amplitude = 2803.4053532338025
theta = -1130.8992713799976
../_images/tutorials_07_ifs_psfsub_fm_planets_40_30.png
FWHM_y = 5.783408275201281
FWHM_x = 6.0947688987153565

centroid y = 14.151451482312362
centroid x = 14.046235885495358
centroid y subim = 14.151451482312362
centroid x subim = 14.046235885495358

amplitude = 2553.3202894435076
theta = -1046.1876651444493
../_images/tutorials_07_ifs_psfsub_fm_planets_40_32.png
FWHM_y = 6.18160840917673
FWHM_x = 5.819390957373637

centroid y = 14.20606445385617
centroid x = 14.027564827140305
centroid y subim = 14.20606445385617
centroid x subim = 14.027564827140305

amplitude = 2063.1990467607516
theta = -591.897110332275
../_images/tutorials_07_ifs_psfsub_fm_planets_40_34.png
FWHM_y = 5.751799509227017
FWHM_x = 6.1765754988581305

centroid y = 14.19949897448417
centroid x = 14.014692740126705
centroid y subim = 14.19949897448417
centroid x subim = 14.014692740126705

amplitude = 1668.5838006836177
theta = 214.19574589903868
../_images/tutorials_07_ifs_psfsub_fm_planets_40_36.png
FWHM_y = 5.797247573087524
FWHM_x = 6.1407206833700165

centroid y = 14.09188009914479
centroid x = 13.978278484577537
centroid y subim = 14.09188009914479
centroid x subim = 13.978278484577537

amplitude = 1587.9799968312032
theta = 208.93362670690016
../_images/tutorials_07_ifs_psfsub_fm_planets_40_38.png
FWHM_y = 6.173286713166213
FWHM_x = 5.849770266197921

centroid y = 14.020275158086994
centroid x = 14.002567343397786
centroid y subim = 14.020275158086994
centroid x subim = 14.002567343397786

amplitude = 1805.5945901482098
theta = 117.55114919185252
../_images/tutorials_07_ifs_psfsub_fm_planets_40_40.png
FWHM_y = 5.8792339430596385
FWHM_x = 6.127221726103625

centroid y = 13.989753883492577
centroid x = 14.002807252408369
centroid y subim = 13.989753883492577
centroid x subim = 14.002807252408369

amplitude = 2198.15726732781
theta = -320.21556683332454
../_images/tutorials_07_ifs_psfsub_fm_planets_40_42.png
FWHM_y = 5.887171922875942
FWHM_x = 6.160164896057722

centroid y = 14.006124941599417
centroid x = 14.009936779590372
centroid y subim = 14.006124941599417
centroid x subim = 14.009936779590372

amplitude = 2628.450008946031
theta = -321.35901701076017
../_images/tutorials_07_ifs_psfsub_fm_planets_40_44.png
FWHM_y = 6.098319375621081
FWHM_x = 5.823811534748942

centroid y = 14.045780781152429
centroid x = 14.014771011818317
centroid y subim = 14.045780781152429
centroid x subim = 14.014771011818317

amplitude = 2992.271712291609
theta = -228.95610739084978
../_images/tutorials_07_ifs_psfsub_fm_planets_40_46.png
FWHM_y = 6.0881435225079805
FWHM_x = 5.800320948866406

centroid y = 14.051247831816042
centroid x = 13.998093842075047
centroid y subim = 14.051247831816042
centroid x subim = 13.998093842075047

amplitude = 3191.2868185639486
theta = -409.9397195034933
../_images/tutorials_07_ifs_psfsub_fm_planets_40_48.png
FWHM_y = 6.131166433598984
FWHM_x = 5.872212732710025

centroid y = 14.035337815438458
centroid x = 13.998171477355866
centroid y subim = 14.035337815438458
centroid x subim = 13.998171477355866

amplitude = 3243.1658846376727
theta = -50.094032052651215
../_images/tutorials_07_ifs_psfsub_fm_planets_40_50.png
FWHM_y = 6.174942665281358
FWHM_x = 5.993212466027066

centroid y = 14.039753518531834
centroid x = 13.991921001228043
centroid y subim = 14.039753518531834
centroid x subim = 13.991921001228043

amplitude = 3307.870326350025
theta = -60.778524955012216
../_images/tutorials_07_ifs_psfsub_fm_planets_40_52.png
FWHM_y = 6.212946741792123
FWHM_x = 6.032862559194067

centroid y = 14.009742407110084
centroid x = 13.967991908928983
centroid y subim = 14.009742407110084
centroid x subim = 13.967991908928983

amplitude = 3436.0292572548005
theta = -233.0743437511544
../_images/tutorials_07_ifs_psfsub_fm_planets_40_54.png
FWHM_y = 6.202834710260402
FWHM_x = 5.991454580720097

centroid y = 14.020014512644996
centroid x = 13.952064722408837
centroid y subim = 14.020014512644996
centroid x subim = 13.952064722408837

amplitude = 3546.6560417516
theta = -45.0887395475915
../_images/tutorials_07_ifs_psfsub_fm_planets_40_56.png
FWHM_y = 6.188582125824742
FWHM_x = 5.985402654686103

centroid y = 14.01288592814225
centroid x = 13.933314914222532
centroid y subim = 14.01288592814225
centroid x subim = 13.933314914222532

amplitude = 3607.1363107135303
theta = -45.54255278702486
../_images/tutorials_07_ifs_psfsub_fm_planets_40_58.png
FWHM_y = 6.244755229547681
FWHM_x = 6.022172272874138

centroid y = 14.005908973811751
centroid x = 13.928682611420811
centroid y subim = 14.005908973811751
centroid x subim = 13.928682611420811

amplitude = 3616.190962501067
theta = -32.9257630430613
../_images/tutorials_07_ifs_psfsub_fm_planets_40_60.png
FWHM_y = 6.273041721822999
FWHM_x = 6.080609549848098

centroid y = 13.982299985252563
centroid x = 13.934886096628695
centroid y subim = 13.982299985252563
centroid x subim = 13.934886096628695

amplitude = 3579.5485931779963
theta = -38.8109468817101
../_images/tutorials_07_ifs_psfsub_fm_planets_40_62.png
FWHM_y = 6.272897782073148
FWHM_x = 6.150604153616258

centroid y = 13.949986873367504
centroid x = 13.940065010491569
centroid y subim = 13.949986873367504
centroid x subim = 13.940065010491569

amplitude = 3535.362591691256
theta = -1487.0522520173815
../_images/tutorials_07_ifs_psfsub_fm_planets_40_64.png
FWHM_y = 6.169653553625251
FWHM_x = 6.268150616054396

centroid y = 13.93102667705402
centroid x = 13.920174694300993
centroid y subim = 13.93102667705402
centroid x subim = 13.920174694300993

amplitude = 3562.2524885100333
theta = 32.84281796852144
../_images/tutorials_07_ifs_psfsub_fm_planets_40_66.png
FWHM_y = 6.274537554461365
FWHM_x = 6.15783778729409

centroid y = 13.934250084708731
centroid x = 13.921697907180066
centroid y subim = 13.934250084708731
centroid x subim = 13.921697907180066

amplitude = 3655.6640709273543
theta = 129.00320367484554
../_images/tutorials_07_ifs_psfsub_fm_planets_40_68.png
FWHM_y = 6.311436197883887
FWHM_x = 6.1353158474999905

centroid y = 13.94518468204029
centroid x = 13.904558439173428
centroid y subim = 13.94518468204029
centroid x subim = 13.904558439173428

amplitude = 3713.2225587915073
theta = -41.34373753295239
../_images/tutorials_07_ifs_psfsub_fm_planets_40_70.png
FWHM_y = 6.330588326064803
FWHM_x = 6.183593806778592

centroid y = 13.972693149768391
centroid x = 13.88644208061843
centroid y subim = 13.972693149768391
centroid x subim = 13.88644208061843

amplitude = 3603.9831791184242
theta = -39.62090236137112
../_images/tutorials_07_ifs_psfsub_fm_planets_40_72.png
FWHM_y = 6.184001319791858
FWHM_x = 6.343494125581091

centroid y = 13.949799213255506
centroid x = 13.88297982179931
centroid y subim = 13.949799213255506
centroid x subim = 13.88297982179931

amplitude = 3362.4927849833225
theta = -131.56407953215066
../_images/tutorials_07_ifs_psfsub_fm_planets_40_74.png
FWHM_y = 6.104938363807356
FWHM_x = 6.326105627594453

centroid y = 13.96352838089737
centroid x = 13.869285619427107
centroid y subim = 13.96352838089737
centroid x subim = 13.869285619427107

amplitude = 3062.496146821083
theta = -498.2520143063228
../_images/tutorials_07_ifs_psfsub_fm_planets_40_76.png
FWHM_y = 6.281872522406608
FWHM_x = 6.1068962716933175

centroid y = 14.035165570900137
centroid x = 13.854666632371053
centroid y subim = 14.035165570900137
centroid x subim = 13.854666632371053

amplitude = 2583.8408147326386
theta = -35.59944036195603
Mean FWHM per channel:
[6.103 5.977 5.886 5.837 5.872 5.852 5.896 5.88  5.886 5.851 6.077 5.978
 5.912 5.945 5.941 5.939 6.    5.964 5.969 6.012 6.003 6.024 5.961 5.944
 6.002 6.084 6.123 6.097 6.087 6.133 6.177 6.212 6.219 6.216 6.223 6.257
 6.264 6.216 6.194]
Flux in 1xFWHM aperture:
[13397.649 21373.517 27661.433 33057.763 38754.981 41781.661 42805.645
 44021.68  46395.703 49082.614 52371.307 53918.696 55093.806 56930.742
 56350.541 51298.303 42189.297 33733.493 32181.659 37142.073 45223.932
 54394.967 60556.863 64201.073 66477.378 69675.456 73203.718 74978.343
 76002.683 77311.678 77583.749 77448.172 78182.432 80187.787 81616.948
 80114.272 74899.496 67091.761 56185.008]

Now let’s plot the measured FWHM and stellar flux:

[17]:
fig, axes = plt.subplots(1,2, figsize = (14,5))
ax1, ax2 = axes
ax1.plot(lbda, fwhm, 'bo')
ax1.set_xlabel(r"Wavelength ($\mu$m)")
ax1.set_ylabel("FWHM")
ax2.plot(lbda, flux_st, 'ro')
ax2.set_xlabel(r"Wavelength ($\mu$m)")
ax2.set_ylabel("Stellar flux (ADUs)")
plt.show()
../_images/tutorials_07_ifs_psfsub_fm_planets_42_0.png

Fig. 3.1: Measured FWHM and stellar flux in the non-coronagraphic PSF cube.

[18]:
plot_cubes(psfn, grid=True)
:Dataset   [x,y,time]   (flux)
:Cube_shape     [29, 29, 39]
[18]:

Now let’s save the measured spectrum of the star in the format we will need for the injection function:

[19]:
spec_star = np.array([lbda, flux_st])

7.3.2. Stellar SED model

The spectral type of the star (HIP39826) is K7V. For the purpose of this tutorial, we simply load a BT-NextGen SED model that has already be resampled considering the spectral resolution and sampling of SPHERE-IFS:

[20]:
spec_star_mod = open_fits("../datasets/sphere_ifs_HIP39826_SED_model.fits")

plt.plot(spec_star_mod[0], spec_star_mod[0]*spec_star_mod[1], 'k', label='Model SED for the star')
plt.ylabel(r"$\lambda F_{\lambda}$ (arbitrary units)")
plt.legend()
Fits HDU-0 data successfully loaded, header available. Data shape: (2, 39)
[20]:
<matplotlib.legend.Legend at 0x16e3c9850>

7.3.3. Airmass

Airmass variation can also be taken into consideration during the injection of the planet spectra (more specifically we consider the ratio between individual airmass values and the median airmass over the observation):

[21]:
med_X = np.median(X_sci)
X_fac = np.exp(-(X_sci-med_X))

Let’s plot the factors to be applied to correct for airmass (w.r.t median airmass):

[22]:
%matplotlib inline
plt.plot(range(1,nz+1), X_fac, 'k')
plt.xlabel("Cube index")
plt.ylabel("X factor")
[22]:
Text(25.097222222222214, 0.5, 'X factor')

7.3.4. Final fluxes

Let’s now calculate the fluxes at which the normalized PSF will actually be injected in each frame of each spectral cube.

Considering the effect of instrumental and atmospheric transmission, we have:

[23]:
flux_b_trans = fluxes_b*(flux_st/spec_star_mod[1])
flux_c_trans = fluxes_c*(flux_st/spec_star_mod[1])

Considering the actual mean contrast we want the planet to be injected, with respect to the star, we have:

[24]:
flux_b_scal = flux_b_trans*contrast_b*np.mean(flux_st)/np.mean(flux_b_trans)
flux_c_scal = flux_c_trans*contrast_c*np.mean(flux_st)/np.mean(flux_c_trans)

Finally let’s consider the airmass:

[25]:
final_fluxes_b = np.outer(flux_b_scal, X_fac)
final_fluxes_c = np.outer(flux_c_scal, X_fac)

Note that the effect of coronagraphic transmission is directly taken into account in the injection function (next section).

7.4. Injection

The actual injection can be simply performed with the cube_inject_companions function, which can handle 4D input cubes. Let’s inject the first planet first:

[26]:
cube_fc = cube_inject_companions(cube, psfn, derot_angles, flevel=final_fluxes_b,
                                 plsc=plsc, rad_dists=[r_b], n_branches=1,
                                 theta=theta_b, transmission=trans, verbose=True)
*** Processing spectral channel 1/39 ***
*** Processing spectral channel 2/39 ***
*** Processing spectral channel 3/39 ***
*** Processing spectral channel 4/39 ***
*** Processing spectral channel 5/39 ***
*** Processing spectral channel 6/39 ***
*** Processing spectral channel 7/39 ***
*** Processing spectral channel 8/39 ***
*** Processing spectral channel 9/39 ***
*** Processing spectral channel 10/39 ***
*** Processing spectral channel 11/39 ***
*** Processing spectral channel 12/39 ***
*** Processing spectral channel 13/39 ***
*** Processing spectral channel 14/39 ***
*** Processing spectral channel 15/39 ***
*** Processing spectral channel 16/39 ***
*** Processing spectral channel 17/39 ***
*** Processing spectral channel 18/39 ***
*** Processing spectral channel 19/39 ***
*** Processing spectral channel 20/39 ***
*** Processing spectral channel 21/39 ***
*** Processing spectral channel 22/39 ***
*** Processing spectral channel 23/39 ***
*** Processing spectral channel 24/39 ***
*** Processing spectral channel 25/39 ***
*** Processing spectral channel 26/39 ***
*** Processing spectral channel 27/39 ***
*** Processing spectral channel 28/39 ***
*** Processing spectral channel 29/39 ***
*** Processing spectral channel 30/39 ***
*** Processing spectral channel 31/39 ***
*** Processing spectral channel 32/39 ***
*** Processing spectral channel 33/39 ***
*** Processing spectral channel 34/39 ***
*** Processing spectral channel 35/39 ***
*** Processing spectral channel 36/39 ***
*** Processing spectral channel 37/39 ***
*** Processing spectral channel 38/39 ***
*** Processing spectral channel 39/39 ***

Let’s now inject the second planet in the same cube:

[27]:
cube_fc = cube_inject_companions(cube_fc, psfn, derot_angles, flevel=final_fluxes_c,
                                 plsc=plsc, rad_dists=[r_c], n_branches=1,
                                 theta=theta_c, transmission=trans, verbose=False)

Let’s inspect the cube with the inject companions:

[28]:
plot_cubes(cube_fc)
:Dataset   [x,y,time,lambda]   (flux)
:Cube_shape     [107, 107, 55, 39]
[28]:

Go to the top

7.5. Post-processing of IFS data

Let’s now try to recover the 2 injected companions using different post-processing algorithms.

7.5.1. Optimal scaling factors

In order to leverage the radial expansion of the stellar PSF with wavelength through spectral differential imaging, let’s first compute the optimal scaling factors between the spectral channels. For a perfect AO correction and flat stellar spectrum, one would expect the scaling factors to be (exactly) inversely proportional to the wavelength. Reality deviates a bit from these assumptions but this still makes for a good first guess:

[29]:
th_scal = lbda[-1]/lbda
th_scal
[29]:
array([1.3877398, 1.375682 , 1.3635113, 1.3512615, 1.3389585, 1.3266245,
       1.3142908, 1.3019674, 1.2896852, 1.2774729, 1.2653329, 1.2532798,
       1.2413497, 1.2295421, 1.217879 , 1.2063586, 1.1950108, 1.1838219,
       1.1728301, 1.1620203, 1.151418 , 1.1410172, 1.1308315, 1.1208638,
       1.1111166, 1.1016016, 1.092311 , 1.0832641, 1.0744526, 1.0658859,
       1.0575558, 1.0494791, 1.0416555, 1.0340765, 1.0267497, 1.0196825,
       1.0128585, 1.0063006, 1.       ], dtype=float32)

Let’s use preproc.find_scal_vector to refine this estimate. This function will find the optimal scaling factors (both in terms of geometric scaling and flux scaling) between each spectral channel and the last one such that their subtraction yields minimal residuals. For coronagraphic observations, it is recommended to provide a binary mask, corresponding to the location where the residuals will be calculated, which avoids the area encompassed by the coronagraphic mask, in order to achieve the best estimate. Here we use the mean of the 4D cube along the temporal direction to find the factors:

[30]:
mask = np.ones_like(cube[0,0])
mask = mask_circle(mask, int(0.16/plsc))

opt_scal_mean, opt_flux = find_scal_vector(np.mean(cube,axis=1), lbda, flux_st,
                                           mask=mask, nfp=2, fm="stddev")

Although a bit slower, another approach would be to calculate the scaling factors for each individual spectral cube, and use the median values:

[31]:
opt_scals = np.zeros([cube.shape[1],cube.shape[0]])
opt_fluxes = np.zeros([cube.shape[1],cube.shape[0]])
for i in range(cube.shape[1]):
    opt_scals[i], opt_fluxes[i] = find_scal_vector(cube[:,i], lbda, flux_st, mask=mask, nfp=2, fm="stddev")
[32]:
opt_scal_med = np.median(opt_scals,axis=0)
opt_flux_med = np.median(opt_fluxes,axis=0)

Let’s plot the theoretical and empirical scaling factors:

[33]:
%matplotlib inline
plt.figure(figsize=(8,6))
for i in range(cube.shape[1]):
    if not i%10:
        label = 'cube #{}'.format(i)
    else:
        label = None
    plt.plot(lbda, opt_scals[i], alpha=0.3, label=label)
plt.plot(lbda, th_scal, 'k:', lw=2, label='Theoretical')
plt.plot(lbda, opt_scal_mean, 'k--', lw=2, label='Optimal (mean cube)')
plt.plot(lbda, np.median(opt_scals,axis=0), 'k-', lw=2, label='Optimal (median of indiv. curves)')
plt.xlabel(r"Wavelength ($\mu$m)")
plt.ylabel("Scaling factor")
plt.legend()
[33]:
<matplotlib.legend.Legend at 0x16dd2ce90>
../_images/tutorials_07_ifs_psfsub_fm_planets_83_1.png

Let’s visualize the actual residuals in the first spectral cube:

[34]:
res_cube_test_opt = np.zeros([cube.shape[0],cube.shape[-2],cube.shape[-1]])
for i in range(cube.shape[0]):
    res_cube_test_opt[i] = opt_fluxes[0,i]*frame_rescaling(cube[i,0], scale=opt_scal_med[i])-cube[-1,0]
[35]:
plot_cubes(res_cube_test_opt, vmin=-5)
:Dataset   [x,y,time]   (flux)
:Cube_shape     [107, 107, 39]
[35]:

Apart from the residual starlight at the edge of the coronagraphic mask (which does not expand radially), we see that the stellar halo is very well subtracted.

7.5.2. median-SDI

The most basic way to leverage the radial diversity present in IFS data is to perform median-SDI (i.e. the radial equivalent to median-ADI). For that just use the psfsub.median_sub function, with the sdi_only option on:

[36]:
mask_px = int(0.1/plsc)

med_SDI = median_sub(cube_fc, derot_angles, scale_list=opt_scal_med, sdi_only=True,
                     radius_int=mask_px, interp_zeros=True, mask_val=0)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:37:39
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
39 spectral channels per IFS frame
First median subtraction exploiting spectral variability
Running time:  0:00:28.743692
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
55 ADI frames
Median subtraction in the ADI fashion
Done derotating and combining
Running time:  0:00:32.278444
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

For better results, it is recommended to use both the geometrical and flux scaling factors found in the previous section:

[37]:
med_SDI_opt = median_sub(cube_fc, derot_angles, scale_list=opt_scal_med, flux_sc_list=opt_flux_med, sdi_only=True,
                         radius_int=mask_px, interp_zeros=True, mask_val=0)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:38:12
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
39 spectral channels per IFS frame
First median subtraction exploiting spectral variability
Running time:  0:00:28.332437
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
55 ADI frames
Median subtraction in the ADI fashion
Done derotating and combining
Running time:  0:00:32.218888
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Let’s compare both reductions, showing circles at the ground truth locations where we injected the fake companions.

[38]:
%matplotlib inline
plot_frames((med_SDI, med_SDI_opt), circle=(xy_b,xy_c), vmin=-0.2, vmax=0.6)
../_images/tutorials_07_ifs_psfsub_fm_planets_94_0.png

In the first image, we notice the limitation of SDI at short angular separation. Since the stellar residuals at the edge of the coronagraphic mask do not expand radially as the rest of the stellar halo, we are left with a bright spurious ring, preventing the re-detection of fake planet b.

We see that the median-SDI reduction with scaled fluxes performs slightly better at subtracting stellar residuals near the edge of the coronagraphic mask, although fake planet b is still not recovered.

Fake planet c is redetected. Let’s compare its signal-to-noise ratio in both images:

[39]:
snr_c = snr(med_SDI, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
snr_c_sc = snr(med_SDI_opt, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c, snr_c_sc)
19.817929423515157 23.22640656961355

Overall, we can conclude that the scaled flux version of median-SDI performs better than the non-flux scaled version.

7.5.3. PCA-SDI

Let’s now run a PCA-SDI reduction. Note that this approach may be useful in datasets with azimuthally extended disc features (since ADI can filter such signals).

For PCA reductions, flux scaling factors are not necessary. This is because: i) the basis is orthonormal and an internal scaling is performed anyway when the principal components are projected onto each images; ii) flux scaling will typically increase the noise contribution before calculation of the principal components, which can bias their values. Our tests suggest indeed that better results are obtained (i.e. higher SNR for injected fake planets) when no flux scaling factor is considered before PCA.

7.5.3.1. Full-frame PCA

To trigger SDI alone with the psfsub.pca function, you need to set:

  • adimsdi='double' to separate the PCA-SDI and PCA-ADI
  • ncomp to a tuple of 2 values, the first of which being the number of principal components for PCA-SDI, and the second to be set to None - to prevent PCA-ADI (i.e. simply derotate and stack the SDI residual images);

Let’s use the mask_center_px argument to set a numerical mask of 0.1’’ radius in order not to include the coronagraphic mask.

[40]:
ncomp_sdi = 1
mask_px = int(0.1/plsc)

pca_sdi = pca(cube_fc, derot_angles, scale_list=opt_scal_med, ncomp=(ncomp_sdi,None),
              adimsdi='double', crop_ifs=False, imlib='opencv',
              interp_zeros=True, mask_val=0, mask_center_px=mask_px)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:38:44
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
System total memory = 17.180 GB
System available memory = 0.693 GB
39 spectral channels in IFS cube
First PCA stage exploiting spectral variability
Running time:  0:00:42.624267
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
55 ADI frames
De-rotating and combining frames (skipping PCA)
Running time:  0:00:42.726900
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Let’s show the final image with and without the application of a large (0.15’’ radius) numerical mask, and with circles at the ground truth location where we injected the fake companions.

[41]:
%matplotlib inline
plot_frames((pca_sdi, mask_circle(pca_sdi,20)),
            circle=(xy_b,xy_c))
../_images/tutorials_07_ifs_psfsub_fm_planets_104_0.png

In the first image, we notice the same effect as with median-SDI: significant stellar residuals at the edge of the coronagraphic mask.

On the other hand, fake planet c is easily re-detected. Notice the negative side lobe, that is reminiscent of ADI side lobes.

Question 7.1: Why is the negative side lobe only radially inward of the planet in our final SDI image?

This time the images obtained without and with flux-scaling applied to the cube before PCA appears to yield similar results. We note that flux scaling may actually have been slightly counter-productive, based on the raw fluxes at the location of the companion (peak value closer to ~0.4 without flux scaling, while closer to ~0.3 with flux scaling). Let’s confirm that by measuring the SNR of c:

[42]:
snr_c = snr(pca_sdi, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c)
13.016305973174017

7.5.3.2. Annular PCA

PCA-SDI can also be performed in concentric annuli using psfsub.pca_annular. Again let’s demonstrate whether flux scaling is useful or not:

[43]:
ncomp_sdi = 1
mask_px = int(0.1/plsc)
fwhm_m = np.mean(fwhm)

pca_sdi_ann = pca_annular(cube_fc, derot_angles, scale_list=opt_scal_med,
                          ncomp=(ncomp_sdi,None), radius_int=mask_px, fwhm=fwhm_m, asize=fwhm_m,
                          delta_sep=(0.4, 1), delta_rot=(0.5, 1),
                          mask_val=0, interp_zeros=True)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:39:28
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
First PCA subtraction exploiting the spectral variability
39 spectral channels per IFS frame
N annuli = 6, mean FWHM = 6.000
Running time:  0:02:39.790005
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
55 ADI frames
Skipping the second PCA subtraction

We mask the central part of the image, dominated by residual stellar light, to only focus on planet c:

[44]:
plot_frames(mask_circle(pca_sdi_ann, int(0.18/plsc)), circle=(xy_b,xy_c))
../_images/tutorials_07_ifs_psfsub_fm_planets_113_0.png
[45]:
snr_c = snr(pca_sdi_ann, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c)
16.071668104095398

Despite both reductions yielding relatively similar final images, we note that flux-scaling is slightly counter-productive (SNR slightly lower), similarly to the full-frame PCA reduction.

7.5.4. median-ASDI

Let’s now combine both SDI and ADI, which should yield a better subtraction of the stellar residuals. Again, let’s start with the most basic way to combine both strategies: median-ASDI.

This simply involves the same calls to median_sub as in Sec. 7.5.2., but removing sdi_only=True:

[46]:
mask_px = int(0.1/plsc)

med_ASDI = median_sub(cube_fc, derot_angles, scale_list=opt_scal_med, flux_sc_list=opt_flux_med,
                      radius_int=mask_px, interp_zeros=True, mask_val=0)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:42:11
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
39 spectral channels per IFS frame
First median subtraction exploiting spectral variability
Running time:  0:00:30.957841
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
55 ADI frames
Median subtraction in the ADI fashion
Done derotating and combining
Running time:  0:00:35.460381
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Let’s check the ASDI image:

[47]:
%matplotlib inline
plot_frames(med_ASDI, circle=(xy_b,xy_c))
../_images/tutorials_07_ifs_psfsub_fm_planets_120_0.png

This time we find signal at the location of fake planet b - although it does appear significantly filtered.

Fake planet c is easily redetected. Let’s measure the signal-to-noise ratio for both fake planets:

[48]:
snr_b = snr(med_SDI, xy_b, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_b)

snr_c = snr(med_SDI, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c)
0.9096708138344058
19.817929423515157

7.5.5. PCA-ASDI

7.5.4.1. Full-frame PCA-ASDI (single step)

The psfsub.pca function in VIP offers the possibility to do this in either a single or 2 consecutive steps.

In the first case, a master PCA library is created with all images acquires at different parallactic angles and at different wavelengths (i.e. containing both angular and radial diversity). This is done by setting:

  • adimsdi='single' (default);
  • ncomp to a scalar value (integer to use that number of principal components, or float betweeb 0 and 1 to indicate the desired cumulative explained variance ratio).
[49]:
ncomp = 6
pca_asdi = pca(cube_fc, derot_angles, scale_list=opt_scal_med, ncomp=ncomp,
                adimsdi='single', crop_ifs=False, mask_center_px=mask_px,
                interp_zeros=True, mask_val=0)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:42:47
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
System total memory = 17.180 GB
System available memory = 0.714 GB
Rescaling the spectral channels to align the speckles
0% [##############################] 100% | ETA: 00:00:00
Total time elapsed: 00:00:14
Running time:  0:00:14.913639
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
2145 total frames
Performing single-pass PCA
Done vectorizing the frames. Matrix shape: (2145, 22201)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:03:22.630326
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Descaling the spectral channels
0% [##############################] 100% | ETA: 00:00:00
Total time elapsed: 00:00:08
De-rotating and combining residuals
Running time:  0:03:31.259490
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Let’s visualize the resulting image, including circles at the ground truth locations of the injected planets:

[50]:
plot_frames(pca_asdi, label='PCA-ASDI (npc={:.0f})'.format(ncomp),
            dpi=100, colorbar=True, circle=(xy_b,xy_c))
../_images/tutorials_07_ifs_psfsub_fm_planets_128_0.png

Let’s estimate the signal-to-noise ratio of both detections:

[51]:
snr_b = snr(pca_asdi, xy_b, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_b)

snr_c = snr(pca_asdi, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c)
5.619268762575455
27.68203685221518

Again we notice that pre-scaling the cube before PCA does not help with the detections.

7.5.4.2. Full-frame PCA-ASDI (double step)

The second option consists in performing PCA-SDI first, and then PCA-ADI on the cube consisting of SDI frames obtained for each individual spectral cube. This mode can be activated by setting adimsdi='double' (instead of the default ‘single’ value):

[52]:
ncomp = (1,1)
pca_asdi_2s = pca(cube_fc, derot_angles, scale_list=opt_scal_med, ncomp=ncomp,
                adimsdi='double', crop_ifs=False, mask_center_px=mask_px,
                interp_zeros=True, mask_val=0)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:46:22
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
System total memory = 17.180 GB
System available memory = 1.181 GB
39 spectral channels in IFS cube
First PCA stage exploiting spectral variability
Running time:  0:01:08.316980
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
55 ADI frames
Second PCA stage exploiting rotational variability
De-rotating and combining residuals
Running time:  0:01:12.588869
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
[53]:
plot_frames(pca_asdi_2s,
            label='PCA-ASDI 2s., npc=({:.0f},{})'.format(ncomp[0],ncomp[1]),
            dpi=100, colorbar=True, circle=(xy_b,xy_c))
../_images/tutorials_07_ifs_psfsub_fm_planets_135_0.png

Let’s estimate the signal-to-noise ratio of both detections:

[54]:
snr_b = snr(pca_asdi_2s, xy_b, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_b)

snr_c = snr(pca_asdi_2s, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c)
5.0778823844907235
50.36533166314871

7.5.4.3. Annular PCA-ASDI (double step)

[55]:
ncomp = (1,1)
pca_ann = pca_annular(cube_fc, derot_angles, scale_list=opt_scal_med, ncomp=ncomp,
                      radius_int=mask_px, fwhm=np.mean(fwhm), asize=np.mean(fwhm),
                      mask_val=0, interp_zeros=True)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 01:47:35
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
First PCA subtraction exploiting the spectral variability
39 spectral channels per IFS frame
N annuli = 6, mean FWHM = 6.000
Running time:  0:22:43.853967
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
55 ADI frames
Second PCA subtraction exploiting the angular variability
N annuli = 6, FWHM = 6.000
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  2.15    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:23:00.757464
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  4.36    Ann center:  22    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:23:13.401731
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  5.63    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:23:20.503812
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 4    PA thresh:  6.44    Ann center:  34    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:23:26.418925
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 5    PA thresh:  7.01    Ann center:  40    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:23:31.877249
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 6    PA thresh:  7.60    Ann center:  45    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:23:37.305716
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:23:39.909020
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
[56]:
plot_frames(pca_ann, label='PCA-ASDI ann. (npc={:.0f},{:.0f})'.format(ncomp[0], ncomp[1]),
            dpi=100, colorbar=True, circle=(xy_b,xy_c))
../_images/tutorials_07_ifs_psfsub_fm_planets_140_0.png

Let’s estimate the signal-to-noise ratio and signifance of both detections:

[57]:
snr_b = snr(pca_ann, xy_b, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_b)

snr_c = snr(pca_ann, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c)
7.470215117063276
38.30967444038134
[58]:
sig_b = significance(snr_b, r_b, np.mean(fwhm))
print(sig_b)

sig_c = significance(snr_c, r_c, np.mean(fwhm))
print(sig_c)
4.753149970912784
Warning high S/N! cdf>0.9999999999999999 is rounded to 1
Returning 8.2 sigma, but quote significance > 8.2 sigma.
8.2

7.5.6. PCA-ADI for all spectral channels

If you provide a 4d input cube without scale_list to the pca or pca_annular functions, their default behaviour will be to perform PCA-ADI on each spectral channel and then combine the final ADI images from each spectral channel into a single one.

[59]:
mask_px = int(0.08/plsc)

Let’s try different flavours of PCA. First let’s run it in full frames:

[60]:
ncomp_ff = 6
pca_adi_mean = pca(cube_fc, derot_angles, ncomp=ncomp_ff, adimsdi='single', mask_center_px=mask_px,
                   interp_zeros=True, mask_val=0)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:11:15
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
System total memory = 17.180 GB
System available memory = 0.715 GB
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.432250
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:03.057175
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:03.652544
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:06.263238
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:07.005837
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:09.615721
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:10.246881
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:12.870020
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:13.532425
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:16.171360
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:16.711532
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:19.325052
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:19.970485
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:22.561783
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:23.215782
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:25.790242
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:26.344440
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:29.057077
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:29.708345
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:32.354859
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:33.059053
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:35.681125
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:36.316487
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:38.943196
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:39.807091
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:42.476700
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:43.219494
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:45.843727
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:46.447687
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:49.062834
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:49.694471
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:52.300496
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:52.837685
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:55.466223
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:56.139958
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:00:58.771370
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:59.415837
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:02.025515
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:02.639594
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:05.257605
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:05.856948
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:08.456902
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:09.017346
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:11.604172
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:12.249231
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:14.817223
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:15.558264
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:18.181933
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:18.928385
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:21.552550
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:22.220458
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:24.830750
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:25.500855
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:28.241080
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:28.995802
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:31.981637
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:34.269114
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:37.979289
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:40.629587
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:44.204221
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:46.794823
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:50.465088
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:52.904892
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:01:56.439857
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:01:59.041301
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:02:02.529840
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:02:05.304801
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:02:08.728203
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:02:11.039552
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:02:14.670584
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:02:17.205658
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:02:20.878772
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:02:23.519991
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:02:27.013707
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:02:29.624170
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:02:33.390219
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done vectorizing the frames. Matrix shape: (55, 11449)
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:02:35.966643
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done de-rotating and combining
Running time:  0:02:39.414356
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Now in concentric annuli, with a PA threshold (set by delta_rot):

[61]:
ncomp_ann = 4
pca_adi_ann_mean = pca_annular(cube_fc, derot_angles, ncomp=ncomp_ann, radius_int=mask_px,
                               fwhm=np.mean(fwhm), asize=2*np.mean(fwhm), delta_rot=(0.2,1),
                               mask_val=0, interp_zeros=True)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:13:55
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:00:43.174966
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:01:10.588906
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:01:30.268961
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:01:33.845001
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:02:17.080241
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:02:34.340518
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:02:38.282724
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:02:40.941689
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:02:49.128603
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:02:55.906258
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:02:59.928253
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:03:02.579311
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:03:10.542836
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:03:17.733192
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:03:22.161153
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:03:24.718332
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:03:37.448769
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:03:47.124297
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:03:51.615808
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:03:54.317955
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:04:02.496528
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:04:09.610972
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:04:17.495020
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:04:20.063994
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:04:30.438994
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:04:36.214596
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:04:39.649551
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:04:42.203420
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:04:53.634128
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:05:02.093312
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:05:08.141350
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:05:10.703040
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:05:24.364045
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:05:31.925287
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:05:38.320227
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:05:40.882953
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:05:52.966614
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:06:00.705006
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:06:07.309828
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:06:09.804348
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:06:26.107032
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:06:35.533472
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:06:40.849313
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:06:43.408260
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:06:51.355056
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:06:55.880784
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:07:00.077347
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:07:02.645794
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:07:08.872651
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:07:18.859547
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:07:25.865741
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:07:28.459102
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:07:38.571106
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:07:42.859264
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:07:46.821868
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:07:49.544363
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:05.317941
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:10.847713
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:16.471247
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:08:18.973051
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:29.727874
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:40.068974
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:45.750096
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:08:48.468330
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:54.588086
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:08:58.209209
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:03.671372
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:09:06.245045
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:16.628352
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:25.453094
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:29.851044
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:09:32.429483
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:36.698057
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:42.436960
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:46.504212
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:09:49.108582
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:09:57.345131
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:02.479730
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:04.688715
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:10:07.232754
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:11.375251
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:14.198426
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:16.315170
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:10:18.885657
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:27.907453
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:33.747214
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:38.244087
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:10:40.794106
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:50.727884
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:10:56.917829
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:01.540851
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:11:04.097792
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:13.423117
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:19.285814
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:24.283287
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:11:26.811385
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:33.692317
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:36.522057
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:39.982829
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:11:42.496704
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:49.381271
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:51.907814
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:11:53.923924
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:11:56.468782
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:01.157863
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:03.386740
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:06.090261
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:12:08.601576
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:13.561566
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:18.349823
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:20.125258
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:12:22.635749
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:30.540238
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:35.701615
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:38.357554
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:12:40.923732
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:44.428328
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:46.888932
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:48.881267
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:12:51.425179
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:55.053306
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:57.521961
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:12:59.441852
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:13:01.977710
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:05.622886
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:07.905755
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:09.561545
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:13:12.077759
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:17.653130
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:22.667796
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:26.677400
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:13:29.186538
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:37.024788
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:41.722651
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:46.197196
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:13:48.749515
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:53.647234
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:55.444840
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:13:56.867891
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:13:59.388693
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:01.952388
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:03.665323
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:04.968123
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:14:07.473060
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:10.003228
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:12.929685
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:16.005873
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:14:18.482309
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:25.028942
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:26.767671
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:28.103359
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:14:30.603843
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
N annuli = 3, FWHM = 6.031
PCA per annulus (or annular sectors):
Ann 1    PA thresh:  4.31    Ann center:  16    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:33.216815
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 2    PA thresh:  7.37    Ann center:  28    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:34.944250
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Ann 3    PA thresh:  8.81    Ann center:  39    N segments: 1
Done PCA with SvdMode.LAPACK for current annulus
Running time:  0:14:36.317692
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done derotating and combining.
Running time:  0:14:38.821892
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Finally, let’s also run it as a single wide annulus including both injected planets:

[62]:
ncomp_a = 3
pca_adi_a_mean = pca_annulus(cube_fc, derot_angles, ncomp=ncomp_a, r_guess=(r_b+r_c)/2,
                           annulus_width=r_c, mask_val=0, interp_zeros=True)

Let’s compare the results:

[63]:
plot_frames((pca_adi_mean, pca_adi_ann_mean, pca_adi_a_mean),
            label=('PCA-ADI (npc={:.0f})'.format(ncomp_ff),
                   'PCA-ADI annular (npc={:.0f})'.format(ncomp_ann),
                   'PCA-ADI annulus (npc={:.0f})'.format(ncomp_a)),
            dpi=100, colorbar=True, circle=(xy_b,xy_c))
../_images/tutorials_07_ifs_psfsub_fm_planets_154_0.png

Let’s estimate the signal-to-noise ratio and signifance of both detections:

[64]:
snr_b_ff = snr(pca_adi_mean, xy_b, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
snr_b_ann = snr(pca_adi_ann_mean, xy_b, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
snr_b_a = snr(pca_adi_a_mean, xy_b, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_b_ff, snr_b_ann, snr_b_a)
snr_b = max(snr_b_ff, snr_b_ann, snr_b_a)

snr_c_ff = snr(pca_adi_mean, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
snr_c_ann = snr(pca_adi_ann_mean, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
snr_c_a = snr(pca_adi_a_mean, xy_c, fwhm=np.mean(fwhm), exclude_negative_lobes=True)
print(snr_c_ff, snr_c_ann, snr_c_a)
snr_c = max(snr_c_ff, snr_c_ann, snr_c_a)
9.935243599527908 6.209986724918728 4.704459026815971
31.48109617062875 11.398186426969303 24.70475296809838
[65]:
sig_b = significance(snr_b, r_b, np.mean(fwhm))
print(sig_b)

sig_c = significance(snr_c, r_c, np.mean(fwhm))
print(sig_c)
5.433364722813859
Warning high S/N! cdf>0.9999999999999999 is rounded to 1
Returning 8.2 sigma, but quote significance > 8.2 sigma.
8.2

In this case, we see that ADI alone recovers better the innermost planet. This is because of the bright stellar residuals at the edge of the coronagraphic mask, preventing SDI to do a good job at good separation.

Answer 7.1: The scaling factors are such that all spectral channels are upscaled, for the stellar halo to match the last spectral channel, i.e. all factors are >= 1 (exactly 1 for the last spectral channel). The PSF model and subtraction with PCA is then made with these upscaled images, where the planet is now present at different radial separations. However since we injected a very red spectrum for planet c (blackbody of 1100 K), it is the brightest in the last spectral channels. This

means the strongest positive (resp. negative) imprint will be in the long (resp. short) wavelength channels, where the planet was not moved (resp. moved radially outward), i.e. the positive (resp. negative) imprint is unchanged (resp. radially inward) with respect to its position in the upscaled cube. After final downscaling, the negative imprint stays thus radially inward from the location of the fake planet. You can test this explanation by injecting a blue spectrum for planet c (e.g. 1/blackbody).

7.6. Astrometry retrieval

The firstguess function can accept a 4D input cube to infer a first guess on the position (a single one for all channels) and fluxes (one per channel). Since it would be very slow to run it on all 39 spectral channels, let’s just focus on the 8 channels (~20% of all channels) with the maximum S/N ratio. Let’s find these channels for planet c.

As the rest of this tutorial is CPU-intensive, we will only focus on planet c - although the same procedure can be applied to planet b.

7.6.1. Spectral channels with maximum SNR

[66]:
all_frs = []
all_snrs = []
all_pcs = []
for i in range(nch):
    res_ann_opt = pca_grid(cube_fc[i], derot_angles, fwhm=fwhm[i], range_pcs=(1,11,1),
                           source_xy=xy_c, mode='annular', annulus_width=int(4*fwhm[i]),
                           imlib='opencv', full_output=True, plot=True, exclude_negative_lobes=True)
    _, final_ann_opt, df, opt_npc_ann = res_ann_opt
    all_frs.append(final_ann_opt)
    pcs = df['PCs']
    snrs = df['S/Ns']
    opt_snr = snrs[df.index[pcs==opt_npc_ann]]
    print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
    all_snrs.append(float(opt_snr))
    all_pcs.append(opt_npc_ann)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:19
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.172078
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 1, for S/N=1.380
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 0.213
Central pixel S/N = 1.124
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 1.375
Max S/N (shifting the aperture center) = 2.200
stddev S/N (shifting the aperture center) = 0.565

Opt SNR: 1.3801916275528059, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:20
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.308261
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 1, for S/N=3.570
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.134
Central pixel S/N = 4.537
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 3.582
Max S/N (shifting the aperture center) = 4.669
stddev S/N (shifting the aperture center) = 0.761

Opt SNR: 3.569572865199436, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:21
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.150355
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=3.384
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.378
Central pixel S/N = 3.798
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 3.380
Max S/N (shifting the aperture center) = 4.865
stddev S/N (shifting the aperture center) = 0.671

Opt SNR: 3.3843922448871435, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:23
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.172274
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 1, for S/N=3.538
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.718
Central pixel S/N = 4.374
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 3.554
Max S/N (shifting the aperture center) = 4.297
stddev S/N (shifting the aperture center) = 0.503

Opt SNR: 3.5377834729055544, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:24
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.139424
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=3.486
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.989
Central pixel S/N = 4.425
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 3.488
Max S/N (shifting the aperture center) = 4.297
stddev S/N (shifting the aperture center) = 0.507

Opt SNR: 3.4860830354309655, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:25
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.163984
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 1, for S/N=3.913
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.236
Central pixel S/N = 4.852
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 3.906
Max S/N (shifting the aperture center) = 4.805
stddev S/N (shifting the aperture center) = 0.594

Opt SNR: 3.9129844764200956, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:26
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.153451
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 1, for S/N=3.632
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.046
Central pixel S/N = 4.416
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 3.601
Max S/N (shifting the aperture center) = 4.576
stddev S/N (shifting the aperture center) = 0.568

Opt SNR: 3.6323039929489287, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:28
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.181829
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 1, for S/N=4.143
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.449
Central pixel S/N = 5.386
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 4.148
Max S/N (shifting the aperture center) = 5.303
stddev S/N (shifting the aperture center) = 0.670

Opt SNR: 4.143193729826148, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:29
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.156198
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=4.457
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.664
Central pixel S/N = 5.837
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 4.441
Max S/N (shifting the aperture center) = 5.895
stddev S/N (shifting the aperture center) = 0.880

Opt SNR: 4.457385421253395, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:30
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.135272
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=4.096
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.551
Central pixel S/N = 5.117
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 4.025
Max S/N (shifting the aperture center) = 5.454
stddev S/N (shifting the aperture center) = 0.851

Opt SNR: 4.095758083355251, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:31
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.159990
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=4.282
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 3.074
Central pixel S/N = 5.362
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 4.252
Max S/N (shifting the aperture center) = 5.566
stddev S/N (shifting the aperture center) = 0.937

Opt SNR: 4.281749743702011, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:33
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.143358
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 4, for S/N=4.445
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 0.997
Central pixel S/N = 5.858
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 4.115
Max S/N (shifting the aperture center) = 6.379
stddev S/N (shifting the aperture center) = 1.112

Opt SNR: 4.444589215208261, for npc=4
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:34
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.150985
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 5, for S/N=5.324
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 0.983
Central pixel S/N = 6.557
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 4.820
Max S/N (shifting the aperture center) = 7.051
stddev S/N (shifting the aperture center) = 1.409

Opt SNR: 5.323671172061005, for npc=5
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:35
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.151040
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 4, for S/N=6.188
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.252
Central pixel S/N = 7.141
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 5.329
Max S/N (shifting the aperture center) = 7.451
stddev S/N (shifting the aperture center) = 1.474

Opt SNR: 6.1879143028055115, for npc=4
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:36
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.142978
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 6, for S/N=6.063
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.062
Central pixel S/N = 7.120
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 5.028
Max S/N (shifting the aperture center) = 7.533
stddev S/N (shifting the aperture center) = 1.633

Opt SNR: 6.063078806745727, for npc=6
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:38
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.163677
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 7, for S/N=7.297
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.233
Central pixel S/N = 8.846
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 6.376
Max S/N (shifting the aperture center) = 9.764
stddev S/N (shifting the aperture center) = 1.999

Opt SNR: 7.297307899668932, for npc=7
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:39
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.160687
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=5.542
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.950
Central pixel S/N = 7.021
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 5.521
Max S/N (shifting the aperture center) = 8.210
stddev S/N (shifting the aperture center) = 1.461

Opt SNR: 5.542426844570617, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:40
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.148090
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=4.976
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.305
Central pixel S/N = 5.791
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 5.041
Max S/N (shifting the aperture center) = 7.733
stddev S/N (shifting the aperture center) = 1.357

Opt SNR: 4.976408389408834, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:41
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.162430
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=4.888
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.248
Central pixel S/N = 6.085
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 4.908
Max S/N (shifting the aperture center) = 7.287
stddev S/N (shifting the aperture center) = 1.327

Opt SNR: 4.887618306863193, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:42
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.171271
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 2, for S/N=6.132
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.768
Central pixel S/N = 8.101
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 5.968
Max S/N (shifting the aperture center) = 8.960
stddev S/N (shifting the aperture center) = 1.641

Opt SNR: 6.131787040588891, for npc=2
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:44
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.163084
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 3, for S/N=7.050
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 1.945
Central pixel S/N = 8.241
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 6.651
Max S/N (shifting the aperture center) = 9.537
stddev S/N (shifting the aperture center) = 1.668

Opt SNR: 7.05004660935525, for npc=3
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:45
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/Users/valentin/GitHub/VIP/vip_hci/psfsub/utils_pca.py:378: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). Consider using `matplotlib.pyplot.close()`.
  plt.figure(figsize=vip_figsize, dpi=vip_figdpi)
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.161692
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 3, for S/N=8.520
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.583
Central pixel S/N = 9.774
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 7.872
Max S/N (shifting the aperture center) = 12.441
stddev S/N (shifting the aperture center) = 2.382

Opt SNR: 8.51991694741128, for npc=3
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:46
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.177536
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 4, for S/N=10.523
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.150
Central pixel S/N = 12.074
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 8.799
Max S/N (shifting the aperture center) = 12.193
stddev S/N (shifting the aperture center) = 2.371

Opt SNR: 10.522543185354458, for npc=4
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:48
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.141425
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 4, for S/N=10.808
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.420
Central pixel S/N = 12.540
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 8.680
Max S/N (shifting the aperture center) = 12.377
stddev S/N (shifting the aperture center) = 2.430

Opt SNR: 10.8078900868622, for npc=4
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:49
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.141612
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 4, for S/N=13.470
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.973
Central pixel S/N = 13.874
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 10.462
Max S/N (shifting the aperture center) = 14.511
stddev S/N (shifting the aperture center) = 2.743

Opt SNR: 13.469995229225095, for npc=4
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:50
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.158984
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 5, for S/N=11.545
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.677
Central pixel S/N = 13.461
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 8.936
Max S/N (shifting the aperture center) = 13.917
stddev S/N (shifting the aperture center) = 3.185

Opt SNR: 11.54528352825929, for npc=5
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:51
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.194780
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 5, for S/N=12.399
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 2.907
Central pixel S/N = 14.168
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 9.529
Max S/N (shifting the aperture center) = 14.563
stddev S/N (shifting the aperture center) = 3.334

Opt SNR: 12.399403452618305, for npc=5
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:53
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.172081
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 5, for S/N=14.401
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 3.256
Central pixel S/N = 14.394
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 10.335
Max S/N (shifting the aperture center) = 16.271
stddev S/N (shifting the aperture center) = 3.354

Opt SNR: 14.400880849221048, for npc=5
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:54
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.145335
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 5, for S/N=15.905
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 3.374
Central pixel S/N = 13.677
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 10.019
Max S/N (shifting the aperture center) = 14.897
stddev S/N (shifting the aperture center) = 3.339

Opt SNR: 15.905222243634217, for npc=5
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:55
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.157516
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 5, for S/N=16.850
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 3.725
Central pixel S/N = 13.695
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 10.344
Max S/N (shifting the aperture center) = 15.549
stddev S/N (shifting the aperture center) = 3.404

Opt SNR: 16.85041666766923, for npc=5
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:56
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.187688
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 5, for S/N=18.350
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 3.657
Central pixel S/N = 13.588
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 10.839
Max S/N (shifting the aperture center) = 16.412
stddev S/N (shifting the aperture center) = 3.782

Opt SNR: 18.350086921277214, for npc=5
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:58
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.161833
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 4, for S/N=17.783
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 4.466
Central pixel S/N = 17.643
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 12.036
Max S/N (shifting the aperture center) = 18.667
stddev S/N (shifting the aperture center) = 3.600

Opt SNR: 17.783140514296875, for npc=4
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:30:59
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.156582
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 3, for S/N=18.553
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 7.253
Central pixel S/N = 18.294
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 12.658
Max S/N (shifting the aperture center) = 18.712
stddev S/N (shifting the aperture center) = 3.802

Opt SNR: 18.55268571440183, for npc=3
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:31:00
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.169687
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 3, for S/N=19.464
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 7.656
Central pixel S/N = 17.124
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 11.872
Max S/N (shifting the aperture center) = 18.229
stddev S/N (shifting the aperture center) = 3.599

Opt SNR: 19.463793274816332, for npc=3
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:31:02
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.157480
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 4, for S/N=21.409
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 5.131
Central pixel S/N = 18.370
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 13.538
Max S/N (shifting the aperture center) = 22.127
stddev S/N (shifting the aperture center) = 4.682

Opt SNR: 21.408706896724635, for npc=4
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:31:03
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.160721
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 3, for S/N=20.230
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 7.500
Central pixel S/N = 16.489
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 11.942
Max S/N (shifting the aperture center) = 18.383
stddev S/N (shifting the aperture center) = 3.846

Opt SNR: 20.22991160189573, for npc=3
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:31:04
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.162431
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 1, for S/N=19.659
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 16.885
Central pixel S/N = 21.916
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 16.410
Max S/N (shifting the aperture center) = 22.823
stddev S/N (shifting the aperture center) = 4.146

Opt SNR: 19.65899244349856, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:31:06
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.139186
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 1, for S/N=20.985
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 15.664
Central pixel S/N = 24.092
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 17.044
Max S/N (shifting the aperture center) = 24.572
stddev S/N (shifting the aperture center) = 4.642

Opt SNR: 20.985161521318123, for npc=1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:31:07
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.147639
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
Number of steps 11
Optimal number of PCs = 2, for S/N=23.447
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 29.9
Flux in a centered 1xFWHM circular aperture = 7.526
Central pixel S/N = 14.151
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 14.491
Max S/N (shifting the aperture center) = 19.392
stddev S/N (shifting the aperture center) = 3.315

Opt SNR: 23.446658828695938, for npc=2
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:13: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  print("Opt SNR: {}, for npc={}".format(float(opt_snr), opt_npc_ann))
/var/folders/c8/p96qsd5x0bzcl1g1w145r9z40000gn/T/ipykernel_20804/3203288616.py:14: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
  all_snrs.append(float(opt_snr))
../_images/tutorials_07_ifs_psfsub_fm_planets_163_78.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_79.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_80.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_81.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_82.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_83.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_84.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_85.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_86.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_87.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_88.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_89.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_90.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_91.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_92.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_93.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_94.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_95.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_96.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_97.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_98.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_99.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_100.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_101.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_102.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_103.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_104.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_105.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_106.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_107.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_108.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_109.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_110.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_111.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_112.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_113.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_114.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_115.png
../_images/tutorials_07_ifs_psfsub_fm_planets_163_116.png

Let’s plot the results:

[67]:
plt.figure(figsize=(6,4))
plt.plot(lbda, all_snrs)
plt.xlabel(r"Wavelength ($\mu$m)")
plt.ylabel("SNR of c")
[67]:
Text(0, 0.5, 'SNR of c')
../_images/tutorials_07_ifs_psfsub_fm_planets_165_1.png

Let’s (reverse) sort to only keep the best 8 channels:

[68]:
order_snr = np.flip(np.argsort(all_snrs))
sorted_npc = np.array(all_pcs)[order_snr]
sorted_ch = np.arange(nch)[order_snr]
sorted_frs = np.array(all_frs)[order_snr]
sorted_snr = np.array(all_snrs)[order_snr]

Let’s finally show these 8 channels with optimal SNR:

[69]:
cutoff = 8
final_frs_c = tuple(sorted_frs[:cutoff])
final_chs_c = sorted_ch[:cutoff]
final_npcs_c = sorted_npc[:cutoff]

labels = ['ch.{}, npc={}, SNR={:.1f}'.format(final_chs_c[i], final_npcs_c[i], sorted_snr[i]) for i in range(cutoff)]
labels = tuple(labels)

plot_frames(final_frs_c, label=labels, rows=2)
../_images/tutorials_07_ifs_psfsub_fm_planets_169_0.png

7.6.2. NEGFC+PCA-ADI (simplex)

Let’s now find the optimal position of planet c by running the firstguess function on the 8 best spectral channels (corresponding to the highest SNR, as determined above):

[70]:
crop_cube_c = cube_fc[final_chs_c]
crop_cube_c.shape
[70]:
(8, 55, 107, 107)
[71]:
psfn_crop_c = psfn[final_chs_c]
[72]:
trans_crop_c = [trans[0]]
for i in final_chs_c:
    trans_crop_c.append(trans[i])
trans_crop_c = np.array(trans_crop_c)
[73]:
res = firstguess(crop_cube_c, derot_angles, psfn_crop_c, ncomp=list(final_npcs_c),
                 planets_xy_coord=[xy_c], fwhm=np.mean(fwhm), annulus_width=int(4*np.mean(fwhm)),
                 aperture_radius=2, imlib='opencv', transmission=trans_crop_c, mu_sigma=True,
                 force_rPA=False, simplex=True, plot=True, verbose=True)
r0c = res[0]
theta0c = res[1]
fluxes0c = res[2]
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 02:31:20
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
             Planet 0
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Planet 0: flux estimation at the position [83.8,29.9], running ...
Processing spectral channel 0...
... optimal grid flux: 25.929 ($\chi^2_r$ = 1.4)
Processing spectral channel 1...
... optimal grid flux: 25.929 ($\chi^2_r$ = 1.5)
Processing spectral channel 2...
... optimal grid flux: 25.929 ($\chi^2_r$ = 1.2)
Processing spectral channel 3...
... optimal grid flux: 38.566 ($\chi^2_r$ = 1.4)
Processing spectral channel 4...
... optimal grid flux: 25.929 ($\chi^2_r$ = 1.2)
Processing spectral channel 5...
... optimal grid flux: 25.929 ($\chi^2_r$ = 1.4)
Processing spectral channel 6...
... optimal grid flux: 25.929 ($\chi^2_r$ = 1.4)
Processing spectral channel 7...
... optimal grid flux: 17.433 ($\chi^2_r$ = 1.6)
../_images/tutorials_07_ifs_psfsub_fm_planets_175_1.png
Planet 0: preliminary position guess: (r, theta)=(38.5, 323.1)
Planet 0: preliminary flux guess: 25.9, 25.9, 25.9, 38.6, 25.9, 25.9, 25.9, 17.4
Planet 0: Simplex Nelder-Mead minimization, running ...
Planet 0: Success: True, nit: 446, nfev: 821, chi2r: 0.08853499430766378
message: Optimization terminated successfully.
Planet 0: simplex result: (r, theta, f0, f1, f2, f3, f4, f5, f6, f7)=(25.571, 23.625, 29.279, 31.809, 31.204, 29.231, 27.062, 17.118) at
          (X,Y)=(83.77, 29.95)

 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
DONE !
 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Running time:  0:29:30.002549
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
[74]:
res
[74]:
(array([38.448522]),
 array([323.1687874]),
 array([[25.57130164, 23.62535398, 29.27905427, 31.80925639, 31.20381454,
         29.23071464, 27.06177037, 17.11751566]]))

Let’s compare the estimates to their respective ground truth values:

[75]:
print("r (gt): {:.2f} VS. r (estimated): {:.2f}".format(r_c, r0c[0]))
print("theta (gt): {:.2f} VS. r (estimated): {:.2f}".format(theta_c%360, theta0c[0]))
for i, ch in enumerate(final_chs_c):
    print("flux ch.{} (gt): {:.2f} VS. r (estimated): {:.2f}".format(ch, flux_c_scal[ch], fluxes0c[0,i]))
r (gt): 38.50 VS. r (estimated): 38.45
theta (gt): 323.13 VS. r (estimated): 323.17
flux ch.38 (gt): 24.66 VS. r (estimated): 25.57
flux ch.34 (gt): 29.42 VS. r (estimated): 23.63
flux ch.37 (gt): 28.25 VS. r (estimated): 29.28
flux ch.35 (gt): 30.51 VS. r (estimated): 31.81
flux ch.36 (gt): 30.09 VS. r (estimated): 31.20
flux ch.33 (gt): 27.34 VS. r (estimated): 29.23
flux ch.32 (gt): 25.13 VS. r (estimated): 27.06
flux ch.30 (gt): 22.10 VS. r (estimated): 17.12

7.6.3. NEGFC+PCA-ADI (MCMC)

A better, albeit slower way, to infer the astrometry of each planet with uncertainties is to use an MCMC approach. Our specific case can be solved with the mcmc_negfc_sampling, which can, since VIP v1.2.3, also deal with 4D cubes. We refer to tutorial 5 for more details on how to set up the parameters for the MCMC algorithm.

[76]:
import pickle

lab='c'
ann_width = 4*np.mean(fwhm)
aperture_radius=2
imlib_rot='opencv'
interpolation = 'lanczos4'
nwalkers, itermin, itermax = (100, 200, 500)
conv_test, ac_c, ac_count_thr, check_maxgap = ('ac', 50, 1, 50)

algo_params = {'algo': pca_annulus,
               'annulus_width': ann_width,
               'svd_mode': 'lapack',
               'imlib': imlib_rot,
               'interpolation': interpolation}
conv_params = {'conv_test': conv_test,
               'ac_c': ac_c,
               'ac_count_thr': ac_count_thr,
               'check_maxgap': check_maxgap}
mcmc_params = {'nwalkers': nwalkers,
               'niteration_min': itermin,
               'niteration_limit': itermax,
               'bounds': None,
               'sigma':'spe',
               'nproc': 2}
negfc_params = {'mu_sigma': True,
                'aperture_radius': aperture_radius}
obs_params = {}

Note that when the flux variation is known throughout the observation (e.g. through a background star or satellite spots) or if you wish to take into account the effect of airmass, it is possible to provide a weights parameter for the injection of the mean flux to be scaled at the moment of injection in each image to follow in (this is a new addition since Christiaens et al. 2021).

[77]:
weights=X_fac
[78]:
# input to MCMC
init = [r0c[0], theta0c[0]]
for i in range(cutoff):
    init.append(fluxes0c[0,i])
initial_state = np.array(init)
obs_params['psfn']= psfn[final_chs_c]
obs_params['fwhm']= np.mean(fwhm[final_chs_c]) # REPLACE AFTER DEALING WITH FWHM format
obs_params['transmission']= trans_crop_c
algo_params['ncomp'] = list(final_npcs_c)

Warning: The following box is very computer intensive. It can be skipped if needed.

[79]:
# MCMC
chain = mcmc_negfc_sampling(cube_fc[final_chs_c], derot_angles, **obs_params, **algo_params, **negfc_params,
                            initial_state=initial_state, **mcmc_params, **conv_params, weights=weights,
                            display=True, verbosity=2, save=False, output_dir='./')
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 03:00:50
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
        MCMC sampler for the NEGFC technique
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
The mean and stddev in the annulus at the radius of the companion (excluding the PA area directly adjacent to it) are -0.00 and 0.08 respectively.
Beginning emcee Ensemble sampler...
emcee Ensemble sampler successful

Start of the MCMC run ...
Step  |  Duration/step (sec)  |  Remaining Estimated Time (sec)
0               42.51746                        21216.21404
1               42.41981                        21125.06389
2               42.32732                        21036.67804
3               42.39256                        21026.70728
4               42.41644                        20996.13879
5               42.39147                        20941.38816
6               42.31432                        20860.96173
7               42.42714                        20874.15239
8               42.38404                        20810.56560
9               42.32164                        20737.60164
10              42.44019                        20753.25438
11              42.39037                        20686.50007
12              42.34000                        20619.58049
13              42.38203                        20597.66707
14              42.40563                        20566.72958
15              42.39892                        20521.07970
16              42.33888                        20449.67807
17              42.37734                        20425.87933
18              42.41110                        20399.73766
19              42.33640                        20321.47152
20              42.39091                        20305.24733
21              42.43365                        20283.28566
22              42.38881                        20219.46237
23              42.32993                        20149.04668
24              42.40569                        20142.70465
25              42.38350                        20089.77947
26              42.31872                        20016.75361
27              42.37906                        20002.91868
28              42.37886                        19960.44165
29              42.33509                        19897.49230
30              42.33941                        19857.18470
31              42.36907                        19828.72476
32              42.40837                        19804.71112
33              42.33200                        19726.71060
34              42.36868                        19701.43434
35              42.43803                        19691.24499
36              42.32037                        19594.33224
37              42.41727                        19596.77643
38              42.50756                        19595.98424
39              42.41597                        19511.34620
40              42.35862                        19442.60750
41              42.42226                        19429.39416
42              42.37585                        19365.76162
43              42.32847                        19301.78050
44              42.48542                        19330.86473
45              42.41823                        19257.87733
46              42.37328                        19195.09448
47              42.35691                        19145.32151
48              42.38268                        19114.59048
49              42.40939                        19084.22415
50              42.35811                        19018.79094

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_1.png
51              43.89956                        19667.00154
52              42.40241                        18953.87682
53              42.39427                        18907.84442
54              42.36796                        18853.74354
55              41.72260                        18524.83573
56              42.39049                        18778.98796
57              42.32541                        18707.82901
58              42.45858                        18724.23598
59              42.40125                        18656.54824
60              42.33382                        18584.54698
61              42.40555                        18573.63309
62              42.37394                        18517.40960
63              42.38599                        18480.29077
64              41.58111                        18087.78502
65              42.42695                        18413.29500
66              42.42288                        18369.10704
67              42.36767                        18302.83344
68              41.64673                        17949.74235
69              42.42120                        18241.11557
70              42.31094                        18151.39283
71              42.35410                        18127.55394
72              42.40232                        18105.78851
73              42.36386                        18047.00521
74              42.31530                        17984.00293
75              41.71230                        17686.01562
76              42.36985                        17922.44782
77              42.31474                        17856.82155
78              41.68101                        17547.70521
79              42.38214                        17800.49880
80              42.37643                        17755.72333
81              42.44260                        17741.00513
82              42.40902                        17684.56217
83              42.46848                        17666.88726
84              42.33895                        17570.66300
85              42.42040                        17562.04477
86              42.43361                        17525.08176
87              42.35026                        17448.30836
88              42.37972                        17418.06328
89              41.71964                        17105.05445
90              42.36391                        17326.83715
91              42.30585                        17260.78598
92              42.43168                        17269.69417
93              42.40012                        17214.44913
94              42.33837                        17147.03823
95              42.39218                        17126.43991
96              42.35097                        17067.44252
97              42.32889                        17016.21539
98              42.35688                        16985.11008
99              42.34666                        16938.66480
100             42.41864                        16925.03896

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_3.png
101             43.68780                        17387.74440
102             42.39295                        16830.00155
103             42.43447                        16804.05012
104             42.31420                        16714.11058
105             42.33873                        16681.45923
106             41.68523                        16382.29382
107             40.91506                        16038.70313
108             42.35358                        16560.24939
109             42.41128                        16540.39881
110             42.37286                        16483.04410
111             42.32706                        16422.89967
112             42.39999                        16408.79536
113             42.37245                        16355.76724
114             41.60710                        16018.73542
115             42.40740                        16284.44275
116             41.61094                        15936.98925
117             42.40746                        16199.64934
118             42.30879                        16119.64785
119             42.36574                        16098.98158
120             42.43303                        16082.11989
121             42.31276                        15994.22215
122             42.42104                        15992.73396
123             42.47743                        15971.51218
124             41.65341                        15620.02875
125             42.42182                        15865.75993
126             41.82050                        15599.04613
127             42.40554                        15774.86125
128             41.65154                        15452.72023
129             42.40760                        15690.81237
130             42.38620                        15640.50706
131             41.60334                        15310.03096
132             41.64302                        15282.98871
133             41.64664                        15242.66951
134             41.61042                        15187.80220
135             42.36074                        15419.31009
136             42.38566                        15385.99603
137             40.98497                        14836.56095
138             40.83183                        14740.29171
139             41.63947                        14990.20992
140             41.67574                        14961.59138
141             40.11476                        14361.08444
142             40.15849                        14336.58093
143             40.93985                        14574.58660
144             40.87313                        14509.96292
145             39.47942                        13975.71574
146             41.67350                        14710.74515
147             41.61998                        14650.23472
148             41.62846                        14611.59051
149             41.71153                        14599.03690
150             41.62858                        14528.37337

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_5.png
151             43.39010                        15099.75376
152             41.68112                        14463.34760
153             42.38761                        14666.11341
154             40.82917                        14086.06468
155             41.69949                        14344.62525
156             41.83583                        14349.69038
157             42.34181                        14480.89834
158             40.21461                        13713.18133
159             40.88479                        13900.82758
160             40.83320                        13842.45548
161             40.93258                        13835.21305
162             40.17144                        13537.77663
163             42.34638                        14228.38301
164             41.66053                        13956.27822
165             41.65131                        13911.53620
166             40.20679                        13388.86240
167             41.65544                        13829.60575
168             41.69991                        13802.66922
169             41.80721                        13796.37963
170             42.36801                        13939.07463
171             41.65457                        13662.69765
172             41.67066                        13626.30484
173             41.66451                        13582.63059
174             40.19969                        13064.90023
175             39.47696                        12790.53472
176             42.31233                        13666.88227
177             39.40577                        12688.65730
178             40.96217                        13148.85721
179             40.11863                        12837.96192
180             40.93653                        13058.75339
181             41.76227                        13280.40313
182             40.99625                        12995.80967
183             41.56069                        13133.17899
184             40.92898                        12892.62807
185             42.36898                        13303.86066
186             42.34206                        13253.06322
187             42.41558                        13233.66158
188             42.35403                        13172.10271
189             41.56826                        12886.16122
190             41.64990                        12869.82034
191             41.61076                        12816.11285
192             42.39835                        13016.29222
193             41.59862                        12729.17650
194             42.40800                        12934.44031
195             40.96156                        12452.31485
196             42.31768                        12822.25734
197             41.63402                        12573.47404
198             41.69374                        12549.81514
199             41.57557                        12472.67190
200             41.65158                        12453.82272

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_7.png
Auto-corr tau/N = [0.08920477 0.09084127 0.08070282 0.11058679 0.08019716 0.08514837
 0.08302614 0.08555765 0.08535995 0.09964724]
tau/N <= 0.02 = [False False False False False False False False False False]

201             43.11478                        12848.20355
202             41.58080                        12349.49730
203             41.60100                        12313.89659
204             42.39558                        12506.69728
205             42.35307                        12451.80140
206             42.32924                        12402.46732
207             42.42435                        12387.91020
208             42.37252                        12330.40274
209             42.39836                        12295.52440
210             42.49091                        12279.87415
211             42.42594                        12218.67158
212             41.02267                        11773.50658
213             42.33813                        12108.70632
214             41.66214                        11873.70933
215             42.43076                        12050.33556
216             41.60045                        11772.92792
217             41.61955                        11736.71423
218             40.95255                        11507.66739
219             41.59538                        11646.70528
220             42.37288                        11822.03352
221             40.97527                        11391.12450
222             41.59882                        11522.87314
223             41.61226                        11484.98459
224             41.67858                        11461.61033
225             42.34690                        11603.05087
226             41.55132                        11343.51063
227             41.66285                        11332.29411
228             42.33723                        11473.38906
229             40.07998                        10821.59460
230             40.91527                        11006.20817
231             41.61926                        11153.96061
232             42.29805                        11293.58068
233             41.64126                        11076.57649
234             42.35561                        11224.23585
235             41.60912                        10984.80768
236             42.38435                        11147.08431
237             41.62441                        10905.59542
238             42.43264                        11074.91904
239             42.34711                        11010.24860
240             42.36382                        10972.22809
241             40.24785                        10383.94633
242             40.81795                        10490.21212
243             41.64050                        10659.96800
244             41.67455                        10627.01000
245             41.57232                        10559.36826
246             42.52083                        10757.76872
247             41.67798                        10502.85096
248             41.62392                        10447.60518
249             40.83800                        10209.50025
250             41.68849                        10380.43351

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_9.png
Auto-corr tau/N = [0.09030557 0.08967278 0.07890243 0.10651214 0.07710283 0.07952395
 0.0858965  0.08342434 0.0795758  0.09320014]
tau/N <= 0.02 = [False False False False False False False False False False]

251             43.40613                        10764.71999
252             41.65469                        10288.70769
253             41.06675                        10102.41952
254             41.01069                        10047.61954
255             40.88115                        9974.99987
256             41.73176                        10140.81865
257             42.43233                        10268.62459
258             42.41225                        10221.35153
259             42.34788                        10163.49192
260             41.60446                        9943.46713
261             42.43663                        10099.91699
262             41.68915                        9880.32784
263             40.92760                        9658.91454
264             41.68251                        9795.38915
265             41.57673                        9728.95576
266             42.43412                        9887.15089
267             41.66076                        9665.29586
268             42.31376                        9774.47948
269             42.33502                        9737.05460
270             42.40222                        9710.10815
271             41.65926                        9498.31242
272             41.57491                        9437.50570
273             41.69476                        9423.01553
274             42.37172                        9533.63790
275             41.55331                        9307.94256
276             42.42367                        9460.47886
277             40.90734                        9081.42948
278             41.59898                        9193.37568
279             41.63361                        9159.39420
280             40.94674                        8967.33650
281             40.96283                        8929.89716
282             40.84501                        8863.36804
283             41.60765                        8987.25283
284             41.64221                        8953.07579
285             40.83622                        8738.95044
286             40.19727                        8562.01830
287             41.73201                        8847.18570
288             41.75674                        8810.67193
289             40.91513                        8592.17814
290             42.47505                        8877.28608
291             40.82632                        8491.87394
292             42.35159                        8766.77872
293             40.93668                        8432.95505
294             41.59268                        8526.49960
295             41.68516                        8503.77244
296             40.96354                        8315.59842
297             41.68077                        8419.51554
298             42.40568                        8523.54168
299             40.99013                        8198.02560
300             41.64975                        8288.30045

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_11.png
Auto-corr tau/N = [0.08626078 0.08558673 0.07704599 0.10018028 0.07220745 0.07769066
 0.08300508 0.07671402 0.07714248 0.09004502]
tau/N <= 0.02 = [False False False False False False False False False False]

301             43.84168                        8680.65304
302             42.49964                        8372.42908
303             42.37093                        8304.70248
304             42.37365                        8262.86253
305             42.39796                        8225.20385
306             42.33438                        8170.53534
307             42.49999                        8159.99789
308             42.30526                        8080.30409
309             42.38945                        8053.99474
310             41.67969                        7877.46198
311             42.32160                        7956.46099
312             42.32979                        7915.67017
313             41.63167                        7743.49081
314             41.59068                        7694.27617
315             42.31806                        7786.52230
316             42.42579                        7763.91902
317             42.52009                        7738.65693
318             42.32648                        7661.09252
319             42.42911                        7637.24052
320             42.34268                        7579.33972
321             41.56555                        7398.66808
322             41.66136                        7374.06125
323             41.66264                        7332.62394
324             40.87589                        7153.28162
325             42.35989                        7370.62103
326             41.66105                        7207.36251
327             41.67180                        7167.54960
328             42.31745                        7236.28327
329             41.64285                        7079.28450
330             41.01900                        6932.21083
331             41.55857                        6981.83926
332             40.84658                        6821.37953
333             41.73102                        6927.34866
334             41.59874                        6863.79210
335             40.88384                        6704.94960
336             41.69686                        6796.58802
337             42.35498                        6861.50611
338             40.89208                        6583.62552
339             42.49160                        6798.65600
340             41.68073                        6627.23591
341             42.43134                        6704.15235
342             42.52799                        6676.89521
343             42.40644                        6615.40542
344             41.65116                        6455.92965
345             41.66326                        6416.14189
346             40.92517                        6261.55162
347             42.38650                        6442.74876
348             42.33642                        6392.80002
349             41.62934                        6244.40055
350             42.51697                        6335.02793

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_13.png
Auto-corr tau/N = [0.08164156 0.08150886 0.07393496 0.09577317 0.07203522 0.07839577
 0.08020406 0.07359604 0.07559539 0.08779127]
tau/N <= 0.02 = [False False False False False False False False False False]

351             43.57198                        6448.65230
352             41.70063                        6129.99232
353             40.96340                        5980.65684
354             41.58419                        6029.70697
355             42.34367                        6097.48834
356             41.68511                        5960.97001
357             42.37929                        6017.85961
358             42.86855                        6044.46583
359             42.44497                        5942.29538
360             42.36900                        5889.29058
361             42.31232                        5839.09988
362             40.98184                        5614.51249
363             40.89575                        5561.82159
364             41.54981                        5609.22462
365             42.45422                        5688.86561
366             41.66613                        5541.59556
367             41.71437                        5506.29644
368             40.84662                        5350.90683
369             42.34153                        5504.39903
370             41.63668                        5371.13237
371             42.30502                        5415.04294
372             40.90668                        5195.14823
373             42.42687                        5345.78600
374             42.32597                        5290.74575
375             42.36456                        5253.20507
376             42.41646                        5217.22495
377             42.33143                        5164.43458
378             42.30607                        5119.03471
379             42.42213                        5090.65596
380             41.64332                        4955.55567
381             41.66606                        4916.59473
382             41.79345                        4889.83353
383             41.75443                        4843.51388
384             42.38721                        4874.52972
385             42.48420                        4843.19891
386             42.37179                        4788.01170
387             42.41557                        4750.54350
388             42.36076                        4702.04436
389             42.38054                        4661.85995
390             42.42621                        4624.45635
391             42.52793                        4593.01666
392             42.36319                        4532.86122
393             42.60996                        4516.65576
394             42.30595                        4442.12454
395             42.38717                        4408.26568
396             42.40476                        4367.69028
397             42.37234                        4321.97909
398             42.33014                        4275.34444
399             41.67639                        4167.63930
400             42.42063                        4199.64227

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_15.png
Auto-corr tau/N = [0.07941974 0.07854472 0.07005347 0.09072779 0.06894636 0.0737765
 0.0749939  0.07086589 0.07387962 0.08527202]
tau/N <= 0.02 = [False False False False False False False False False False]

401             43.91815                        4303.97870
402             42.43418                        4116.11585
403             41.62088                        3995.60410
404             40.97184                        3892.32480
405             41.57222                        3907.78906
406             40.85908                        3799.89407
407             42.42050                        3902.68637
408             41.56203                        3782.14500
409             41.68306                        3751.47495
410             40.95023                        3644.57020
411             41.56729                        3657.92170
412             40.88569                        3557.05460
413             41.66803                        3583.45032
414             42.30292                        3595.74812
415             41.83192                        3513.88086
416             42.45330                        3523.62373
417             41.68417                        3418.10178
418             41.54964                        3365.52076
419             42.41619                        3393.29520
420             42.36974                        3347.20954
421             42.29505                        3299.01398
422             41.67832                        3209.23049
423             41.67398                        3167.22256
424             42.43442                        3182.58120
425             41.75355                        3089.76240
426             42.45263                        3099.04177
427             42.54186                        3063.01406
428             42.33367                        3005.69022
429             41.64430                        2915.10072
430             41.71785                        2878.53151
431             41.56830                        2826.64413
432             42.35868                        2838.03169
433             42.45452                        2801.99839
434             42.51611                        2763.54689
435             42.39578                        2713.32992
436             42.48337                        2676.45250
437             41.70514                        2585.71862
438             42.37436                        2584.83626
439             41.64306                        2498.58384
440             41.62323                        2455.77051
441             40.85051                        2369.32981
442             42.38096                        2415.71472
443             41.64276                        2331.99462
444             42.36294                        2329.96175
445             41.69315                        2251.43010
446             42.35458                        2244.79279
447             42.41072                        2205.35744
448             41.57515                        2120.33275
449             42.34701                        2117.35040
450             42.39669                        2077.43761

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_186_17.png
Auto-corr tau/N = [0.07698456 0.07578134 0.06698945 0.08530015 0.0695675  0.07206322
 0.07236937 0.06870056 0.06946411 0.08389287]
tau/N <= 0.02 = [False False False False False False False False False False]

451             43.45477                        2085.82877
452             42.42181                        1993.82526
453             42.55455                        1957.50948
454             42.32227                        1904.50215
455             40.81474                        1795.84852
456             41.64643                        1790.79645
457             40.92999                        1719.05966
458             42.31206                        1734.79446
459             40.48955                        1619.58184
460             41.81267                        1630.69432
461             41.02704                        1559.02744
462             40.33687                        1492.46412
463             41.01607                        1476.57866
464             41.03562                        1436.24666
465             41.78340                        1420.63574
466             41.80403                        1379.53283
467             41.06602                        1314.11258
468             41.81698                        1296.32632
469             41.82371                        1254.71127
470             41.90905                        1215.36248
471             41.76623                        1169.45441
472             41.77700                        1127.97892
473             41.13989                        1069.63704
474             40.97086                        1024.27140
475             41.06017                        985.44403
476             41.82021                        961.86488
477             41.75937                        918.70614
478             41.80637                        877.93385
479             41.20551                        824.11014
480             41.00804                        779.15268
481             41.81787                        752.72173
482             41.86824                        711.76010
483             41.03371                        656.53933
484             40.20560                        603.08402
485             41.00827                        574.11581
486             41.76351                        542.92567
487             40.30208                        483.62500
488             41.06508                        451.71585
489             40.34678                        403.46778
490             41.03668                        369.33009
491             41.04229                        328.33829
492             40.28195                        281.97366
493             41.05167                        246.31004
494             41.77839                        208.89196
495             41.78578                        167.14312
496             41.08371                        123.25114
497             40.34359                        80.68717
498             41.06477                        41.06477
499             41.03807                        0.00000
We have reached the limit # of steps without convergence
Running time:  5:49:54.264553
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

If you ran the previous box and wish to write your results, set write=True in the next box. This will pickle the MCMC chain.

[80]:
write=False

if write:
    output = {'chain':chain}
    with open('../datasets/MCMC_results_pl{}_top{}ch'.format(lab, cutoff), 'wb') as fileSave:
        pickle.dump(output, fileSave)
[81]:
with open('../datasets/MCMC_results_pl{}_top{}ch'.format(lab, cutoff), 'rb') as fi:
    myPickler = pickle.Unpickler(fi)
    mcmc_result = myPickler.load()

chain = mcmc_result['chain']

Let’s visualize the chain after setting labels for each parameter:

[82]:
labels = [r"$r$", r"$\theta$"]
for i, ch in enumerate(final_chs_c):
    labels.append(r"$f$ (ch.{:.0f})".format(ch))
show_walk_plot(chain, labels=labels)
../_images/tutorials_07_ifs_psfsub_fm_planets_191_0.png

Let’s visualize the corner plot after burning the first 30% of the chain:

[83]:
burnin = 0.3
show_corner_plot(chain, burnin=burnin, labels=labels)
../_images/tutorials_07_ifs_psfsub_fm_planets_193_0.png

To calculate 1-sigma (68%) confidence intervals on each parameter, let’s first flatten the chain:

[84]:
npar = len(initial_state)
isamples_flat = chain[:, int(chain.shape[1]//(1/burnin)):, :].reshape((-1,npar))

Then use the confidence function.

Below, the first set of plots show the estimate, ground truth value and 68% confidence interval (in shaded area).

By setting ‘gaussian_fit’ to True, a second set of plots is also shown, where a Gaussian function is fit to each posterior distribution in order to infer mean and standard deviation for each parameter.

Note that the function can accept a ground truth value gt, which will be shown in the plots if provided.

[85]:
gt = [r_c, theta_c%360]
for i, ch in enumerate(final_chs_c):
    gt.append(flux_c_scal[ch])

mu, sigma = confidence(isamples_flat, cfd=68, gaussian_fit=True, verbose=False,
                       gt=gt, save=False, title=True, labels=labels)
/Users/valentin/GitHub/VIP/vip_hci/fm/negfc_mcmc.py:1541: UserWarning: The figure layout has changed to tight
  plt.tight_layout(w_pad=0.1)
../_images/tutorials_07_ifs_psfsub_fm_planets_197_1.png

Overall we see that the estimated parameters are consistent with the ground truth values (shown with dashed blue lines).

[86]:
r_est = mu[0]
theta_est = mu[1]

xc, yc = frame_center(cube_fc)
x_est = xc + r_est*np.cos(np.deg2rad(theta_est))
y_est = yc + r_est*np.sin(np.deg2rad(theta_est))

xy_est = (x_est, y_est)

7.7. Spectrum retrieval

7.7.1. NEGFC+PCA-ADI (simplex)

Let’s use the negative fake companion technique (combined with PCA-ADI) to estimate the flux of the companion in each spectral channel. Here, we will just use the firstguess function in VIP which finds a first estimate on a grid of flux values followed by a simplex. Here we set force_rPA=True to pin the position during the NEGFC procedure (i.e. only allowing the fluxes at different wavelengths as free parameters).

[87]:
est_fluxes_c = np.zeros(nch)
for i in range(nch):
    trans_i = np.array([trans[0],trans[i]])
    res = firstguess(cube_fc[i], derot_angles, psfn[i], ncomp=4, planets_xy_coord=[xy_est],
                     fwhm=fwhm[i], annulus_width=int(4*fwhm[i]), aperture_radius=2, imlib='opencv',
                     f_range=None, transmission=trans_i, mu_sigma=True, force_rPA=True, weights=X_fac,
                     simplex=True, plot=False, verbose=False)
    _, _, est_fluxes_c[i] = res

Note that we arbitrarily assigned the number of principal components to 5 and 2 for the PCA-ADI algorithm used by NEGFC to measure the fluxes of the inner and outer fake planet. A more rigorous approach would consist in finding the optimal number of principal components for each spectral channel first, as done in Tutorial 5 (Sec. 5.2).

Let’s now compare the retrieved fluxes with and without weights to the ground truth values used for injection:

[88]:
%matplotlib inline
fig, axes = plt.subplots(1,2, figsize = (14,5))
ax1, ax2 = axes
ax1.plot(lbda, est_fluxes_c, 'bo', label='Planet c: estimated spectrum')
ax1.plot(lbda, flux_c_scal, 'k', label='Planet c: injected spectrum')
ax1.set_xlabel("Wavelength")
ax1.set_ylabel("Flux (ADU/s)")
ax1.legend()

ax2.plot(lbda, est_fluxes_c-flux_c_scal, 'bo', label='Planet b: estimated - injected spectrum')
ax2.plot(lbda, [0]*len(lbda), 'k--')
ax2.plot(lbda, [np.mean(est_fluxes_c-flux_c_scal)]*len(lbda), 'b-', label='Mean residuals')
ax2.set_xlabel("Wavelength")
ax2.set_ylabel("Flux (ADU/s)")
ax2.legend()
plt.show()
../_images/tutorials_07_ifs_psfsub_fm_planets_206_0.png

This approach does not yield uncertainties. For the latter, it is recommended to run the mcmc_negfc_sampling function.

7.7.2. NEGFC+PCA-ADI (MCMC)

One can use the MCMC approach to have both estimates and uncertainties on the flux of directly imaged companions. Given that this approach is computationally expensive, we will only apply it to 3 spectral channels.

We refer to Tutorial 5 (Sec. 5.3.3.) for more details on setting the MCMC parameters.

[89]:
ann_width = 4*np.mean(fwhm)
aperture_radius=2
imlib_rot='opencv'
interpolation = 'lanczos4'
nwalkers, itermin, itermax = (100, 200, 500)
conv_test, ac_c, ac_count_thr, check_maxgap = ('ac', 50, 1, 50)

algo_params = {'algo': pca_annulus,
               'annulus_width': ann_width,
               'svd_mode': 'lapack',
               'imlib': imlib_rot,
               'interpolation': interpolation}
conv_params = {'conv_test': conv_test,
               'ac_c': ac_c,
               'ac_count_thr': ac_count_thr,
               'check_maxgap': check_maxgap}
mcmc_params = {'nwalkers': nwalkers,
               'niteration_min': itermin,
               'niteration_limit': itermax,
               'bounds': None,
               'sigma':'spe',
               'nproc': 2}
negfc_params = {'mu_sigma': True,
                'aperture_radius': aperture_radius}
obs_params = {}

Important note: the pixel intensities in calibrated SPHERE cubes coming out from the DRH pipeline (as this one) are normalized by their integration time. In absence of knowledge of this original integration time, it is not possible to scale the cube bask to original ADU values, and it is therefore not possible to include photon noise uncertainty among the different sources of uncertainty (in this specific case, the estimated photon noise uncertainty will be so large that the MCMC will not work properly). To alleviate this issue, we set sigma to ‘spe’, instead of ‘spe+pho’ (default) - although this may slightly underestimate the final uncertainties.

[90]:
import pickle

lab='c'
test_ch = [20,29,38]

Warning: the next box is computer-intensive. The results from that box have been saved in the ‘datasets’ folder, such that it can be skipped.

[91]:
for i, ch in enumerate(test_ch):
    # find optimal npc
    res_ann_opt = pca_grid(cube_fc[ch], derot_angles, fwhm=fwhm[ch], range_pcs=(1,11,1),
                           source_xy=xy_est, mode='annular',
                           annulus_width=ann_width, imlib=imlib_rot,
                           interpolation=interpolation,
                           full_output=True, plot=True, exclude_negative_lobes=True)
    _, final_ann_opt, _, opt_npc_ann = res_ann_opt
    plot_frames(final_ann_opt, label='PCA-ADI annulus (ch={}, opt. npc={:.0f})'.format(ch, opt_npc_ann),
                dpi=100, colorbar=True, circle=xy_est)
    # first guess
    trans_i = np.array([trans[0],trans[ch]])
    r_0, theta_0, f_0 = firstguess(cube_fc[ch], derot_angles, psfn[ch], ncomp=opt_npc_ann,
                                   planets_xy_coord=[xy_est], fwhm=fwhm[ch], weights=X_fac,
                                   f_range=None, annulus_width=ann_width, aperture_radius=aperture_radius,
                                   imlib=imlib_rot, interpolation=interpolation, simplex=True, force_rPA=True,
                                   transmission=trans_i, plot=True, verbose=True)
    initial_state = np.array([r_0[0], theta_0[0], f_0[0]])
    # MCMC
    obs_params['psfn']= psfn[ch]
    obs_params['fwhm']= fwhm[ch]
    obs_params['transmission']= trans_i
    algo_params['ncomp'] = opt_npc_ann
    chain = mcmc_negfc_sampling(cube_fc[ch], derot_angles, **obs_params, **algo_params, **negfc_params,
                                initial_state=initial_state, **mcmc_params, **conv_params, weights=X_fac,
                                force_rPA=True, display=True, verbosity=2, save=False, output_dir='./')
    output = {'chain':chain}
    with open('../datasets/MCMC_results_pl{}_ch{}'.format(lab, ch), 'wb') as fileSave:
        pickle.dump(output, fileSave)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 08:56:01
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.053436
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 3, for S/N=7.015
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 30.0
Flux in a centered 1xFWHM circular aperture = 1.948
Central pixel S/N = 8.027
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 6.612
Max S/N (shifting the aperture center) = 9.537
stddev S/N (shifting the aperture center) = 1.650

../_images/tutorials_07_ifs_psfsub_fm_planets_214_1.png
../_images/tutorials_07_ifs_psfsub_fm_planets_214_2.png
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 08:56:03
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
             Planet 0
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Planet 0: flux estimation at the position [83.75877533353938,29.974810067878558], running ...
Step | flux    | chi2r
1/30   0.100   0.076
2/30   0.149   0.076
3/30   0.221   0.074
4/30   0.329   0.073
5/30   0.489   0.070
6/30   0.728   0.067
7/30   1.083   0.062
8/30   1.610   0.056
9/30   2.395   0.047
10/30   3.562   0.038
11/30   5.298   0.030
12/30   7.880   0.033
13/30   11.721   0.068
14/30   17.433   0.200
../_images/tutorials_07_ifs_psfsub_fm_planets_214_4.png
Planet 0: preliminary position guess: (r, theta)=(38.4, 323.2)
Planet 0: preliminary flux guess: 5.3
Planet 0: Simplex Nelder-Mead minimization, running ...
Planet 0: Success: True, nit: 23, nfev: 48, chi2r: 0.028579331290166817
message: Optimization terminated successfully.
Planet 0: simplex result: (r, theta, f)=(38.422, 323.182, 5.965) at
          (X,Y)=(83.76, 29.97)

 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
DONE !
 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Running time:  0:00:07.868699
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 08:56:11
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
        MCMC sampler for the NEGFC technique
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
The mean and stddev in the annulus at the radius of the companion (excluding the PA area directly adjacent to it) are -0.00 and 0.10 respectively.
Beginning emcee Ensemble sampler...
emcee Ensemble sampler successful

Start of the MCMC run ...
Step  |  Duration/step (sec)  |  Remaining Estimated Time (sec)
0               6.68086                 3333.74889
1               5.80261                 2889.70028
2               5.81183                 2888.47752
3               5.79928                 2876.44437
4               5.87851                 2909.86344
5               5.80946                 2869.87176
6               5.80556                 2862.14157
7               5.79557                 2851.41896
8               5.80301                 2849.27742
9               5.79672                 2840.39476
10              5.80004                 2836.22103
11              5.80474                 2832.71556
12              5.80572                 2827.38321
13              5.70191                 2771.12777
14              5.80016                 2813.07760
15              5.85920                 2835.85280
16              5.79439                 2798.69134
17              5.79882                 2795.02931
18              5.80109                 2790.32381
19              5.81502                 2791.20768
20              5.82093                 2788.22691
21              5.79167                 2768.41587
22              5.78896                 2761.33440
23              5.79909                 2760.36494
24              5.84349                 2775.65632
25              5.85905                 2777.19065
26              5.81590                 2750.92117
27              5.81167                 2743.10777
28              5.79896                 2731.31063
29              5.79880                 2725.43553
30              5.77702                 2709.42191
31              5.80704                 2717.69706
32              5.71069                 2666.89363
33              5.83473                 2718.98511
34              5.81531                 2704.11683
35              5.75439                 2670.03510
36              5.81987                 2694.59796
37              5.80090                 2680.01395
38              5.80699                 2677.02377
39              5.81224                 2673.63040
40              5.80242                 2663.30940
41              5.76524                 2640.47992
42              5.69866                 2604.28579
43              5.61712                 2561.40763
44              5.70579                 2596.13582
45              5.75098                 2610.94674
46              5.86107                 2655.06516
47              5.81385                 2627.86201
48              5.79635                 2614.15430
49              5.80499                 2612.24415
50              5.80461                 2606.26899

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_6.png
51              5.94852                 2664.93606
52              5.59776                 2502.19648
53              5.81273                 2592.47624
54              5.82023                 2590.00369
55              5.80735                 2578.46384
56              5.85907                 2595.56845
57              5.80409                 2565.40866
58              5.80495                 2559.98163
59              5.80201                 2552.88484
60              5.71429                 2508.57199
61              5.80740                 2543.64251
62              5.81207                 2539.87503
63              5.80139                 2529.40604
64              5.81473                 2529.40842
65              5.77066                 2504.46557
66              5.79084                 2507.43329
67              5.83615                 2521.21464
68              5.70014                 2456.76206
69              5.80063                 2494.27176
70              5.80317                 2489.55821
71              5.69971                 2439.47759
72              5.80048                 2476.80624
73              5.80061                 2471.05986
74              5.80076                 2465.32470
75              5.81364                 2464.98251
76              5.71356                 2416.83503
77              5.84713                 2467.48928
78              5.70480                 2401.71954
79              5.80433                 2437.81902
80              5.69939                 2388.04567
81              5.71779                 2390.03580
82              5.80988                 2422.71954
83              5.70456                 2373.09779
84              5.79877                 2406.49038
85              5.80815                 2404.57286
86              5.79987                 2395.34672
87              5.86613                 2416.84432
88              5.81557                 2390.19722
89              5.80809                 2381.31731
90              5.80987                 2376.23601
91              5.81068                 2370.75907
92              5.75580                 2342.60938
93              5.80046                 2354.98717
94              5.76117                 2333.27587
95              5.81154                 2347.86095
96              5.80553                 2339.62859
97              5.71765                 2298.49329
98              5.85209                 2346.68729
99              5.70648                 2282.59240
100             5.70107                 2274.72613

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_8.png
101             6.16415                 2453.33011
102             5.79664                 2301.26489
103             5.80871                 2300.25035
104             5.79919                 2290.67965
105             5.79340                 2282.59842
106             5.80316                 2280.64267
107             5.90503                 2314.77019
108             5.88593                 2301.39746
109             5.80947                 2265.69408
110             5.79820                 2255.49902
111             5.79888                 2249.96583
112             5.79612                 2243.09805
113             5.79935                 2238.55026
114             5.80459                 2234.76831
115             5.80161                 2227.81709
116             5.81838                 2228.44031
117             5.70528                 2179.41620
118             5.77187                 2199.08437
119             5.79842                 2203.40150
120             5.79413                 2195.97603
121             5.79725                 2191.36201
122             5.79918                 2186.29161
123             5.81734                 2187.31909
124             5.79526                 2173.22138
125             5.79925                 2168.91838
126             5.80842                 2166.53954
127             5.79593                 2156.08633
128             5.85561                 2172.43205
129             5.85052                 2164.69092
130             5.80749                 2142.96492
131             5.79473                 2132.46138
132             5.80295                 2129.68338
133             5.79891                 2122.39923
134             5.80231                 2117.84352
135             5.79659                 2109.95949
136             5.79691                 2104.27869
137             5.80889                 2102.81890
138             5.80201                 2094.52453
139             5.84506                 2104.22304
140             5.79503                 2080.41577
141             5.69795                 2039.86503
142             5.80502                 2072.39392
143             5.79471                 2062.91676
144             5.79960                 2058.85694
145             5.79662                 2052.00313
146             5.80134                 2047.87408
147             5.77237                 2031.87318
148             5.80394                 2037.18329
149             5.89649                 2063.76975
150             5.66783                 1978.07407

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_10.png
151             5.95231                 2071.40284
152             5.69692                 1976.83159
153             5.80223                 2007.57089
154             5.80193                 2001.66447
155             5.86861                 2018.80115
156             5.70146                 1955.59907
157             5.80285                 1984.57402
158             5.79760                 1976.97990
159             5.69833                 1937.43118
160             5.85806                 1985.88404
161             5.80303                 1961.42549
162             5.80436                 1956.06764
163             5.80576                 1950.73536
164             5.82470                 1951.27517
165             5.81750                 1943.04400
166             5.79877                 1930.99074
167             5.80107                 1925.95657
168             5.81197                 1923.76273
169             5.86083                 1934.07291
170             5.85922                 1927.68272
171             5.80701                 1904.69928
172             5.79902                 1896.27856
173             5.80103                 1891.13741
174             5.80552                 1886.79530
175             5.79514                 1877.62633
176             5.80368                 1874.58832
177             5.80836                 1870.29256
178             5.81659                 1867.12443
179             5.80322                 1857.03008
180             5.86004                 1869.35180
181             5.79511                 1842.84498
182             5.80019                 1838.65960
183             5.79989                 1832.76556
184             5.80462                 1828.45687
185             5.80562                 1822.96311
186             5.79794                 1814.75647
187             5.80222                 1810.29420
188             5.82650                 1812.04119
189             5.81383                 1802.28823
190             5.86381                 1811.91605
191             5.85470                 1803.24729
192             5.79784                 1779.93565
193             5.79657                 1773.75134
194             5.80008                 1769.02318
195             5.79711                 1762.32235
196             5.70075                 1727.32634
197             5.80116                 1751.95032
198             5.80833                 1748.30823
199             5.80969                 1742.90850
200             5.79856                 1733.76854

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_12.png
Auto-corr tau/N = [0.05665871]
tau/N <= 0.02 = [False]

201             6.01271                 1791.78788
202             5.79632                 1721.50763
203             5.79552                 1715.47274
204             5.79902                 1710.71002
205             5.69870                 1675.41692
206             5.69914                 1669.84919
207             5.79628                 1692.51376
208             5.76079                 1676.39076
209             5.81300                 1685.77058
210             5.79594                 1675.02666
211             5.81083                 1673.52048
212             5.80885                 1667.14110
213             5.80016                 1658.84662
214             5.79678                 1652.08088
215             5.70419                 1619.98996
216             5.79582                 1640.21734
217             5.79893                 1635.29939
218             5.80056                 1629.95876
219             5.80535                 1625.49940
220             5.80230                 1618.84114
221             5.71937                 1589.98569
222             5.84631                 1619.42842
223             5.79276                 1598.80286
224             5.70340                 1568.43363
225             5.80360                 1590.18667
226             5.79634                 1582.40027
227             5.81372                 1581.33293
228             5.79673                 1570.91302
229             5.80287                 1566.77490
230             5.67901                 1527.65234
231             5.86575                 1572.02207
232             5.85004                 1561.96201
233             5.81933                 1547.94258
234             5.79634                 1536.03090
235             5.79903                 1530.94471
236             5.80288                 1526.15797
237             5.80383                 1520.60320
238             5.79616                 1512.79724
239             5.80185                 1508.48022
240             5.80367                 1503.15105
241             5.80083                 1496.61414
242             5.84764                 1502.84374
243             5.79439                 1483.36307
244             5.69799                 1452.98872
245             5.65491                 1436.34739
246             5.79899                 1467.14447
247             5.79194                 1459.56938
248             5.79752                 1455.17652
249             5.70158                 1425.39600
250             5.81314                 1447.47161

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_14.png
Auto-corr tau/N = [0.05337428]
tau/N <= 0.02 = [False]

251             5.95256                 1476.23538
252             5.84114                 1442.76232
253             5.85466                 1440.24636
254             5.80542                 1422.32814
255             5.76007                 1405.45806
256             5.80157                 1409.78102
257             5.79796                 1403.10559
258             5.80242                 1398.38394
259             5.80036                 1392.08664
260             5.71099                 1364.92780
261             5.81439                 1383.82553
262             5.80541                 1375.88288
263             5.74965                 1356.91834
264             5.76124                 1353.89093
265             5.80915                 1359.34180
266             5.79705                 1350.71195
267             5.80658                 1347.12633
268             5.79692                 1339.08898
269             5.79275                 1332.33250
270             5.80123                 1328.48144
271             5.80665                 1323.91574
272             5.81398                 1319.77278
273             5.90262                 1333.99325
274             5.81599                 1308.59820
275             5.80570                 1300.47702
276             5.76068                 1284.63186
277             5.76618                 1280.09196
278             5.79380                 1280.42980
279             5.80005                 1276.01100
280             5.79729                 1269.60563
281             5.77409                 1258.75097
282             5.80409                 1259.48840
283             5.80762                 1254.44570
284             5.75185                 1236.64775
285             5.79711                 1240.58218
286             5.79413                 1234.14990
287             5.80168                 1229.95510
288             5.80188                 1224.19689
289             5.80330                 1218.69279
290             5.79917                 1212.02569
291             5.80425                 1207.28442
292             5.80725                 1202.10137
293             5.72738                 1179.84069
294             5.77918                 1184.73211
295             5.71380                 1165.61581
296             5.70376                 1157.86328
297             5.78897                 1169.37234
298             5.79791                 1165.37991
299             5.79680                 1159.35960
300             5.80784                 1155.75936

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_16.png
Auto-corr tau/N = [0.05031548]
tau/N <= 0.02 = [False]

301             5.95791                 1179.66717
302             5.80842                 1144.25894
303             5.80991                 1138.74236
304             5.82695                 1136.25623
305             5.82453                 1129.95882
306             5.79581                 1118.59191
307             5.79599                 1112.82931
308             5.80050                 1107.89550
309             5.79363                 1100.79008
310             5.69782                 1076.88874
311             5.80693                 1091.70359
312             5.80430                 1085.40410
313             5.81117                 1080.87818
314             5.89445                 1090.47325
315             5.85589                 1077.48376
316             5.82093                 1065.22946
317             5.80993                 1057.40762
318             5.80029                 1049.85321
319             5.80368                 1044.66330
320             5.80141                 1038.45239
321             5.76022                 1025.31863
322             5.80551                 1027.57562
323             5.80596                 1021.84984
324             5.69737                 997.03922
325             5.85595                 1018.93513
326             5.69473                 985.18742
327             5.70670                 981.55274
328             5.80574                 992.78154
329             5.81151                 987.95636
330             5.82420                 984.29031
331             5.81589                 977.06969
332             5.79901                 968.43434
333             5.81314                 964.98141
334             5.69992                 940.48730
335             5.86485                 961.83507
336             5.84414                 952.59466
337             5.80455                 940.33726
338             5.80319                 934.31343
339             5.81097                 929.75552
340             5.83141                 927.19483
341             5.80670                 917.45781
342             5.81063                 912.26828
343             5.76951                 900.04387
344             5.85764                 907.93389
345             5.80513                 893.98971
346             5.85604                 895.97427
347             5.76440                 876.18865
348             5.78547                 873.60627
349             5.81293                 871.93995
350             5.82575                 868.03675

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_18.png
Auto-corr tau/N = [0.04544788]
tau/N <= 0.02 = [False]

351             6.00558                 888.82584
352             5.80297                 853.03586
353             5.80255                 847.17230
354             5.81322                 842.91705
355             5.87050                 845.35128
356             5.88642                 841.75849
357             5.81330                 825.48817
358             5.80125                 817.97667
359             5.79692                 811.56950
360             5.80664                 807.12296
361             5.77206                 796.54497
362             5.75183                 788.00112
363             5.80547                 789.54351
364             5.79947                 782.92885
365             5.79250                 776.19540
366             5.82927                 775.29264
367             5.82404                 768.77288
368             5.80903                 760.98241
369             5.80392                 754.50999
370             5.81047                 749.55011
371             5.80359                 742.85939
372             5.76160                 731.72358
373             5.76280                 726.11230
374             5.69377                 711.72137
375             5.71245                 708.34430
376             5.74367                 706.47129
377             5.86718                 715.79572
378             5.81920                 704.12296
379             5.80435                 696.52236
380             5.76013                 685.45488
381             5.79873                 684.25026
382             5.83162                 682.29907
383             5.70191                 661.42202
384             5.76201                 662.63115
385             5.80834                 662.15076
386             5.79918                 655.30779
387             5.86457                 656.83184
388             5.70947                 633.75117
389             5.79535                 637.48894
390             5.80923                 633.20607
391             5.79600                 625.96832
392             5.79576                 620.14621
393             5.76168                 610.73850
394             5.79654                 608.63681
395             5.80541                 603.76254
396             5.80218                 597.62444
397             5.86783                 598.51876
398             5.85723                 591.58063
399             5.80477                 580.47730
400             5.80251                 574.44898

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_20.png
Auto-corr tau/N = [0.04241222]
tau/N <= 0.02 = [False]

401             5.97408                 585.45984
402             5.80684                 563.26387
403             5.79849                 556.65533
404             5.55867                 528.07394
405             5.79622                 544.84440
406             5.81281                 540.59105
407             5.66695                 521.35940
408             5.84701                 532.07836
409             5.69267                 512.34039
410             5.79709                 515.94146
411             5.80483                 510.82460
412             5.79550                 504.20833
413             5.82217                 500.70628
414             5.79201                 492.32076
415             5.80904                 487.95970
416             5.81917                 482.99111
417             5.80303                 475.84846
418             5.80157                 469.92701
419             5.82252                 465.80176
420             5.79540                 457.83700
421             5.79475                 451.99019
422             5.81702                 447.91062
423             5.81056                 441.60256
424             5.79576                 434.68178
425             5.79682                 428.96475
426             5.81006                 424.13409
427             5.80243                 417.77474
428             5.81558                 412.90618
429             5.84593                 409.21489
430             5.80310                 400.41362
431             5.79400                 393.99214
432             5.81648                 389.70443
433             5.80883                 383.38252
434             5.80742                 377.48204
435             5.76980                 369.26707
436             5.80234                 365.54717
437             5.80937                 360.18119
438             5.73652                 349.92766
439             5.85519                 351.31164
440             5.81469                 343.06677
441             5.80325                 336.58867
442             5.80765                 331.03616
443             5.79880                 324.73291
444             5.69645                 313.30480
445             5.80026                 313.21404
446             5.79813                 307.30068
447             5.81263                 302.25697
448             5.80452                 296.03072
449             5.86158                 293.07895
450             5.75696                 282.09104

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_22.png
Auto-corr tau/N = [0.03899771]
tau/N <= 0.02 = [False]

451             5.96007                 286.08341
452             5.79334                 272.28679
453             5.79480                 266.56089
454             5.80330                 261.14850
455             5.68739                 250.24520
456             5.79717                 249.27848
457             5.81687                 244.30841
458             5.98882                 245.54166
459             5.88886                 235.55456
460             5.75642                 224.50034
461             5.80339                 220.52874
462             5.80280                 214.70360
463             5.80756                 209.07209
464             5.80328                 203.11487
465             5.80403                 197.33719
466             5.79718                 191.30681
467             5.79829                 185.54515
468             5.80649                 180.00113
469             5.81033                 174.30981
470             5.84314                 169.45118
471             5.79469                 162.25118
472             5.81830                 157.09407
473             5.80191                 150.84963
474             5.80361                 145.09015
475             5.79561                 139.09466
476             5.79976                 133.39448
477             5.79967                 127.59274
478             5.81992                 122.21842
479             5.79868                 115.97368
480             5.91684                 112.42000
481             5.71668                 102.90020
482             5.80394                 98.66700
483             5.80219                 92.83510
484             5.79802                 86.97030
485             5.79617                 81.14634
486             5.79491                 75.33384
487             5.80060                 69.60720
488             5.81212                 63.93328
489             5.79778                 57.97777
490             5.80186                 52.21675
491             5.83808                 46.70462
492             5.80482                 40.63373
493             5.79512                 34.77074
494             5.80049                 29.00243
495             5.80761                 23.23043
496             5.79978                 17.39934
497             5.79561                 11.59123
498             5.79745                 5.79745
499             5.80132                 0.00000
We have reached the limit # of steps without convergence
Running time:  0:48:27.809433
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 09:44:39
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.052871
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 5, for S/N=16.898
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 30.0
Flux in a centered 1xFWHM circular aperture = 3.720
Central pixel S/N = 13.660
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 10.367
Max S/N (shifting the aperture center) = 15.549
stddev S/N (shifting the aperture center) = 3.361

../_images/tutorials_07_ifs_psfsub_fm_planets_214_24.png
../_images/tutorials_07_ifs_psfsub_fm_planets_214_25.png
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 09:44:40
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
             Planet 0
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Planet 0: flux estimation at the position [83.75877533353938,29.974810067878558], running ...
Step | flux    | chi2r
1/30   0.100   0.248
2/30   0.149   0.247
3/30   0.221   0.246
4/30   0.329   0.244
5/30   0.489   0.242
6/30   0.728   0.237
7/30   1.083   0.230
8/30   1.610   0.220
9/30   2.395   0.205
10/30   3.562   0.185
11/30   5.298   0.158
12/30   7.880   0.121
13/30   11.721   0.078
14/30   17.433   0.038
15/30   25.929   0.050
16/30   38.566   0.213
17/30   57.362   0.487
../_images/tutorials_07_ifs_psfsub_fm_planets_214_27.png
Planet 0: preliminary position guess: (r, theta)=(38.4, 323.2)
Planet 0: preliminary flux guess: 17.4
Planet 0: Simplex Nelder-Mead minimization, running ...
Planet 0: Success: True, nit: 26, nfev: 60, chi2r: 0.032676364712401304
message: Optimization terminated successfully.
Planet 0: simplex result: (r, theta, f)=(38.422, 323.182, 20.300) at
          (X,Y)=(83.76, 29.97)

 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
DONE !
 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Running time:  0:00:09.845940
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 09:44:50
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
        MCMC sampler for the NEGFC technique
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
The mean and stddev in the annulus at the radius of the companion (excluding the PA area directly adjacent to it) are -0.00 and 0.10 respectively.
Beginning emcee Ensemble sampler...
emcee Ensemble sampler successful

Start of the MCMC run ...
Step  |  Duration/step (sec)  |  Remaining Estimated Time (sec)
0               6.71767                 3352.11982
1               5.83067                 2903.67565
2               5.83006                 2897.53833
3               5.83122                 2892.28661
4               5.82177                 2881.77664
5               5.83246                 2881.23722
6               5.84143                 2879.82696
7               5.86580                 2885.97409
8               5.87904                 2886.60619
9               5.82390                 2853.71247
10              5.82488                 2848.36485
11              5.82960                 2844.84578
12              5.82915                 2838.79751
13              5.82760                 2832.21409
14              5.82163                 2823.49006
15              5.82753                 2820.52500
16              5.82861                 2815.21960
17              5.82341                 2806.88314
18              5.92747                 2851.11403
19              5.84163                 2803.98432
20              5.82978                 2792.46414
21              5.81850                 2781.24109
22              5.82664                 2779.30680
23              5.82409                 2772.26779
24              5.82122                 2765.08092
25              5.82514                 2761.11589
26              5.83327                 2759.13813
27              5.81672                 2745.49420
28              5.87054                 2765.02670
29              5.85013                 2749.56157
30              5.82145                 2730.25817
31              5.81883                 2723.21291
32              5.82756                 2721.47192
33              5.83113                 2717.30425
34              5.85252                 2721.41948
35              5.82594                 2703.23384
36              5.84075                 2704.26632
37              5.82390                 2690.64365
38              5.86501                 2703.76869
39              5.88402                 2706.64920
40              5.83197                 2676.87515
41              5.82137                 2666.18883
42              5.81535                 2657.61678
43              5.81918                 2653.54745
44              5.82663                 2651.11574
45              5.82299                 2643.63837
46              5.84875                 2649.48194
47              5.84415                 2641.55806
48              5.81988                 2624.76633
49              5.87135                 2642.10795
50              5.82881                 2617.13389

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_29.png
51              5.96074                 2670.41286
52              5.81901                 2601.09926
53              5.82081                 2596.08260
54              5.82555                 2592.36975
55              5.83051                 2588.74777
56              5.82355                 2579.83132
57              5.82523                 2574.75299
58              5.82944                 2570.78084
59              5.93835                 2612.87576
60              5.84422                 2565.61434
61              5.82587                 2551.72975
62              5.82201                 2544.21706
63              5.82440                 2539.43796
64              5.82117                 2532.20721
65              5.82638                 2528.65022
66              5.82499                 2522.22240
67              5.83598                 2521.14163
68              5.82352                 2509.93540
69              5.84167                 2511.91767
70              5.88538                 2524.82673
71              5.82789                 2494.33820
72              5.83125                 2489.94290
73              5.81576                 2477.51163
74              5.82657                 2476.29310
75              5.82211                 2468.57464
76              5.81877                 2461.33802
77              5.81814                 2455.25424
78              5.83761                 2457.63255
79              5.92237                 2487.39708
80              5.89315                 2469.23111
81              5.83478                 2438.93637
82              5.83365                 2432.63205
83              5.82325                 2422.47325
84              5.82428                 2417.07537
85              5.81682                 2408.16348
86              5.82445                 2405.49785
87              5.82451                 2399.69853
88              5.83971                 2400.11958
89              5.83185                 2391.05645
90              5.88397                 2406.54209
91              5.82638                 2377.16345
92              5.82306                 2369.98583
93              5.81909                 2362.55013
94              5.82276                 2358.21659
95              5.82207                 2352.11749
96              5.81455                 2343.26365
97              5.82329                 2340.96338
98              5.82162                 2334.47002
99              5.82114                 2328.45560
100             5.91950                 2361.88170

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_31.png
101             5.97921                 2379.72518
102             5.84785                 2321.59566
103             5.82794                 2307.86305
104             5.83364                 2304.28820
105             5.82397                 2294.64379
106             5.81773                 2286.36946
107             5.82899                 2284.96526
108             5.83311                 2280.74679
109             5.82949                 2273.50071
110             5.83976                 2271.66469
111             5.87618                 2279.95629
112             5.81564                 2250.65461
113             5.82578                 2248.75031
114             5.82577                 2242.92029
115             5.82643                 2237.34758
116             5.83672                 2235.46491
117             5.81468                 2221.20661
118             5.82400                 2218.94324
119             5.83812                 2218.48674
120             5.87165                 2225.35649
121             5.89532                 2228.43134
122             5.83845                 2201.09603
123             5.82580                 2190.49967
124             5.82372                 2183.89425
125             5.81988                 2176.63662
126             5.82287                 2171.92976
127             5.82376                 2166.43946
128             5.83208                 2163.70168
129             5.84091                 2161.13855
130             5.82995                 2151.25007
131             5.89184                 2168.19712
132             5.82280                 2136.96870
133             5.83108                 2134.17638
134             5.82884                 2127.52806
135             5.82834                 2121.51722
136             5.85586                 2125.67899
137             5.82900                 2110.09909
138             5.82601                 2103.18997
139             5.81349                 2092.85820
140             5.82920                 2092.68100
141             5.91679                 2118.21225
142             5.87256                 2096.50535
143             5.82427                 2073.43976
144             5.82737                 2068.71493
145             5.84539                 2069.26700
146             5.89033                 2079.28508
147             5.83308                 2053.24275
148             5.82947                 2046.14537
149             5.84773                 2046.70655
150             5.83570                 2036.65895

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_33.png
151             5.99917                 2087.71151
152             5.89311                 2044.90744
153             5.82779                 2016.41396
154             5.82815                 2010.71003
155             5.82918                 2005.23723
156             5.82941                 1999.48729
157             5.83097                 1994.19242
158             5.82634                 1986.78058
159             5.82823                 1981.59854
160             5.83869                 1979.31625
161             5.89537                 1992.63574
162             5.88133                 1982.00821
163             5.84253                 1963.09109
164             5.82860                 1952.58000
165             5.83161                 1947.75841
166             5.83028                 1941.48158
167             5.83077                 1935.81398
168             5.82817                 1929.12295
169             5.83227                 1924.64844
170             5.83540                 1919.84726
171             5.82649                 1911.08872
172             5.88682                 1924.98851
173             5.82024                 1897.39791
174             5.82245                 1892.29787
175             5.83651                 1891.02956
176             5.83035                 1883.20434
177             5.84112                 1880.84193
178             5.82914                 1871.15266
179             5.84630                 1870.81568
180             5.83455                 1861.22113
181             5.82538                 1852.46925
182             5.88640                 1865.99039
183             5.88730                 1860.38680
184             5.81805                 1832.68512
185             5.82649                 1829.51849
186             5.83063                 1824.98625
187             5.82538                 1817.51762
188             5.82449                 1811.41639
189             5.82216                 1804.86929
190             5.81968                 1798.27958
191             5.82199                 1793.17169
192             5.82249                 1787.50382
193             5.87467                 1797.64749
194             5.82134                 1775.50961
195             5.81793                 1768.65011
196             5.82477                 1764.90683
197             5.82071                 1757.85351
198             5.82313                 1752.76303
199             5.82516                 1747.54860
200             5.81979                 1740.11631

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_35.png
Auto-corr tau/N = [0.06204499]
tau/N <= 0.02 = [False]

201             5.98316                 1782.98019
202             5.86020                 1740.47910
203             5.91547                 1750.97882
204             5.84059                 1722.97405
205             5.82093                 1711.35254
206             5.82225                 1705.91925
207             5.82018                 1699.49256
208             5.81404                 1691.88564
209             5.81871                 1687.42677
210             5.81481                 1680.48038
211             5.83950                 1681.77744
212             5.82732                 1672.44141
213             5.86316                 1676.86376
214             5.82731                 1660.78250
215             5.97968                 1698.23026
216             5.81521                 1645.70330
217             5.82609                 1642.95682
218             5.82531                 1636.91071
219             5.82433                 1630.81380
220             5.82347                 1624.74813
221             5.83352                 1621.71745
222             5.82924                 1614.70003
223             5.89722                 1627.63382
224             5.89461                 1621.01748
225             5.82394                 1595.75901
226             5.81505                 1587.50947
227             5.83265                 1586.48162
228             5.84880                 1585.02399
229             5.82943                 1573.94583
230             5.84008                 1570.98044
231             5.82212                 1560.32843
232             5.83628                 1558.28703
233             5.84971                 1556.02339
234             5.88647                 1559.91508
235             5.83148                 1539.51046
236             5.83158                 1533.70554
237             5.82003                 1524.84655
238             5.82508                 1520.34458
239             5.84052                 1518.53624
240             5.82345                 1508.27329
241             5.82819                 1503.67379
242             5.85231                 1504.04341
243             5.87127                 1503.04461
244             5.96981                 1522.30129
245             5.84717                 1485.18143
246             5.82703                 1474.23783
247             5.82583                 1468.10941
248             5.82955                 1463.21605
249             5.81881                 1454.70175
250             5.82692                 1450.90233

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_37.png
Auto-corr tau/N = [0.05451807]
tau/N <= 0.02 = [False]

251             5.98607                 1484.54660
252             5.84143                 1442.83296
253             5.81965                 1431.63365
254             5.85884                 1435.41604
255             5.84718                 1426.71143
256             5.81883                 1413.97690
257             5.81997                 1408.43322
258             5.83550                 1406.35574
259             5.82944                 1399.06560
260             5.82529                 1392.24383
261             5.82181                 1385.59078
262             5.83261                 1382.32786
263             5.81701                 1372.81342
264             5.88119                 1382.07941
265             5.88902                 1378.03021
266             5.82676                 1357.63601
267             5.82618                 1351.67306
268             5.83359                 1347.55929
269             5.81703                 1337.91644
270             5.83129                 1335.36633
271             5.82887                 1328.98145
272             5.82773                 1322.89403
273             5.84527                 1321.03102
274             5.82159                 1309.85685
275             5.86856                 1314.55811
276             5.82113                 1298.11266
277             5.82369                 1292.85896
278             5.82282                 1286.84278
279             5.82072                 1280.55906
280             5.82583                 1275.85786
281             5.84196                 1273.54750
282             5.81972                 1262.87859
283             5.83740                 1260.87797
284             5.97694                 1285.04231
285             5.99759                 1283.48490
286             5.83696                 1243.27333
287             5.82246                 1234.36067
288             5.82583                 1229.25013
289             5.82646                 1223.55744
290             5.83037                 1218.54733
291             5.81775                 1210.09221
292             5.84597                 1210.11620
293             5.84065                 1203.17349
294             5.84570                 1198.36768
295             5.85628                 1194.68214
296             5.86920                 1191.44821
297             5.82349                 1176.34437
298             5.82540                 1170.90640
299             5.89834                 1179.66740
300             5.93351                 1180.76829

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_39.png
Auto-corr tau/N = [0.05093563]
tau/N <= 0.02 = [False]

301             6.43325                 1273.78390
302             5.86240                 1154.89181
303             5.84113                 1144.86128
304             5.83423                 1137.67544
305             5.90701                 1145.96052
306             5.91436                 1141.47187
307             5.85783                 1124.70374
308             5.88600                 1124.22505
309             5.87483                 1116.21751
310             5.86307                 1108.11966
311             5.85655                 1101.03065
312             5.88127                 1099.79824
313             5.85064                 1088.21941
314             5.87664                 1087.17766
315             5.88239                 1082.36068
316             5.90884                 1081.31735
317             5.88387                 1070.86489
318             5.89302                 1066.63590
319             5.90989                 1063.78020
320             5.90708                 1057.36660
321             5.88779                 1048.02751
322             5.86764                 1038.57246
323             5.83394                 1026.77362
324             5.85933                 1025.38345
325             5.88732                 1024.39281
326             5.91105                 1022.61182
327             5.86651                 1009.03989
328             5.84320                 999.18788
329             5.86749                 997.47279
330             5.89813                 996.78448
331             5.91025                 992.92267
332             5.93423                 991.01574
333             5.89383                 978.37512
334             5.86417                 967.58805
335             5.85677                 960.51028
336             5.95451                 970.58448
337             5.85105                 947.86929
338             5.84533                 941.09829
339             5.83342                 933.34720
340             5.82765                 926.59683
341             5.91462                 934.50964
342             5.95629                 935.13769
343             5.75397                 897.61963
344             5.76853                 894.12184
345             5.75739                 886.63791
346             5.82374                 891.03222
347             5.88091                 893.89786
348             5.80364                 876.34979
349             5.79622                 869.43255
350             5.77623                 860.65812

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_41.png
Auto-corr tau/N = [0.04740246]
tau/N <= 0.02 = [False]

351             5.93516                 878.40309
352             5.79652                 852.08917
353             5.79432                 845.97145
354             5.78304                 838.54094
355             5.75225                 828.32458
356             5.75930                 823.58047
357             5.77040                 819.39737
358             5.74033                 809.38724
359             5.76001                 806.40140
360             5.74901                 799.11239
361             5.75028                 793.53850
362             5.75207                 788.03386
363             5.74819                 781.75438
364             5.74271                 775.26585
365             5.76438                 772.42719
366             5.74925                 764.65078
367             5.88783                 777.19382
368             5.76044                 754.61751
369             5.74163                 746.41216
370             5.78939                 746.83144
371             5.75681                 736.87194
372             5.79160                 735.53371
373             5.76193                 726.00268
374             5.77248                 721.55938
375             5.78718                 717.60982
376             5.77600                 710.44763
377             5.86888                 716.00336
378             5.80244                 702.09500
379             5.77585                 693.10176
380             5.82262                 692.89142
381             5.77006                 680.86649
382             5.79976                 678.57192
383             5.75022                 667.02529
384             5.74833                 661.05760
385             5.78823                 659.85822
386             5.74037                 648.66192
387             5.81190                 650.93291
388             5.80710                 644.58777
389             5.77286                 635.01427
390             5.80613                 632.86850
391             5.78405                 624.67783
392             5.77329                 617.74214
393             5.79209                 613.96207
394             5.77098                 605.95322
395             5.75411                 598.42723
396             5.79649                 597.03837
397             5.77217                 588.76185
398             5.81217                 587.02957
399             5.83867                 583.86740
400             5.80884                 575.07516

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_43.png
Auto-corr tau/N = [0.04336613]
tau/N <= 0.02 = [False]

401             5.92130                 580.28740
402             5.77514                 560.18868
403             5.82119                 558.83405
404             5.77300                 548.43538
405             5.76790                 542.18241
406             5.86799                 545.72326
407             5.80079                 533.67250
408             5.83835                 531.28967
409             5.84986                 526.48776
410             5.76281                 512.89053
411             5.80418                 510.76758
412             5.78445                 503.24724
413             5.76948                 496.17545
414             5.83203                 495.72230
415             5.78878                 486.25769
416             5.76657                 478.62498
417             5.79652                 475.31489
418             5.81902                 471.34086
419             5.94883                 475.90664
420             5.83844                 461.23652
421             5.79682                 452.15173
422             5.75462                 443.10551
423             5.75966                 437.73408
424             5.73881                 430.41098
425             5.73993                 424.75445
426             5.77498                 421.57376
427             5.80030                 417.62124
428             5.76029                 408.98073
429             5.95327                 416.72883
430             5.79185                 399.63765
431             5.76237                 391.84096
432             5.78212                 387.40170
433             5.79197                 382.26982
434             5.75437                 374.03379
435             5.76415                 368.90554
436             5.78394                 364.38828
437             5.81787                 360.70782
438             5.76831                 351.86697
439             5.80656                 348.39384
440             5.77675                 340.82795
441             5.78608                 335.59264
442             5.76787                 328.76876
443             5.79101                 324.29628
444             5.78554                 318.20481
445             5.80195                 313.30546
446             5.83930                 309.48306
447             5.76241                 299.64548
448             5.75882                 293.69997
449             5.83507                 291.75340
450             5.81653                 285.00977

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_45.png
Auto-corr tau/N = [0.03942814]
tau/N <= 0.02 = [False]

451             5.98981                 287.51098
452             5.75482                 270.47663
453             5.76882                 265.36581
454             5.80268                 261.12074
455             5.80081                 255.23542
456             5.77567                 248.35372
457             5.79796                 243.51428
458             5.90850                 242.24871
459             5.78904                 231.56160
460             5.91520                 230.69288
461             5.82856                 221.48536
462             5.83832                 216.01780
463             5.79665                 208.67944
464             5.77646                 202.17600
465             5.85945                 199.22147
466             5.77014                 190.41472
467             5.76457                 184.46621
468             5.88715                 182.50165
469             5.85960                 175.78806
470             5.86154                 169.98466
471             5.93795                 166.26271
472             5.81727                 157.06640
473             5.75148                 149.53843
474             5.75475                 143.86867
475             5.78742                 138.89806
476             5.77179                 132.75124
477             5.81701                 127.97415
478             5.76909                 121.15085
479             5.75040                 115.00796
480             5.80792                 110.35040
481             5.85954                 105.47165
482             5.80263                 98.64471
483             5.77606                 92.41696
484             5.76272                 86.44080
485             5.76446                 80.70243
486             5.76622                 74.96090
487             5.78873                 69.46477
488             5.80469                 63.85161
489             5.76754                 57.67543
490             5.76265                 51.86388
491             5.84597                 46.76774
492             5.78674                 40.50715
493             5.76570                 34.59417
494             5.80197                 29.00984
495             5.80452                 23.21806
496             5.75651                 17.26952
497             5.76329                 11.52659
498             5.79138                 5.79138
499             5.77168                 0.00000
We have reached the limit # of steps without convergence
Running time:  0:48:43.643564
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 10:33:33
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Done SVD/PCA with numpy SVD (LAPACK)
Running time:  0:00:00.066018
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Number of steps 11
Optimal number of PCs = 2, for S/N=23.064
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Coords of chosen px (X,Y) = 83.8, 30.0
Flux in a centered 1xFWHM circular aperture = 7.520
Central pixel S/N = 17.995
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Inside a centered 1xFWHM circular aperture:
Mean S/N (shifting the aperture center) = 14.409
Max S/N (shifting the aperture center) = 19.392
stddev S/N (shifting the aperture center) = 3.291

../_images/tutorials_07_ifs_psfsub_fm_planets_214_47.png
../_images/tutorials_07_ifs_psfsub_fm_planets_214_48.png
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 10:33:35
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
             Planet 0
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Planet 0: flux estimation at the position [83.75877533353938,29.974810067878558], running ...
Step | flux    | chi2r
1/30   0.100   0.628
2/30   0.149   0.626
3/30   0.221   0.624
4/30   0.329   0.619
5/30   0.489   0.613
6/30   0.728   0.603
7/30   1.083   0.589
8/30   1.610   0.568
9/30   2.395   0.538
10/30   3.562   0.494
11/30   5.298   0.432
12/30   7.880   0.350
13/30   11.721   0.230
14/30   17.433   0.107
15/30   25.929   0.031
16/30   38.566   0.201
17/30   57.362   0.906
18/30   85.317   2.627
../_images/tutorials_07_ifs_psfsub_fm_planets_214_50.png
Planet 0: preliminary position guess: (r, theta)=(38.4, 323.2)
Planet 0: preliminary flux guess: 25.9
Planet 0: Simplex Nelder-Mead minimization, running ...
Planet 0: Success: True, nit: 23, nfev: 51, chi2r: 0.030991103251775107
message: Optimization terminated successfully.
Planet 0: simplex result: (r, theta, f)=(38.422, 323.182, 26.067) at
          (X,Y)=(83.76, 29.97)

 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
DONE !
 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Running time:  0:00:08.735703
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Starting time: 2023-08-01 10:33:44
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
        MCMC sampler for the NEGFC technique
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
The mean and stddev in the annulus at the radius of the companion (excluding the PA area directly adjacent to it) are -0.00 and 0.10 respectively.
Beginning emcee Ensemble sampler...
emcee Ensemble sampler successful

Start of the MCMC run ...
Step  |  Duration/step (sec)  |  Remaining Estimated Time (sec)
0               6.78921                 3387.81529
1               5.89540                 2935.91069
2               5.87080                 2917.78561
3               5.84225                 2897.75650
4               5.81081                 2876.34897
5               5.80374                 2867.04855
6               5.84000                 2879.11951
7               5.82652                 2866.64981
8               5.87774                 2885.97083
9               5.89105                 2886.61695
10              5.80622                 2839.24011
11              5.79539                 2828.14837
12              5.80984                 2829.39208
13              5.80719                 2822.29531
14              5.81091                 2818.29183
15              5.82219                 2817.94093
16              5.81360                 2807.97025
17              5.81052                 2800.66871
18              5.81481                 2796.92457
19              5.87755                 2821.22304
20              5.94353                 2846.95327
21              5.85167                 2797.09826
22              5.75972                 2747.38692
23              5.78497                 2753.64524
24              5.75253                 2732.45270
25              5.95710                 2823.66730
26              5.83464                 2759.78283
27              5.75181                 2714.85432
28              5.90666                 2782.03639
29              5.90000                 2773.00141
30              5.80977                 2724.78072
31              5.83853                 2732.43110
32              6.04423                 2822.65401
33              5.78955                 2697.92890
34              5.73762                 2667.99330
35              5.72151                 2654.78250
36              5.72171                 2649.15219
37              5.75416                 2658.42007
38              5.76656                 2658.38647
39              5.77269                 2655.43878
40              5.74549                 2637.18129
41              5.74307                 2630.32469
42              5.77360                 2638.53748
43              5.74834                 2621.24532
44              5.76978                 2625.25036
45              5.78285                 2625.41208
46              6.03300                 2732.94764
47              5.79962                 2621.42869
48              5.73062                 2584.51007
49              5.73147                 2579.15970
50              5.77339                 2592.25166

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_52.png
51              5.86191                 2626.13613
52              5.71694                 2555.47352
53              5.70648                 2545.09142
54              5.70232                 2537.53151
55              5.79946                 2574.96157
56              5.70821                 2528.73526
57              5.71410                 2525.63264
58              5.71153                 2518.78297
59              5.71928                 2516.48496
60              5.71458                 2508.70238
61              5.71103                 2501.42939
62              5.74885                 2512.24876
63              5.74286                 2503.88783
64              5.76331                 2507.04072
65              5.84585                 2537.09803
66              5.84028                 2528.84167
67              5.78904                 2500.86528
68              5.83745                 2515.94181
69              5.76270                 2477.96186
70              5.87889                 2522.04596
71              5.91387                 2531.13465
72              5.87992                 2510.72541
73              5.76044                 2453.94957
74              5.78967                 2460.61060
75              5.73955                 2433.56962
76              5.79559                 2451.53288
77              5.76357                 2432.22696
78              5.77283                 2430.36227
79              5.81449                 2442.08790
80              5.89064                 2468.17690
81              5.81420                 2430.33602
82              5.78003                 2410.27126
83              5.78261                 2405.56659
84              5.72187                 2374.57522
85              5.78248                 2393.94589
86              5.72734                 2365.39183
87              5.74531                 2367.06937
88              5.71081                 2347.14209
89              5.71593                 2343.53048
90              5.80961                 2376.12885
91              5.88247                 2400.04654
92              5.95656                 2424.31951
93              5.73416                 2328.07058
94              5.71562                 2314.82529
95              5.74200                 2319.76800
96              5.71833                 2304.48900
97              5.71959                 2299.27598
98              5.75234                 2306.68794
99              5.72651                 2290.60400
100             5.73487                 2288.21313

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_54.png
101             5.89413                 2345.86294
102             5.75483                 2284.66950
103             5.75158                 2277.62687
104             5.77031                 2279.27284
105             5.73667                 2260.24798
106             5.72829                 2251.21718
107             5.76363                 2259.34296
108             5.74031                 2244.45965
109             5.74585                 2240.88345
110             5.75084                 2237.07832
111             5.75823                 2234.19208
112             5.79869                 2244.09458
113             5.74979                 2219.41933
114             5.74062                 2210.13831
115             5.70879                 2192.17613
116             5.74075                 2198.70687
117             5.72137                 2185.56410
118             5.70998                 2175.50047
119             5.71521                 2171.78094
120             5.72129                 2168.36891
121             5.71488                 2160.22615
122             5.71988                 2156.39664
123             5.72662                 2153.20837
124             5.71360                 2142.60037
125             5.76605                 2156.50233
126             5.74076                 2141.30460
127             5.70570                 2122.52077
128             5.71277                 2119.43581
129             5.71062                 2112.93051
130             5.70959                 2106.83760
131             5.71113                 2101.69437
132             5.71141                 2096.08674
133             5.76805                 2111.10520
134             5.72189                 2088.48985
135             5.70946                 2078.24417
136             5.74896                 2086.87139
137             5.72121                 2071.07766
138             5.71633                 2063.59405
139             5.70564                 2054.03004
140             5.70487                 2048.04941
141             5.70646                 2042.91411
142             5.74456                 2050.80863
143             5.71702                 2035.25770
144             5.75545                 2043.18582
145             5.73938                 2031.73981
146             5.73207                 2023.41895
147             5.76360                 2028.78685
148             5.91662                 2076.73362
149             6.29252                 2202.38095
150             5.86705                 2047.60150

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_56.png
151             6.05471                 2107.03908
152             5.77012                 2002.23199
153             5.75613                 1991.62029
154             5.79242                 1998.38594
155             5.71983                 1967.62290
156             5.71969                 1961.85470
157             5.72040                 1956.37714
158             5.71075                 1947.36643
159             5.71073                 1941.64752
160             5.73499                 1944.16330
161             5.78247                 1954.47587
162             5.81870                 1960.90257
163             5.77175                 1939.30699
164             5.82423                 1951.11571
165             5.73849                 1916.65533
166             5.70987                 1901.38671
167             5.71230                 1896.48426
168             5.70806                 1889.36786
169             5.70476                 1882.57179
170             5.70970                 1878.49163
171             5.72042                 1876.29776
172             5.70523                 1865.60988
173             5.70574                 1860.07157
174             5.70983                 1855.69637
175             5.78328                 1873.78142
176             5.70703                 1843.37198
177             5.72098                 1842.15492
178             5.71276                 1833.79468
179             5.70183                 1824.58528
180             5.69935                 1818.09137
181             5.70182                 1813.17971
182             5.75616                 1824.70335
183             5.70828                 1803.81774
184             5.71177                 1799.20786
185             5.70762                 1792.19268
186             5.71011                 1787.26287
187             5.70843                 1781.02954
188             5.71915                 1778.65596
189             5.70828                 1769.56742
190             5.70558                 1763.02329
191             5.70287                 1756.48396
192             5.70446                 1751.26891
193             5.70045                 1744.33678
194             5.70507                 1740.04605
195             5.71065                 1736.03790
196             5.72607                 1734.99770
197             5.72655                 1729.41750
198             5.71993                 1721.69893
199             5.70872                 1712.61480
200             5.70750                 1706.54220

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_58.png
Auto-corr tau/N = [0.05251387]
tau/N <= 0.02 = [False]

201             5.89902                 1757.90647
202             5.70346                 1693.92792
203             5.72902                 1695.78844
204             5.72088                 1687.66107
205             5.71969                 1681.58945
206             5.70478                 1671.50142
207             5.70688                 1666.40925
208             5.70524                 1660.22368
209             5.70643                 1654.86412
210             5.70375                 1648.38404
211             5.71389                 1645.59917
212             5.70574                 1637.54709
213             5.70956                 1632.93359
214             5.71058                 1627.51416
215             5.70967                 1621.54571
216             5.73862                 1624.02861
217             5.74783                 1620.88919
218             5.74544                 1614.46892
219             5.70505                 1597.41316
220             5.71335                 1594.02326
221             5.70426                 1585.78317
222             5.70627                 1580.63762
223             5.71487                 1577.30357
224             5.70217                 1568.09703
225             5.70805                 1564.00515
226             5.70726                 1558.08089
227             5.71809                 1555.32102
228             5.71242                 1548.06690
229             5.71518                 1543.09833
230             5.71167                 1536.43896
231             5.71139                 1530.65252
232             5.70786                 1523.99835
233             5.70449                 1517.39407
234             5.70244                 1511.14792
235             5.70389                 1505.82670
236             5.71081                 1501.94250
237             5.74280                 1504.61465
238             5.74314                 1498.96006
239             5.73372                 1490.76642
240             5.70089                 1476.53025
241             5.72205                 1476.28993
242             5.70373                 1465.85912
243             5.71099                 1462.01293
244             5.70567                 1454.94509
245             5.70310                 1448.58791
246             5.70796                 1444.11287
247             5.71268                 1439.59435
248             5.70913                 1432.99238
249             5.69960                 1424.90050
250             5.71654                 1423.41971

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_60.png
Auto-corr tau/N = [0.05106302]
tau/N <= 0.02 = [False]

251             5.85888                 1453.00100
252             5.70966                 1410.28553
253             5.70798                 1404.16308
254             5.71307                 1399.70264
255             5.69622                 1389.87744
256             5.69975                 1385.03876
257             5.70919                 1381.62471
258             5.72718                 1380.25134
259             5.72733                 1374.55944
260             5.72308                 1367.81684
261             5.70497                 1357.78191
262             5.70953                 1353.15837
263             5.70953                 1347.44932
264             5.70562                 1340.82023
265             5.70503                 1334.97819
266             5.70801                 1329.96703
267             5.74285                 1332.34166
268             5.75699                 1329.86353
269             5.73751                 1319.62776
270             5.73232                 1312.70174
271             5.72105                 1304.40008
272             5.70908                 1295.96116
273             5.71879                 1292.44677
274             5.70744                 1284.17310
275             5.71027                 1279.09981
276             5.72632                 1276.96958
277             5.72505                 1270.96043
278             5.71308                 1262.59068
279             5.78778                 1273.31094
280             5.72693                 1254.19855
281             5.73723                 1250.71570
282             5.70953                 1238.96758
283             5.70809                 1232.94679
284             5.70558                 1226.69927
285             5.70217                 1220.26352
286             5.70793                 1215.78994
287             5.71402                 1211.37182
288             5.70889                 1204.57642
289             5.75145                 1207.80534
290             5.71337                 1194.09349
291             5.71408                 1188.52947
292             5.70665                 1181.27593
293             5.70950                 1176.15741
294             5.70878                 1170.29908
295             5.71472                 1165.80329
296             5.71242                 1159.62106
297             5.71085                 1153.59190
298             5.71554                 1148.82314
299             5.72875                 1145.74980
300             5.74168                 1142.59372

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_62.png
Auto-corr tau/N = [0.04719361]
tau/N <= 0.02 = [False]

301             5.88954                 1166.12932
302             5.72935                 1128.68116
303             5.70507                 1118.19352
304             5.70441                 1112.35975
305             5.70476                 1106.72383
306             5.70655                 1101.36434
307             5.71050                 1096.41542
308             5.71620                 1091.79477
309             5.71035                 1084.96631
310             5.71634                 1080.38788
311             5.71663                 1074.72663
312             5.70297                 1066.45464
313             5.70507                 1061.14358
314             5.71183                 1056.68873
315             5.70690                 1050.06942
316             5.70852                 1044.65971
317             5.70691                 1038.65689
318             5.70689                 1032.94691
319             5.70526                 1026.94662
320             5.71481                 1022.95171
321             5.73466                 1020.76895
322             5.72613                 1013.52501
323             5.72222                 1007.11019
324             5.70302                 998.02920
325             5.70433                 992.55394
326             5.70906                 987.66686
327             5.70737                 981.66730
328             5.71293                 976.91171
329             5.71209                 971.05462
330             5.70240                 963.70475
331             5.71338                 959.84801
332             5.70958                 953.49919
333             5.71116                 948.05256
334             5.70758                 941.75087
335             5.70535                 935.67724
336             5.71201                 931.05779
337             5.70770                 924.64772
338             5.70829                 919.03501
339             5.70588                 912.94048
340             5.72555                 910.36245
341             5.72250                 904.15484
342             5.73341                 900.14568
343             5.72962                 893.82103
344             5.73385                 888.74675
345             5.70552                 878.65054
346             5.71017                 873.65616
347             5.71193                 868.21336
348             5.70601                 861.60736
349             5.70403                 855.60435
350             5.70632                 850.24123

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_64.png
Auto-corr tau/N = [0.04499889]
tau/N <= 0.02 = [False]

351             5.86812                 868.48176
352             5.74585                 844.63951
353             5.70910                 833.52918
354             5.70610                 827.38493
355             5.70534                 821.56838
356             5.70108                 815.25487
357             5.72648                 813.16073
358             5.70372                 804.22466
359             5.75341                 805.47712
360             5.69934                 792.20798
361             5.71853                 789.15659
362             5.73958                 786.32260
363             5.73664                 780.18250
364             5.71242                 771.17630
365             5.72764                 767.50349
366             5.70577                 758.86741
367             5.70369                 752.88655
368             5.70414                 747.24208
369             5.70338                 741.44005
370             5.70610                 736.08754
371             5.70379                 730.08499
372             5.71206                 725.43099
373             5.70941                 719.38629
374             5.71502                 714.37762
375             5.70620                 707.56830
376             5.70186                 701.32829
377             5.70955                 696.56534
378             5.70038                 689.74610
379             5.70927                 685.11300
380             5.70481                 678.87215
381             5.70287                 672.93819
382             5.70599                 667.60130
383             5.72142                 663.68518
384             5.73791                 659.85988
385             5.70269                 650.10632
386             5.72315                 646.71618
387             5.70060                 638.46675
388             5.70370                 633.11048
389             5.71657                 628.82303
390             5.70596                 621.94986
391             5.70648                 616.29952
392             5.71152                 611.13221
393             5.70851                 605.10164
394             5.71138                 599.69543
395             5.71194                 594.04176
396             5.70545                 587.66125
397             5.70031                 581.43111
398             5.70170                 575.87130
399             5.70306                 570.30580
400             5.70821                 565.11269

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_66.png
Auto-corr tau/N = [0.04120988]
tau/N <= 0.02 = [False]

401             5.87167                 575.42337
402             5.70712                 553.59025
403             5.70399                 547.58352
404             5.71676                 543.09230
405             5.74946                 540.44905
406             5.71292                 531.30137
407             5.72916                 527.08244
408             5.70345                 519.01350
409             5.70291                 513.26208
410             5.70489                 507.73565
411             5.70624                 502.14947
412             5.70192                 496.06678
413             5.71785                 491.73536
414             5.71525                 485.79608
415             5.71795                 480.30788
416             5.71587                 474.41746
417             5.70110                 467.48995
418             5.70667                 462.24059
419             5.70469                 456.37536
420             5.71534                 451.51202
421             5.70693                 445.14015
422             5.70533                 439.31072
423             5.69570                 432.87335
424             5.69873                 427.40460
425             5.71444                 422.86849
426             5.77599                 421.64698
427             5.71247                 411.29813
428             5.72630                 406.56716
429             5.70544                 399.38087
430             5.70471                 393.62506
431             5.70434                 387.89532
432             5.71088                 382.62883
433             5.70309                 376.40401
434             5.70782                 371.00817
435             5.70737                 365.27200
436             5.70766                 359.58252
437             5.70162                 353.50025
438             5.70367                 347.92417
439             5.70389                 342.23364
440             5.70458                 336.57052
441             5.70373                 330.81646
442             5.70424                 325.14162
443             5.70600                 319.53600
444             5.70640                 313.85183
445             5.70100                 307.85395
446             5.71849                 303.07992
447             5.73383                 298.15926
448             5.70100                 290.75080
449             5.71925                 285.96250
450             5.71154                 279.86541

 ac convergence test in progress...
../_images/tutorials_07_ifs_psfsub_fm_planets_214_68.png
Auto-corr tau/N = [0.03902046]
tau/N <= 0.02 = [False]

451             6.14985                 295.19256
452             5.71717                 268.70694
453             5.71350                 262.82082
454             5.70607                 256.77297
455             5.70693                 251.10510
456             5.71027                 245.54161
457             5.73913                 241.04350
458             5.71328                 234.24432
459             5.71343                 228.53712
460             5.70731                 222.58525
461             5.70492                 216.78700
462             5.70456                 211.06891
463             5.69844                 205.14380
464             5.69863                 199.45202
465             5.70468                 193.95929
466             5.69910                 188.07043
467             5.71304                 182.81741
468             5.74115                 177.97571
469             6.98081                 209.42418
470             7.37793                 213.96009
471             7.68818                 215.26912
472             34.16667                        922.50001
473             7.37190                 191.66948
474             7.38308                 184.57690
475             7.38100                 177.14398
476             7.46784                 171.76039
477             7.35157                 161.73445
478             7.37185                 154.80875
479             7.37311                 147.46216
480             7.34941                 139.63873
481             7.35881                 132.45860
482             7.35466                 125.02927
483             7.34722                 117.55544
484             7.36387                 110.45800
485             7.42104                 103.89450
486             7.43563                 96.66322
487             7.37530                 88.50360
488             7.35043                 80.85469
489             7.35759                 73.57587
490             7.35450                 66.19051
491             7.37760                 59.02082
492             7.35982                 51.51873
493             7.35627                 44.13760
494             7.34546                 36.72730
495             7.34804                 29.39214
496             7.36521                 22.09563
497             7.35658                 14.71317
498             7.34674                 7.34674
499             7.36411                 0.00000
We have reached the limit # of steps without convergence
Running time:  0:49:15.437708
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
[92]:
chain = []
for i, ch in enumerate(test_ch):

    with open('../datasets/MCMC_results_pl{}_ch{}'.format(lab, ch), 'rb') as fi:
        myPickler = pickle.Unpickler(fi)
        mcmc_result = myPickler.load()

    chain.append(mcmc_result['chain'])

Let’s visualize the chain after setting labels for each parameter:

[93]:
for i, ch in enumerate(test_ch):
    labels = [r"$f$ (ch.{:.0f})".format(ch)]
    show_walk_plot(chain[i], labels=labels)
../_images/tutorials_07_ifs_psfsub_fm_planets_217_0.png
../_images/tutorials_07_ifs_psfsub_fm_planets_217_1.png
../_images/tutorials_07_ifs_psfsub_fm_planets_217_2.png

Let’s visualize the corner plot after burning the first 30% of the chain:

[94]:
burnin = 0.3
for i, ch in enumerate(test_ch):
    labels = [r"$f$ (ch.{:.0f})".format(ch)]
    show_corner_plot(chain[i], burnin=burnin, labels=labels)
../_images/tutorials_07_ifs_psfsub_fm_planets_219_0.png
../_images/tutorials_07_ifs_psfsub_fm_planets_219_1.png
../_images/tutorials_07_ifs_psfsub_fm_planets_219_2.png

To calculate 1-sigma (68%) confidence intervals on each parameter, let’s first flatten the chain:

[95]:
npar = 1
[96]:
isamples_flat = chain[0][:, int(chain[0].shape[1]//(1/burnin)):, :].reshape((-1,npar))
for i in range(1,len(test_ch)):
    isamples_flat = np.hstack((isamples_flat,
                               chain[i][:, int(chain[i].shape[1]//(1/burnin)):, :].reshape((-1,npar))))

Then use the confidence function.

Below, the first set of plots show the estimate, ground truth value and 68% confidence interval (in shaded area).

By setting ‘gaussian_fit’ to True, a second set of plots is also shown, where a Gaussian function is fit to each posterior distribution in order to infer mean and standard deviation for each parameter.

Note that the function can accept a ground truth value gt, which will be shown in the plots if provided.

[97]:
gt = []
labels = []
for i, ch in enumerate(test_ch):
    gt.append(flux_c_scal[ch])
    labels.append(r"$f$ (ch.{:.0f})".format(ch))

mu, sigma = confidence(isamples_flat, cfd=68, gaussian_fit=True, verbose=False,
                       gt=gt, save=False, title=True, labels=labels)
/Users/valentin/GitHub/VIP/vip_hci/fm/negfc_mcmc.py:1541: UserWarning: The figure layout has changed to tight
  plt.tight_layout(w_pad=0.1)
../_images/tutorials_07_ifs_psfsub_fm_planets_224_1.png

Overall we see that the estimated fluxes are consistent with the ground truth values (shown with dashed blue lines).