pro asciidump_scan, tvars, dir=dir
npar = n_params()
if npar ne 1 then return
if strlen((tnames(tvars))[0]) lt 6 then return
if ~keyword_set(dir) then dir = 'asciidump'
if ~file_test(dir, /dir) then file_mkdir, dir
cd, current=cwdir
dirpath = filepath( dir, sub='', root_dir=cwdir )
tvar = tvars[0]
scanarr = get_scan_struc_arr(tvar)
dnum = n_elements(scanarr.x)
sd_init
ts = time_struct( scanarr.x[0] )
aacgmloadcoef, ts.year
stn = strmid( strmid(tvar, 0,6), 3, 3 )
prefix = 'sd_'+strlowcase(stn)+'_'
suf = strmid(tvar, 0,1,/reverse)
azmno_vn = prefix+'azim_no_'+suf
ptbl_vn = prefix+ 'position_tbl_'+suf
ctbl_vn = prefix+ 'positioncnt_tbl_'+suf
get_sd_vlshell, tvar, /angle_var
angle_struc = get_scan_struc_arr( prefix+'mltdir-bmdir_angle_'+suf )
iscat_flag_struc = get_scan_struc_arr( prefix+'echo_flag_'+suf )
get_data, azmno_vn, data=d
azmno = d.y
get_data, ptbl_vn, data= d
ptbl = reform(d.y[0,*,*,*])
get_data, ctbl_vn, data= d
ctbl = reform(d.y[0,*,*,*])
nrang = n_elements(ctbl[*,0,0])
azmmax = n_elements(ctbl[0,*,0] )
glat = ctbl[*,*,1] & glon = ctbl[*,*,0]
altarr = glat & altarr[*,*] = 400.
aacgmconvcoord, glat,glon,altarr, mlat,mlon,err,/TO_AACGM
mlatarr = ( reform(mlat, 1,nrang,azmmax) )[ replicate(0,dnum), *, * ]
mlonarr = ( reform(mlon, 1,nrang,azmmax) )[ replicate(0,dnum), *, * ]
glatarr = ( reform(glat, 1,nrang,azmmax) )[ replicate(0,dnum), *, * ]
glonarr = ( reform(glon, 1,nrang,azmmax) )[ replicate(0,dnum), *, * ]
ts = time_struct(scanarr.x)
year = ts.year
yrsec = long( (ts.doy-1)*86400L + ts.sod )
yeararr = long(mlonarr) & for i=0L,dnum-1 do yeararr[i,*,*]=year[i]
yrsecarr = long(mlonarr) & for i=0L,dnum-1 do yrsecarr[i,*,*]=yrsec[i]
mltarr = ( aacgmmlt( yeararr, yrsecarr, mlonarr ) + 24. ) mod 24.
for n=0L, dnum-1 do begin
time = scanarr.x[n]
scan = reform( scanarr.y[n,*,*] )
angle = reform( angle_struc.y[n,*,*] )
glat = reform( glatarr[n,*,*] )
glon = reform( glonarr[n,*,*] )
mlat = reform( mlatarr[n,*,*] )
mlt = reform( mltarr[n,*,*] )
iscatflag = reform( iscat_flag_struc.y[n,*,*] )
idx = where( abs(iscatflag) gt 1 or ~finite(iscatflag) ) & if idx[0] ne -1 then iscatflag[idx]=-1
fn = tvar+'_'+time_string(time,tfor='YYYYMMDDhhmm')+'.dat'
fpath = filepath( fn, sub='', root_dir=dirpath )
openw, fp, fpath, /get_lun
printf, fp, '# Radar code: ', stn
printf, fp, '# Scan time (ave. time of beams for a scan): ', $
time_string(time, tfor='YYYYMMDD hhmmss')
printf, fp, '# iscat_flag 1:ionospheric echo, 0:ground scatter, -1:no data'
printf, fp, '###'
printf, fp, '# beam range_gate LOSV[m/s] iscat_flag MLTdir-bmdir_angle[deg] Glat[deg] Glon[deg] Mlat[deg] MLT[hr]'
for bm=0, n_elements(scan[0,*])-1 do begin
for rg=0, n_elements(scan[*,0])-1 do begin
printf, fp, bm, rg, scan[rg,bm], iscatflag[rg,bm], angle[rg,bm], glat[rg,bm], glon[rg,bm], $
mlat[rg,bm], mlt[rg,bm], $
format='(I2,1X,I3,1X,F7.1,1X,I2,1X,F7.2,1X,F5.1,1X,F6.1,1X,F5.1,1X,F5.2)'
endfor
endfor
free_lun, fp
endfor
print, 'The ascii files have been generated in ',dirpath
print, 'Program finished. '
return
end