diff --git a/plots/IC5063_x3nl030/18GHz_overplot.png b/plots/IC5063_x3nl030/18GHz_overplot.png index 3d439c4..6832971 100644 Binary files a/plots/IC5063_x3nl030/18GHz_overplot.png and b/plots/IC5063_x3nl030/18GHz_overplot.png differ diff --git a/plots/IC5063_x3nl030/18GHz_overplot_forced.png b/plots/IC5063_x3nl030/18GHz_overplot_forced.png index 2e2dcd8..1a6e4f1 100644 Binary files a/plots/IC5063_x3nl030/18GHz_overplot_forced.png and b/plots/IC5063_x3nl030/18GHz_overplot_forced.png differ diff --git a/plots/IC5063_x3nl030/18GHz_overplot_forced_maxUV.png b/plots/IC5063_x3nl030/18GHz_overplot_forced_maxUV.png index d7f2ab9..0c4519e 100644 Binary files a/plots/IC5063_x3nl030/18GHz_overplot_forced_maxUV.png and b/plots/IC5063_x3nl030/18GHz_overplot_forced_maxUV.png differ diff --git a/plots/IC5063_x3nl030/24GHz_overplot.png b/plots/IC5063_x3nl030/24GHz_overplot.png index 3f84243..3e289d4 100644 Binary files a/plots/IC5063_x3nl030/24GHz_overplot.png and b/plots/IC5063_x3nl030/24GHz_overplot.png differ diff --git a/plots/IC5063_x3nl030/24GHz_overplot_forced.png b/plots/IC5063_x3nl030/24GHz_overplot_forced.png index e998599..d6ad8bd 100644 Binary files a/plots/IC5063_x3nl030/24GHz_overplot_forced.png and b/plots/IC5063_x3nl030/24GHz_overplot_forced.png differ diff --git a/plots/IC5063_x3nl030/24GHz_overplot_forced_maxUV.png b/plots/IC5063_x3nl030/24GHz_overplot_forced_maxUV.png index 20d69ea..965d4a5 100644 Binary files a/plots/IC5063_x3nl030/24GHz_overplot_forced_maxUV.png and b/plots/IC5063_x3nl030/24GHz_overplot_forced_maxUV.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC.png b/plots/IC5063_x3nl030/IC5063_FOC.png index 4afec0c..16f831e 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC.png and b/plots/IC5063_x3nl030/IC5063_FOC.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_1px.png b/plots/IC5063_x3nl030/IC5063_FOC_1px.png deleted file mode 100644 index 2120464..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_1px.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_1px_IQU.png b/plots/IC5063_x3nl030/IC5063_FOC_1px_IQU.png deleted file mode 100644 index c8dc758..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_1px_IQU.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_IQU.png b/plots/IC5063_x3nl030/IC5063_FOC_IQU.png index 45e0a1e..18f8c5a 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_IQU.png and b/plots/IC5063_x3nl030/IC5063_FOC_IQU.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_I_err.png b/plots/IC5063_x3nl030/IC5063_FOC_I_err.png index 44a0a1f..ea1667e 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_I_err.png and b/plots/IC5063_x3nl030/IC5063_FOC_I_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_P.png b/plots/IC5063_x3nl030/IC5063_FOC_P.png index c5fa2ce..b8c4011 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_P.png and b/plots/IC5063_x3nl030/IC5063_FOC_P.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_POL0_crop_region.png b/plots/IC5063_x3nl030/IC5063_FOC_POL0_crop_region.png old mode 100755 new mode 100644 diff --git a/plots/IC5063_x3nl030/IC5063_FOC_P_err.png b/plots/IC5063_x3nl030/IC5063_FOC_P_err.png index b90687a..7bd435b 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_P_err.png and b/plots/IC5063_x3nl030/IC5063_FOC_P_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_P_flux.png b/plots/IC5063_x3nl030/IC5063_FOC_P_flux.png index ca66fde..16c01b5 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_P_flux.png and b/plots/IC5063_x3nl030/IC5063_FOC_P_flux.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_SNRi.png b/plots/IC5063_x3nl030/IC5063_FOC_SNRi.png index 07049b4..b2ce74c 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_SNRi.png and b/plots/IC5063_x3nl030/IC5063_FOC_SNRi.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_SNRp.png b/plots/IC5063_x3nl030/IC5063_FOC_SNRp.png index dbd3b30..f2f179f 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_SNRp.png and b/plots/IC5063_x3nl030/IC5063_FOC_SNRp.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_center_image.png b/plots/IC5063_x3nl030/IC5063_FOC_center_image.png old mode 100755 new mode 100644 index b0b2c45..39fec6c Binary files a/plots/IC5063_x3nl030/IC5063_FOC_center_image.png and b/plots/IC5063_x3nl030/IC5063_FOC_center_image.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010.png new file mode 100644 index 0000000..e24ce6f Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_IQU.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_IQU.png new file mode 100644 index 0000000..8712dd9 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_IQU.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_I_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_I_err.png new file mode 100644 index 0000000..2fc21d4 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_I_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P.png new file mode 100644 index 0000000..36b0a38 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P_err.png new file mode 100644 index 0000000..b3c2c43 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P_flux.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P_flux.png new file mode 100644 index 0000000..e994803 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_P_flux.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_SNRi.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_SNRi.png new file mode 100644 index 0000000..933ef05 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_SNRi.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_SNRp.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_SNRp.png new file mode 100644 index 0000000..47d5573 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM010_SNRp.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020.png new file mode 100644 index 0000000..b4b8330 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_IQU.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_IQU.png new file mode 100644 index 0000000..e48eff7 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_IQU.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_I_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_I_err.png new file mode 100644 index 0000000..d8611f8 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_I_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P.png new file mode 100644 index 0000000..61ee811 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P_err.png new file mode 100644 index 0000000..ecb1251 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P_flux.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P_flux.png new file mode 100644 index 0000000..f730101 Binary files /dev/null and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_P_flux.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRi.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRi.png index 16d53fa..f4ad036 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRi.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRi.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRp.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRp.png index 56f1753..3432db0 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRp.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_SNRp.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol.png index acf1f08..51fb24d 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_IQU.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_IQU.png index 8eff941..e48eff7 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_IQU.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_IQU.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_I_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_I_err.png index 19a10dc..7799347 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_I_err.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_I_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P.png index ad0d589..4cc29b4 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_err.png index 928a261..c2535a8 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_err.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_err.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_flux.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_flux.png index e5a6f4a..0e272f0 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_flux.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_P_flux.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRi.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRi.png index b15b11e..a306d38 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRi.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRi.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRp.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRp.png index c7d4418..2a9a359 100644 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRp.png and b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_SNRp.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae.png deleted file mode 100644 index b55a01c..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_IQU.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_IQU.png deleted file mode 100644 index 1bbf5bf..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_IQU.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_I_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_I_err.png deleted file mode 100644 index 5dd3078..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_I_err.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P.png deleted file mode 100644 index 714f65c..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P_err.png deleted file mode 100644 index 25ce493..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P_err.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P_flux.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P_flux.png deleted file mode 100644 index 9adf0b4..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_P_flux.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_SNRi.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_SNRi.png deleted file mode 100644 index b62f986..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_SNRi.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_SNRp.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_SNRp.png deleted file mode 100644 index a1c12bf..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae_SNRp.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae.png deleted file mode 100644 index 9192638..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_IQU.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_IQU.png deleted file mode 100644 index 1bbf5bf..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_IQU.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_I_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_I_err.png deleted file mode 100644 index 71c69e5..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_I_err.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P.png deleted file mode 100644 index c4217fe..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P_err.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P_err.png deleted file mode 100644 index 445fa6d..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P_err.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P_flux.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P_flux.png deleted file mode 100644 index 9ca4b36..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_P_flux.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_SNRi.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_SNRi.png deleted file mode 100644 index e1b3116..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_SNRi.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_SNRp.png b/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_SNRp.png deleted file mode 100644 index 944d610..0000000 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_wae_SNRp.png and /dev/null differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_crop_region.png b/plots/IC5063_x3nl030/IC5063_FOC_crop_region.png old mode 100755 new mode 100644 index 3e443a9..bd594f5 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_crop_region.png and b/plots/IC5063_x3nl030/IC5063_FOC_crop_region.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_errors_background_flux.png b/plots/IC5063_x3nl030/IC5063_FOC_errors_background_flux.png old mode 100755 new mode 100644 index 6ec65c3..3b0e1dc Binary files a/plots/IC5063_x3nl030/IC5063_FOC_errors_background_flux.png and b/plots/IC5063_x3nl030/IC5063_FOC_errors_background_flux.png differ diff --git a/plots/IC5063_x3nl030/IC5063_FOC_errors_background_location.png b/plots/IC5063_x3nl030/IC5063_FOC_errors_background_location.png old mode 100755 new mode 100644 index 519dc76..b5dc9f0 Binary files a/plots/IC5063_x3nl030/IC5063_FOC_errors_background_location.png and b/plots/IC5063_x3nl030/IC5063_FOC_errors_background_location.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC.png b/plots/MKN463_x2rp030/MKN463_FOC.png old mode 100755 new mode 100644 index 70ef0f0..fffa5e2 Binary files a/plots/MKN463_x2rp030/MKN463_FOC.png and b/plots/MKN463_x2rp030/MKN463_FOC.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_IQU.png b/plots/MKN463_x2rp030/MKN463_FOC_IQU.png old mode 100755 new mode 100644 index c4b3bf5..7dd228a Binary files a/plots/MKN463_x2rp030/MKN463_FOC_IQU.png and b/plots/MKN463_x2rp030/MKN463_FOC_IQU.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_I_err.png b/plots/MKN463_x2rp030/MKN463_FOC_I_err.png new file mode 100644 index 0000000..c25a5d1 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_I_err.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_P.png b/plots/MKN463_x2rp030/MKN463_FOC_P.png old mode 100755 new mode 100644 index a13df09..0452446 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_P.png and b/plots/MKN463_x2rp030/MKN463_FOC_P.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_POL0_crop_region.png b/plots/MKN463_x2rp030/MKN463_FOC_POL0_crop_region.png old mode 100755 new mode 100644 index 60ecb36..c3daaf4 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_POL0_crop_region.png and b/plots/MKN463_x2rp030/MKN463_FOC_POL0_crop_region.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_P_err.png b/plots/MKN463_x2rp030/MKN463_FOC_P_err.png old mode 100755 new mode 100644 index c999e6a..5f7adfc Binary files a/plots/MKN463_x2rp030/MKN463_FOC_P_err.png and b/plots/MKN463_x2rp030/MKN463_FOC_P_err.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_P_flux.png b/plots/MKN463_x2rp030/MKN463_FOC_P_flux.png index 7248a34..34e341b 100644 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_P_flux.png and b/plots/MKN463_x2rp030/MKN463_FOC_P_flux.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_SNRi.png b/plots/MKN463_x2rp030/MKN463_FOC_SNRi.png old mode 100755 new mode 100644 index cdc31e9..fdf1826 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_SNRi.png and b/plots/MKN463_x2rp030/MKN463_FOC_SNRi.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_SNRp.png b/plots/MKN463_x2rp030/MKN463_FOC_SNRp.png old mode 100755 new mode 100644 index 08c5099..4fa23fc Binary files a/plots/MKN463_x2rp030/MKN463_FOC_SNRp.png and b/plots/MKN463_x2rp030/MKN463_FOC_SNRp.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_center_image.png b/plots/MKN463_x2rp030/MKN463_FOC_center_image.png old mode 100755 new mode 100644 index 6712cb3..33fe05e Binary files a/plots/MKN463_x2rp030/MKN463_FOC_center_image.png and b/plots/MKN463_x2rp030/MKN463_FOC_center_image.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010.png new file mode 100644 index 0000000..d35fa72 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_IQU.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_IQU.png new file mode 100644 index 0000000..040073a Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_IQU.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_I_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_I_err.png new file mode 100644 index 0000000..bf98fc7 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_I_err.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P.png new file mode 100644 index 0000000..35b3b4f Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P_err.png new file mode 100644 index 0000000..8f86d18 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P_err.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P_flux.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P_flux.png new file mode 100644 index 0000000..8323b8d Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_P_flux.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_SNRi.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_SNRi.png new file mode 100644 index 0000000..bbf05f7 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_SNRi.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_SNRp.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_SNRp.png new file mode 100644 index 0000000..0f50fd1 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_SNRp.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot.png deleted file mode 100755 index 7528e87..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_IQU.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_IQU.png deleted file mode 100755 index 7980562..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_IQU.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P.png deleted file mode 100755 index a7ecad2..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P_err.png deleted file mode 100755 index 86be47c..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P_err.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P_flux.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P_flux.png deleted file mode 100644 index a58a5bc..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_P_flux.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_SNRi.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_SNRi.png deleted file mode 100755 index e4bb19c..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_SNRi.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_SNRp.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_SNRp.png deleted file mode 100755 index 8b6e686..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM010_rot_SNRp.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020.png new file mode 100644 index 0000000..681bac9 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_IQU.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_IQU.png new file mode 100644 index 0000000..36c504f Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_IQU.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_I_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_I_err.png new file mode 100644 index 0000000..94d7485 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_I_err.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P.png new file mode 100644 index 0000000..a6abba4 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P_err.png new file mode 100644 index 0000000..3880b1a Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P_err.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P_flux.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P_flux.png new file mode 100644 index 0000000..e4dbd98 Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_P_flux.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_SNRi.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_SNRi.png new file mode 100644 index 0000000..f48f10f Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_SNRi.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_SNRp.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_SNRp.png new file mode 100644 index 0000000..bb4a4ce Binary files /dev/null and b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_SNRp.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot.png deleted file mode 100755 index 2445923..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_IQU.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_IQU.png deleted file mode 100755 index 25c5f37..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_IQU.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P.png deleted file mode 100755 index e20cddf..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P_err.png deleted file mode 100755 index 364a22a..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P_err.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P_flux.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P_flux.png deleted file mode 100755 index 5648e36..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_P_flux.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_SNRi.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_SNRi.png deleted file mode 100755 index 3eba89f..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_SNRi.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_SNRp.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_SNRp.png deleted file mode 100755 index 2676a1d..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_rot_SNRp.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae.png deleted file mode 100644 index ac54570..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_IQU.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_IQU.png deleted file mode 100644 index f604d68..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_IQU.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_I_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_I_err.png deleted file mode 100644 index 5e27f6b..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_I_err.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P.png deleted file mode 100644 index d75a355..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P_err.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P_err.png deleted file mode 100644 index ecf9b66..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P_err.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P_flux.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P_flux.png deleted file mode 100644 index 05e48de..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_P_flux.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_SNRi.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_SNRi.png deleted file mode 100644 index e0af7dc..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_SNRi.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_SNRp.png b/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_SNRp.png deleted file mode 100644 index 77f73e7..0000000 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_combine_FWHM020_wae_SNRp.png and /dev/null differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_crop_region.png b/plots/MKN463_x2rp030/MKN463_FOC_crop_region.png old mode 100755 new mode 100644 index 3d1d4ac..df360f5 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_crop_region.png and b/plots/MKN463_x2rp030/MKN463_FOC_crop_region.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_errors_background_flux.png b/plots/MKN463_x2rp030/MKN463_FOC_errors_background_flux.png old mode 100755 new mode 100644 index 1d938ad..6499cba Binary files a/plots/MKN463_x2rp030/MKN463_FOC_errors_background_flux.png and b/plots/MKN463_x2rp030/MKN463_FOC_errors_background_flux.png differ diff --git a/plots/MKN463_x2rp030/MKN463_FOC_errors_background_location.png b/plots/MKN463_x2rp030/MKN463_FOC_errors_background_location.png old mode 100755 new mode 100644 index 661b89f..b76b296 Binary files a/plots/MKN463_x2rp030/MKN463_FOC_errors_background_location.png and b/plots/MKN463_x2rp030/MKN463_FOC_errors_background_location.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC.png b/plots/NGC1068_x274020/NGC1068_FOC.png index 794bc22..771b54a 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC.png and b/plots/NGC1068_x274020/NGC1068_FOC.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_1px.png b/plots/NGC1068_x274020/NGC1068_FOC_1px.png deleted file mode 100644 index fa6de46..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_1px.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_1px_IQU.png b/plots/NGC1068_x274020/NGC1068_FOC_1px_IQU.png deleted file mode 100644 index b4b8cb7..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_1px_IQU.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_IQU.png b/plots/NGC1068_x274020/NGC1068_FOC_IQU.png index 7963080..02db90a 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_IQU.png and b/plots/NGC1068_x274020/NGC1068_FOC_IQU.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_I_err.png b/plots/NGC1068_x274020/NGC1068_FOC_I_err.png index 3c482e9..eb22b04 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_I_err.png and b/plots/NGC1068_x274020/NGC1068_FOC_I_err.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_P.png b/plots/NGC1068_x274020/NGC1068_FOC_P.png index 8c81abd..8a34034 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_P.png and b/plots/NGC1068_x274020/NGC1068_FOC_P.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_POL0_crop_region.png b/plots/NGC1068_x274020/NGC1068_FOC_POL0_crop_region.png old mode 100755 new mode 100644 diff --git a/plots/NGC1068_x274020/NGC1068_FOC_P_err.png b/plots/NGC1068_x274020/NGC1068_FOC_P_err.png index 24e236e..b67c722 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_P_err.png and b/plots/NGC1068_x274020/NGC1068_FOC_P_err.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_P_flux.png b/plots/NGC1068_x274020/NGC1068_FOC_P_flux.png index b9a0a51..b15bbb4 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_P_flux.png and b/plots/NGC1068_x274020/NGC1068_FOC_P_flux.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_SNRi.png b/plots/NGC1068_x274020/NGC1068_FOC_SNRi.png index f65c1be..7ddcb13 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_SNRi.png and b/plots/NGC1068_x274020/NGC1068_FOC_SNRi.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_SNRp.png b/plots/NGC1068_x274020/NGC1068_FOC_SNRp.png index dfc2622..cdf12cb 100644 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_SNRp.png and b/plots/NGC1068_x274020/NGC1068_FOC_SNRp.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_center_image.png b/plots/NGC1068_x274020/NGC1068_FOC_center_image.png old mode 100755 new mode 100644 index 432e75c..1265f23 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_center_image.png and b/plots/NGC1068_x274020/NGC1068_FOC_center_image.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010.png new file mode 100644 index 0000000..6a0588b Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_IQU.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_IQU.png new file mode 100644 index 0000000..43d1b85 Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_IQU.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_I_err.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_I_err.png new file mode 100644 index 0000000..bfbe0e1 Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_I_err.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P.png new file mode 100644 index 0000000..bacc2c6 Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P_err.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P_err.png new file mode 100644 index 0000000..534def0 Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P_err.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P_flux.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P_flux.png new file mode 100644 index 0000000..6b58216 Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_P_flux.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_SNRi.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_SNRi.png new file mode 100644 index 0000000..27aee7c Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_SNRi.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_SNRp.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_SNRp.png new file mode 100644 index 0000000..1a26b41 Binary files /dev/null and b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_SNRp.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae.png deleted file mode 100644 index e431e54..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_IQU.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_IQU.png deleted file mode 100644 index faa58a8..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_IQU.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_I_err.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_I_err.png deleted file mode 100644 index c4d7d15..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_I_err.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P.png deleted file mode 100644 index 87b1520..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P_err.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P_err.png deleted file mode 100644 index a0360aa..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P_err.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P_flux.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P_flux.png deleted file mode 100644 index 2233162..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_P_flux.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_SNRi.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_SNRi.png deleted file mode 100644 index db3c794..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_SNRi.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_SNRp.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_SNRp.png deleted file mode 100644 index fa35096..0000000 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM010_wae_SNRp.png and /dev/null differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_IQU.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_IQU.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_IQU.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_IQU.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_I_err.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_I_err.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_I_err.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_I_err.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_P.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_P.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_P.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_P.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_P_err.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_P_err.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_P_err.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_P_err.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_P_flux.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_P_flux.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_P_flux.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_P_flux.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_SNRi.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_SNRi.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_SNRi.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_SNRi.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_SNRp.png b/plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_SNRp.png similarity index 100% rename from plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_wae_SNRp.png rename to plots/NGC1068_x274020/NGC1068_FOC_combine_FWHM020_SNRp.png diff --git a/plots/NGC1068_x274020/NGC1068_FOC_crop_region.png b/plots/NGC1068_x274020/NGC1068_FOC_crop_region.png old mode 100755 new mode 100644 diff --git a/plots/NGC1068_x274020/NGC1068_FOC_errors_background_flux.png b/plots/NGC1068_x274020/NGC1068_FOC_errors_background_flux.png old mode 100755 new mode 100644 index 6e70762..01f1423 Binary files a/plots/NGC1068_x274020/NGC1068_FOC_errors_background_flux.png and b/plots/NGC1068_x274020/NGC1068_FOC_errors_background_flux.png differ diff --git a/plots/NGC1068_x274020/NGC1068_FOC_errors_background_location.png b/plots/NGC1068_x274020/NGC1068_FOC_errors_background_location.png old mode 100755 new mode 100644 diff --git a/src/FOC_reduction.py b/src/FOC_reduction.py index c31909c..ba805d9 100755 --- a/src/FOC_reduction.py +++ b/src/FOC_reduction.py @@ -18,12 +18,12 @@ from lib.deconvolve import from_file_psf def main(): ##### User inputs ## Input and output locations - globals()['data_folder'] = "../data/NGC1068_x274020/" - infiles = ['x274020at.c0f.fits','x274020bt.c0f.fits','x274020ct.c0f.fits', - 'x274020dt.c0f.fits','x274020et.c0f.fits','x274020ft.c0f.fits', - 'x274020gt.c0f.fits','x274020ht.c0f.fits','x274020it.c0f.fits'] - psf_file = 'NGC1068_f253m00.fits' - globals()['plots_folder'] = "../plots/NGC1068_x274020/" +# globals()['data_folder'] = "../data/NGC1068_x274020/" +# infiles = ['x274020at.c0f.fits','x274020bt.c0f.fits','x274020ct.c0f.fits', +# 'x274020dt.c0f.fits','x274020et.c0f.fits','x274020ft.c0f.fits', +# 'x274020gt.c0f.fits','x274020ht.c0f.fits','x274020it.c0f.fits'] +# psf_file = 'NGC1068_f253m00.fits' +# globals()['plots_folder'] = "../plots/NGC1068_x274020/" # globals()['data_folder'] = "../data/NGC1068_x14w010/" # infiles = ['x14w0101t_c0f.fits','x14w0102t_c0f.fits','x14w0103t_c0f.fits', @@ -62,10 +62,10 @@ def main(): # 'x3995202r_c0f.fits','x3995206r_c0f.fits'] # globals()['plots_folder'] = "../plots/PG1630+377_x39510/" -# globals()['data_folder'] = "../data/IC5063_x3nl030/" -# infiles = ['x3nl0301r_c0f.fits','x3nl0302r_c0f.fits','x3nl0303r_c0f.fits'] -# psf_file = 'IC5063_f502m00.fits' -# globals()['plots_folder'] = "../plots/IC5063_x3nl030/" + globals()['data_folder'] = "../data/IC5063_x3nl030/" + infiles = ['x3nl0301r_c0f.fits','x3nl0302r_c0f.fits','x3nl0303r_c0f.fits'] + psf_file = 'IC5063_f502m00.fits' + globals()['plots_folder'] = "../plots/IC5063_x3nl030/" # globals()['data_folder'] = "../data/MKN3_x3nl010/" # infiles = ['x3nl0101r_c0f.fits','x3nl0102r_c0f.fits','x3nl0103r_c0f.fits'] @@ -116,8 +116,8 @@ def main(): rotate_stokes = True #rotation to North convention can give erroneous results rotate_data = False #rotation to North convention can give erroneous results # Polarization map output - figname = 'NGC1068_FOC' #target/intrument name - figtype = '_combine_FWHM020_wae' #additionnal informations + figname = 'IC5063_FOC' #target/intrument name + figtype = '_combine_FWHM020' #additionnal informations SNRp_cut = 10. #P measurments with SNR>3 SNRi_cut = 100. #I measurments with SNR>30, which implies an uncertainty in P of 4.7%. step_vec = 1 #plot all vectors in the array. if step_vec = 2, then every other vector will be plotted @@ -127,41 +127,21 @@ def main(): ## Step 1: # Get data from fits files and translate to flux in erg/cm²/s/Angstrom. data_array, headers = proj_fits.get_obs_data(infiles, data_folder=data_folder, compute_flux=True) - for data in data_array: - if (data < 0.).any(): - print("ETAPE 1 : ", data) # Crop data to remove outside blank margins. - print(">Crop") data_array, error_array, headers = proj_red.crop_array(data_array, headers, step=5, null_val=0., inside=True, display=display_crop, savename=figname, plots_folder=plots_folder) - for data in data_array: - if (data < 0.).any(): - print("ETAPE 2 : ", data) # Deconvolve data using Richardson-Lucy iterative algorithm with a gaussian PSF of given FWHM. if deconvolve: - print(">Deconvolve") data_array = proj_red.deconvolve_array(data_array, headers, psf=psf, FWHM=psf_FWHM, scale=psf_scale, shape=psf_shape, iterations=iterations) # Estimate error from data background, estimated from sub-image of desired sub_shape. - print(">Get error") data_array, error_array, headers = proj_red.get_error(data_array, headers, sub_shape=error_sub_shape, display=display_error, savename=figname+"_errors", plots_folder=plots_folder) - for data in data_array: - if (data < 0.).any(): - print("ETAPE 3 : ", data) # Rebin data to desired pixel size. Dxy = np.ones(2) if rebin: - print(">Rebin") data_array, error_array, headers, Dxy = proj_red.rebin_array(data_array, error_array, headers, pxsize=pxsize, scale=px_scale, operation=rebin_operation) - for data in data_array: - if (data < 0.).any(): - print("ETAPE 4 : ", data) # Align and rescale images with oversampling. data_mask = np.zeros(data_array.shape[1:]).astype(bool) if px_scale.lower() not in ['full','integrate']: - print(">Align") data_array, error_array, headers, data_mask = proj_red.align_data(data_array, headers, error_array, upsample_factor=int(Dxy.min()), ref_center=align_center, return_shifts=False) - for data in data_array: - if (data < 0.).any(): - print("ETAPE 5 : ", data) if px_scale.lower() not in ['full','integrate']: vertex = image_hull((1.-data_mask),step=5,null_val=0.,inside=True) @@ -173,15 +153,11 @@ def main(): # Rotate data to have North up ref_header = deepcopy(headers[0]) if rotate_data: - print(">Rotate data") alpha = ref_header['orientat'] mrot = np.array([[np.cos(-alpha), -np.sin(-alpha)], [np.sin(-alpha), np.cos(-alpha)]]) rectangle[0:2] = np.dot(mrot, np.asarray(rectangle[0:2]))+np.array(data_array.shape[1:])/2 rectangle[4] = alpha data_array, error_array, headers, data_mask = proj_red.rotate_data(data_array, error_array, data_mask, headers, -ref_header['orientat']) - for data in data_array: - if (data < 0.).any(): - print("ETAPE 6 : ", data) #Plot array for checking output if display_data: proj_plots.plot_obs(data_array, headers, vmin=data_array.min(), vmax=data_array.max(), rectangle =[rectangle,]*data_array.shape[0], savename=figname+"_center_"+align_center, plots_folder=plots_folder) @@ -192,14 +168,12 @@ def main(): # FWHM of FOC have been estimated at about 0.03" across 1500-5000 Angstrom band, which is about 2 detector pixels wide # see Jedrzejewski, R.; Nota, A.; Hack, W. J., A Comparison Between FOC and WFPC2 # Bibcode : 1995chst.conf...10J - print(">Compute Stokes") I_stokes, Q_stokes, U_stokes, Stokes_cov = proj_red.compute_Stokes(data_array, error_array, data_mask, headers, FWHM=smoothing_FWHM, scale=smoothing_scale, smoothing=smoothing_function) ## Step 3: # Rotate images to have North up ref_header = deepcopy(headers[0]) if rotate_stokes: - print(">Rotate stokes") alpha = ref_header['orientat'] mrot = np.array([[np.cos(-alpha), -np.sin(-alpha)], [np.sin(-alpha), np.cos(-alpha)]]) @@ -207,7 +181,6 @@ def main(): rectangle[4] = alpha I_stokes, Q_stokes, U_stokes, Stokes_cov, headers, data_mask = proj_red.rotate_Stokes(I_stokes, Q_stokes, U_stokes, Stokes_cov, data_mask, headers, -ref_header['orientat'], SNRi_cut=None) # Compute polarimetric parameters (polarization degree and angle). - print(">Compute Pol") P, debiased_P, s_P, s_P_P, PA, s_PA, s_PA_P = proj_red.compute_pol(I_stokes, Q_stokes, U_stokes, Stokes_cov, headers) ## Step 4: diff --git a/src/lib/fits.py b/src/lib/fits.py index 8837b9d..68c3c76 100755 --- a/src/lib/fits.py +++ b/src/lib/fits.py @@ -126,6 +126,10 @@ def save_Stokes(I_stokes, Q_stokes, U_stokes, Stokes_cov, P, debiased_P, s_P, header['targname'] = (ref_header['targname'], 'Target name') header['orientat'] = (ref_header['orientat'], 'Angle between North and the y-axis of the image') header['filename'] = (filename, 'Original filename') + header['P_int'] = (ref_header['P_int'], 'Integrated polarization degree') + header['P_int_err'] = (ref_header['P_int_err'], 'Integrated polarization degree error') + header['PA_int'] = (ref_header['PA_int'], 'Integrated polarization angle') + header['PA_int_err'] = (ref_header['PA_int_err'], 'Integrated polarization angle error') #Create HDUList object hdul = fits.HDUList([]) diff --git a/src/lib/plots.py b/src/lib/plots.py index 9e62f07..1799a95 100755 --- a/src/lib/plots.py +++ b/src/lib/plots.py @@ -233,7 +233,7 @@ def polarization_map(Stokes, data_mask=None, rectangle=None, SNRp_cut=3., SNRi_c #Get image mask if data_mask is None: - data_mask = np.ones(stkI.shape).astype(bool) + data_mask = np.zeros(stkI.shape).astype(bool) #Plot Stokes parameters map if display is None or display.lower() == 'default': @@ -353,43 +353,15 @@ def polarization_map(Stokes, data_mask=None, rectangle=None, SNRp_cut=3., SNRi_c ax.add_patch(Rectangle((x, y), width, height, angle=angle, edgecolor=color, fill=False)) - # Compute integrated parameters and associated errors for pixels in the cut - n_pix = mask.size - I_int = stkI.data[mask].sum() - Q_int = stkQ.data[mask].sum() - U_int = stkU.data[mask].sum() - I_int_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[0,0][mask])) - Q_int_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[1,1][mask])) - U_int_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[2,2][mask])) - IQ_int_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[0,1][mask]**2)) - IU_int_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[0,2][mask]**2)) - QU_int_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[1,2][mask]**2)) - - P_int = np.sqrt(Q_int**2+U_int**2)/I_int - P_int_err = (1./I_int)*np.sqrt((Q_int**2*Q_int_err**2 + U_int**2*U_int_err**2 + 2.*Q_int*U_int*QU_int_err)/(Q_int**2 + U_int**2) + ((Q_int/I_int)**2 + (U_int/I_int)**2)*I_int_err**2 - 2.*(Q_int/I_int)*IQ_int_err - 2.*(U_int/I_int)*IU_int_err) - - PA_int = princ_angle((90./np.pi)*np.arctan2(U_int,Q_int)) - PA_int_err = (90./(np.pi*(Q_int**2 + U_int**2)))*np.sqrt(U_int**2*Q_int_err**2 + Q_int**2*U_int_err**2 - 2.*Q_int*U_int*QU_int_err) - - # Compute integrated parameters and associated errors for all pixels + #Get integrated values from header n_pix = stkI.data[data_mask].size I_diluted = stkI.data[data_mask].sum() - Q_diluted = stkQ.data[data_mask].sum() - U_diluted = stkU.data[data_mask].sum() I_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[0,0][data_mask])) - Q_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[1,1][data_mask])) - U_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[2,2][data_mask])) - IQ_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[0,1][data_mask]**2)) - IU_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[0,2][data_mask]**2)) - QU_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(stk_cov.data[1,2][data_mask]**2)) - P_diluted = np.sqrt(Q_diluted**2+U_diluted**2)/I_diluted - P_diluted_err = (1./I_diluted)*np.sqrt((Q_diluted**2*Q_diluted_err**2 + U_diluted**2*U_diluted_err**2 + 2.*Q_diluted*U_diluted*QU_diluted_err)/(Q_diluted**2 + U_diluted**2) + ((Q_diluted/I_diluted)**2 + (U_diluted/I_diluted)**2)*I_diluted_err**2 - 2.*(Q_diluted/I_diluted)*IQ_diluted_err - 2.*(U_diluted/I_diluted)*IU_diluted_err) - #P_diluted_err = np.sqrt(2/n_pix)*100. - - PA_diluted = princ_angle((90./np.pi)*np.arctan2(U_diluted,Q_diluted)) - PA_diluted_err = (90./(np.pi*(Q_diluted**2 + U_diluted**2)))*np.sqrt(U_diluted**2*Q_diluted_err**2 + Q_diluted**2*U_diluted_err**2 - 2.*Q_diluted*U_diluted*QU_diluted_err) - #PA_diluted_err = P_diluted_err/(2.*P_diluted)*180./np.pi + P_diluted = Stokes[0].header['P_int'] + P_diluted_err = Stokes[0].header['P_int_err'] + PA_diluted = Stokes[0].header['PA_int'] + PA_diluted_err = Stokes[0].header['PA_int_err'] ax.annotate(r"$F_{{\lambda}}^{{int}}$({0:.0f} $\AA$) = {1} $ergs \cdot cm^{{-2}} \cdot s^{{-1}} \cdot \AA^{{-1}}$".format(pivot_wav,sci_not(I_diluted*convert_flux,I_diluted_err*convert_flux,2))+"\n"+r"$P^{{int}}$ = {0:.1f} $\pm$ {1:.1f} %".format(P_diluted*100.,P_diluted_err*100.)+"\n"+r"$\theta_{{P}}^{{int}}$ = {0:.1f} $\pm$ {1:.1f} °".format(PA_diluted,PA_diluted_err), color='white', fontsize=16, xy=(0.01, 0.92), xycoords='axes fraction') diff --git a/src/lib/reduction.py b/src/lib/reduction.py index 4bc3592..6e4f38b 100755 --- a/src/lib/reduction.py +++ b/src/lib/reduction.py @@ -67,6 +67,17 @@ globals()['theta'] = np.array([180.*np.pi/180., 60.*np.pi/180., 120.*np.pi/180.] globals()['sigma_theta'] = np.array([3.*np.pi/180., 3.*np.pi/180., 3.*np.pi/180.]) +def princ_angle(ang): + """ + Return the principal angle in the 0-180° quadrant. + """ + while ang < 0.: + ang += 180. + while ang > 180.: + ang -= 180. + return ang + + def get_row_compressor(old_dimension, new_dimension, operation='sum'): """ Return the matrix that allows to compress an array from an old dimension of @@ -454,19 +465,9 @@ def get_error(data_array, headers, sub_shape=(15,15), display=False, #flatfielding uncertainties #estimated to less than 3% err_flat = data_array[i]*0.03 - if i==0: - pr = data_array[i] > 0. - print("Background error = {0:2.2f}%".format(np.median(error_array[i][pr]/data_array[i][pr]*100.))) - print("Wavelength polarizer dependence error = {0:2.2f}%".format(np.median(err_wav[pr]/data_array[i][pr]*100.))) - print("PSF polarizer difference error = {0:2.2f}%".format(np.median(err_psf[pr]/data_array[i][pr]*100.))) - print("Flatfield polarizer difference error = {0:2.2f}%".format(np.median(err_flat[pr]/data_array[i][pr]*100.))) error_array[i] = np.sqrt(error_array[i]**2 + err_wav**2 + err_psf**2 + err_flat**2) - if i==0: - pr = data_array[i] > 0. - print("Total estimated error = {0:2.2f}%".format(np.median(error_array[i][pr]/data_array[i][pr]*100.))) - background[i] = sub_image.sum() if (data_array[i] < 0.).any(): print(data_array[i]) @@ -610,11 +611,6 @@ def rebin_array(data_array, error_array, headers, pxsize, scale, new_error[mask] = np.sqrt(bin_ndarray(error**2*image, new_shape=new_shape, operation='sum')[mask]/sum_image[mask]) rebinned_error.append(np.sqrt(rms_image**2 + new_error**2)) - if i==0: - pr = rebin_data > 0. - print("Rebin RMS error = {0:2.2f}%".format(np.median(rms_image[pr]/rebin_data[pr]*100.))) - print("Rebin weigthed sum squarred error = {0:2.2f}%".format(np.median(new_error[pr]/rebin_data[pr]*100.))) - print("Total rebin error = {0:2.2f}%".format(np.median(rebinned_error[0][pr]/rebin_data[pr]*100.))) # Update header w = w.slice((np.s_[::Dxy[0]], np.s_[::Dxy[1]])) @@ -759,18 +755,8 @@ def align_data(data_array, headers, error_array=None, upsample_factor=1., shifted_image = sc_shift(rescaled_image[i], prec_shift, cval=0.) error_shift = np.abs(rescaled_image[i] - shifted_image)/2. #sum quadratically the errors - if i==0: - pr = rescaled_image[0] > 0. - print("Rescaled (aligned) error = {0:2.2f}%".format(np.median(rescaled_error[0][pr]/rescaled_image[0][pr]*100.))) - print("Shift error = {0:2.2f}%".format(np.median(error_shift[pr]/rescaled_image[0][pr]*100.))) - rescaled_error[i] = np.sqrt(rescaled_error[i]**2 + error_shift**2) - if i==0: - pr = rescaled_image[0] > 0. - print("Total align error = {0:2.2f}%".format(np.median(rescaled_error[0][pr]/rescaled_image[0][pr]*100.))) - #rescaled_error[i][1-rescaled_mask[i]] = 0. - shifts.append(shift) errors.append(error) @@ -890,9 +876,6 @@ def smooth_data(data_array, error_array, data_mask, headers, FWHM=1., else: raise ValueError("{} is not a valid smoothing option".format(smoothing)) - pr = smoothed > 0. - print("Smoothed error = {0:2.2f}%".format(np.median(error[pr]/smoothed[pr]*100.))) - return smoothed, error @@ -997,9 +980,6 @@ def polarizer_avg(data_array, error_array, data_mask, headers, FWHM=None, err120 = np.sqrt(np.sum(err120_array**2,axis=0)) polerr_array = np.array([err0, err60, err120]) - pr = pol0 > 0. - print("Summed POL0 error = {0:2.2f}%".format(np.median(err0[pr]/pol0[pr]*100.))) - # Update headers for header in headers: if header['filtnam1']=='POL0': @@ -1034,9 +1014,6 @@ def polarizer_avg(data_array, error_array, data_mask, headers, FWHM=None, polarizer_cov[1,1] = err60**2 polarizer_cov[2,2] = err120**2 - pr = pol0 > 0. - print("Total POL0 error = {0:2.2f}%".format(np.median(err0[pr]/pol0[pr]*100.))) - return polarizer_array, polarizer_cov @@ -1191,25 +1168,11 @@ def compute_Stokes(data_array, error_array, data_mask, headers, s_Q2_axis = np.sum([dQ_dtheta[i]**2 * sigma_theta[i]**2 for i in range(len(sigma_theta))],axis=0) s_U2_axis = np.sum([dU_dtheta[i]**2 * sigma_theta[i]**2 for i in range(len(sigma_theta))],axis=0) - prI = I_stokes > 0. - print("Propagated I_stokes error = {0:2.2f}%".format(np.median(np.sqrt(Stokes_cov[0,0][prI])/I_stokes[prI]*100.))) - print("Axis I_stokes error = {0:2.2f}%".format(np.median(np.sqrt(s_I2_axis[prI])/I_stokes[prI]*100.))) - prQ = Q_stokes > 0. - print("Propagated Q_stokes error = {0:2.2f}%".format(np.median(np.sqrt(Stokes_cov[1,1][prQ])/Q_stokes[prQ]*100.))) - print("Axis Q_stokes error = {0:2.2f}%".format(np.median(np.sqrt(s_Q2_axis[prQ])/Q_stokes[prQ]*100.))) - prU = U_stokes > 0. - print("Propagated U_stokes error = {0:2.2f}%".format(np.median(np.sqrt(Stokes_cov[2,2][prU])/U_stokes[prU]*100.))) - print("Axis U_stokes error = {0:2.2f}%".format(np.median(np.sqrt(s_U2_axis[prU])/U_stokes[prU]*100.))) - # Add quadratically the uncertainty to the Stokes covariance matrix Stokes_cov[0,0] += s_I2_axis Stokes_cov[1,1] += s_Q2_axis Stokes_cov[2,2] += s_U2_axis - print("Total I_stokes error = {0:2.2f}%".format(np.median(np.sqrt(Stokes_cov[0,0][prI])/I_stokes[prI]*100.))) - print("Total Q_stokes error = {0:2.2f}%".format(np.median(np.sqrt(Stokes_cov[1,1][prQ])/Q_stokes[prQ]*100.))) - print("Total U_stokes error = {0:2.2f}%".format(np.median(np.sqrt(Stokes_cov[2,2][prU])/U_stokes[prU]*100.))) - if not(FWHM is None) and (smoothing.lower() in ['gaussian_after','gauss_after']): Stokes_array = np.array([I_stokes, Q_stokes, U_stokes]) Stokes_error = np.array([np.sqrt(Stokes_cov[i,i]) for i in range(3)]) @@ -1220,6 +1183,31 @@ def compute_Stokes(data_array, error_array, data_mask, headers, I_stokes, Q_stokes, U_stokes = Stokes_array Stokes_cov[0,0], Stokes_cov[1,1], Stokes_cov[2,2] = Stokes_error**2 + + #Compute integrated values for P, PA before any rotation + mask = (1-data_mask).astype(bool) + n_pix = I_stokes[mask].size + I_diluted = I_stokes[mask].sum() + Q_diluted = Q_stokes[mask].sum() + U_diluted = U_stokes[mask].sum() + I_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(Stokes_cov[0,0][mask])) + Q_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(Stokes_cov[1,1][mask])) + U_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(Stokes_cov[2,2][mask])) + IQ_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(Stokes_cov[0,1][mask]**2)) + IU_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(Stokes_cov[0,2][mask]**2)) + QU_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(Stokes_cov[1,2][mask]**2)) + + P_diluted = np.sqrt(Q_diluted**2+U_diluted**2)/I_diluted + P_diluted_err = (1./I_diluted)*np.sqrt((Q_diluted**2*Q_diluted_err**2 + U_diluted**2*U_diluted_err**2 + 2.*Q_diluted*U_diluted*QU_diluted_err)/(Q_diluted**2 + U_diluted**2) + ((Q_diluted/I_diluted)**2 + (U_diluted/I_diluted)**2)*I_diluted_err**2 - 2.*(Q_diluted/I_diluted)*IQ_diluted_err - 2.*(U_diluted/I_diluted)*IU_diluted_err) + + PA_diluted = princ_angle((90./np.pi)*np.arctan2(U_diluted,Q_diluted)) + PA_diluted_err = (90./(np.pi*(Q_diluted**2 + U_diluted**2)))*np.sqrt(U_diluted**2*Q_diluted_err**2 + Q_diluted**2*U_diluted_err**2 - 2.*Q_diluted*U_diluted*QU_diluted_err) + + for header in headers: + header['P_int'] = (P_diluted, 'Integrated polarization degree') + header['P_int_err'] = (P_diluted_err, 'Integrated polarization degree error') + header['PA_int'] = (PA_diluted, 'Integrated polarization angle') + header['PA_int_err'] = (PA_diluted_err, 'Integrated polarization angle error') return I_stokes, Q_stokes, U_stokes, Stokes_cov @@ -1317,11 +1305,6 @@ def compute_pol(I_stokes, Q_stokes, U_stokes, Stokes_cov, headers): s_P_P[np.isnan(s_P_P)] = fmax s_PA_P[np.isnan(s_PA_P)] = fmax - prP = P > 0. - prPA = PA > 0. - print("Propagated P error = {0:2.2f}%".format(np.median(s_P[prP]/P[prP]*100.))) - print("Propagated PA error = {0:2.2f}%".format(np.median(s_PA[prPA]/PA[prPA]*100.))) - return P, debiased_P, s_P, s_P_P, PA, s_PA, s_PA_P @@ -1450,12 +1433,31 @@ def rotate_Stokes(I_stokes, Q_stokes, U_stokes, Stokes_cov, data_mask, headers, new_U_stokes[np.isnan(new_U_stokes)] = 0. new_Stokes_cov[np.isnan(new_Stokes_cov)] = fmax - prI = new_I_stokes > 0. - prQ = new_Q_stokes > 0. - prU = new_U_stokes > 0. - print("Propagated rotated I_stokes error = {0:2.2f}%".format(np.median(np.sqrt(new_Stokes_cov[0,0][prI])/new_I_stokes[prI]*100.))) - print("Propagated rotated Q_stokes error = {0:2.2f}%".format(np.median(np.sqrt(new_Stokes_cov[1,1][prQ])/new_Q_stokes[prQ]*100.))) - print("Propagated rotated U_stokes error = {0:2.2f}%".format(np.median(np.sqrt(new_Stokes_cov[2,2][prU])/new_U_stokes[prU]*100.))) + #Compute updated integrated values for P, PA + mask = (1-new_data_mask).astype(bool) + n_pix = new_I_stokes[mask].size + I_diluted = new_I_stokes[mask].sum() + Q_diluted = new_Q_stokes[mask].sum() + U_diluted = new_U_stokes[mask].sum() + I_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(new_Stokes_cov[0,0][mask])) + Q_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(new_Stokes_cov[1,1][mask])) + U_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(new_Stokes_cov[2,2][mask])) + IQ_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(new_Stokes_cov[0,1][mask]**2)) + IU_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(new_Stokes_cov[0,2][mask]**2)) + QU_diluted_err = np.sqrt(n_pix)*np.sqrt(np.sum(new_Stokes_cov[1,2][mask]**2)) + + P_diluted = np.sqrt(Q_diluted**2+U_diluted**2)/I_diluted + P_diluted_err = (1./I_diluted)*np.sqrt((Q_diluted**2*Q_diluted_err**2 + U_diluted**2*U_diluted_err**2 + 2.*Q_diluted*U_diluted*QU_diluted_err)/(Q_diluted**2 + U_diluted**2) + ((Q_diluted/I_diluted)**2 + (U_diluted/I_diluted)**2)*I_diluted_err**2 - 2.*(Q_diluted/I_diluted)*IQ_diluted_err - 2.*(U_diluted/I_diluted)*IU_diluted_err) + + PA_diluted = princ_angle((90./np.pi)*np.arctan2(U_diluted,Q_diluted)) + PA_diluted_err = (90./(np.pi*(Q_diluted**2 + U_diluted**2)))*np.sqrt(U_diluted**2*Q_diluted_err**2 + Q_diluted**2*U_diluted_err**2 - 2.*Q_diluted*U_diluted*QU_diluted_err) + + for header in new_headers: + header['P_int'] = (P_diluted, 'Integrated polarization degree') + header['P_int_err'] = (P_diluted_err, 'Integrated polarization degree error') + header['PA_int'] = (PA_diluted, 'Integrated polarization angle') + header['PA_int_err'] = (PA_diluted_err, 'Integrated polarization angle error') + return new_I_stokes, new_Q_stokes, new_U_stokes, new_Stokes_cov, new_headers, new_data_mask @@ -1496,9 +1498,6 @@ def rotate_data(data_array, error_array, data_mask, headers, ang): cval=0.)) new_error_array.append(sc_rotate(error_array[i], ang, order=5, reshape=False, cval=error_array.mean())) - if i==0: - pr = new_data_array[0] > 0. - print("Rotated data error = {0:2.2f}%".format(np.median(new_error_array[0][pr]/new_data_array[0][pr]*100.))) new_data_array = np.array(new_data_array) new_data_mask = sc_rotate(data_mask, ang, order=5, reshape=False, cval=True) new_error_array = np.array(new_error_array) diff --git a/src/lib/test_overplot.py b/src/lib/test_overplot.py index b7df60e..508e5e1 100755 --- a/src/lib/test_overplot.py +++ b/src/lib/test_overplot.py @@ -3,7 +3,7 @@ from astropy.io import fits import numpy as np from plots import overplot_maps -Stokes_UV = fits.open("../../data/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol_wae.fits") +Stokes_UV = fits.open("../../data/IC5063_x3nl030/IC5063_FOC_combine_FWHM020_pol.fits") Stokes_18GHz = fits.open("../../data/IC5063_x3nl030/radio/IC5063.18GHz.fits") Stokes_24GHz = fits.open("../../data/IC5063_x3nl030/radio/IC5063.24GHz.fits") @@ -12,9 +12,9 @@ levelsMorganti = np.array([1.,2.,3.,8.,16.,32.,64.,128.]) #levels18GHz = np.array([0.6, 1.5, 3, 6, 12, 24, 48, 96])/100.*Stokes_18GHz[0].data.max() levels18GHz = levelsMorganti*0.28*1e-3 A = overplot_maps(Stokes_UV, Stokes_18GHz) -A.plot(levels=levels18GHz, SNRp_cut=10.0, SNRi_cut=100.0, savename='../../plots/IC5063_x3nl030/18GHz_overplot_forced_maxUV.png') +A.plot(levels=levels18GHz, SNRp_cut=10.0, SNRi_cut=100.0, savename='../../plots/IC5063_x3nl030/18GHz_overplot.png') #levels24GHz = np.array([1.,1.5, 3, 6, 12, 24, 48, 96])/100.*Stokes_24GHz[0].data.max() levels24GHz = levelsMorganti*0.46*1e-3 B = overplot_maps(Stokes_UV, Stokes_24GHz) -B.plot(levels=levels24GHz, SNRp_cut=10.0, SNRi_cut=100.0, savename='../../plots/IC5063_x3nl030/24GHz_overplot_forced_maxUV.png') +B.plot(levels=levels24GHz, SNRp_cut=10.0, SNRi_cut=100.0, savename='../../plots/IC5063_x3nl030/24GHz_overplot.png')