;+ ;PROCEDURE: load_ace_mag ;PURPOSE: ; loads ACE MAG Experiment key parameter data for "tplot". ; ;INPUTS: ; none, but will call "timespan" if time_range is not already set. ;KEYWORDS: ; DATA: Raw data can be returned through this named variable. ; TIME_RANGE: 2 element vector specifying the time range. ; MASTERFILE: (String) full filename of master file. ; POLAR: Computes B field and SC position in polar coordinates. ;SEE ALSO: ; "loadallhdf" ; ;CREATED BY: Peter Schroeder ;Modified by D. Larson 5/2008 to automatically download files from the ACE data center (masterfile is ignored) ;LAST MODIFIED: @(#)load_ace_mag.pro 1.2 02/04/12 ;- pro load_ace_mag,data=data,trange=trange,time_range=time_range,masterfile=masterfile,$ polar=polar,filenames=filenames,downloadonly=downloadonly vdataname = 'MAG_data_16sec' tplot_prefix = 'ace_mag_' if not keyword_set(indexfile) then indexfile='ace_mag_files' hdfnames=['ACEepoch','Bgse_x','Bgse_y','Bgse_z','dBrms','sigma_B',$ 'fraction_good','N_vectors','Quality','pos_gse_x','pos_gse_y','pos_gse_z'] if not keyword_set(source) then begin source = file_retrieve(/struct) source.local_data_dir = root_data_dir() + 'ace/' source.remote_data_dir = 'http://www.srl.caltech.edu/ACE/ASC/DATA/' endif tr = timerange( trange ) ;+ 3600d*[-6,6] br = floor( time_bartel(/invers, timerange(tr) ) ) nbr = br[1]-br[0]+1 bn = strtrim(string( lindgen(nbr) + br[0]) ,2) pathformat = 'level2/mag/mag_data_16sec_'+bn+'.hdf' filenames = file_retrieve(pathformat,_extra=source) loadallhdf,time_range=tr,vdataname=vdataname,data=data $ ,filenames=filenames ,hdfnames=hdfnames if keyword_set(downloadonly) then return if not keyword_set(data) then begin dprint,'No valid data in: ',filenames return endif timearray = data.ACEepoch + time_double('96-1-1') baddataindx = where(data.Quality eq 2,baddatacnt) if baddatacnt ne 0 then begin data.Bgse_x[baddataindx] = !values.f_nan data.Bgse_y[baddataindx] = !values.f_nan data.Bgse_z[baddataindx] = !values.f_nan endif store_data,tplot_prefix+'Bgse',data={x: timearray, $ y: [[data.Bgse_x],[data.Bgse_y],[data.Bgse_z]]} if keyword_set(polar) then xyz_to_polar,tplot_prefix+'Bgse',/ph_0_360 store_data,tplot_prefix+'dBrms',data={x: timearray, y: data.dBrms} store_data,tplot_prefix+'sigma_B',data={x: timearray, y: data.sigma_B} store_data,tplot_prefix+'fraction_good',data={x: timearray, y: data.fraction_good} store_data,tplot_prefix+'N_vectors',data={x: timearray, y: data.N_vectors} store_data,tplot_prefix+'Quality',data={x: timearray, y: data.Quality} store_data,tplot_prefix+'pos_gse',data={x: timearray, $ y: [[data.pos_gse_x],[data.pos_gse_y],[data.pos_gse_z]]/6370.} if keyword_set(polar) then xyz_to_polar,tplot_prefix+'pos_gse',/ph_0_360 return end