;+ ; Contains the read_n2_n3e_int procedure ; ; :Author: ; Laurent Lamy ; ; :History: ; 2006/09/07: Created ; ; 2006/09/07: Last Edit ;- ; ;+ ; read_n2_n3e_int is a procedure that <behavior desc here> ; ; :Params: ; aaaajjjd: in, required, type=sometype ; A parameter named aaaajjjd ; hd: in, required, type=sometype ; A parameter named hd ; aaaajjjf: in, required, type=sometype ; A parameter named aaaajjjf ; hf: in, required, type=sometype ; A parameter named hf ; dsec: in, required, type=sometype ; A parameter named dsec ; vmin: in, required, type=sometype ; A parameter named vmin ; vmax: in, required, type=sometype ; A parameter named vmax ; snmin: in, required, type=sometype ; A parameter named snmin ; s: in, required, type=sometype ; A parameter named s ; v: in, required, type=sometype ; A parameter named v ; th: in, required, type=sometype ; A parameter named th ; ph: in, required, type=sometype ; A parameter named ph ; t: in, required, type=sometype ; A parameter named t ; f: in, required, type=sometype ; A parameter named f ; path: in, required, type=sometype ; A parameter named path ; ; :Keywords: ; help: in, optional, type=sometype ; A keyword named help ; keep_real_freq: in, optional, type=sometype ; A keyword named keep_real_freq ; source: in, optional, type=sometype ; A keyword named source ; antenna: in, optional, type=sometype ; A keyword named antenna ;- pro READ_N2_N3E_INT, aaaajjjd,hd,aaaajjjf,hf,dsec,vmin,vmax,snmin, s,v,th,ph,t,f, $ path, help=help, keep_real_freq=keep_real_freq, source=source, antenna=antenna if keyword_set(help) then begin print,'READ_N2_N3E_INT, aaaajjjd,hd,aaaajjjf,hf,dsec,vmin,vmax,snmin, s,v,th,ph,t,f' return endif if strmid(path,0,1,/reverse_offset) ne "/" then path=path+"/" plist = make_file_list(aaaajjjd,hd,aaaajjjf,hf,level='n2') if ptr_valid(plist) then begin dataFileListN2 = *plist nfiles = n_elements(dataFileListN2) ptr_free,plist endif else begin print,'No N2 data... aborting' stop endelse plist = make_file_list(aaaajjjd,hd,aaaajjjf,hf,level='n3e',source=source) if ptr_valid(plist) then begin dataFileListN3e = *plist nfiles = n_elements(dataFileListN3d) ptr_free,plist endif else begin print,'No N3e data... aborting' stop endelse nDataFile = n_elements(dataFileListN2) iDHd = aaaajjjd*1.d0+hd/24.d0 iDHf = aaaajjjf*1.d0+hf/24.d0 dsec=dsec*1.d0 td=aj_t97(aaaajjjd)+hd/24.d0 tf=aj_t97(aaaajjjf)+hf/24.d0 nt=(tf-td)*86400.d0/dsec t=dindgen(nt)*dsec/86400.d0 + td read_data_binary,path+'bg/bg_'+strmid(path,12,12,/reverse_offset),bg,level='bg' xf = bg.xf bg=0b nf=n_elements(xf) xs=fltarr(nt,nf) & xth=xs & xph=xs & xv=xs & nsvthph=xs for iDataFile = 0,nDataFile-1 do begin strPosTmp = strpos(dataFileListN3e(iDataFile),'n3e/N3e_')+11 iDay = long(strmid(dataFileListN3e(iDataFile),strPosTmp,7)) iHour = fix(strmid(dataFileListN3e(iDataFile),strPosTmp+8,2)) iDH1 = iDay*1.d0+iHour/24.d0 iDH2 = idH1+1.d0/24. if ((iDH1 ge iDHd) and (iDH2 le iDHf)) then begin print,dataFileListN2(iDataFile),dataFileListN3e(iDataFile) read_data_binary,dataFileListN2(iDataFile),data_n2,level='n2' read_data_binary,dataFileListN3e(iDataFile),data_n3,valid,level='n3e' if valid then w=where((data_n3.v ge vmin) and (data_n3.v le vmax) and $ (data_n3.sn(0) ge snmin) and (data_n3.sn(1) ge snmin)) $ else w=-1 print,n_elements(w) if w(0) ne -1 then begin nn=n_elements(w) data_n2 = data_n2(data_n3.num) tt = (data_n2(w).t97 - td)*86400.d0/dsec ff = data_n2(w).f ss = data_n3(w).s vv = data_n3(w).v tth = data_n3(w).th pph = data_n3(w).ph for i=0L,nn-1L do begin iff=where(abs(xf-ff(i)) le 0.01) itt=tt(i) xs(itt,iff)=xs(itt,iff)+ss(i) xv(itt,iff)=xv(itt,iff)+vv(i) xth(itt,iff)=xth(itt,iff)+tth(i) xph(itt,iff)=xph(itt,iff)+pph(i) nsvthph(itt,iff)=nsvthph(itt,iff)+1. endfor endif endif endfor nsvthph=nsvthph > 1 xs=xs/nsvthph xv=xv/nsvthph xth=xth/nsvthph xph=xph/nsvthph if not keyword_set(keep_real_freq) then begin fmin=3.7 & fmax=16075. nff=300 f=10.^(findgen(nff)*(alog10(fmax)-alog10(fmin))/(nff-1.) + alog10(fmin)) s=fltarr(nt,nff) v=s th=s ph=s for i=0l,nt-1 do begin s(i,*)=interpol(xs(i,*),xf,f) v(i,*)=interpol(xv(i,*),xf,f) th(i,*)=interpol(xth(i,*),xf,f) ph(i,*)=interpol(xph(i,*),xf,f) endfor endif else begin s = xs v = xv th = xth ph = xph f = xf endelse return end