pro routine_successive_filter_ringing,$
	Date=Date,stats_directory=stats_directory,$
        x_center_file=x_center_file,y_center_file=y_center_file,$
        depth=depth,x_off=x_off,y_off=y_off,exam_date=exam_date


If (not keyword_set(Date)) then Date='10'
If (not keyword_set(exam_date)) then exam_date='1_31'
If (not keyword_set(stats_directory)) then stats_directory='stats_'+exam_date+'/'
If (not keyword_set(x_center_file)) then x_center_file='newest_x_centers.txt'
If (not keyword_set(y_center_file)) then y_center_file='newest_y_centers.txt'
If (not keyword_set(depth)) then depth=0
If (not keyword_set(postscript_dir)) then postscript_dir='distorted_postscripts'
If (not keyword_set(x_off)) then x_off=0
If (not keyword_set(y_off)) then y_off=0

stats_directory='/nfs/slac/g/ki/ki08/lsst/CPanalysis/2005-05-'+Date+$
          '/ShackHartman/'+stats_directory+'/'
postscript_dir='/nfs/slac/g/ki/ki08/lsst/CPanalysis/'+exam_date+'_figs/'
fiducial_zero=1

nonfiducial=[1,2,3,4,5,6,7,8,9,13,14,17,18,19,20,21,22,23,24,25,$
          26,27,28,29,30,31,32,38,39,45,46,47,48,49,50,$
          51,52,53,54,55,63,64,71,72,73,74,75,$
          76,77,78,79,88,89,98,98,99,100,$
          101,102,103,113,114,123,124,125,$
          126,127,128,138,139,149,150,$
          151,152,163,164,174,175,$
          176,177,188,189,200,$
          201,210,213,214,225,$
          226,238,239,249,$
          251,261,262,263,264,265,266,$
          276,286,287,288,289,290,291,$
          301,302,303,304,305,306,307,308,309,$
          310,311,312,313,314,315,316,$
          317,318,319,320,321,322,323,324,325,$
          326,327,336,337,338,339,340,341,$
          351,361,362,363,364,365,366,$
          376,388,389,$
          401,413,414,425,$
          426,427,438,439,449,450,$
          451,452,454,463,464,473,474,475,$
          476,477,478,488,489,498,499,500,$
          501,502,503,504,513,514,522,523,524,525,$
          526,527,528,529,530,538,539,546,547,548,549,550,$
          551,552,553,554,555,556,563,564,570,571,572,573,574,575,$
          576,577,578,579,580,581,582,588,589,594,595,596,597,598,599,600,$
          601,602,603,604,605,606,607,608,609,610,613,614,617,618,619,620,621,$
          622,623,624,625]-1

;Extra Index for the scale offset
complement,findgen(625),nonfiducial,fiducial
fitted=fiducial

;ARRAYS OF FILES
offset_files=file_search(stats_directory+'*5132*sub_offsets.txt',count=num_stats_files)

;CONSTANTS
kmax=12
num=25
grid_spots=625
index=findgen(625)

;ARRAY REFERENCE 25x25=625 FOR GRID
subx=2*indgen(num)-25           ;The x-reference numbers
suby=indgen(num)-12             ;The y-reference numbers

;HUGE DATA CUBE
x_offset_hor=complexarr(num_stats_files,num,num)
y_offset_hor=complexarr(num_stats_files,num,num)
x_offset_ver=complexarr(num_stats_files,num,num)
y_offset_ver=complexarr(num_stats_files,num,num)

;ffts
xfft_array=complexarr(num_stats_files,num,num)
yfft_array=complexarr(num_stats_files,num,num)

;Correlations
timee1=fltarr(num_stats_files-depth,num,num)
timee2=fltarr(num_stats_files-depth,num,num)

timee1num=fltarr(num_stats_files-depth,num,num)
timee2num=fltarr(num_stats_files-depth,num,num)
timeeden=fltarr(num_stats_files-depth,num,num)

timee1_arr=fltarr(num,num)
timee2_arr=fltarr(num,num)

frame_e1=fltarr(num_stats_files)
frame_e2=fltarr(num_stats_files)
frame_e=fltarr(num_stats_files)
frame_thetap=fltarr(num_stats_files)
frame_thetam=fltarr(num_stats_files)

