;+ ; Contains the read_n2_n3d_int procedure ; ; :Author: ; Laurent Lamy ; ; :History: ; 2006/09/07: Created ; ; 2006/09/07: Last Edit ;- ; ;+ ; read_n2_n3d_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 ; q: in, required, type=sometype ; A parameter named q ; u: in, required, type=sometype ; A parameter named u ; v: in, required, type=sometype ; A parameter named v ; 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_N3D_INT, aaaajjjd,hd,aaaajjjf,hf,dsec,vmin,vmax,snmin, s,q,u,v,t,f, $ path, help=help, keep_real_freq=keep_real_freq, source=source, antenna=antenna if keyword_set(help) then begin print,'READ_N2_N3D_INT, aaaajjjd,hd,aaaajjjf,hf,dsec,vmin,vmax,snmin, s,q,u,v,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='n3d',source=source) if ptr_valid(plist) then begin dataFileListN3d = *plist nfiles = n_elements(dataFileListN3d) ptr_free,plist endif else begin print,'No N3d 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) & xq=xs & xu=xs & xv=xs & nsquv=xs for iDataFile = 0,nDataFile-1 do begin strPosTmp = strpos(dataFileListN3d(iDataFile),'n3d/N3d_'+antenna+source)+11 iDay = long(strmid(dataFileListN3d(iDataFile),strPosTmp,7)) iHour = fix(strmid(dataFileListN3d(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),dataFileListN3d(iDataFile) read_data_binary,dataFileListN2(iDataFile),data_n2,level='n2' read_data_binary,dataFileListN3d(iDataFile),data_n3,valid,level='n3d' 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 qq = data_n3(w).q uu = data_n3(w).u vv = data_n3(w).v 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) xq(itt,iff)=xq(itt,iff)+qq(i) xu(itt,iff)=xu(itt,iff)+uu(i) xv(itt,iff)=xv(itt,iff)+vv(i) nsquv(itt,iff)=nsquv(itt,iff)+1. endfor endif endif endfor nsquv=nsquv > 1 xs=xs/nsquv xq=xq/nsquv xu=xu/nsquv xv=xv/nsquv 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) q=s u=s v=s for i=0l,nt-1 do begin s(i,*)=interpol(xs(i,*),xf,f) q(i,*)=interpol(xq(i,*),xf,f) u(i,*)=interpol(xu(i,*),xf,f) v(i,*)=interpol(xv(i,*),xf,f) endfor endif else begin s = xs q = xq u = xu v = xv f = xf endelse return end