;+ ;PROCEDURE: store_sum ;PURPOSE: to store summary information in CDF format ;INPUTS: none ;KEYWORDS ; dates: array of dates for which to create summary files ; ;SEE ALSO: "get_sum" which gets the files that ; this procedure stores ; ;CREATED BY: Jasper Halekas ;LAST MODIFICATION: @(#)store_sum.pro 1.8 95/10/06 ;- pro store_sum, dates = dates sumdir = '/disks/winddata/wi/l1/sum/' specs = ['eh','el','ph','so','sf'] numspecs = dimen1(specs) moms = ['e','p'] nummoms = dimen1(moms) if not keyword_set(dates) then dates = get_latest_dates() s = dimen1(dates) for i = 0, s-1 do begin dates(i) = strtrim(dates(i)) year = strmid(dates(i), 0, 4) month = strmid(dates(i), 5, 2) day = strmid(dates(i), 8, 2) timestring = year+month+day filename = 'wi_l1_sum_'+timestring ON_IOERROR, create file = cdf_open(sumdir+filename) cdf_delete,file create: ON_IOERROR, null file = cdf_create(sumdir+filename, /col_major, /single_file) x = cdf_attcreate(file, 'Project', /global_scope) x = cdf_attcreate(file, 'Discipline', /global_scope) x = cdf_attcreate(file, 'Title', /global_scope) x = cdf_attcreate(file, 'Units', /variable_scope) x = cdf_attcreate(file, 'Valid_Min', /variable_scope) x = cdf_attcreate(file, 'Valid_Max', /variable_scope) cdf_attput,file,'Project', 0, 'WIND 3D_Plasma & Energetic Particles' cdf_attput,file,'Discipline',0, 'Space Physics' cdf_attput,file,'Title',0,'Summary Data' load_3dp_data, dates(i) for j = 0, numspecs - 1 do begin ;Specs no_data = 0 get_spec, specs(j), no_data = no_data, units = 'Flux' if not no_data then begin name = specs(j)+'spec' get_data, name, data = data name = data.ytitle nvar = cdf_varcreate(file, name,[1,1], /cdf_float, $ dim = [dimen1(data.y), dimen2(data.y)]) cdf_varput, file, name, data.y cdf_attput, file, 'Units', name, 'Flux', /zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable cdf_attput, file, 'Valid_Max', name, data.max_value, /zvariable name = specs(j)+'spec_esteps' nvar = cdf_varcreate(file, name,[1,1], /cdf_float, $ dim = [dimen1(data.v), dimen2(data.v)]) cdf_varput, file, name, data.v cdf_attput, file, 'Units', name, 'eV', /zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable cdf_attput, file, 'Valid_Max', name, data.max_value, /zvariable name = specs(j)+'spec_time' nvar = cdf_varcreate(file, name,[1], /cdf_double, $ dim = [dimen1(data.x)]) cdf_varput, file, name, data.x cdf_attput, file, 'Units', name,'Seconds since 1970', $ /zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable name = specs(j)+'spec_epoch' cdf_epoch,epoch_0,1970,1,1,0,0,0, /compute_epoch epoch = data.x*1000 + epoch_0 nvar = cdf_varcreate(file, name, [1], /cdf_double, $ dim = [dimen1(epoch)]) cdf_varput, file, name, epoch cdf_attput, file, 'Units', name,'Epoch', $ /zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable endif endfor for k = 0, nummoms - 1 do begin ;Moms call_procedure, 'get_'+moms(k)+'mom' name = 'N'+moms(k) get_data, name, data = data nvar = cdf_varcreate(file, name,[1], /cdf_float, $ dim = [dimen1(data.y)]) cdf_varput, file, name, data.y cdf_attput, file, 'Units', name, 'particles/cm.^3', /zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable cdf_attput, file, 'Valid_Max', name, 1e20, /zvariable name = 'V'+moms(k) get_data, name, data = data nvar = cdf_varcreate(file, name,[1,1], /cdf_float, $ dim = [dimen1(data.y), dimen2(data.y)]) cdf_varput, file, name, data.y cdf_attput, file, 'Units', name, 'km./s', /zvariable cdf_attput, file, 'Valid_Min', name, -1e20, /zvariable cdf_attput, file, 'Valid_Max', name, 1e20, /zvariable name = 'T'+moms(k) get_data, name, data = data nvar = cdf_varcreate(file, name,[1], /cdf_float, $ dim = [dimen1(data.y)]) cdf_varput, file, name, data.y cdf_attput, file, 'Units', name, 'eV', /zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable cdf_attput, file, 'Valid_Max', name, 1e20, /zvariable name = moms(k)+'mom_time' nvar = cdf_varcreate(file, name, [1], /cdf_double, $ dim = [dimen1(data.x)]) cdf_varput, file, name, data.x cdf_attput, file, 'Units', name,'Seconds since 1970',/zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable name = moms(k)+'mom_epoch' cdf_epoch,epoch_0,1970,1,1,0,0,0, /compute_epoch epoch = data.x*1000. + epoch_0 nvar = cdf_varcreate(file, name, [1], /cdf_double, $ dim = [dimen1(epoch)]) cdf_varput, file, name, epoch cdf_attput, file, 'Units', name,'Epoch', $ /zvariable cdf_attput, file, 'Valid_Min', name, 0, /zvariable endfor date_0 = str_to_time(dates(i)) date_1 = date_0 + 86400. i_dates = findgen(28800)*3 + date_0 epoch = i_dates*1000. + epoch_0 nvar = cdf_varcreate(file, 'Epoch', /cdf_double) cdf_varput, file, 'Epoch', epoch ;needed for kpdfile cdf_close, file endfor return end