;Average Ellipticity
frame_e1_av_h=fltarr(kmax)
frame_e2_av_h=fltarr(kmax)
frame_e_av_h=fltarr(kmax)
frame_e_av_den_h=fltarr(kmax)
frame_e1_av_l=fltarr(kmax)
frame_e2_av_l=fltarr(kmax)
frame_e_av_l=fltarr(kmax)
frame_e_av_den_l=fltarr(kmax)

;Grid for partvelvec
x_ref_col=12.5*subx+542
y_ref_col=25.0*suby+460
index=findgen(num*num)
gridx=fltarr(num*num)
gridy=fltarr(num*num)
gridx(index)=x_ref_col(index mod num)
gridy(index)=y_ref_col(index/num)

;Indices and such
no_bins=8
a=findgen(13)+12
b=findgen(12)
subn=[a,b]
subm=subn

readcol,offset_files(0),xcoord,ycoord,format='x,f,x,f,x'

;FILL THE DATA CUBES

for file_number=0,num_stats_files-depth-1 do begin

        ;Take the results from the offset.txt files and fill the cube
        readcol,offset_files(file_number),x_offset,y_offset,format='X,X,f,X,f'

        ;Obtain the difference ordered in COLUMN, ROW between centroid and grid         point
	
	x_offset(where(x_offset eq -10))=0
        y_offset(where(y_offset eq -10))=0

        x_offset_hor(file_number,*,*)=x_offset
        y_offset_hor(file_number,*,*)=y_offset

        ;Obtain the difference ordered in ROW, COLUMN
        x_offset_ver(file_number,*,*)=x_offset((index mod 25)*25+index/25)
        y_offset_ver(file_number,*,*)=y_offset((index mod 25)*25+index/25)

 	xfft_array(file_number,*,*)=fft(x_offset_hor(file_number,*,*))
	yfft_array(file_number,*,*)=fft(y_offset_hor(file_number,*,*))

endfor

set_plot,'ps'
device,filename=Postscript_dir+'Successive_filter_ringing_'+Date+'.ps'                                                                                
loadct,0                      ;load color table 39
device,/color                   ;allow color on the postscript
device,ysize=8.5,/inches        ;Height of plot in y
device,xsize=11.0,/inches        ;Width of plot in x
device,yoffset=1.0,/inches      ;Y position of lower left corner

