PRO load_data_n3ed,yyyydddb,hhb,yyyyddde,hhe,n1,n2,n3d,n3e, $
verbose=verbose, source=source, FI=FI, FF=FF
if keyword_set(verbose) then verbose = 1b else verbose = 0b
if keyword_set(FI) then begin
select_fi=1b
if verbose then message,/info,'Selecting data with FI='+string(FI)
endif else begin
select_fi=0b
if keyword_set(FF) then begin
select_ff=1b
if verbose then message,/info,'Selecting data with FF='+string(FF)+' kHz'
endif else select_ff=0b
endelse
ptrDataFileList = make_file_list(yyyydddb, hhb, yyyyddde, hhe, level='n1')
if (ptr_valid(ptrDataFileList) eq 0) then begin
n_n1DataFile=0
if keyword_set(verbose) then print,"# Warning ! No N1 data file selected..."
endif else begin
n1DataFileList=*ptrDataFileList
n_n1DataFile = n_elements(n1DataFileList)
ptr_free,ptrDataFileList
endelse
ptrDataFileList = make_file_list(yyyydddb, hhb, yyyyddde, hhe, level='n2')
if (ptr_valid(ptrDataFileList) eq 0) then begin
n_n2DataFile=0
if keyword_set(verbose) then print,"# Warning ! No N2 data file selected..."
endif else begin
n2DataFileList=*ptrDataFileList
n_n2DataFile = n_elements(n2DataFileList)
ptr_free,ptrDataFileList
endelse
ptrDataFileList = make_file_list(yyyydddb, hhb, yyyyddde, hhe, level='n3d', source=source, antset='d')
if (ptr_valid(ptrDataFileList) eq 0) then begin
n_n3dDataFile=0
if keyword_set(verbose) then print,"# Warning ! No N3d data file selected..."
endif else begin
n3dDataFileList=*ptrDataFileList
n_n3dDataFile = n_elements(n3dDataFileList)
ptr_free,ptrDataFileList
endelse
ptrDataFileList = make_file_list(yyyydddb, hhb, yyyyddde, hhe, level='n3e', source=source, antset='d')
if (ptr_valid(ptrDataFileList) eq 0) then begin
n_n3eDataFile=0
if keyword_set(verbose) then print,"# Warning ! No N3e data file selected..."
endif else begin
n3eDataFileList=*ptrDataFileList
n_n3eDataFile = n_elements(n3eDataFileList)
ptr_free,ptrDataFileList
endelse
nn = 0l
for i=0l,n_n3dDataFile-1l do begin
ndata=1l
read_data_binary,n3dDataFileList(i),ndata,/ndata,level='n3e'
nn = nn+ndata
endfor
if nn ne 0l then begin
if verbose then message,/info,'Creating data structures ('+string(nn)+' elements)'
n1 = replicate({data_n1},nn)
n2 = replicate({data_n2},nn)
n3d = replicate({data_n3d},nn)
n3e = replicate({data_n3e},nn)
ii0 = 0l
for i=0l,n_n3dDataFile-1l do begin
while strmid(n3dDataFileList(i),9,/rev) ne strmid(n2DataFileList(i),9,/rev) do begin
if i eq 0 then n2DataFileList=n2DataFileList(1:*) else $
n2DataFileList=[n2DataFileList(0:i-1),n2DataFileList(i+1:*)]
n_n2DataFile = n_n2DataFile-1
endwhile
if verbose then message,/info,'-------------------------------------------------------------------'
if verbose then message,/info,'Reading N1 file: '+n2DataFileList(i)
read_data_binary,n1DataFileList(i),n1t,level='n1'
if verbose then message,/info,'Reading N2 file: '+n2DataFileList(i)
read_data_binary,n2DataFileList(i),n2t,level='n2'
if verbose then message,/info,'Reading N3d file: '+n3dDataFileList(i)
read_data_binary,n3dDataFileList(i),n3dt,level='n3d'
if verbose then message,/info,'Reading N3e file: '+n3eDataFileList(i)
read_data_binary,n3eDataFileList(i),n3et,valid,level='n3e'
if verbose then message,/info,'merging...'
if valid then begin
nnt = n_elements(n3dt)
n1t = n1t(n3dt.num)
n2t = n2t(n3dt.num)
ww = lindgen(nnt) & cnt = nnt
if select_fi then ww = where(n1t.fi eq fi,cnt)
if select_ff then ww = where(n2t.f eq ff,cnt)
if verbose then message,/info,'Data selected : '+strtrim(string(cnt),2)+'/'+strtrim(string(nnt),2)+' ('+strtrim(string(format='(F6.2)',float(cnt)/float(nnt)*100.),2)+'%)'
if cnt ne 0 then begin
ii1 = ii0 + cnt
n1(ii0:ii1-1) = n1t(ww)
n2(ii0:ii1-1) = n2t(ww)
n3d(ii0:ii1-1) = n3dt(ww)
n3e(ii0:ii1-1) = n3et(ww)
ii0 = ii1
endif
endif
endfor
endif else begin
if verbose then message,/info,'No data for the selected period'
n1={data_n1}
n2={data_n2}
n3d={data_n3d}
n3e={data_n3e}
endelse
if select_fi or select_ff then begin
if ii0 eq 0 then begin
if verbose then message,/info,'No data for the selected period'
n1={data_n1}
n2={data_n2}
n3d={data_n3d}
n3e={data_n3e}
endif else begin
n1 = n1(0:ii1-1)
n2 = n2(0:ii1-1)
n3d = n3d(0:ii1-1)
n3e = n3e(0:ii1-1)
endelse
endif
return
end