pro MAKE_N3G_SED_FILES, aaaajjjd, hd, aaaajjjf, hf, bg_file, fmin, dBmin, $
fichier=fichier,load_n3g=load_n3g,accurate=accurate
fact = 10.^(dBmin/10.)
READ_DATA_BINARY,bg_file,bg,level='bg1600'
xf=bg.xf & nf=n_elements(xf)
fon5=bg.fon5
restore,getenv('ROOT_RPWS')+'/pro/receiver_backgroundj.idl'
rec_bg=fon5
for i=0,2 do rec_bg(i,*)=10.^(interpol(xrm,fr,xf)/10.)
rec_bg(3,*)=10.^(interpol(xrd,fr,xf)/10.)
fon=(fon5-rec_bg)>1.e-18
restore,getenv('ROOT_RPWS')+'/pro/gal_mod.idl'
sgmod=interpol(sgalmod,fgalmod,xf)>0.
K=[1070.,1070.,1070.,3520.]
print,'% Loading List of Files for the selected period ...'
if not(keyword_set(fichier)) then begin
ptrDataFileList = make_file_list(aaaajjjd, hd, aaaajjjf, hf, level='n2')
if (ptr_valid(ptrDataFileList) eq 0) then begin
nDataFile=0
print,"# Warning ! No N2 data file selected..."
endif else begin
dataFileList=*ptrDataFileList
nDataFile = n_elements(dataFileList)
ptr_free, ptrDataFileList
endelse
endif else begin
dataFileList=[fichier]
nDataFile=1
endelse
for iDataFile = 0,nDataFile-1 do begin
fichier = dataFileList(iDataFile)
str_tmp = strsplit(fichier,'n2/P',/extract,/regex)
print & print,'% fichier : ',fichier
READ_DATA_BINARY,fichier,data_n2,level='n2'
nn = n_elements(data_n2)
fileOut= str_tmp(0)+'n3g/F'+str_tmp(1)
if not(keyword_set(load_n3g)) then begin
fi=intarr(nn)
for i=0L,nn-1 do fi(i)=where(xf eq data_n2(i).f) >0
data_n3g = replicate({data_n3g},nn)
w=where(data_n2.f le 1000)
if w(0) ne -1 then data_n3g(w).fluxZ=((data_n2(w).autoZ-rec_bg(0,fi(w)))>0)/K(0)
for j=1,3 do begin
w=where(data_n2.f le 1000 and (data_n2.ant mod 10) eq j)
if w(0) ne -1 then data_n3g(w).fluxX=((data_n2(w).autox-rec_bg(j,fi(w)))>0)/K(j)
endfor
w=where(data_n2.f gt 1000 and data_n2.f lt 2000)
if w(0) ne -1 then data_n3g(w).fluxZ=( ((data_n2(w).autoZ-rec_bg(0,fi(w)))>0)/K(0) + sgmod(fi(w))*((data_n2(w).autoZ-rec_bg(0,fi(w)))>0)/fon(0,fi(w)) )/2.
for j=1,3 do begin
w=where(data_n2.f gt 1000 and data_n2.f lt 2000 and (data_n2.ant mod 10) eq j)
if w(0) ne -1 then data_n3g(w).fluxX=( ((data_n2(w).autox-rec_bg(j,fi(w)))>0)/K(j) + sgmod(fi(w))*((data_n2(w).autoX-rec_bg(j,fi(w)))>0)/fon(j,fi(w)) )/2.
endfor
w=where(data_n2.f ge 2000)
if w(0) ne -1 then data_n3g(w).fluxZ=sgmod(fi(w))*((data_n2(w).autoZ-rec_bg(0,fi(w)))>0)/fon(0,fi(w))
for j=1,3 do begin
w=where(data_n2.f ge 2000 and (data_n2.ant mod 10) eq j)
if w(0) ne -1 then data_n3g(w).fluxX=sgmod(fi(w))*((data_n2(w).autoX-rec_bg(j,fi(w)))>0)/fon(j,fi(w))
endfor
data_n3g.ydh=data_n2.ydh
data_n3g.num=data_n2.num
print,'writing ',fileOut,' ...'
WRITE_DATA_BINARY, fileOut, data_n3g
endif else READ_DATA_N3G,fileOut,data_n3g
if keyword_set(accurate) then begin
accur_t97=hfr_data_timing(strmid(str_tmp(1),0,7),strmid(str_tmp(1),8,2))
data_n2.t97=accur_t97
endif
w=where(data_n2.f ge fmin)
data_n2=data_n2(w)
data_n3g=data_n3g(w)
w=where(xf ge fmin)
nw=n_elements(w)
for m=0,nw-1 do begin
for j=1,3 do begin
ww=where(data_n2.f eq xf(w(m)) and (data_n2.ant mod 10) eq j and data_n2.autoX gt 0)
if n_elements(ww) ge 3 then begin
nww=n_elements(ww)
data1=data_n2(ww)
test=[data1(0).autoX,(data1(0:nww-3).autoX+data1(2:nww-1).autoX)/2.,data1(nww-1).autoX]
wtest=where(data1(1:nww-2).autoX ge fact*data1(0:nww-3).autoX and data1(1:nww-2).autoX ge fact*data1(2:nww-1).autoX)+1
if wtest(0) ne -1 then begin
data_n3g(ww(wtest)).num=-1
data_n3g(ww(wtest)).fluxZ=10.*alog10(data1(wtest).autoX/test(wtest))
endif
endif
endfor
endfor
w=where(data_n3g.num eq -1)
if w(0) ne -1 then begin
nw=n_elements(w)
data_sed = replicate({data_sed},nw)
data_sed.ydh = data_n2(w).ydh
data_sed.num = data_n2(w).num
data_sed.t97 = data_n2(w).t97
data_sed.f = data_n2(w).f
data_sed.dt = data_n2(w).dt
data_sed.fluxX = data_n3g(w).fluxX
data_sed.dB = data_n3g(w).fluxZ
data_sed.ant = data_n2(w).ant
fileOut= str_tmp(0)+'temp/SED'+str_tmp(1)
WRITE_DATA_BINARY, fileOut, data_sed
endif
endfor
return
end