band=['A','B','C','HF1','HF2']
print
read,'yyyyddd_beg, hr_beg, yyyyddd_end, hr_end ? ',aaaajjjd,hd,aaaajjjf,hf
read,'HFR band (0=A, 1=B, 2=C, 3=HF1, 4=HF2) ? ',bande
print,'min,max frequency (kHz) within ',band(bande), $
' band ? [0,0 = whole band] '
read,ffmin,ffmax
td=long(aj_t97(aaaajjjd)) & tf=long(aj_t97(aaaajjjf))
for i=td,tf do begin
if i eq td then hhd=hd else hhd=0
if i eq tf then hhf=hf else hhf=24
aj=long(t97_aj(i))
PREP_DF, aj, hhd, hhf, bande, vvbuf,xtsbuf,xfbuf,msecbuf
if i eq td then begin
vv=vvbuf & xt=i*1.d0+xtsbuf/86400.d0 & xf=xfbuf & msec=msecbuf
endif else begin
vv=[vv,vvbuf] & xt=[xt,i*1.d0+xtsbuf/86400.d0]
xf=[xf,xfbuf] & msec=[msec,msecbuf]
endelse
endfor
print
help, vv,xt,xf,msec
if ffmin ne 0. and ffmax ne 0. then begin
test=where(xf ge ffmin and xf le ffmax)
if test(0) eq -1 then stop,'test frequency range not passed'
vv=vv(test,*) & xt=xt(test) & xf=xf(test) & msec=msec(test)
print,'Frequency range selection' & help,vv & print
endif
n=n_elements(xf) & sb=fltarr(n,4)
nom='v'+strtrim(long(aaaajjjd),2)+'_'+strtrim(fix(hd),2)+'_'+ $
strtrim(long(aaaajjjf),2)+'_'+strtrim(fix(hf),2)+'_'+band(bande)
path='../idlsave/'
print & read,'substract background (0) None, (1) Auto, (2) File ? ',ib
print
case ib of
0:begin
print,'No S/N selection'
freqfon=[-1] & fon_db=[0.] & sig_db=[0.]
end
1:begin
read,'(0) gaussian or (N) lower N% of intensity histogram ? ',ib1
fracmin=ib1/100.
f=xf & df=3.
if bande le 2 then begin
f=alog10(xf) & df=0.02
endif
fmin=min(f) & fmax=max(f) & pas=long((fmax-fmin)/df)
freqfon=fmin+findgen(pas+2)*df
fon_db=fltarr(pas+2,4) & sig_db=fon_db
for i=0,pas+1 do begin
ftest=fmin+i*df
test=where(abs(f-ftest) le df/2.)
if test(0) ne -1 then begin
for j=0,3 do begin
vtest=vv(test,j)
if ib1 eq 0 then begin
vtest=10.*alog10(vtest)
vtestmin=min(vtest) & vtest=vtest-vtestmin+1.
FOND,vtest,vfon,vsig
vmin=vfon-1.+vtestmin
fon_db(i,j)=vmin & sig_db(i,j)=vsig
fon=10.^(vmin/10.)
endif else begin
DYNMIN,vtest,fracmin,fon
fon_db(i,j)=10.*alog10(fon) & sig_db(i,j)=1.
endelse
vv(test,j)=(vv(test,j)-fon) > 0.
sig=fon*(10.^(sig_db(i,j)/10.)-1.)
sb(test,j)=10.*alog10(vv(test,j)/sig)
endfor
endif
endfor
test=where(rebin(fon_db,pas+2,1) ne 0.)
freqfon=freqfon(test) & fon_db=fon_db(test,*) & sig_db=sig_db(test,*)
if bande le 2 then freqfon=10.^freqfon
end
2:begin
bfile=''
read,'Background file (without path / extension) ? ',bfile
restore,path+bfile+'.idlsave',/verb
for i=0,3 do begin
fon=10.^(interpol(fon_db(*,i),freqfon,xf)/10.)
vv(*,i)=(vv(*,i)-fon) > 0.
sig=fon*(10.^(interpol(sig_db(*,i),freqfon,xf)/10.)-1.)
sb(*,i)=10.*alog10(vv(*,i)/sig)
endfor
end
endcase
test=where(vv(*,0:3) lt 0)
if test(0) ne -1 then begin
(vv(*,0:3))(test)=0.
sb(test)=-1.
endif
ti=lonarr(n_elements(xt))+100L & fi=ti
data=replicate({data_n25a},n_elements(xt))
data.ti=ti
data.fi=fi
data.vv=transpose(vv)
data.sn=transpose(sb)
write_data_binary,'$DATA_RPWS/2001_001_090/temp/N25a_2001001.02',data
end