;+ ; tt04s_crib ; ; Purpose: demonstrates the use of the tt04s procedure. This procedure ; is tplot based version of the Tsyganenko 2004 magnetic fields model ; ; Notes: Haje Korth's IDL/Geopack DLM must be installed for this ; to work ; ; Sometimes these routines can take a while to run. ; ; $LastChangedBy: pcruce $ ; $LastChangedDate: 2009-03-26 09:43:51 -0700 (Thu, 26 Mar 2009) $ ; $LastChangedRevision: 5421 $ ; $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/idl_socware/tags/tdas_5_02/external/IDL_GEOPACK/t04s/tt04s_crib.pro $ ;- timespan, '2008-02-02' ;load state data thm_load_state, probe = 'b', coord = 'gsm' ;example values were taken from Tsyganenko's papers, they don't ;reflect the actual conditions at this time tt04s, 'thb_state_pos',pdyn=2.0D,dsti=-30.0D,yimf=0.0D,zimf=-5.0D,$ w1=8.0D,w2=5.0D,w3=9.5D,w4=30.0D,w5=18.5D,w6=60.0D ;load fgm data for comparison thm_load_fgm, probe = 'b', coord = 'gsm' tplot_names tplot, ['thb_state_pos_bt04s', 'thb_fgs_gsm'] stop ;this next example demonstrates the use of geopack_getw to generate ;the w parameters from physical parameters ;inputs are: ;solar wind density in cm^-3 ;solar wind speed in km/s ;interplanetary magnetic field Bz ;if each input argument is an N element array it will produce an Nx6 ;output geopack_getw,5,350,-5,w tt04s, 'thb_state_pos',pdyn=2.0D,dsti=-30.0D,yimf=0.0D,zimf=-5.0D,w1=w[$ 0,0],w2=w[0,1],w3=w[0,2],w4=w[0,3],w5=w[0,4],w6=w[0,5] ;load fgm data for comparison thm_load_fgm, probe = 'b', coord = 'gsm' tplot_names tplot, ['thb_state_pos_bt04s', 'thb_fgs_gsm'] stop ;To properly match the elements of the model field and 'thb_fgs_gsm', ;We need to either (1) sort the input vectors, so that the tvector_rotate procedure can match rotations ;or (2) interpolate the model field on to the data ;Option 1: Sorting ;get_data,'thb_fgs_gsm',data=d ;get data ;sorted = uniq(d.x,bsort(d.x)) ;sort and remove duplication ;store_data,'thb_fgs_gsm',data={x:d.x[sorted],y:d.y[sorted,*]};store again ;Option 2: interpolation ; tinterpol_mxn,'thb_state_pos_bt04s','thb_fgs_gsm',newname='thb_state_pos_bt04s' ; ;now translate magnetometer data into model aligned coordinates ;first we make the transformation matrix fac_matrix_make, 'thb_state_pos_bt04s', other_dim = 'Xgse', newname = $ 'mod_mat' ;then we rotate tvector_rotate, 'mod_mat', 'thb_fgs_gsm' tplot_names ;model field, measured field, measured field in model coordinates tplot, ['thb_state_pos_bt04s', 'thb_fgs_gsm', 'thb_fgs_gsm_rot'] stop ;now substract model from the fgs data ;first interpolate the values onto the same grid tinterpol_mxn,'thb_state_pos_bt04s','thb_fgs_gsm',newname='mod_interp' ;now subtract dif_data,'thb_fgs_gsm','mod_interp',newname='fgs_dif' ;set it up so model and fgm data are on the same plot get_data,'mod_interp',data=d1 get_data,'thb_fgs_gsm',data=d2,dlimits=dl d = {x:d1.x,y:[[d1.y],[double(d2.y)]],v:d1.v} str_element,/add_replace,dl,'colors',[dl.colors,dl.colors] str_element,/add_replace,dl,'labels',[dl.labels,dl.labels] dl.ytitle='fgs measured & model' store_data,'mod_fgm',data=d,dlimits=dl ylim,'fgs_dif',-400,1000 ;to reset to autoscaling on the y axis type ;ylim,'fgs_dif',/default ;now plot tplot,['mod_fgm','fgs_dif'] tlimit,'2008-02-02/18:03:00','2008-02-02/17:48:05' stop ;the ace & wind read procedures use the current tlimit to figure out ;what data range to read ;here is wind data parameter generation ;you may have to set the default download directory manually ;here are some examples: ;setenv,'ROOT_DATA_DIR=~/data' ;good for single user unix/linux system ;setenv,'ROOT_DATA_DIR=C:/Documents and Settings/YOURUSERNMAE/My Documents' ;example if you don't want to use the default windows location (C:/data/ or E:/data/) tlimit,/full ;load kyoto dst ;this dst is the quicklook and may not be 100% reliable, ; but it is probably the best option for dst available kyoto_dst_load ;load wind data wi_mfi_load wi_3dp_load cotrans,'wi_h0_mfi_B3GSE','wi_b3gsm',/GSE2GSM get_tsy_params,'kyoto_dst','wi_b3gsm',$ 'wi_3dp_k0_ion_density','wi_3dp_k0_ion_vel','T04s' tt04s, 'thb_state_pos',parmod='t04s_par' tplot, ['thb_state_pos_bt04s', 'thb_fgs_gsm'] stop ;ace parameter generation ace_mfi_load ace_swe_load ;load_ace_mag loads data in gse coords cotrans,'ace_k0_mfi_BGSEc','ace_mag_Bgsm',/GSE2GSM get_tsy_params,'kyoto_dst','ace_mag_Bgsm',$ 'ace_k0_swe_Np','ace_k0_swe_Vp','T04s',/speed tt04s, 'thb_state_pos',parmod='t04s_par' tplot, ['thb_state_pos_bt04s', 'thb_fgs_gsm'] stop ;load omni data and use to generate model ;NOTE: you may want to degap and deflag the data(using tdegap and tdeflag) ;to remove gaps and flags in the tsyganemo parameter data, especially ;if you find that there are large gaps in the result omni_hro_load store_data,'omni_imf',data=['OMNI_HRO_1min_BY_GSM','OMNI_HRO_1min_BZ_GSM'] get_tsy_params,'kyoto_dst','omni_imf',$ 'OMNI_HRO_1min_proton_density','OMNI_HRO_1min_flow_speed','T04s',/speed,/imf_yz tt04s, 'thb_state_pos',parmod='t04s_par' tplot, ['thb_state_pos_bt04s', 'thb_fgs_gsm'] end