for kval=0,kmax-1 do begin

  ;Correlations
  timee1=fltarr(num_stats_files-depth,num,num)
  timee2=fltarr(num_stats_files-depth,num,num)

  timee1num_h=fltarr(num_stats_files-depth,num,num)
  timee2num_h=fltarr(num_stats_files-depth,num,num)
  timeeden_h=fltarr(num_stats_files-depth,num,num)

  timee1num_l=fltarr(num_stats_files-depth,num,num)
  timee2num_l=fltarr(num_stats_files-depth,num,num)
  timeeden_l=fltarr(num_stats_files-depth,num,num)

  timee1_arr=fltarr(num,num)
  timee2_arr=fltarr(num,num)
  ;for high pass filter
  frame_e1_h=fltarr(num_stats_files)
  frame_e2_h=fltarr(num_stats_files)
  frame_e_h=fltarr(num_stats_files)
  frame_thetap_h=fltarr(num_stats_files)
  frame_thetam_h=fltarr(num_stats_files)
  frame_e_den_h=fltarr(num_stats_files)

  ;for low pass filter
  frame_e1_l=fltarr(num_stats_files)
  frame_e2_l=fltarr(num_stats_files)
  frame_e_l=fltarr(num_stats_files)
  frame_thetap_l=fltarr(num_stats_files)
  frame_thetam_l=fltarr(num_stats_files)
  frame_e_den_l=fltarr(num_stats_files)


  x_offset_hor_calc_h=complexarr(num_stats_files,num,num)
  y_offset_hor_calc_h=complexarr(num_stats_files,num,num)
  x_offset_hor_calc_l=complexarr(num_stats_files,num,num)
  y_offset_hor_calc_l=complexarr(num_stats_files,num,num)

  for file_number=0,num_stats_files-depth-1 do begin

	;Average the fft
        x_fft=complexarr(num,num)
        y_fft=complexarr(num,num)

        x_low_fft=complexarr(num,num)
        x_low_fft_re=complexarr(num,num)
        y_low_fft=complexarr(num,num)
        y_low_fft_re=complexarr(num,num)

        y_high_fft_re=complexarr(num,num)
        x_high_fft=complexarr(num,num)
        y_high_fft=complexarr(num,num)
        x_high_fft_re=complexarr(num,num)

	x_fft(*,*)=xfft_array(file_number,*,*)
        y_fft(*,*)=yfft_array(file_number,*,*)

	x_fft_re=complexarr(num,num)
        y_fft_re=complexarr(num,num)

        ;Rearrange indices
        for n=0,num-1 do begin
            for m=0,num-1 do begin
                x_fft_re(subn(n),subm(m))=x_fft(n,m)
                y_fft_re(subn(n),subm(m))=y_fft(n,m)
            endfor
        endfor

	;Filter kx=0, ky=0
	x_high_fft_re=x_fft_re
        y_high_fft_re=y_fft_re
        x_high_fft_re((12-kval):(12+kval),(12-kval):(12+kval))=0
        y_high_fft_re((12-kval):(12+kval),(12-kval):(12+kval))=0
	x_low_fft_re((12-kval):(12+kval),(12-kval):(12+kval))=$
	    x_fft_re((12-kval):(12+kval),(12-kval):(12+kval))
        y_low_fft_re((12-kval):(12+kval),(12-kval):(12+kval))=$
	    y_fft_re((12-kval):(12+kval),(12-kval):(12+kval))

	;Eliminate the DC offset
	if kval gt 0 then begin
          x_low_fft_re(12,12)=0
          y_low_fft_re(12,12)=0
	endif

     ;Rearrange
        for n=0,num-1 do begin
            for m=0,num-1 do begin
                x_low_fft(n,m)=x_low_fft_re(subn(n),subm(m))
                y_low_fft(n,m)=y_low_fft_re(subn(n),subm(m))
                x_high_fft(n,m)=x_high_fft_re(subn(n),subm(m))
                y_high_fft(n,m)=y_high_fft_re(subn(n),subm(m))
		
            endfor
        endfor
	
	x_offset_hor_calc_h(file_number,*,*)=fft(x_high_fft,/inverse)
        y_offset_hor_calc_h(file_number,*,*)=fft(y_high_fft,/inverse)
        x_offset_hor_calc_l(file_number,*,*)=fft(x_low_fft,/inverse)
        y_offset_hor_calc_l(file_number,*,*)=fft(y_low_fft,/inverse)
 
        x_temp=x_offset_hor_calc_h(file_number,*,*)
        y_temp=y_offset_hor_calc_h(file_number,*,*)
        print,max(x_temp(nonfiducial)),max(y_temp(nonfiducial))	
        test=1
        if (test eq 1 and kval eq 0) then begin
          set_plot,'x'
          white='FFFFFF'x
 	  black='000000'x
	  tvlct,R,G,B,/get
	  set_plot,'z'
          erase
          device, set_font='Courier'
          device, set_resolution=[768,768]

	  !p.charsize=.8
	  !p.charthick=3.2
	  !x.thick=2
          !y.thick=2
          !p.thick=.8
          !p.noerase=0
          !P.CHARSIZE=2.2
          !P.THICK=2.

	  xoff=fltarr(625)
          yoff=fltarr(625)
          xoff(*)=x_offset_hor_calc_l(file_number,*,*)
	  yoff(*)=y_offset_hor_calc_l(file_number,*,*)
 	  e1num=xoff^2-yoff^2
	  e2num=2*xoff*yoff
	  eden=xoff^2+yoff^2
	  e1=total(e1num(nonfiducial))/total(eden(nonfiducial))
	  e2=total(e2num(nonfiducial))/total(eden(nonfiducial))
	  e=sqrt(e1^2+e2^2)
	  signe1=abs(e1)/e1
          signe2=abs(e2)/e2
	  theta=signe2*asin(sqrt(.5*(1+signe1*sqrt(1-e2^2/e^2))))

	  xoff=[xoff,.40]
	  yoff=[yoff,0]
	  gridx=[gridx,375]
	  gridy=[gridy,-40]
	  fitted=[fitted,625]
          partvelvec,xoff(fitted),yoff(fitted),$
             gridx(fitted),gridy(fitted),yrange=[100,800],$
             xrange=[200,850],position=[0.1,0.2,0.9,0.9],$
             title='Low Passed Offsets for cutoff k='+$
                   strtrim(kval,2),$
	     color=black,background=white

	  xyouts,0.1,.05,'0.40 pixels',$
                color=black,/normal
          xyouts,0.7,.05,'e='+strtrim(e,2),color=black,/normal
	   
	  jpgimg=tvrd()
	  write_png,postscript_dir+'Low_Passed_Offsets_kval_'+strtrim(kval,2)+$
	 	'_'+Date+'.png',$
                  jpgimg,R,G,B
	            xoff=fltarr(625)

	  ;HIGH PASS
	  erase
          xoff=fltarr(625)
          yoff=fltarr(625)
          xoff(*)=x_offset_hor_calc_h(file_number,*,*)
          yoff(*)=y_offset_hor_calc_h(file_number,*,*)
          xoff=[xoff,.40]
          yoff=[yoff,0]
	  e1num=xoff^2-yoff^2
          e2num=2*xoff*yoff
          eden=xoff^2+yoff^2
          e1=total(e1num(nonfiducial))/total(eden(nonfiducial))
          e2=total(e2num(nonfiducial))/total(eden(nonfiducial))
          e=sqrt(e1^2+e2^2)
          signe1=abs(e1)/e1
          signe2=abs(e2)/e2
          theta=signe2*asin(sqrt(.5*(1+signe1*sqrt(1-e2^2/e^2))))

          partvelvec,xoff(fitted),yoff(fitted),$
             gridx(fitted),gridy(fitted),yrange=[100,800],$
             xrange=[200,850],position=[0.1,0.2,0.9,0.9],$
             title='High Passed Offsets for cutoff k='+$
                   strtrim(kval,2),$
             color=black,background=white

          xyouts,0.1,.05,'0.40 pixels',color=black,/normal
	  xyouts,0.7,0.05,'e='+strtrim(e,2),color=black,/normal
          jpgimg=tvrd()
          write_png,postscript_dir+'High_Passed_Offsets_kval_'+strtrim(kval,2)+$
	 	'_'+Date+'.png',$
                  jpgimg,R,G,B
                    xoff=fltarr(625)



        endif
         
   ;high pass filter	
   timee1num_h(file_number,*,*)=x_offset_hor_calc_h(file_number,*,*)*$
			      x_offset_hor_calc_h(file_number+depth,*,*)-$
         		      y_offset_hor_calc_h(file_number,*,*)*$
			      y_offset_hor_calc_h(file_number+depth,*,*)

   timee2num_h(file_number,*,*)=(x_offset_hor_calc_h(file_number,*,*)*$
		              y_offset_hor_calc_h(file_number+depth,*,*)$
			     +x_offset_hor_calc_h(file_number+depth,*,*)$
			     *y_offset_hor_calc_h(file_number,*,*))

   timeeden_h(file_number,*,*)=(x_offset_hor_calc_h(file_number,*,*)^2+$
                              y_offset_hor_calc_h(file_number,*,*)^2)

   timee1temp_h=timee1num_h(file_number,*,*)
   timee2temp_h=timee2num_h(file_number,*,*)
   timeedtemp_h=timeeden_h(file_number,*,*)

     frame_e_den_h=mean(timeedtemp_h(nonfiducial))
     frame_e1_h(file_number)=mean(timee1temp_h(nonfiducial))/$
                         mean(timeedtemp_h(nonfiducial))
     frame_e2_h(file_number)=mean(timee2temp_h(nonfiducial))/$
                         mean(timeedtemp_h(nonfiducial))
     frame_e_h(file_number)=sqrt(frame_e1_h(file_number)^2+frame_e2_h(file_number)^2)
   	           		 
   ;Get the position angle associated with the elongation of the object
   if frame_e2_h(file_number) < 0 then begin
	frame_thetap_h(file_number)=$
	-asin(sqrt(.5*(1-sqrt(1-frame_e2_h(file_number)^2/$
                                   frame_e_h(file_number)^2))))
   endif else begin 
	frame_thetap_h(file_number)=$
	asin(sqrt(.5*(1-sqrt(1-frame_e2_h(file_number)^2/$
                                   frame_e_h(file_number)^2))))
   endelse
   
   ;Recalculate e1 and e2 with new cosine angle
   frame_e1_h(file_number)=frame_e_h(file_number)*$
	                   cos(2*frame_thetap_h(file_number))
   frame_e2_h(file_number)=frame_e_h(file_number)*$
			   sin(2*frame_thetap_h(file_number))
  
   ;low pass filter
   timee1num_l(file_number,*,*)=x_offset_hor_calc_l(file_number,*,*)*$
                              x_offset_hor_calc_l(file_number+depth,*,*)-$
                              y_offset_hor_calc_l(file_number,*,*)*$
                              y_offset_hor_calc_l(file_number+depth,*,*)
                                                                                           
   timee2num_l(file_number,*,*)=(x_offset_hor_calc_l(file_number,*,*)*$
                              y_offset_hor_calc_l(file_number+depth,*,*)$
                             +x_offset_hor_calc_l(file_number+depth,*,*)$
                             *y_offset_hor_calc_l(file_number,*,*))
                                                                                           
   timeeden_l(file_number,*,*)=(x_offset_hor_calc_l(file_number,*,*)^2+$
                              y_offset_hor_calc_l(file_number,*,*)^2)
                                                                                           
   timee1temp_l=timee1num_l(file_number,*,*)
   timee2temp_l=timee2num_l(file_number,*,*)
   timeedtemp_l=timeeden_l(file_number,*,*)
                                                                       
     frame_e_den_l=mean(timeedtemp_h(nonfiducial))
     frame_e1_l(file_number)=mean(timee1temp_l(nonfiducial))/$
                         mean(timeedtemp_l(nonfiducial))
     frame_e2_l(file_number)=mean(timee2temp_l(nonfiducial))/$
                         mean(timeedtemp_l(nonfiducial))
     frame_e_l(file_number)=sqrt(frame_e1_l(file_number)^2+frame_e2_l(file_number)^2)
   
   ;Get the position angle associated with the elongation of the object
   if frame_e2_l(file_number) < 0 then begin
        frame_thetap_l(file_number)=$
        -asin(sqrt(.5*(1-sqrt(1-frame_e2_l(file_number)^2/$
                                   frame_e_l(file_number)^2))))
   endif else begin
        frame_thetap_l(file_number)=$
        asin(sqrt(.5*(1-sqrt(1-frame_e2_l(file_number)^2/$
                                   frame_e_l(file_number)^2))))
   endelse
                                                                                           
   ;Recalculate e1 and e2 with new cosine angle
   frame_e1_l(file_number)=frame_e_l(file_number)*$
                           cos(2*frame_thetap_l(file_number))
   frame_e2_l(file_number)=frame_e_l(file_number)*$
                           sin(2*frame_thetap_l(file_number))


   endfor 
 ;----------------------------------------------------------
  
  ;Plot e1 for each kval
  items_e1=['e1 high pass','e1 low pass']
  sym_e1=[2,1]
  plot,frame_e1_h,psym=2,title='low passed e1 and e2 for kmin='+strtrim(kval,2)
  oplot,frame_e1_l,psym=1
  legend,items_e1,psym=sym_e1,position=[.8,.8],/normal
  
  items_e2=['e2 high pass','e2 low pass']
  sym_e2=[2,1]
  plot,frame_e2_h,psym=2,$
       color=10,$
       title='high and low passed e2 for kmin='+strtrim(kval,2)
  oplot,frame_e2_l,psym=1,$
       color=20
  legend,items_e2,psym=sym_e2,position=[.8,.8],/normal
  
  ;Plot e for each KVAL
  items_e=['e high pass','e low pass']
  sym_e=[2,1]
  plot,frame_e_h,psym=2,$
       color=10,$
       title='e for kmin='+strtrim(kval,2)
  oplot,frame_e_l,psym=1,$
       color=20
  legend,items_e,psym=sym_e,position=[.8,.8],/normal

  ;Plot samples of the low and high passed offset
  x_offset_h=fltarr(num,num)
  y_offset_h=fltarr(num,num)
  x_offset_l=fltarr(num,num)
  y_offset_l=fltarr(num,num)

  for row_i=0,24 do begin
     for col_j=0,24 do begin
	 x_offset_h(row_i,col_j)=avg(x_offset_hor_calc_h(*,row_i,col_j))
 	 y_offset_h(row_i,col_j)=avg(y_offset_hor_calc_h(*,row_i,col_j))
         x_offset_l(row_i,col_j)=avg(x_offset_hor_calc_l(*,row_i,col_j))
         y_offset_l(row_i,col_j)=avg(y_offset_hor_calc_l(*,row_i,col_j)) 
     endfor
  endfor

  x_offset_h(624)=max(x_offset_h)
  y_offset_h(624)=0
  partvelvec,x_offset_h(fitted),y_offset_h(fitted),$
             gridx(fitted),gridy(fitted),yrange=[150,800],$
             xrange=[200,850],position=[0.1,0.1,0.9,0.9],$
	     title='High Passed Average Offsets for all images for k='+$
	           strtrim(kval,2)
  xyouts,gridx(624)-100,gridy(624)+25,'length='+$
         strtrim(x_offset_h(624),2)

  x_offset_l(624)=max(x_offset_l)
  y_offset_l(624)=0
  partvelvec,x_offset_l(fitted),y_offset_l(fitted),$
             gridx(fitted),gridy(fitted),yrange=[150,800],$
             xrange=[200,850],position=[0.1,0.1,0.9,0.9],$
	     title='Low Passed Average Offsets for all images for k='+$
	           strtrim(kval,2)
  xyouts,gridx(624)-100,gridy(624)+25,'length='+$
	 strtrim(x_offset_l(624),2)

  ;Take the average e values FOR EACH KVAL
  frame_e1_av_h(kval)=mean(frame_e1_h)
  frame_e2_av_h(kval)=mean(frame_e2_h)
  frame_e_av_h(kval)=mean(frame_e_h)
  frame_e_av_den_h(kval)=mean(timeedtemp_h(where(timee1temp_h ne 0)))

  frame_e1_av_l(kval)=mean(frame_e1_l)
  frame_e2_av_l(kval)=mean(frame_e2_l)
  frame_e_av_l(kval)=mean(frame_e_l)
  frame_e_av_den_l(kval)=mean(timeedtemp_l(where(timee1temp_l ne 0)))
  
  
