pro plot_eit_area, area, filein=filein, $ open=open, ccd=ccd, entrance=entrance, one=one, $ linear=linear, psym=psym, qtest=qtest, $ noverbose=noverbose, $ qstop=qstop, hc=hc, noprint=noprint ;+ ;NAME: ; plot_eit_area ;PURPOSE: ; Plot the EIT effective area vs wavelength ;CALLING SEQUENCE: ; plot_eit_area ; Will read the era*genx file ; plot_eit_area, area ; area = data structure (in/out) ; plot_eit_area,/hc ; For PostScript output ; plot_eit_area,/one ; On one wavelength scale ; ; plot_eit_area will produce a four panel plot (unless the /one) ; option is specified. Use the /open, /entrance, /ccd switches ; to specify which filter wheel case to use (default = /open) ;INPUTS: ; None are required. ;OPTIONAL INPUT/OUTPUT: ; area - Data structure from era*.genx ; If area is undefined, will be read from the ; era*genx file. ; 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: ; /one - If set, put all four sectors on one graph. ; /linear - If set, plot the ordinance on a linear scale (def. is log) ; ; /open - If set, plot the open filterwheel case ; /entrance - If set, plot the entrance filterwheel case ; /ccd - If set, plot the ccd filterwheel case ; (None) - If open, entrance and ccd area all 0, plot all cases. ; ; /notime - If set, don't put the time on the PostScript plot. ; /hc - If set, send to the PostScript printer ; /noprint - If both /hc and /noprint are set, create PostScript file ; but do not print it. ;HISTORY: ; 12-Jun-95, J. R. Lemen (LPARL), Written. ;- if n_elements(psym) eq 0 then ppsym = 0 else ppsym = psym title='EIT Effective Area' xtitle='Wavelength (A)' ytitle='Effective Area (cm!U2!N)' if keyword_set(hc) then set_plot,'PS' if !d.name eq 'PS' then begin device,/land,/inch,xsize=9.,ysize=6.5,xoff=1.,yoff=11-1. !x.thick=3 & !y.thick=3 & !p.thick=3 & !p.charthick=3.6 font = 0 endif else font = -1 xrange = [0,0] if n_elements(yrange) ne 0 then yran = yrange else yran = [0,0] xlab_pos = [.95,.95,.95,.95] ylab_pos = [.9 ,.1 ,.9 ,.9 ] ylab_pos = [.9 ,.9 ,.9 ,.9 ] align = [1.,1.,1.,1.] sectors = gt_eitsector(indgen(4),/short) jj = sort(fix(sectors)) if keyword_set(one) then begin clearplot area0 = eit_eff_area(area=area,jj(0),waveo=waveo,filter=filters,filein=filein) plot_oo,waveo,area0,xr=[100,1000],yr=[1.e-6,1.],$ title=title,xtitle=xtitle,ytitle=ytitle for i=1,3 do oplot,waveo,eit_eff_area(area=area,jj(i),filter=filters,filein=filein) endif else begin !p.multi = [0,2,2] qopen = keyword_set(open) kk = keyword_set(qopen)+keyword_set(entrance)+keyword_set(ccd) ; Get the cases to plot if kk eq 0 then $ filters = [2,0,1] else $ ; Do all filters filters = [3*keyword_set(open), 1*keyword_set(entrance), 2*keyword_set(ccd)]-1 filters = filters(where(filters ge 0,kk)) if not keyword_set(noverbose) then begin print,'- Will plot the following filters: ' print,'- ',gt_eitfilter(filters,/str),format="(4(2x,a))" endif for i=0,3 do begin ; Get the witness mirror data to establish wavelength scales: eit_witness,fix(sectors(jj(i))),ww0,rr0 wmin = min(ww0) & wmax = max(ww0) ; Range witness measurements if keyword_set(extend_range) then xrange = [wmin-50,wmax+50] $ else xrange = [wmin, wmax] if keyword_set(qtest) then wave1 = wmin+5+indgen(wmax-wmin+1-10) for k=0,kk-1 do begin ; Over plot the different filters area0 = eit_eff_area(area=area,jj(i),wave1,waveo=waveo,filter=filters(k),filein=filein) if keyword_set(qtest) then wave0 = wave1 if k gt 0 then oplot,waveo,area0,lines=2*(filters(k)+1) else $ if keyword_set(linear) then $ plot,waveo,area0,xtit=xtitle,xstyle=2, $ xr=xrange,yr=yran,font=font,ytit=ytitle,psym=ppsym else $ plot_io,waveo,area0,xtit=xtitle,xstyle=2, $ xr=xrange,yr=yran,font=font,ytit=ytitle,psym=ppsym endfor ; k=0,kk-1 ; The Plot labels have to be put on by hand: xx = !x.crange(0)+xlab_pos(i)*(!x.crange(1)-!x.crange(0)) yy = (!y.crange(0)+ylab_pos(i)*(!y.crange(1)-!y.crange(0))) if not keyword_set(linear) then yy = 10.^yy xyouts,xx,yy,font=font,align=align(i), $ string((['(a)','(b)','(c)','(d)'])(i)+' '+sectors(jj(i))+' A') xyouts,.5,1.,/norm,'EIT Effective Area',font=font,align=.5,chars=1.5 endfor endelse 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: ',area.area.Version, format='(2a)') xyouts,0.5,-0.05,/norm,alig=.5,text endif pprint,noprint=noprint,/reset endif clearplot & !x.thick=0 & !y.thick=0 & !p.thick=0 & !p.charthick=0 if keyword_set(qstop) then stop end
Last revised: - Wed May 9 21:45:08 2007- F. Auchère