execfile('/afs/slac/u/ki/lances/python/python_HxRG/HxRG_Setup.py')
execfile('/afs/slac/u/ki/lances/python/Thesis_3_Plots_1_2PlotSettings.py')
from ReturnRadialProfiles import *
from RadialFits import *
import optimize
from matplotlib.patches import Rectangle
PlotDir    = '/nfs/slac/g/ki/ki03/lances/KPNO/H1RG-022/ASIC/Plots/'
BoxSize    = 21
DoCentroid = 1
TvFlag     = 0
Mode       = 0
Slope      = 1

#Box 1 
XCen1 = 1160
YCen1 = 860
Wid1  = 400
Hei1  = 400

#Box 2
XCen2 = 1790
YCen2 = 360
Wid2  = 360
Hei2  = 360

#Guiding
FitsFileName='/nfs/slac/g/ki/ki03/lances/H1RG-022/ASIC/Reduced/07Nov17/M1/M1_I_SlopeFlatFieldedDitheredMean.fits'
HxRG_G = HxRG_C(FitsFileName=FitsFileName)
HxRG_G.Get_Raw_Header(FitsFileName)
Im_G=pyfits.getdata(FitsFileName)
Slope_G=Im_G[:,:]
Slope_G=Slope_G-float(.8)
LScl     = .4
LOff     = .5
Slope_GL = log(LScl*(Slope_G+LOff))
#Setup the large figure
ImFig=mplot.figure(0)
mplot.clf()
mplot.gray()
LB = 1
MaxL = log(LScl*(2.7+LOff))/LB
MinL = log(LScl*(0.28+LOff))/LB

#Show the full Image
FirstAx=ImFig.add_axes([0.020, 0.10, .60, 0.9])
ImFull=mplot.imshow(Slope_GL, vmin=MinL, vmax=MaxL)
ImFull.axes.yaxis.set_ticks('')
ImFull.axes.xaxis.set_ticks('')

#Add the rectangles
Rec1=Rectangle([XCen1-Wid1/2, YCen1-Hei1/2],Wid1,Hei1,edgecolor='m', fill=False)
FirstAx.add_patch(Rec1)
Rec2=Rectangle([XCen2-Wid2/2, YCen2-Hei2/2],Wid2,Hei2,edgecolor='c', fill=False)
FirstAx.add_patch(Rec2)
draw()

#Add the colorbar
pos = FirstAx.get_position()
l, b, w, h = getattr(pos, 'bounds', pos)
cax=axes([l+0.005,b-0.06,0.850,.04])
cbar=mplot.colorbar(cax=cax, orientation='horizontal', format='%.1f')
mplot.figtext(.900,.035, r'\textbf{e$^{-}$/s}',fontsize=14)

NumTicks = size(cbar.ax.get_xticklabels())
NewTicks = zeros(NumTicks,dtype=chararray)
for tickl, i in zip(cbar.ax.get_xticklabels(), arange(NumTicks)):
  val=float(tickl.get_text())
  NewTicks[i] = "%.2f" % (exp(val)/LScl-LOff)
#Apply the logarithmic scale
cbar.ax.set_xticklabels(NewTicks)
draw()

#Second Axis - First Sub Figure
SecAx=ImFig.add_axes([0.640, 0.10, .33, 0.43])
ImSub1=mplot.imshow(Slope_GL[YCen1-Hei1/2:YCen1+Hei1/2,\
                             XCen1-Wid1/2:XCen1+Wid1/2], \
                                vmin=MinL, vmax=MaxL, interpolation='kaiser')
Rec3=Rectangle([0,0],Wid1-1,Hei1-1,edgecolor='m', fill=False, linewidth=4)
SecAx.add_patch(Rec3) 
ImSub1.axes.yaxis.set_ticks('')
ImSub1.axes.xaxis.set_ticks('')
draw()

#Third Axis - Second Sub Figure
ThiAx=ImFig.add_axes([0.640, 0.55, .33, 0.43])
ImSub2=mplot.imshow(Slope_GL[YCen2-Hei2/2:YCen2+Hei2/2,\
                                XCen2-Wid2/2:XCen2+Wid2/2], \
                                vmin=MinL, vmax=MaxL, interpolation='kaiser')
Rec4=Rectangle([0,0],Wid2-1,Hei2-1,edgecolor='c', fill=False, linewidth=4)
ThiAx.add_patch(Rec4)  
ImSub2.axes.yaxis.set_ticks('')
ImSub2.axes.xaxis.set_ticks('')
draw()

#Save the figures
mplot.savefig(PlotDir+'SlopeSample_3_Images_Matplotlib.png')
mplot.savefig(PlotDir+'SlopeSample_3_Images_Matplotlib.eps')