endfor


device,/close

white='FFFFFF'x
black='000000'x    
png=0
if png ne 1 then begin
set_plot,'ps'
if fiducial_zero eq 0 then begin 
device,filename=Postscript_dir+'Filter_rining_'+Date+'.ps'
endif else begin
device,filename=Postscript_dir+'Filter_ringing_'+$
	'Fiducial_zeros'+Date+'.ps'
endelse
;Plot averages after all is said and done
!p.multi=[0,1,1]
items_all=['high pass e1','low pass e1','denominator high pass',$
	   'denominator low pass']
sym_all=[2,1,4,5]
e1maxs=[max(frame_e1_av_h),max(frame_e1_av_l),max(frame_e_av_den_h),$
	max(frame_e_av_den_l)]
e1max=max(e1maxs)
e1mins=[min(frame_e1_av_h),min(frame_e1_av_l),min(frame_e_av_den_h),$
        min(frame_e_av_den_l)]
e1min=min(e1mins)

plot,frame_e1_av_h,psym=2,title='e1 for filter up to kval',$
	         xtitle='k',ytitle='e1',yrange=[e1min,e1max]
oplot,frame_e1_av_l,psym=1
oplot,frame_e_av_den_h,psym=4
oplot,frame_e_av_den_l,psym=5
legend,items_all,psym=sym_all,position=[.7,.8],/normal

