From f84898a9b4addecb0c6d6f94da43b48ac2e13db5 Mon Sep 17 00:00:00 2001 From: Thibault Barnouin Date: Wed, 25 Sep 2024 17:36:05 +0200 Subject: [PATCH] adjustements to pdf static output --- package/lib/plots.py | 265 +++++++++++++++++--------------- package/src/emission_center.py | 10 +- package/src/overplot_MRK463E.py | 2 +- 3 files changed, 148 insertions(+), 129 deletions(-) diff --git a/package/lib/plots.py b/package/lib/plots.py index 9d05d9c..d021094 100755 --- a/package/lib/plots.py +++ b/package/lib/plots.py @@ -60,7 +60,10 @@ from mpl_toolkits.axes_grid1.anchored_artists import ( ) from scipy.ndimage import zoom as sc_zoom -from .utils import PCconf, princ_angle, rot2D, sci_not +try: + from .utils import PCconf, princ_angle, rot2D, sci_not +except ImportError: + from utils import PCconf, princ_angle, rot2D, sci_not def plot_obs(data_array, headers, rectangle=None, savename=None, plots_folder="", **kwargs): @@ -205,7 +208,6 @@ def plot_Stokes(Stokes, savename=None, plots_folder=""): else: savename = savename[:-4] + "_IQU" + savename[-4:] fig.savefig(path_join(plots_folder, savename), bbox_inches="tight", dpi=150, facecolor="None") - plt.show() return 0 @@ -562,7 +564,7 @@ def polarization_map( if savename is not None: if savename[-4:] not in [".png", ".jpg", ".pdf"]: savename += ".pdf" - fig.savefig(path_join(plots_folder, savename), bbox_inches="tight", dpi=150, facecolor="None") + fig.savefig(path_join(plots_folder, savename), bbox_inches="tight", dpi=300, facecolor="None") return fig, ax @@ -3353,132 +3355,149 @@ if __name__ == "__main__": parser.add_argument( "-pdf", "--static-pdf", metavar="static_pdf", required=False, help="Whether the analysis tool or the static pdfs should be outputed", default=None ) + parser.add_argument( + "-t", "--type", metavar="type", required=False, help="Type of plot to be be outputed", default=None + ) args = parser.parse_args() if args.file is not None: Stokes_UV = fits.open(args.file, mode="readonly") if args.static_pdf is not None: - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"]]), - plots_folder=args.static_pdf, - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "I"]), - plots_folder=args.static_pdf, - display="Intensity", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "P_flux"]), - plots_folder=args.static_pdf, - display="Pol_Flux", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "P"]), - plots_folder=args.static_pdf, - display="Pol_deg", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "PA"]), - plots_folder=args.static_pdf, - display="Pol_ang", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "I_err"]), - plots_folder=args.static_pdf, - display="I_err", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "P_err"]), - plots_folder=args.static_pdf, - display="Pol_deg_err", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "SNRi"]), - plots_folder=args.static_pdf, - display="SNRi", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut if args.p_cut >= 1.0 else 3.0, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "SNRp"]), - plots_folder=args.static_pdf, - display="SNRp", - ) - polarization_map( - Stokes_UV, - Stokes_UV["DATA_MASK"].data.astype(bool), - P_cut=args.p_cut if args.p_cut < 1.0 else 0.99, - SNRi_cut=args.snri, - flux_lim=args.lim, - step_vec=args.step_vec, - scale_vec=args.scale_vec, - savename="_".join([Stokes_UV[0].header["FILENAME"], "confP"]), - plots_folder=args.static_pdf, - display="confp", - ) + if args.type is not None: + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], args.type]), + plots_folder=args.static_pdf, + display=args.type, + ) + else: + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"]]), + plots_folder=args.static_pdf, + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "I"]), + plots_folder=args.static_pdf, + display="Intensity", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "P_flux"]), + plots_folder=args.static_pdf, + display="Pol_Flux", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "P"]), + plots_folder=args.static_pdf, + display="Pol_deg", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "PA"]), + plots_folder=args.static_pdf, + display="Pol_ang", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "I_err"]), + plots_folder=args.static_pdf, + display="I_err", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "P_err"]), + plots_folder=args.static_pdf, + display="Pol_deg_err", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "SNRi"]), + plots_folder=args.static_pdf, + display="SNRi", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut if args.pcut >= 1.0 else 3.0, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "SNRp"]), + plots_folder=args.static_pdf, + display="SNRp", + ) + polarization_map( + Stokes_UV, + Stokes_UV["DATA_MASK"].data.astype(bool), + P_cut=args.pcut if args.pcut < 1.0 else 0.99, + SNRi_cut=args.snri, + flux_lim=args.lim, + step_vec=args.step_vec, + scale_vec=args.scale_vec, + savename="_".join([Stokes_UV[0].header["FILENAME"], "confP"]), + plots_folder=args.static_pdf, + display="confp", + ) else: - pol_map(Stokes_UV, P_cut=args.p_cut, SNRi_cut=args.snri, step_vec=args.step_vec, scale_vec=args.scale_vec, flux_lim=args.lim, pa_err=args.pang_err) + pol_map(Stokes_UV, P_cut=args.pcut, SNRi_cut=args.snri, step_vec=args.step_vec, scale_vec=args.scale_vec, flux_lim=args.lim, pa_err=args.pang_err, selection=args.type) else: print( "python3 plots.py -f -p -i -st -sc -l -pa --pdf " diff --git a/package/src/emission_center.py b/package/src/emission_center.py index ad3453d..a429526 100755 --- a/package/src/emission_center.py +++ b/package/src/emission_center.py @@ -40,16 +40,16 @@ def main(infile, target=None, output_dir=None): if target is None: target = Stokes[0].header["TARGNAME"] - fig = figure(figsize=(8,9),layout="constrained") + fig = figure(figsize=(8,8),layout="constrained") fig, ax = polarization_map(Stokes, P_cut=0.99, step_vec=2, scale_vec=5, display="i", fig=fig) ax.plot(*Stokescenter, marker="+", color="gray", label="Best confidence for center: {0}".format(Stokespos.to_string("hmsdms"))) - confcentcont = ax.contour(Stokescentconf, [0.01], colors="gray") - confcont = ax.contour(Stokesconf, [0.99], colors="r") + confcentcont = ax.contour(Stokescentconf, [0.001], colors="gray") + confcont = ax.contour(Stokesconf, [0.9905], colors="r") snr3cont = ax.contour(Stokessnr, [3.0], colors="b", linestyles="dashed") snr4cont = ax.contour(Stokessnr, [4.0], colors="b") handles, labels = ax.get_legend_handles_labels() - labels.append(r"Center $Conf_{99\%}$ contour") + labels.append(r"Center $Conf_{99.9\%}$ contour") handles.append(Rectangle((0, 0), 1, 1, fill=False, ec=confcentcont.get_edgecolor()[0])) labels.append(r"Polarization $Conf_{99\%}$ contour") handles.append(Rectangle((0, 0), 1, 1, fill=False, ec=confcont.get_edgecolor()[0])) @@ -61,7 +61,7 @@ def main(infile, target=None, output_dir=None): if output_dir is not None: filename = pathjoin(output_dir, "%s_center.pdf" % target) - fig.savefig(filename, dpi=150, facecolor="None") + fig.savefig(filename, dpi=300, facecolor="None") output.append(filename) show() return output diff --git a/package/src/overplot_MRK463E.py b/package/src/overplot_MRK463E.py index a571a7a..a05bfb0 100755 --- a/package/src/overplot_MRK463E.py +++ b/package/src/overplot_MRK463E.py @@ -10,7 +10,7 @@ from astropy.io import fits from lib.plots import overplot_chandra, overplot_pol from matplotlib.colors import LogNorm -Stokes_UV = fits.open("./data/MRK463E/5960/MRK463E_FOC_b0.05arcsec_c0.07arcsec.fits") +Stokes_UV = fits.open("./data/MRK463E/5960/MRK463E_FOC_b0.05arcsec_c0.10arcsec.fits") Stokes_IR = fits.open("./data/MRK463E/WFPC2/IR_rot_crop.fits") Stokes_Xr = fits.open("./data/MRK463E/Chandra/X_ray_crop.fits")