From 91764fc15699c6e5b8dab318f358076fbd774005 Mon Sep 17 00:00:00 2001 From: Thibault Barnouin Date: Mon, 4 Sep 2023 11:39:01 +0200 Subject: [PATCH] add vec_scale capabilities to overplot --- src/lib/plots.py | 8 +++---- src/overplot.py | 56 ++++++++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/lib/plots.py b/src/lib/plots.py index 77fc2c9..3ddb20a 100755 --- a/src/lib/plots.py +++ b/src/lib/plots.py @@ -728,7 +728,7 @@ class overplot_pol(align_maps): Class to overplot maps from different observations. Inherit from class align_maps in order to get the same WCS on both maps. """ - def overplot(self, SNRp_cut=3., SNRi_cut=30., savename=None, **kwargs): + def overplot(self, SNRp_cut=3., SNRi_cut=30., vec_scale=2., savename=None, **kwargs): self.Stokes_UV = self.map self.wcs_UV = self.wcs_map #Get Data @@ -774,7 +774,7 @@ class overplot_pol(align_maps): step_vec = 1 X, Y = np.meshgrid(np.arange(stkI.data.shape[1]), np.arange(stkI.data.shape[0])) U, V = pol.data*np.cos(np.pi/2.+pang.data*np.pi/180.), pol.data*np.sin(np.pi/2.+pang.data*np.pi/180.) - Q = self.ax.quiver(X[::step_vec,::step_vec],Y[::step_vec,::step_vec],U[::step_vec,::step_vec],V[::step_vec,::step_vec],units='xy',angles='uv',scale=0.5,scale_units='xy',pivot='mid',headwidth=0.,headlength=0.,headaxislength=0.,width=0.1,color='w') + Q = self.ax.quiver(X[::step_vec,::step_vec],Y[::step_vec,::step_vec],U[::step_vec,::step_vec],V[::step_vec,::step_vec],units='xy',angles='uv',scale=1./vec_scale,scale_units='xy',pivot='mid',headwidth=0.,headlength=0.,headaxislength=0.,width=0.1,linewidth=0.5,color='white',edgecolor='black') #Display "other" intensity map vmin, vmax = 0., np.max(other_data[other_data > 0.]*other_convert) @@ -807,10 +807,10 @@ class overplot_pol(align_maps): self.fig2.canvas.draw() - def plot(self, SNRp_cut=3., SNRi_cut=30., savename=None, **kwargs) -> None: + def plot(self, SNRp_cut=3., SNRi_cut=30., vec_scale=2., savename=None, **kwargs) -> None: while not self.aligned: self.align() - self.overplot(SNRp_cut=SNRp_cut, SNRi_cut=SNRi_cut, savename=savename, **kwargs) + self.overplot(SNRp_cut=SNRp_cut, SNRi_cut=SNRi_cut, vec_scale=vec_scale, savename=savename, **kwargs) plt.show(block=True) diff --git a/src/overplot.py b/src/overplot.py index a61f4f0..20ea871 100755 --- a/src/overplot.py +++ b/src/overplot.py @@ -6,44 +6,44 @@ from copy import deepcopy from lib.plots import overplot_radio, overplot_pol, align_pol from matplotlib.colors import LogNorm -Stokes_UV = fits.open("./data/IC5063/5918/IC5063_FOC_c_020arcsec.fits") -Stokes_18GHz = fits.open("./data/IC5063/radio/IC5063_18GHz.fits") -Stokes_24GHz = fits.open("./data/IC5063/radio/IC5063_24GHz.fits") -Stokes_103GHz = fits.open("./data/IC5063/radio/IC5063_103GHz.fits") -Stokes_229GHz = fits.open("./data/IC5063/radio/IC5063_229GHz.fits") -Stokes_357GHz = fits.open("./data/IC5063/radio/IC5063_357GHz.fits") +Stokes_UV = fits.open("./data/IC5063/5918/IC5063_FOC_b0.10arcsec_c0.20arcsec.fits") +#Stokes_18GHz = fits.open("./data/IC5063/radio/IC5063_18GHz.fits") +#Stokes_24GHz = fits.open("./data/IC5063/radio/IC5063_24GHz.fits") +#Stokes_103GHz = fits.open("./data/IC5063/radio/IC5063_103GHz.fits") +#Stokes_229GHz = fits.open("./data/IC5063/radio/IC5063_229GHz.fits") +#Stokes_357GHz = fits.open("./data/IC5063/radio/IC5063_357GHz.fits") #Stokes_S2 = fits.open("./data/IC5063/POLARIZATION_COMPARISON/S2_rot_crop.fits") Stokes_IR = fits.open("./data/IC5063/IR/u2e65g01t_c0f_rot.fits") 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_radio(Stokes_UV, Stokes_18GHz) -A.plot(levels=levels18GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/18GHz_overplot_forced.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_radio(Stokes_UV, Stokes_24GHz) -B.plot(levels=levels24GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/24GHz_overplot_forced.png') - -levels103GHz = np.linspace(1,99,11)/100.*np.max(deepcopy(Stokes_103GHz[0].data[Stokes_103GHz[0].data > 0.])) -C = overplot_radio(Stokes_UV, Stokes_103GHz) -C.plot(levels=levels103GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/103GHz_overplot_forced.png') - -levels229GHz = np.linspace(1,99,11)/100.*np.max(deepcopy(Stokes_229GHz[0].data[Stokes_229GHz[0].data > 0.])) -D = overplot_radio(Stokes_UV, Stokes_229GHz) -D.plot(levels=levels229GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/229GHz_overplot_forced.png') - -levels357GHz = np.linspace(1,99,11)/100.*np.max(deepcopy(Stokes_357GHz[0].data[Stokes_357GHz[0].data > 0.])) -E = overplot_radio(Stokes_UV, Stokes_357GHz) -E.plot(levels=levels357GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/357GHz_overplot_forced.png') - +#levels18GHz = levelsMorganti*0.28*1e-3 +#A = overplot_radio(Stokes_UV, Stokes_18GHz) +#A.plot(levels=levels18GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/18GHz_overplot_forced.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_radio(Stokes_UV, Stokes_24GHz) +#B.plot(levels=levels24GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/24GHz_overplot_forced.png') +# +#levels103GHz = np.linspace(1,99,11)/100.*np.max(deepcopy(Stokes_103GHz[0].data[Stokes_103GHz[0].data > 0.])) +#C = overplot_radio(Stokes_UV, Stokes_103GHz) +#C.plot(levels=levels103GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/103GHz_overplot_forced.png') +# +#levels229GHz = np.linspace(1,99,11)/100.*np.max(deepcopy(Stokes_229GHz[0].data[Stokes_229GHz[0].data > 0.])) +#D = overplot_radio(Stokes_UV, Stokes_229GHz) +#D.plot(levels=levels229GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/229GHz_overplot_forced.png') +# +#levels357GHz = np.linspace(1,99,11)/100.*np.max(deepcopy(Stokes_357GHz[0].data[Stokes_357GHz[0].data > 0.])) +#E = overplot_radio(Stokes_UV, Stokes_357GHz) +#E.plot(levels=levels357GHz, SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/357GHz_overplot_forced.png') +# #F = overplot_pol(Stokes_UV, Stokes_S2) #F.plot(SNRp_cut=3.0, SNRi_cut=80.0, savename='./plots/IC5063/S2_overplot_forced.png', norm=LogNorm(vmin=5e-20,vmax=5e-18)) G = overplot_pol(Stokes_UV, Stokes_IR, cmap='inferno') -G.plot(SNRp_cut=1.0, SNRi_cut=10.0, savename='./plots/IC5063/IR_overplot_forced.png', norm=LogNorm(vmin=1e-17,vmax=5e-15), cmap='inferno_r') +G.plot(SNRp_cut=1.0, SNRi_cut=10.0, vec_scale=3., savename='./plots/IC5063/IR_overplot_forced.png', norm=LogNorm(vmin=1e-17,vmax=5e-15), cmap='inferno_r') #data_folder1 = "./data/M87/POS1/" #plots_folder1 = "./plots/M87/POS1/"