items_all=['high pass e2','low pass e2','denominator high pass',$
	   'denominator low pass']
sym_all=[2,1,4,5]
e2maxs=[max(frame_e2_av_h),max(frame_e2_av_l),max(frame_e_av_den_h),$
        max(frame_e_av_den_l)]
e2max=max(e2maxs)
e2mins=[min(frame_e2_av_h),min(frame_e2_av_l),min(frame_e_av_den_h),$
        min(frame_e_av_den_l)]
e2min=min(e2mins)
!p.multi=[0,1,1]
plot,frame_e2_av_h,psym=2,title='e2 for filter up to kval',$
		 xtitle='k',ytitle='e2',yrange=[e2min,e2max]
oplot,frame_e2_av_l,psym=1
oplot,frame_e_av_den_h,psym=4
oplot,frame_e_av_den_l,psym=5
legend,items_all,psym=sym_all,position=[.7,.8],/normal


items_all=['high pass e','low pass e','denominator high pass',$
	   'denominator low pass']
sym_all=[2,1,4,5]
emaxs=[max(frame_e_av_h),max(frame_e_av_l),max(frame_e_av_den_h),$
       max(frame_e_av_den_l)]
emax=max(emaxs)
emins=[min(frame_e_av_h),min(frame_e_av_l),min(frame_e_av_den_h),$
       min(frame_e_av_den_l)]

