function thm_load_esa_relpath, sname=probe, filetype=ft, $
level=lvl, trange=trange, $
addmaster=addmaster, _extra=_extra
relpath = 'th'+probe+'/'+lvl+'/'+ ft+'/'
prefix = 'th'+probe+'_'+lvl+'_'+ft+'_'
dir = 'YYYY/'
ending = '_v01.cdf'
return, file_dailynames(relpath, prefix, ending, dir=dir, $
trange = trange,addmaster=addmaster)
end
pro thm_load_esa_post, sname=probe, datatype=dt, level=lvl, $
tplotnames=tplotnames, $
suffix=suffix, proc_type=proc_type, coord=coord, $
delete_support_data=delete_support_data, _extra=_extra
if tplotnames[0] eq '' then return
thm_new_units, tplotnames
thm_new_coords, tplotnames
thm_fix_spec_units, strfilter(tplotnames,'*eflux*')
for l=0, n_elements(tplotnames)-1 do begin
tplot_var = tplotnames[l]
get_data, tplot_var, data=d_str, limit=l_str, dlimit=dl_str
isit_density=total(strmatch(strsplit(tplot_var,'_',/extract), 'density'))+$
total(strmatch(strsplit(tplot_var, '_', /extract), 'avgtemp'))+$
total(strmatch(strsplit(tplot_var, '_', /extract), 'vthermal'))
isit_velocity=total(strmatch(strsplit(tplot_var,'_',/extract), 'velocity'))
isit_t3=total(strmatch(strsplit(tplot_var,'_',/extract), 't3'))
isit_eflux=total(strmatch(strsplit(tplot_var,'_',/extract), 'eflux'))
isit_yaxis=total(strmatch(strsplit(tplot_var,'_',/extract), 'yaxis'))
isit_ptens=total(strmatch(strsplit(tplot_var,'_',/extract), 'ptens'))
isit_mftens=total(strmatch(strsplit(tplot_var,'_',/extract), 'mftens'))
isit_any = isit_density+isit_velocity+isit_t3+isit_eflux+isit_yaxis+$
isit_ptens+isit_mftens
if(lvl eq 'l2' Or isit_any Gt 0) then begin
if(size(dl_str, /type) eq 8) then Begin
str_element, dl_str, 'data_att', success = has_data_att
if(has_data_att) then begin
data_att = dl_str.data_att
str_element, data_att, 'data_type', 'calibrated', /add_replace
endif else data_att = {data_type:'calibrated'}
str_element, dl_str, 'data_att', data_att, /add
endif else begin
data_att = {data_type:'calibrated'}
dl_str = {data_att:data_att}
endelse
endif
case 1 of
isit_density : begin
str_element, dl_str, 'ylog', 1, /add
end
isit_velocity : begin
str_element, dl_str, 'colors', [2,4,6], /add
end
isit_t3 : begin
str_element, dl_str, 'colors', [2,4,6], /add
end
isit_eflux : begin
str_element, dl_str, 'ylog', 1, /add
str_element, dl_str, 'zlog', 1, /add
end
isit_ptens : begin
str_element, dl_str, 'colors', [1,2,3,4,5,6], /add
end
isit_mftens : begin
str_element, dl_str, 'colors', [1,2,3,4,5,6], /add
end
else:
endcase
store_data, tplot_var, data=d_str, limit=l_str, dlimit=dl_str
isit_dq = total(strmatch(strsplit(tplot_var,'_',/extract), 'quality'))
If(isit_dq) Then Begin
ylim, tplot_var, -1, 8.0, 0
options, tplot_var, 'tplot_routine', 'bitplot'
options, tplot_var, 'labels', ['scpot_flag', 'sat_flag', $
'sw_flag', 'flow_flag', 'high_e_dens', $
'high_i_dens', 'maneuver']
Endif
endfor
end
pro thm_load_esa,probe=probe, datatype=datatype, trange=trange, $
level=level, verbose=verbose, downloadonly=downloadonly, $
relpathnames_all=relpathnames_all, no_download=no_download, $
cdf_data=cdf_data,get_support_data=get_support_data, $
varnames=varnames, valid_names = valid_names, files=files, $
suffix=suffix, type=type, coord=coord, $
progobj=progobj, _extra = _extra
if arg_present(relpathnames_all) then begin
downloadonly=1
no_download=1
end
if not keyword_set(suffix) then suffix = ''
vlevels = 'l1 l2'
deflevel = 'l2'
lvl = thm_valid_input(level,'Level',vinputs=vlevels,definput=deflevel,$
format="('l', I1)", verbose=0)
if lvl eq '' then return
if lvl eq 'l1' then begin
dprint, 'This routine does not currently load l1 data.'
dprint, 'l1 ESA data is loaded and calibrated from l0.'
dprint, 'See ESA crib sheet for appropriate l0/packet routines.'
return
endif
coordSysObj = obj_new('spd_ui_coordinate_systems')
vcoord = coordSysObj->MakeCoordSysList(instrument = 'esa', /include_all)
obj_destroy, coordSysObj
instr_0 = ['peif', 'peef', 'peir', 'peer', 'peib', 'peeb']
moments_0 = ['mode', 'en_eflux', 'sc_pot', 'sc_current', 'magf', 'density', 'avgtemp', $
'vthermal', 'flux', 'ptens', 'mftens', 't3', 'symm', $
'symm_ang', 'magt3', 'data_quality']
if keyword_set(coord) then begin
coordkey=0
if size(coord,/dimen) eq 0 then coord=strsplit(coord,' ',/extract)
for i=0,2 do if total(strmatch(strtrim(strlowcase(coord),2),vcoord(i))) gt 0 then coordkey=coordkey+(i+2)
if total(strmatch(strtrim(strlowcase(coord),2),vcoord(3))) gt 0 then coordkey=9
case coordkey of
0 : begin
dprint, "Invalid coordinate keyword. Valid coordinates: 'dsl gse gsm all'"
return
end
2 : vl2coords='dsl'
3 : vl2coords='gse'
4 : vl2coords='gsm'
5 : vl2coords=['dsl', 'gse']
6 : vl2coords=['dsl', 'gsm']
7 : vl2coords=['gse', 'gsm']
else : vl2coords=['dsl', 'gse', 'gsm']
endcase
endif else vl2coords=['dsl', 'gse', 'gsm']
vl2dt = ''
for k = 0, n_elements(instr_0)-1 Do Begin
vl2dt = [vl2dt, instr_0[k]+'_'+moments_0]
vl2dt = [vl2dt, instr_0[k]+'_velocity_'+vl2coords]
endfor
vl2dt = [vl2dt, 'iesa_solarwind_flag', 'eesa_solarwind_flag']
vl2datatypes = vl2dt[1]
For j = 2, n_elements(vl2dt)-1 Do vl2datatypes = temporary(vl2datatypes)+' '+vl2dt[j]
thm_load_xxx,sname=probe, datatype=datatype, trange=trange, $
level=level, verbose=verbose, downloadonly=downloadonly, $
relpathnames_all=relpathnames_all, no_download=no_download, $
cdf_data=cdf_data,get_cdf_data=arg_present(cdf_data), $
get_support_data=get_support_data, $
varnames=varnames, valid_names = valid_names, files=files, $
vsnames = 'a b c d e', $
type_sname = 'probe', $
vdatatypes = 'esa', $
file_vdatatypes = 'esa', $
vlevels = vlevels, $
vL2datatypes = vL2datatypes, $
vL2coord = '', $
deflevel = deflevel, $
version = 'v01', $
relpath_funct = 'thm_load_esa_relpath', $
post_process_proc='thm_load_esa_post', $
delete_support_data=delete_support_data, $
proc_type=type, coord=coord, suffix=suffix, $
progobj=progobj,$
msg_out=msg_out, $
_extra = _extra
if keyword_set(msg_out) then begin
for i=0, n_elements(msg_out)-1 do begin
if msg_out[i] ne '' then dprint, dlevel=1, msg_out[i]
endfor
endif
end