Tutorial: Analysis (work in progress)
Initial imports
[1]:
from datetime import datetime
from straklip import config, input_tables
from straklip.steps import analysis
from straklip.stralog import getLogger
import os
import pkg_resources as pkg
First, we need to initialize the logger here.
[2]:
if 'SHARED_LOG_FILE' not in os.environ:
os.environ['SHARED_LOG_FILE'] = f'straklip_{datetime.now().strftime("%Y-%m-%d_%H%M")}.log'
getLogger('straklip', setup=True, logfile=os.environ['SHARED_LOG_FILE'],debu=False,
configfile=pkg.resource_filename('straklip', './config/logging.yaml'))
[2]:
<Logger straklip (DEBUG)>
Two pipeline configuration files are stored in the tutorials/pipeline_logs, directory, namely pipe.yaml and data.yaml. A more in-deep explanation of these file, is presented here: https://straklip.readthedocs.io/latest/quick_start.html. We start by loading into the pipeline as follow. Remember, to manipulate the options for each specific step, we can change the entries in the ‘pipe.yaml’ accordingly, or change them from a line of code like
pipe_cfg.analysis['steps']['extract_candidate']=True, before running the step. For this tutorial we will start form the previously generated dataframes from the pipeline.
[3]:
pipe_cfg='/Users/gstrampelli/StraKLIP/docs/source/tutorials/work/pipeline_logs/pipe.yaml' #or where these files are
data_cfg='/Users/gstrampelli/StraKLIP/docs/source/tutorials/work/pipeline_logs/data.yaml'
pipe_cfg = config.configure_pipeline(pipe_cfg,pipe_cfg=pipe_cfg,data_cfg=data_cfg,dt_string=datetime.now().strftime("%d/%m/%Y %H:%M:%S"))
data_cfg = config.configure_data(data_cfg,pipe_cfg)
2025-06-19 10:24:23 straklip.config :INFO (configure_pipeline:70[pid=24180])
==========================================================================================================================
StraKLIP pipeline started at date and time: 19/06/2025 10:24:23
Pipe_cfg: /Users/gstrampelli/StraKLIP/docs/source/tutorials/work/pipeline_logs/pipe.yaml
Data_cfg: /Users/gstrampelli/StraKLIP/docs/source/tutorials/work/pipeline_logs/data.yaml
==========================================================================================================================
2025-06-19 10:24:23 straklip.config :INFO (configure_data:151[pid=24180]) Validation of default labels and data successful!
Loading the dataframe
Once the “pipe_cfg” and the “data_cfg” are configuration, we can load pre-existing dataframes.
In this case we use “skip_originals” True and “load” True to tell the pipeline tom not look for inpout catalogs, but for the dataframe already generated by the pipeline.
NOTE: for this tutorial, we are forcing the pipeline to work on only the “unq_id” 52 to speed up the process, as follow (you can achieve the same result by changing the “unq_ids_list” option in the “pipe.yaml”):
[4]:
dataset = input_tables.Tables(data_cfg, pipe_cfg, skip_originals=True)
DF = config.configure_dataframe(dataset,load=True)
2025-06-19 10:24:26 straklip.config :WARNING (configure_dataframe:224[pid=24180]) get_Av_dict currently only supports VEGAmag system. Please provide your own set of AVs if in a differest system as AVs : {ext: {mag_filter : value}} in the data.yaml under target
2025-06-19 10:24:26 straklip.utils.ancillary :INFO (get_Av_dict:424[pid=24180]) before dust, V = 0.0 mag(VEGA)
2025-06-19 10:24:26 straklip.utils.ancillary :INFO (get_Av_dict:425[pid=24180]) after dust, V = 1.0146 mag(VEGA)
2025-06-19 10:24:27 straklip.utils.ancillary :INFO (get_Av_dict:444[pid=24180]) Av = 1.0146 mag
WARNING: VerifyWarning: Invalid keyword for column 1: Column disp option (TDISPn) failed verification: Format A-26 is not recognized. The invalid value will be ignored for the purpose of formatting the data in this column. [astropy.io.fits.column]
WARNING:astropy:VerifyWarning: Invalid keyword for column 1: Column disp option (TDISPn) failed verification: Format A-26 is not recognized. The invalid value will be ignored for the purpose of formatting the data in this column.
WARNING: VerifyWarning: Invalid keyword for column 3: Column disp option (TDISPn) failed verification: Format A-56 is not recognized. The invalid value will be ignored for the purpose of formatting the data in this column. [astropy.io.fits.column]
WARNING:astropy:VerifyWarning: Invalid keyword for column 3: Column disp option (TDISPn) failed verification: Format A-56 is not recognized. The invalid value will be ignored for the purpose of formatting the data in this column.
2025-06-19 10:24:27 straklip.utils.ancillary :INFO (get_Av_dict:488[pid=24180]) AV=0 wfc3,uvis2,f814w 0.0 mag(VEGA)
2025-06-19 10:24:27 straklip.utils.ancillary :INFO (get_Av_dict:489[pid=24180]) AV=1 wfc3,uvis2,f814w 0.6094 mag
2025-06-19 10:24:27 straklip.utils.ancillary :INFO (get_Av_dict:488[pid=24180]) AV=0 wfc3,uvis2,f850lp 0.0 mag(VEGA)
2025-06-19 10:24:27 straklip.utils.ancillary :INFO (get_Av_dict:489[pid=24180]) AV=1 wfc3,uvis2,f850lp 0.4694 mag
2025-06-19 10:24:27 straklip.config :INFO (configure_dataframe:270[pid=24180]) Fetching dataframes from /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out
[5]:
DF.keys
[5]:
['unq_targets',
'crossmatch_ids',
'mvs_targets',
'mvs_candidates',
'unq_candidates']
[6]:
DF.mvs_targets_df
[6]:
| mvs_ids | x_f814w | x_f850lp | y_f814w | y_f850lp | vis | ext | counts_f814w | counts_f850lp | ecounts_f814w | ... | e_f814w_ap | counts_f850lp_ap | ecounts_f850lp_ap | nsky_f850lp_ap | m_f850lp_ap | e_f850lp_ap | delta_f814w | edelta_f814w | delta_f850lp | edelta_f850lp | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 766.682062 | 766.297865 | 869.519962 | 870.863230 | 13 | 1 | 10050.176567 | 8147.884608 | 103.716767 | ... | 0.014363 | 5112.833 | 75.324845 | 25.0 | 21.160546 | 0.017460 | 24.616 | 0.003 | 23.301 | 0.007 |
| 1 | 1 | 769.100793 | 768.870891 | 866.146099 | 866.488792 | 1 | 1 | 37148.970247 | 29523.416694 | 200.603377 | ... | 0.007916 | 18404.541 | 140.319831 | 25.0 | 19.769888 | 0.010841 | 24.616 | 0.003 | 23.301 | 0.007 |
| 2 | 2 | 762.415167 | 762.213142 | 869.798303 | 870.180384 | 2 | 1 | 20888.773322 | 16756.185268 | 150.306225 | ... | 0.010224 | 10545.567 | 107.937060 | 25.0 | 20.380608 | 0.013133 | 24.616 | 0.003 | 23.301 | 0.007 |
| 3 | 3 | 765.630228 | 765.408206 | 867.979551 | 868.467341 | 3 | 1 | 19851.347253 | 17782.298850 | 146.991839 | ... | 0.010455 | 11221.743 | 109.214962 | 25.0 | 20.307049 | 0.012675 | 24.616 | 0.003 | 23.301 | 0.007 |
| 4 | 4 | 767.251059 | 767.009600 | 867.473929 | 867.939866 | 4 | 1 | 18535.997643 | 17143.439224 | 141.164681 | ... | 0.010770 | 10739.130 | 107.621370 | 25.0 | 20.354777 | 0.012938 | 24.616 | 0.003 | 23.301 | 0.007 |
| 5 | 5 | 766.601507 | 766.336710 | 868.267308 | 868.601284 | 5 | 1 | 21899.906087 | 19840.838076 | 152.199777 | ... | 0.009887 | 12351.680 | 115.865474 | 25.0 | 20.208967 | 0.012358 | 24.616 | 0.003 | 23.301 | 0.007 |
| 6 | 6 | 767.081804 | 766.867054 | 866.901849 | 867.166727 | 6 | 1 | 10821.808262 | 9736.723197 | 111.510075 | ... | 0.014225 | 6046.163 | 81.943106 | 25.0 | 20.978500 | 0.016295 | 24.616 | 0.003 | 23.301 | 0.007 |
| 7 | 7 | 765.825833 | 765.608929 | 868.625604 | 869.098238 | 7 | 1 | 14345.541776 | 12125.508627 | 123.726601 | ... | 0.012105 | 7633.587 | 90.881860 | 25.0 | 20.725378 | 0.014700 | 24.616 | 0.003 | 23.301 | 0.007 |
| 8 | 8 | 765.740929 | 765.619928 | 868.295724 | 868.761725 | 8 | 1 | 12134.206337 | 9881.013676 | 116.470224 | ... | 0.013329 | 6125.534 | 82.390402 | 25.0 | 20.964340 | 0.016194 | 24.616 | 0.003 | 23.301 | 0.007 |
| 9 | 9 | 762.743761 | 762.620949 | 866.727766 | 866.796443 | 9 | 1 | 12163.774100 | 9674.484288 | 118.946485 | ... | 0.013511 | 6044.626 | 82.730407 | 25.0 | 20.978776 | 0.016426 | 24.616 | 0.003 | 23.301 | 0.007 |
| 10 | 10 | 767.150769 | 766.981161 | 866.806861 | 867.158018 | 10 | 1 | 11192.707973 | 9609.748257 | 112.942742 | ... | 0.013974 | 6039.081 | 82.448872 | 25.0 | 20.979773 | 0.016392 | 24.616 | 0.003 | 23.301 | 0.007 |
| 11 | 11 | 776.939388 | 776.359033 | 859.286880 | 858.690031 | 54 | 1 | 22476.419183 | 16684.024540 | 156.349846 | ... | 0.010608 | 9582.929 | 102.527846 | 25.0 | 20.478454 | 0.013562 | 24.616 | 0.003 | 23.301 | 0.007 |
12 rows × 63 columns
Running the analysis
The next step wil perform a more in depth analysis of each candidate. Manipulating the options in the “pipe.yaml” under the “analysis” block we can perform raw contrast curves, calibrated contrast curves, the extraction of a candidate though forward modeling and MCMC fitting.
Candidate Extraction
Note in this example we limit the analysis to just one target, setting the use unq_ids_list: [52].
[7]:
pipe_cfg.unq_ids_list = [11]
In the following we force the pipeline to just run the extract_candidate step, and we ensure that all the other step of the analysis are turned off.
[8]:
pipe_cfg.analysis['steps']['extract_candidate']=True
pipe_cfg.analysis['steps']['contrast_curves']=False
pipe_cfg.analysis['steps']['cal_contrast_curves']=False
pipe_cfg.analysis['steps']['mass_sensitivity_curves']=False
analysis.run({'DF': DF, 'dataset': dataset})
2025-06-19 10:24:41 straklip.steps.analysis :INFO (run:1454[pid=24180]) Running Analysis step
2025-06-19 10:24:41 straklip.config :INFO (make_paths:112[pid=24180]) Creating "/Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/"
2025-06-19 10:24:41 straklip.steps.analysis :INFO (setup_DATASET:87[pid=24180]) Setting up Dataset for observation
2025-06-19 10:24:41 straklip.steps.analysis :INFO (generate_psflib:108[pid=24180]) Generating PSF library
2025-06-19 10:24:41 straklip.steps.analysis :INFO (candidate_extraction:914[pid=24180]) Extracting candidate from: ['/Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/mvs_tiles/f814w/tile_ID11.fits']
2025-06-19 10:24:41 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:24:45 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.489, error: [ 0.007 -0.007]
2025-06-19 10:24:45 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:24:46 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_1_extracted.yaml
2025-06-19 10:24:46 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:24:50 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.653, error: [ 0.009 -0.01 ]
2025-06-19 10:24:50 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:24:51 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_2_extracted.yaml
2025-06-19 10:24:51 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:24:55 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.635, error: [ 0.009 -0.009]
2025-06-19 10:24:55 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:24:55 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_3_extracted.yaml
2025-06-19 10:24:55 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:00 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.566, error: [ 0.008 -0.009]
2025-06-19 10:25:00 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:00 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_4_extracted.yaml
2025-06-19 10:25:00 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:04 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.569, error: [ 0.008 -0.008]
2025-06-19 10:25:04 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:05 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_5_extracted.yaml
2025-06-19 10:25:05 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:09 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.496, error: [ 0.007 -0.007]
2025-06-19 10:25:09 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:10 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_6_extracted.yaml
2025-06-19 10:25:10 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:15 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.652, error: [ 0.01 -0.008]
2025-06-19 10:25:15 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:15 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_7_extracted.yaml
2025-06-19 10:25:15 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:20 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.566, error: [ 0.008 -0.008]
2025-06-19 10:25:20 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:20 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_8_extracted.yaml
2025-06-19 10:25:20 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:25 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.554, error: [ 0.008 -0.008]
2025-06-19 10:25:25 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:25 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_9_extracted.yaml
2025-06-19 10:25:25 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:30 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.592, error: [ 0.008 -0.009]
2025-06-19 10:25:30 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:30 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_10_extracted.yaml
2025-06-19 10:25:30 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:35 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.646, error: [ 0.008 -0.009]
2025-06-19 10:25:35 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:35 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f814w_cand_11_extracted.yaml
2025-06-19 10:25:35 straklip.steps.analysis :WARNING (run_analysis:1448[pid=24180]) Cannot convert contrast curves in mass sensistivity curves without an interpolator!
2025-06-19 10:25:35 straklip.steps.analysis :INFO (setup_DATASET:87[pid=24180]) Setting up Dataset for observation
2025-06-19 10:25:36 straklip.steps.analysis :INFO (generate_psflib:108[pid=24180]) Generating PSF library
2025-06-19 10:25:36 straklip.steps.analysis :INFO (candidate_extraction:914[pid=24180]) Extracting candidate from: ['/Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/mvs_tiles/f850lp/tile_ID11.fits']
2025-06-19 10:25:36 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:40 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.75, error: [ 0.013 -0.013]
2025-06-19 10:25:40 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:41 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_1_extracted.yaml
2025-06-19 10:25:41 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:45 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.589, error: [ 0.01 -0.011]
2025-06-19 10:25:45 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:45 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_2_extracted.yaml
2025-06-19 10:25:45 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:50 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.698, error: [ 0.013 -0.012]
2025-06-19 10:25:50 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:51 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_3_extracted.yaml
2025-06-19 10:25:51 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:25:55 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.592, error: [ 0.01 -0.01]
2025-06-19 10:25:55 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:25:56 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_4_extracted.yaml
2025-06-19 10:25:56 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:26:00 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.726, error: [ 0.014 -0.012]
2025-06-19 10:26:00 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:26:01 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_5_extracted.yaml
2025-06-19 10:26:01 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:26:05 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.735, error: [ 0.013 -0.012]
2025-06-19 10:26:05 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:26:06 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_6_extracted.yaml
2025-06-19 10:26:06 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:26:10 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.657, error: [ 0.011 -0.011]
2025-06-19 10:26:10 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:26:11 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_7_extracted.yaml
2025-06-19 10:26:11 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:26:15 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.614, error: [ 0.011 -0.01 ]
2025-06-19 10:26:15 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:26:16 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_8_extracted.yaml
2025-06-19 10:26:16 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:26:20 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.605, error: [ 0.011 -0.01 ]
2025-06-19 10:26:20 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:26:21 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_9_extracted.yaml
2025-06-19 10:26:21 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:26:25 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.618, error: [ 0.01 -0.01]
2025-06-19 10:26:25 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:26:26 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_10_extracted.yaml
2025-06-19 10:26:26 straklip.steps.analysis :INFO (run_FMAstrometry:698[pid=24180]) Running forward modeling
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fm.py:678: RuntimeWarning: invalid value encountered in divide
perturb_mag = np.abs(quad_perturb/linear_perturb)
2025-06-19 10:26:30 straklip.steps.analysis :INFO (run_FMAstrometry:779[pid=24180]) contrast: 0.717, error: [ 0.012 -0.012]
2025-06-19 10:26:30 straklip.steps.analysis :INFO (fit_astrometry:865[pid=24180]) Saving MCMC plots in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction/
2025-06-19 10:26:31 straklip.steps.analysis :INFO (candidate_extraction:929[pid=24180]) Saving candidate dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/testPSF4extraction//f850lp_cand_11_extracted.yaml
2025-06-19 10:26:31 straklip.steps.analysis :WARNING (run_analysis:1448[pid=24180]) Cannot convert contrast curves in mass sensistivity curves without an interpolator!
Raw Contrast Curves
[9]:
pipe_cfg.analysis['steps']['extract_candidate']=False
pipe_cfg.analysis['steps']['contrast_curves']=True
pipe_cfg.analysis['steps']['cal_contrast_curves']=False
pipe_cfg.analysis['steps']['mass_sensitivity_curves']=False
analysis.run({'DF': DF, 'dataset': dataset})
2025-06-19 10:26:44 straklip.steps.analysis :INFO (run:1454[pid=24180]) Running Analysis step
2025-06-19 10:26:44 straklip.config :INFO (make_paths:115[pid=24180]) "/Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/" exists, and will not be created.
2025-06-19 10:26:44 straklip.steps.analysis :INFO (setup_DATASET:87[pid=24180]) Setting up Dataset for observation
2025-06-19 10:26:44 straklip.steps.analysis :INFO (generate_psflib:108[pid=24180]) Generating PSF library
2025-06-19 10:26:44 straklip.steps.analysis :INFO (mk_contrast_curves:1058[pid=24180]) Making contrast curves.
2025-06-19 10:26:44 straklip.steps.analysis :INFO (mk_contrast_curves:1062[pid=24180]) Loading candidate dictionary from file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/f814w_extracted.yaml
2025-06-19 10:26:44 straklip.steps.analysis :INFO (mk_contrast_curves:1065[pid=24180]) Loading file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/mvs_tiles/f814w/tile_ID6.fits as best PSF model
2025-06-19 10:26:48 straklip.steps.analysis :INFO (mk_contrast_curves:1071[pid=24180]) Loading residuas from file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/masked_candidates/f814w-res_masked-KLmodes-all.fits
2025-06-19 10:26:48 straklip.steps.analysis :INFO (mk_contrast_curves:1112[pid=24180]) Saving contrast curves plot in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11
2025-06-19 10:26:48 straklip.steps.analysis :INFO (mk_contrast_curves:1136[pid=24180]) residual masked plot in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11
2025-06-19 10:26:49 straklip.steps.analysis :INFO (mk_contrast_curves:1146[pid=24180]) Saving contrast curves dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/f814w_contrast_curves.pkl
2025-06-19 10:26:49 straklip.steps.analysis :WARNING (run_analysis:1448[pid=24180]) Cannot convert contrast curves in mass sensistivity curves without an interpolator!
2025-06-19 10:26:49 straklip.steps.analysis :INFO (setup_DATASET:87[pid=24180]) Setting up Dataset for observation
2025-06-19 10:26:49 straklip.steps.analysis :INFO (generate_psflib:108[pid=24180]) Generating PSF library
2025-06-19 10:26:49 straklip.steps.analysis :INFO (mk_contrast_curves:1058[pid=24180]) Making contrast curves.
2025-06-19 10:26:49 straklip.steps.analysis :INFO (mk_contrast_curves:1062[pid=24180]) Loading candidate dictionary from file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/f850lp_extracted.yaml
2025-06-19 10:26:49 straklip.steps.analysis :INFO (mk_contrast_curves:1065[pid=24180]) Loading file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/mvs_tiles/f850lp/tile_ID2.fits as best PSF model
2025-06-19 10:26:53 straklip.steps.analysis :INFO (mk_contrast_curves:1071[pid=24180]) Loading residuas from file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/masked_candidates/f850lp-res_masked-KLmodes-all.fits
2025-06-19 10:26:53 straklip.steps.analysis :INFO (mk_contrast_curves:1112[pid=24180]) Saving contrast curves plot in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11
2025-06-19 10:26:53 straklip.steps.analysis :INFO (mk_contrast_curves:1136[pid=24180]) residual masked plot in: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11
2025-06-19 10:26:53 straklip.steps.analysis :INFO (mk_contrast_curves:1146[pid=24180]) Saving contrast curves dictionary to file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/f850lp_contrast_curves.pkl
2025-06-19 10:26:53 straklip.steps.analysis :WARNING (run_analysis:1448[pid=24180]) Cannot convert contrast curves in mass sensistivity curves without an interpolator!
Calibrated Contrast Curves
[10]:
pipe_cfg.analysis['steps']['extract_candidate']=False
pipe_cfg.analysis['steps']['contrast_curves']=False
pipe_cfg.analysis['steps']['cal_contrast_curves']=True
pipe_cfg.analysis['steps']['mass_sensitivity_curves']=False
analysis.run({'DF': DF, 'dataset': dataset})
2025-06-19 10:27:08 straklip.steps.analysis :INFO (run:1454[pid=24180]) Running Analysis step
2025-06-19 10:27:08 straklip.config :INFO (make_paths:115[pid=24180]) "/Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/" exists, and will not be created.
2025-06-19 10:27:08 straklip.steps.analysis :INFO (setup_DATASET:87[pid=24180]) Setting up Dataset for observation
2025-06-19 10:27:08 straklip.steps.analysis :INFO (generate_psflib:108[pid=24180]) Generating PSF library
2025-06-19 10:27:08 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1151[pid=24180]) Making corrected contrast curves.
2025-06-19 10:27:08 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1154[pid=24180]) Loading masked candidate data.
2025-06-19 10:27:08 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1163[pid=24180]) Loading contrast curves dictionary from file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/f814w_contrast_curves.pkl
2025-06-19 10:27:08 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1173[pid=24180]) Loading candidate dictionary from file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/ID11/extracted_candidate/f814w_extracted.yaml
2025-06-19 10:27:08 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1176[pid=24180]) Loading file: /Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/mvs_tiles/f814w/tile_ID6.fits as best PSF model
2025-06-19 10:27:08 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1186[pid=24180]) Getting ready to inject 136 for filter f814w
2025-06-19 10:27:08 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 1 at pa: 0, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:12 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 2 at pa: 45, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:17 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 3 at pa: 90, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:21 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 4 at pa: 135, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:25 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 5 at pa: 180, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:30 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 6 at pa: 225, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:34 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 7 at pa: 270, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:38 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 8 at pa: 315, sep: 0.922, flux: 29672399.186782785
2025-06-19 10:27:43 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 9 at pa: 0, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:27:47 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 10 at pa: 45, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:27:51 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 11 at pa: 90, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:27:56 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 12 at pa: 135, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:28:00 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 13 at pa: 180, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:28:04 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 14 at pa: 225, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:28:09 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 15 at pa: 270, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:28:13 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 16 at pa: 315, sep: 1.844, flux: 841.0646415554554
2025-06-19 10:28:18 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 17 at pa: 0, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:22 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 18 at pa: 45, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:26 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 19 at pa: 90, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:31 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 20 at pa: 135, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:35 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 21 at pa: 180, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:39 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 22 at pa: 225, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:44 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 23 at pa: 270, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:48 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 24 at pa: 315, sep: 2.766, flux: 302.4233132853525
2025-06-19 10:28:52 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 25 at pa: 0, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:28:57 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 26 at pa: 45, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:29:01 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 27 at pa: 90, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:29:05 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 28 at pa: 135, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:29:10 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 29 at pa: 180, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:29:14 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 30 at pa: 225, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:29:18 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 31 at pa: 270, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:29:23 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 32 at pa: 315, sep: 3.688, flux: 192.2588144219906
2025-06-19 10:29:27 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 33 at pa: 0, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:29:32 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 34 at pa: 45, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:29:36 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 35 at pa: 90, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:29:40 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 36 at pa: 135, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:29:45 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 37 at pa: 180, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:29:49 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 38 at pa: 225, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:29:53 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 39 at pa: 270, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:29:58 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 40 at pa: 315, sep: 4.61, flux: 145.66207223034266
2025-06-19 10:30:02 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 41 at pa: 0, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:07 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 42 at pa: 45, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:11 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 43 at pa: 90, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:15 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 44 at pa: 135, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:20 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 45 at pa: 180, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:24 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 46 at pa: 225, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:28 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 47 at pa: 270, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:33 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 48 at pa: 315, sep: 5.532, flux: 113.34720028913645
2025-06-19 10:30:37 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 49 at pa: 0, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:30:41 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 50 at pa: 45, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:30:46 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 51 at pa: 90, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:30:50 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 52 at pa: 135, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:30:54 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 53 at pa: 180, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:30:58 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 54 at pa: 225, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:31:03 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 55 at pa: 270, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:31:07 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 56 at pa: 315, sep: 6.454, flux: 94.33479173710143
2025-06-19 10:31:12 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 57 at pa: 0, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:16 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 58 at pa: 45, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:21 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 59 at pa: 90, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:25 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 60 at pa: 135, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:29 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 61 at pa: 180, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:34 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 62 at pa: 225, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:38 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 63 at pa: 270, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:42 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 64 at pa: 315, sep: 7.376, flux: 61.76198509689058
2025-06-19 10:31:47 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 65 at pa: 0, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:31:51 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 66 at pa: 45, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:31:56 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 67 at pa: 90, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:32:00 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 68 at pa: 135, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:32:04 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 69 at pa: 180, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:32:09 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 70 at pa: 225, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:32:13 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 71 at pa: 270, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:32:18 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 72 at pa: 315, sep: 8.298, flux: 47.59556716206335
2025-06-19 10:32:22 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 73 at pa: 0, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:27 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 74 at pa: 45, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:31 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 75 at pa: 90, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:35 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 76 at pa: 135, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:40 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 77 at pa: 180, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:44 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 78 at pa: 225, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:49 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 79 at pa: 270, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:53 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 80 at pa: 315, sep: 9.22, flux: 47.26748411680277
2025-06-19 10:32:58 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 81 at pa: 0, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:02 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 82 at pa: 45, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:06 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 83 at pa: 90, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:10 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 84 at pa: 135, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:15 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 85 at pa: 180, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:19 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 86 at pa: 225, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:23 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 87 at pa: 270, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:28 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 88 at pa: 315, sep: 10.142000000000001, flux: 42.38257329440012
2025-06-19 10:33:32 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 89 at pa: 0, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:33:36 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 90 at pa: 45, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:33:41 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 91 at pa: 90, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:33:45 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 92 at pa: 135, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:33:50 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 93 at pa: 180, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:33:54 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 94 at pa: 225, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:33:58 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 95 at pa: 270, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:34:03 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 96 at pa: 315, sep: 11.064000000000002, flux: 38.98711824724749
2025-06-19 10:34:07 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 97 at pa: 0, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:11 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 98 at pa: 45, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:15 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 99 at pa: 90, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:20 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 100 at pa: 135, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:24 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 101 at pa: 180, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:29 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 102 at pa: 225, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:33 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 103 at pa: 270, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:37 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 104 at pa: 315, sep: 11.986, flux: 36.89098569223733
2025-06-19 10:34:42 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 105 at pa: 0, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:34:46 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 106 at pa: 45, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:34:50 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 107 at pa: 90, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:34:54 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 108 at pa: 135, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:34:59 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 109 at pa: 180, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:35:03 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 110 at pa: 225, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:35:07 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 111 at pa: 270, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:35:12 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 112 at pa: 315, sep: 12.908000000000001, flux: 33.49335268435086
2025-06-19 10:35:16 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 113 at pa: 0, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:21 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 114 at pa: 45, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:25 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 115 at pa: 90, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:30 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 116 at pa: 135, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:34 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 117 at pa: 180, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:38 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 118 at pa: 225, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:43 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 119 at pa: 270, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:47 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 120 at pa: 315, sep: 13.830000000000002, flux: 34.979301889771335
2025-06-19 10:35:51 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 121 at pa: 0, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:35:56 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 122 at pa: 45, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:36:00 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 123 at pa: 90, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:36:04 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 124 at pa: 135, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:36:09 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 125 at pa: 180, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:36:13 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 126 at pa: 225, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:36:17 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 127 at pa: 270, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:36:22 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 128 at pa: 315, sep: 14.752, flux: 36.64567173077913
2025-06-19 10:36:26 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 129 at pa: 0, sep: 15.674000000000001, flux: 38.22707458731996
2025-06-19 10:36:31 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 130 at pa: 45, sep: 15.674000000000001, flux: 38.22707458731996
2025-06-19 10:36:35 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 131 at pa: 90, sep: 15.674000000000001, flux: 38.22707458731996
2025-06-19 10:36:39 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 132 at pa: 135, sep: 15.674000000000001, flux: 38.22707458731996
2025-06-19 10:36:44 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 133 at pa: 180, sep: 15.674000000000001, flux: 38.22707458731996
2025-06-19 10:36:48 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 134 at pa: 225, sep: 15.674000000000001, flux: 38.22707458731996
2025-06-19 10:36:52 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 135 at pa: 270, sep: 15.674000000000001, flux: 38.22707458731996
2025-06-19 10:36:57 straklip.steps.analysis :INFO (mk_cal_contrast_curves:1189[pid=24180]) Injecting fake 136 at pa: 315, sep: 15.674000000000001, flux: 38.22707458731996
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/scipy/interpolate/_interpolate.py:698: RuntimeWarning: divide by zero encountered in divide
slope = (y_hi - y_lo) / (x_hi - x_lo)[:, None]
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/scipy/interpolate/_interpolate.py:701: RuntimeWarning: invalid value encountered in multiply
y_new = slope*(x_new - x_lo)[:, None] + y_lo
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fakes.py:702: RuntimeWarning: divide by zero encountered in divide
gmask = np.exp(-(xfitbox**2+yfitbox**2)/(2.*sigma**2))
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fakes.py:702: RuntimeWarning: invalid value encountered in divide
gmask = np.exp(-(xfitbox**2+yfitbox**2)/(2.*sigma**2))
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fakes.py:705: RuntimeWarning: invalid value encountered in scalar divide
corrflux = np.nansum(fitbox*gmask)/np.sum(gmask*gmask)
/opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fakes.py:469: SyntaxWarning: invalid decimal literal
radii_list = np.array([dr * annuli_it + dataset.IWA + dr/2.for annuli_it in range(annuli-1)]) + sep_shift
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[10], line 5
3 pipe_cfg.analysis['steps']['cal_contrast_curves']=True
4 pipe_cfg.analysis['steps']['mass_sensitivity_curves']=False
----> 5 analysis.run({'DF': DF, 'dataset': dataset})
File ~/StraKLIP/straklip/steps/analysis.py:1480, in run(packet)
1478 obsdataset, residuals = setup_DATASET(DF, unq_id, mvs_id, filter, dataset.pipe_cfg)
1479 fwhm = dataset.pipe_cfg.instrument['fwhm'][filter]
-> 1480 run_analysis(DF, unq_id, mvs_id, filter.lower(), numbasis, fwhm, dataset, obsdataset, residuals, outputdir,
1481 extract_candidate=dataset.pipe_cfg.analysis['steps']['extract_candidate'],
1482 contrast_curves=dataset.pipe_cfg.analysis['steps']['contrast_curves'],
1483 cal_contrast_curves=dataset.pipe_cfg.analysis['steps']['cal_contrast_curves'],
1484 mass_sensitivity_curves=dataset.pipe_cfg.analysis['steps']['mass_sensitivity_curves'],
1485 mask_candidate=dataset.pipe_cfg.analysis['mask_candidate'],
1486 inject_fake=dataset.pipe_cfg.analysis['inject_fake'],
1487 pxsc_arcsec=dataset.pipe_cfg.instrument['pixelscale'],
1488 klstep=dataset.pipe_cfg.analysis['klstep'],
1489 min_corr=dataset.pipe_cfg.analysis['min_corr'],
1490 pa_list=dataset.pipe_cfg.analysis['pa_list'],
1491 seps=dataset.pipe_cfg.analysis['seps'],
1492 overwrite=dataset.pipe_cfg.analysis['overwrite'],
1493 arc_sec=dataset.pipe_cfg.analysis['arc_sec'],
1494 ylim=dataset.pipe_cfg.analysis['ylim'],
1495 xlim=dataset.pipe_cfg.analysis['xlim'],
1496 path2iso_interp=dataset.pipe_cfg.analysis['path2iso_interp'],
1497 age=dataset.pipe_cfg.analysis['primay']['age'],
1498 distance=dataset.pipe_cfg.analysis['primay']['dist'],
1499 av=dataset.pipe_cfg.analysis['primay']['av'],
1500 logSPacc=dataset.pipe_cfg.analysis['primay']['logSPacc'],
1501 guess_contrast = dataset.pipe_cfg.analysis['candidate']['guess_contrast'],
1502 xycomp_list = xycomp_list,
1503 KLdetect = KLdetect,
1504 subtract_companion = dataset.pipe_cfg.analysis['candidate']['subtract_companion'],
1505 kwargs=dataset.pipe_cfg.analysis['kwargs'])
File ~/StraKLIP/straklip/steps/analysis.py:1443, in run_analysis(DF, unq_id, mvs_id, filter, numbasis, fwhm, dataset, obsdataset, residuals, outputdir, xycomp_list, extract_candidate, contrast_curves, cal_contrast_curves, mass_sensitivity_curves, mask_candidate, inject_fake, guess_contrast, pxsc_arcsec, KLdetect, klstep, min_corr, pa_list, seps, overwrite, subtract_companion, arc_sec, ylim, xlim, path2iso_interp, age, accr, distance, av, logSPacc, kwargs)
1440 analysistools.mk_contrast_curves(filter, residuals, outputdir+f"/analysis/ID{mvs_id}", seps, mask_candidate, klstep, min_corr=min_corr, KLdetect=KLdetect,arc_sec=arc_sec, pixelscale=pxsc_arcsec,ylim=ylim,xlim=xlim)
1442 if cal_contrast_curves:
-> 1443 analysistools.mk_cal_contrast_curves(filter, outputdir+f"/analysis/ID{mvs_id}", inject_fake, mask_candidate, seps, pa_list, klstep, min_corr=min_corr, KLdetect=KLdetect, arc_sec=arc_sec, pixelscale=pxsc_arcsec,ylim=ylim,xlim=xlim)
1445 if mass_sensitivity_curves and path2iso_interp is not None:
1446 analysistools.mk_mass_sensitivity_curves(filter, outputdir+f"/analysis/ID{mvs_id}", path2iso_interp=path2iso_interp, klstep=klstep, arc_sec=arc_sec, pixelscale=pxsc_arcsec,xlim=xlim)
File ~/StraKLIP/straklip/steps/analysis.py:1234, in AnalysisTools.mk_cal_contrast_curves(self, filter, outputdir, inject_fake, mask_candidate, seps, pa_list, klstep, min_corr, KLdetect, arc_sec, pixelscale, ylim, xlim)
1231 dat_with_fakes = kl_hdulist[0].data[elno]
1232 dat_with_fakes_centers = [kl_hdulist[0].header['PSFCENTX'], kl_hdulist[0].header['PSFCENTY']]
-> 1234 fake_flux = fakes.retrieve_planet_flux(dat_with_fakes, dat_with_fakes_centers, self.fkdataset.wcs[0],
1235 sep,
1236 pa,
1237 searchrad=5,
1238 guesspeak=input_planet_flux,
1239 guessfwhm=self.fwhm,
1240 refinefit=True)
1241 fake_planet_fluxes.append(fake_flux)
1242 elno2+=1
File /opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fakes.py:973, in retrieve_planet_flux(frames, centers, astr_hdrs, sep, pa, searchrad, guessfwhm, guesspeak, refinefit, thetas)
951 def retrieve_planet_flux(frames, centers, astr_hdrs, sep, pa, searchrad=7, guessfwhm=3.0, guesspeak=1, refinefit=False,
952 thetas=None):
953 """
954 Retrives the planet flux from a series of frames given a separation and PA
955
(...)
971 where passed in
972 """
--> 973 measured = retrieve_planet(frames, centers, astr_hdrs, sep, pa, searchrad, guessfwhm, guesspeak, refinefit, thetas)
975 if np.ndim(measured) == 1:
976 # just one frame, return one number
977 return measured[0]
File /opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fakes.py:1046, in retrieve_planet(frames, centers, astr_hdrs, sep, pa, searchrad, guessfwhm, guesspeak, refinefit, thetas)
1044 y = sep*np.sin(np.radians(theta)) + center[1]
1045 # calculate the flux
-> 1046 flux, fwhm, xfit, yfit = gaussfit2d(frame, x, y, searchrad=searchrad, guessfwhm=guessfwhm, guesspeak=guesspeak, refinefit=refinefit)
1047 measured.append((flux, xfit, yfit, fwhm))
1049 # return a single number if onyl one frame passed in
File /opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/pyklip/fakes.py:665, in gaussfit2d(frame, xguess, yguess, searchrad, guessfwhm, guesspeak, refinefit)
660 #do a least squares fit. Note that we use searchrad for x and y centers since we're narrowed it to a box of size
661 #(2searchrad+1,2searchrad+1)
663 guess = (searchrad, searchrad, guesspeak, guessfwhm/(2 * np.sqrt(2*np.log(2))))
--> 665 p, success = optimize.leastsq(errorfunction, guess)
667 xfit = p[0]
668 yfit = p[1]
File /opt/miniconda3/envs/straKLIP/lib/python3.11/site-packages/scipy/optimize/_minpack_py.py:417, in leastsq(func, x0, args, Dfun, full_output, col_deriv, ftol, xtol, gtol, maxfev, epsfcn, factor, diag)
414 m = shape[0]
416 if n > m:
--> 417 raise TypeError(f"Improper input: func input vector length N={n} must"
418 f" not exceed func output vector length M={m}")
420 if epsfcn is None:
421 epsfcn = finfo(dtype).eps
TypeError: Improper input: func input vector length N=4 must not exceed func output vector length M=0
Contrast to mass conversion (work in progress)
To convert contrast to masses, we use user provided interpolator that will transform (mag,age) -> (mass), (mag,age) -> (teff), (mag,age) -> (logR). This interpolator should be assemble as a series of dictionaries such as interp = {filter: {‘logmass’: (mag,age) -> (mass), ‘teff’: (mag,age) -> (teff), ‘logR’: (mag,age) -> (logR)}}. First we convert the contrast for detect companion
[11]:
pipe_cfg.analysis['path2iso_interp']='path/to/user/interpolator.pkl'
pipe_cfg.analysis['steps']['extract_candidate']=True
pipe_cfg.analysis['steps']['contrast_curves']=False
pipe_cfg.analysis['steps']['cal_contrast_curves']=False
pipe_cfg.analysis['steps']['mass_sensitivity_curves']=False
analysis.run({'DF': DF, 'dataset': dataset})
2025-06-19 10:40:21 straklip.steps.analysis :INFO (run:1454[pid=24180]) Running Analysis step
2025-06-19 10:40:21 straklip.config :INFO (make_paths:115[pid=24180]) "/Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/analysis/" exists, and will not be created.
2025-06-19 10:40:21 straklip.steps.analysis :INFO (setup_DATASET:87[pid=24180]) Setting up Dataset for observation
2025-06-19 10:40:21 straklip.steps.analysis :INFO (generate_psflib:108[pid=24180]) Generating PSF library
2025-06-19 10:40:21 straklip.steps.analysis :INFO (candidate_extraction:914[pid=24180]) Extracting candidate from: ['/Users/gstrampelli/PycharmProjects/StraKLIP_tutorial_test/out/mvs_tiles/f814w/tile_ID11.fits']
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[11], line 6
4 pipe_cfg.analysis['steps']['cal_contrast_curves']=False
5 pipe_cfg.analysis['steps']['mass_sensitivity_curves']=False
----> 6 analysis.run({'DF': DF, 'dataset': dataset})
File ~/StraKLIP/straklip/steps/analysis.py:1480, in run(packet)
1478 obsdataset, residuals = setup_DATASET(DF, unq_id, mvs_id, filter, dataset.pipe_cfg)
1479 fwhm = dataset.pipe_cfg.instrument['fwhm'][filter]
-> 1480 run_analysis(DF, unq_id, mvs_id, filter.lower(), numbasis, fwhm, dataset, obsdataset, residuals, outputdir,
1481 extract_candidate=dataset.pipe_cfg.analysis['steps']['extract_candidate'],
1482 contrast_curves=dataset.pipe_cfg.analysis['steps']['contrast_curves'],
1483 cal_contrast_curves=dataset.pipe_cfg.analysis['steps']['cal_contrast_curves'],
1484 mass_sensitivity_curves=dataset.pipe_cfg.analysis['steps']['mass_sensitivity_curves'],
1485 mask_candidate=dataset.pipe_cfg.analysis['mask_candidate'],
1486 inject_fake=dataset.pipe_cfg.analysis['inject_fake'],
1487 pxsc_arcsec=dataset.pipe_cfg.instrument['pixelscale'],
1488 klstep=dataset.pipe_cfg.analysis['klstep'],
1489 min_corr=dataset.pipe_cfg.analysis['min_corr'],
1490 pa_list=dataset.pipe_cfg.analysis['pa_list'],
1491 seps=dataset.pipe_cfg.analysis['seps'],
1492 overwrite=dataset.pipe_cfg.analysis['overwrite'],
1493 arc_sec=dataset.pipe_cfg.analysis['arc_sec'],
1494 ylim=dataset.pipe_cfg.analysis['ylim'],
1495 xlim=dataset.pipe_cfg.analysis['xlim'],
1496 path2iso_interp=dataset.pipe_cfg.analysis['path2iso_interp'],
1497 age=dataset.pipe_cfg.analysis['primay']['age'],
1498 distance=dataset.pipe_cfg.analysis['primay']['dist'],
1499 av=dataset.pipe_cfg.analysis['primay']['av'],
1500 logSPacc=dataset.pipe_cfg.analysis['primay']['logSPacc'],
1501 guess_contrast = dataset.pipe_cfg.analysis['candidate']['guess_contrast'],
1502 xycomp_list = xycomp_list,
1503 KLdetect = KLdetect,
1504 subtract_companion = dataset.pipe_cfg.analysis['candidate']['subtract_companion'],
1505 kwargs=dataset.pipe_cfg.analysis['kwargs'])
File ~/StraKLIP/straklip/steps/analysis.py:1437, in run_analysis(DF, unq_id, mvs_id, filter, numbasis, fwhm, dataset, obsdataset, residuals, outputdir, xycomp_list, extract_candidate, contrast_curves, cal_contrast_curves, mass_sensitivity_curves, mask_candidate, inject_fake, guess_contrast, pxsc_arcsec, KLdetect, klstep, min_corr, pa_list, seps, overwrite, subtract_companion, arc_sec, ylim, xlim, path2iso_interp, age, accr, distance, av, logSPacc, kwargs)
1433 analysistools.candidate = Candidate(input=obsdataset,
1434 chi2=[],
1435 ext='cand')
1436 if extract_candidate:
-> 1437 analysistools.candidate_extraction(filter,residuals[np.where(np.array(DF.kmodes)==KLdetect)[0][0]], outputdir+f"/analysis/ID{mvs_id}",overwrite=overwrite,path2iso_interp=path2iso_interp,arc_sec=arc_sec,kwargs=kwargs)
1439 if contrast_curves:
1440 analysistools.mk_contrast_curves(filter, residuals, outputdir+f"/analysis/ID{mvs_id}", seps, mask_candidate, klstep, min_corr=min_corr, KLdetect=KLdetect,arc_sec=arc_sec, pixelscale=pxsc_arcsec,ylim=ylim,xlim=xlim)
File ~/StraKLIP/straklip/steps/analysis.py:975, in AnalysisTools.candidate_extraction(self, filter, residuals, outputdir, overwrite, path2iso_interp, arc_sec, kwargs)
971 psf2=(hdul['SCI'].data)/np.max(hdul['SCI'].data)
973 if path2iso_interp is not None:
974 ## Load interpolated isochrones
--> 975 with open(path2iso_interp, 'rb') as file_handle:
976 getLogger(__name__).info(f'Loading isochrones interpolator dictionary from file: {path2iso_interp}')
977 interp = pickle.load(file_handle)
FileNotFoundError: [Errno 2] No such file or directory: 'path/to/user/interpolator.pkl'
Then we convert the calibrate contrast curves
[ ]:
pipe_cfg.analysis['path2iso_interp']='path/to/user/interpolator.pkl'
pipe_cfg.analysis['steps']['extract_candidate']=False
pipe_cfg.analysis['steps']['contrast_curves']=False
pipe_cfg.analysis['steps']['cal_contrast_curves']=False
pipe_cfg.analysis['steps']['mass_sensitivity_curves']=True
analysis.run({'DF': DF, 'dataset': dataset})