emin=min(emins)
!p.multi=[0,1,1]
plot,frame_e_av_h,psym=2,title='e for filter up to kval',$
                 xtitle='k',ytitle='e',yrange=[emin,emax]
oplot,frame_e_av_l,psym=1
oplot,frame_e_av_den_h,psym=4
oplot,frame_e_av_den_l,psym=5
legend,items_all,psym=sym_all,position=[.7,.8],/normal

endif else begin

  set_plot,'z'
  erase
  device, set_font='Courier'
  device,set_resolution=[800,600]
  !p.charsize=.8
  !p.charthick=1.2
  !x.thick=2
  !y.thick=2
  !p.thick=.8
  !p.noerase=0

!p.multi=[0,1,1]
tcolors=[black,black,black,black]
items_all=['high pass e1','low pass e1','denominator high pass',$
           'denominator low pass']
sym_all=[2,1,4,5]
e1maxs=[max(frame_e1_av_h),max(frame_e1_av_l),max(frame_e_av_den_h),$
        max(frame_e_av_den_l)]
e1max=max(e1maxs)
e1mins=[min(frame_e1_av_h),min(frame_e1_av_l),min(frame_e_av_den_h),$
        min(frame_e_av_den_l)]
e1min=min(e1mins)

plot,frame_e1_av_h,psym=2,title='e1 for filter up to kval for 5-'+Date,$
                 xtitle='k',ytitle='e1',yrange=[e1min,e1max],color=black,$
                 background=white
