You need to sign in before continuing.
image.py 1.47 KB
from numpy import array, cos, sin 
from matplotlib.pyplot import figure, matshow, savefig, show
from matplotlib.colors import LogNorm
from matplotlib import rcParams
from src.constants import degre

label_size = 20
rcParams['xtick.labelsize'] = label_size 
rcParams['ytick.labelsize'] = label_size 

def image(theta,phi,weight,saveId,step=5,borne=[180,180]):
   '''
      Plot 2D histogram of arrival direction of the photons with energy upper than Elim
      Input: theta and phi in rad (important)
      Input (optional): nature of the source (default isotrop) 
      Input (optional): limits on theta, phi 
      Output: 2D histogram of theta cos(phi), theta sin(phi)
   '''
   fig = figure(figsize=(14,12))
   ax = fig.add_subplot(111) 

   philim=float(borne[0])
   thetalim=float(borne[1])
   bining = array([int(step*2*thetalim)+1,int(step*2*philim)+1])
   limits = [[-thetalim,thetalim],[-philim,philim]]

   H,xedges,yedges,im = ax.hist2d(theta*cos(phi)/degre,theta*sin(phi)/degre,
           bining,weights=weight,norm=LogNorm(),range=limits)
   cbar=fig.colorbar(im, ax=ax)
   cbar.ax.set_ylabel("Surface brightness $dN/(dSd\\Omega_d)$",fontsize=label_size)
                                             
   ax.grid(b=True,which='major')
   ax.set_xlim((-borne[0],borne[0]))
   ax.set_ylim((-borne[1],borne[1]))
   ax.set_xlabel("$\\theta_d$ $\\cos(\\phi_d)$ [deg]",fontsize=label_size)
   ax.set_ylabel("$\\theta_d$ $\\sin(\\phi_d)$ [deg]",fontsize=label_size)

   savefig(saveId+"/image.png")