pro plot_eit_filters,Item,qtest=qtest, $
filein=filein,notime=notime,hc=hc,noprint=noprint
;+
; NAME:
; plot_eit_filters
; PURPOSE:
; Plot the transmissions of the EIT filters
; CALLING SEQUENCE:
; plot_eit_filters
; plot_eit_filters,filters ; filters is a data structure
; INPUTS:
; None are required.
; OPTIONAL INPUT/OUTPUT:
; filters - Data structure written to era*genx
; If filters is undefined, plot_eit_filters
; will read the era*genx file to obtain filters.
; filein - By default, the EIT effective area file is read:
; concat_dir('SSW_EIT_RESPONSE','era*.genx')
; Use filein='your_file_name' to override the default.
; OPTIONAL INPUT KEYWORDS:
; /notime - If set, don't put the time on the PostScript plot.
; /hc - If set, send to the PostScript printer
; /noprint - If /hc and /noprint are set, create but don't print
; PostScript file.
; MODIFICATION HISTORY:
; 10-Jun-95, J. R. Lemen (LPARL), Written.
;-
; ------------------------------------------------------
; Call eit_eff_area to read the EIT effective area file:
; ------------------------------------------------------
if n_elements(Item) eq 0 then $
dum = eit_eff_area(0,filein=filein,area_str=Item) ; Read the era*genx file
; Allow input item to be either the entire data structure from era*.genx file
; or just Item.filter
tag_pos = tag_index(Item, 'filter')
if tag_pos ne -1 then filters = item.(tag_pos) else filters = Item
wave0 = filters(0).wave
trans0= filters(0).trans
wave1 = filters(1).wave
trans1= filters(1).trans
if min(wave0-wave1,max=mm) ne 0 or mm ne 0 then begin
on_error,0 ; Stop in the routine
message,'Some problem with the wavelength scales'
endif
if filters(0).name ne 'Entrance' or filters(1).name ne 'CCD' then begin
print,'The FILTERS data is not defined as expected. '
print,'Please check the following:'
help,filters(0),filters(1),/str
stop
endif
xtitle= 'Wavelength (A)'
ytitle= 'Transmission Fraction'
title = 'EIT Filter Transmissions'
xytitle = ['Open (Entrance+Fixed)','Entrance','CCD'] ;*** This is hard-coded
if keyword_set(hc) then begin
set_plot,'ps'
device,/land,/inch,xsize=7.5,ysize=6.,xoff=1.25,yoff=11.-(11.-7.5)/2.
!x.thick=3 & !y.thick=3 & !p.thick=3 & !p.charthick=3.6
font = 0
endif else begin
set_plot,'x' & font = -1
endelse
plot_oo,wave0,trans0*trans1,xtitle=xtitle,ytitle=ytitle,title=title, $
chars=1.5,line=0,font=font,thick=2
oplot,wave0,trans0*trans1*filters(2).trans,line=2,thick=2
oplot,wave0,trans0*trans1*filters(3).trans,line=4,thick=2
xx = [1.5,3]
yy = !y.crange(0) + 0.1*(!y.crange(1)-!y.crange(0)) + $
indgen(4)*0.05*(!y.crange(1)-!y.crange(0))
yy = reverse(10.^yy)
for i=0,2 do begin
plots,xx,yy(i+1)*[1,1],line=i*2,thick=2
xyouts,xx(1)+1,yy(i+1),xytitle(i),chars=1.3,font=font
endfor
xyouts,xx(1)+1,1.1*yy(0),'Filter Wheel:',chars=1.3,font=font
if !d.name eq 'PS' then begin
if not keyword_set(notime) then begin
text = string('Plot done at: ',!stime,format='(2a)')
if n_elements(filein) ne 0 then $
text = text+string(' File: ',filein,format='(2a)') else $
text = text+string(' Version: ',filters(0).Version, format='(2a)')
xyouts,0.5,-0.05,/norm,alig=.5,text
endif
pprint,/reset,noprint=noprint
font = -1
endif
clearplot & !x.thick=0 & !y.thick=0 & !p.thick=0 & !p.charthick=0
if keyword_set(qtest) then stop
end
Last revised: - Wed May 9 21:45:08 2007- F. Auchère