pro rbsp_load_spice_metakernel, metakernel, unload=unload,update=update,all=all
rbsp_spice_init
if(icy_test() eq 0) then return
if keyword_set(all) then begin
tr=[time_double('1000'),time_double('9000')]
endif else begin
@tplot_com.pro
str_element,tplot_vars,'options.trange_full',tr
if n_elements(tr) ne 2 then tr=[time_double('1000'),time_double('9000')]
if tr[0] ge tr[1] then tr=[time_double('1000'),time_double('9000')]
endelse
str=time_string(tr,tformat='YYYY-MM-DD')
tr[0]=time_double(str[0])
tr[1]=time_double(str[1])
tr[0]-=3.*86400.
tr[1]+=86400.
file_open,'r',metakernel, unit=unit
line = ''
inblock = 0
while not eof(unit) do begin
readf, unit, line
if strmatch(line, '*KERNELS_TO_LOAD += (*') then inblock = 1
if inblock then begin
paren1 = strpos(line, "'")
kerneltoload = strmid(line,paren1+1)
paren2 = strpos(kerneltoload,"'")
kerneltoload = strmid(kerneltoload,0,paren2)
str_replace,kerneltoload,'$ROOT/',''
str_replace,kerneltoload,'$RBSPA','MOC_data_products/RBSPA'
str_replace,kerneltoload,'$RBSPB','MOC_data_products/RBSPB'
str_replace,kerneltoload,'$CKP','attitude_predict'
str_replace,kerneltoload,'$CKFULL','attitude_history_full'
str_replace,kerneltoload,'$CKQUICK','attitude_history'
str_replace,kerneltoload,'$FKG','teams/spice/fk'
str_replace,kerneltoload,'$FK','frame_kernel'
str_replace,kerneltoload,'$IK','teams/spice/ik'
str_replace,kerneltoload,'$LSK','leap_second_kernel'
str_replace,kerneltoload,'$PCK','teams/spice/pck'
str_replace,kerneltoload,'$SCLK','operations_sclk_kernel'
str_replace,kerneltoload,'$SPKPE','planetary_ephemeris'
str_replace,kerneltoload,'$SPKP','ephemeris_predict'
str_replace,kerneltoload,'$SPKD','ephemerides'
if strpos(kerneltoload,'attitude_history/') ne -1 then begin
kernelbits=strsplit(kerneltoload,'_',/extract)
nkernelbits=n_elements(kernelbits)
kyear=long(kernelbits[nkernelbits-3])
kdoy=long(kernelbits[nkernelbits-2])
doy_to_month_date,kyear,kdoy,kmonth,kday
sktime=string(kyear,kmonth,kday,format='(I04,"-",I02,"-",I02)')
ktime=time_double(sktime)
if (ktime lt tr[0]) or (ktime gt tr[1]) then kerneltoload=''
endif
if strpos(kerneltoload,'attitude_history_full/') ne -1 then begin
kernelbits=strsplit(kerneltoload,'_',/extract)
nkernelbits=n_elements(kernelbits)
kstartyear=long(kernelbits[nkernelbits-5])
kstartdoy=long(kernelbits[nkernelbits-4])
kendyear=long(kernelbits[nkernelbits-3])
kenddoy=long(kernelbits[nkernelbits-2])
doy_to_month_date,kstartyear,kstartdoy,kstartmonth,kstartday
doy_to_month_date,kendyear,kenddoy,kendmonth,kendday
skstarttime=string(kstartyear,kstartmonth,kstartday,format='(I04,"-",I02,"-",I02)')
kstarttime=time_double(skstarttime)
skendtime=string(kendyear,kendmonth,kendday,format='(I04,"-",I02,"-",I02)')
kendtime=time_double(skendtime)
if (kendtime lt tr[0]) or (kstarttime gt tr[1]) then kerneltoload=''
endif
if kerneltoload ne '' then begin
files = file_retrieve(kerneltoload, _extra=!rbsp_spice)
print,'Processing '+files[0]
if keyword_set(unload) then cspice_unload,files $
else cspice_furnsh,files
endif
if strmatch(line, '*)*') then inblock = 0
endif
endwhile
free_lun,unit
end