oplot,frame_e1_av_l,psym=1,color=black
oplot,frame_e_av_den_h,psym=4,color=black
oplot,frame_e_av_den_l,psym=5,color=black
legend,items_all,psym=sym_all,position=[.7,.8],/normal,textcolor=tcolors,$
		 colors=tcolors
  jpgimg=tvrd()
  tvlct,reds,greens,blues,/get
  write_png,postscript_dir+'e1_filtered_5-'+Date+'.png',$
  jpgimg,reds,greens,blues

  erase
items_all=['high pass e2','low pass e2','denominator high pass',$
           'denominator low pass']
sym_all=[2,1,4,5]
e2maxs=[max(frame_e2_av_h),max(frame_e2_av_l),max(frame_e_av_den_h),$
        max(frame_e_av_den_l)]
e2max=max(e2maxs)
e2mins=[min(frame_e2_av_h),min(frame_e2_av_l),min(frame_e_av_den_h),$
        min(frame_e_av_den_l)]
e2min=min(e2mins)
!p.multi=[0,1,1]
plot,frame_e2_av_h,psym=2,title='e2 for filter up to kval for 5-'+Date,$
                 xtitle='k',ytitle='e2',yrange=[e2min,e2max],color=black,$
		 background=white

oplot,frame_e2_av_l,psym=1,color=black
oplot,frame_e_av_den_h,psym=4,color=black
oplot,frame_e_av_den_l,psym=5,color=black
legend,items_all,psym=sym_all,position=[.7,.8],/normal,textcolors=tcolors,$
	         colors=tcolors
  jpgimg=tvrd()
  tvlct,reds,greens,blues,/get
  write_png,postscript_dir+'e2_filtered_5-'+Date+'.png',$
  jpgimg,reds,greens,blues

  erase

items_all=['high pass e','low pass e','denominator high pass',$
           'denominator low pass']
sym_all=[2,1,4,5]
emaxs=[max(frame_e_av_h),max(frame_e_av_l),max(frame_e_av_den_h),$
       max(frame_e_av_den_l)]
emax=max(emaxs)
emins=[min(frame_e_av_h),min(frame_e_av_l),min(frame_e_av_den_h),$
       min(frame_e_av_den_l)]

emin=min(emins)
!p.multi=[0,1,1]
plot,frame_e_av_h,psym=2,title='e for filter up to kval for 5-'+Date,$
                 xtitle='k',ytitle='e',yrange=[emin,emax],color=black,$
	         background=white

oplot,frame_e_av_l,psym=1,color=black

oplot,frame_e_av_den_h,psym=4,color=black
oplot,frame_e_av_den_l,psym=5,color=black
legend,items_all,psym=sym_all,position=[.7,.8],/normal,textcolors=tcolors,$
		 colors=tcolors

  jpgimg=tvrd()
  tvlct,reds,greens,blues,/get
  write_png,postscript_dir+'e_ringing_5-'+Date+'.png',$
  jpgimg,reds,greens,blues

erase

endelse



device,/close
set_plot,'x'

stop

end

