This page was created by the IDL library routine
mk_html_help2.
Last modified: Tue Apr 8 18:16:48 2025.
Procedure: thm_load_sst2
Purpose: Loads THEMIS SST data
WARNING: This routine is under development as part of the SST calibration process. Use at your own risk!
keywords:
probe = Probe name. The default is 'all', i.e., load all available probes.
This can be an array of strings, e.g., ['a', 'b'] or a
single string delimited by spaces, e.g., 'a b'
datatype = The type of data to be loaded, for this case, there is only
one option, the default value of 'sst', so this is a
placeholder should there be more that one data type. 'all'
can be passed in also, to get all variables.
TRANGE= (Optional) Time range of interest (2 element array), if
this is not set, the default is to prompt the user. Note
that if the input time range is not a full day, a full
day's data is loaded
level = the level of the data, the default is 'l1', or level-1
data. A string (e.g., 'l2') or an integer can be used. 'all'
can be passed in also, to get all levels.
CDF_DATA: named variable in which to return cdf data structure: only works
for a single spacecraft and datafile name.
VARNAMES: names of variables to load from cdf: default is all.
/GET_SUPPORT_DATA: load support_data variables as well as data variables
into tplot variables.
/DOWNLOADONLY: download file but don't read it.
/valid_names, if set, then this routine will return the valid probe, datatype
and/or level options in named variables supplied as
arguments to the corresponding keywords.
files named varible for output of pathnames of local files.
/VERBOSE set to output some useful info
Example:
thg_load_sst,/get_suppport_data,probe=['a', 'b']
Notes:
Many of the standard keywords only work with L2 data.
When L1 data is loaded it is merged into a data structures stored
in tplot variables named: th?_ps??_data.
These structures have the form:
X DOUBLE Array[27797]
Y INT Array[27797]
MDISTDAT STRUCT -> <Anonymous> Array[1]
X is the time array for the data
Y is the index to the distribution type that is valid at each time.
D.Y will index MDISTDAT.DISTPTRS, although not all distptrs are guaranteed to be valid.(ie Not all distributions will be used in a given data set)
This modification replaces use of data_cache and common blocks for passing sst data between routines.
Major Revisions:
Written by Davin Larson, Dec 2006
Updated to use thm_load_xxx by KRB, 2007-2-5
Update removed to not use thm_load_xxx by DEL
Updated to use new code from Davin by pcruce Jun 2010
$LastChangedBy: jimm $
$LastChangedDate: 2021-04-19 11:52:51 -0700 (Mon, 19 Apr 2021) $
$LastChangedRevision: 29890 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_load_sst2.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_load_sst2.pro)
NAME:
thm_part_dist2
PURPOSE:
wrapper function around the different routines called 'get_p???'
used for ESA particle data and 'thm_sst_p???' routines that extract
SST data.
This is a working version for development of SST calibrations.
INPUT:
format = a string denoting the data that is desired: options are:
'tha_peif': Full Esa mode data, ions, probe A
'tha_peef': Full Esa mode data, electrons, probe A
'tha_peir': Reduced Esa mode data, ions, probe A
'tha_peer': Reduced Esa mode data, electrons, probe A
'tha_peir': Burst Esa mode data, ions, probe A
'tha_peer': Reduced Esa mode data, electrons, probe A
'tha_psif': Full Sst mode data, ions, probe A
'tha_psef': Full Sst mode data, electrons, probe A
'tha_psir': Reduced Sst mode data, ions, probe A
'tha_pser': Reduced Sst mode data, electrons, probe A
For other probes, just replace 'tha' with the appropriate
string, 'thb', 'thc', 'thd', 'the'
If this is not set, then the string is constructed from the
type and probe keywords
time = an input time, if not passed in, then this routine will
attempt to get the time from plotted data, via ctime, unless
the index keyword is passed in (for SST) or
when start, en, advance, retreat, or index are passed in.
KEYWORDS:
type = 4 character string denoting the type of data that you need,
e.g., 'peif' for full mode esa data
probe = the THEMIS probe, 'a','b','c','d','e'
cursor = if set, then choose a time from the plot, using
ctime.pro. This overrides any input -- that is, the
variable that was used becomes the input variable and the
time obtained becomes the time of the data.
index = an index for the data point that is to be returned
start (ESA only) = if set, then get the first saved data point
en (ESA only) = if set, get the last saved data point
advance (ESA only) = if set, get the data point after the one that
was gotten last
retreat (ESA only) = if set, get the data point before the one that
was gotten last
times = if set, returns the time array for all the saved data points
skip_sst_att_correct = if set skip correction for effective
attenuation, which is done by default if the
variables 'th?_ps?f_ratio_var' exist for the
given probe and species.
OUTPUT:
dat = the '3d data structure' for the given data type: In general
this will be different for different data types, but there are
elements that are common to all, Here is a sample for tha_psif
data:
PROJECT_NAME STRING 'THEMIS'
DATA_NAME STRING 'SST Ion Full distribution'
UNITS_NAME STRING 'Counts'
UNITS_PROCEDURE STRING 'thm_sst_convert_units'
TPLOTNAME STRING ''
TIME DOUBLE 1.1837675e+09
END_TIME DOUBLE 1.1837676e+09
TRANGE DOUBLE Array[2] ;;not always present
INDEX LONG 4
NBINS LONG 64
NENERGY LONG 16
MAGF FLOAT Array[3]
SC_POT FLOAT 0.00000
MASS FLOAT 0.0104390
CHARGE FLOAT 0.00000
VALID INT 1
MODE INT 0
CNFG INT 577
NSPINS INT 64
DATA FLOAT Array[16, 64]
ENERGY FLOAT Array[16, 64]
THETA FLOAT Array[16, 64]
PHI FLOAT Array[16, 64]
DENERGY FLOAT Array[16, 64]
DTHETA FLOAT Array[16, 64]
DPHI FLOAT Array[16, 64]
BINS INT Array[16, 64]
GF FLOAT Array[16, 64]
INTEG_T FLOAT Array[16, 64]
DEADTIME FLOAT Array[16, 64]
GEOM_FACTOR FLOAT 0.100000
ATTEN INT 10
;Following fields added for ESA compatibility purposes
DEAD FLOAT 0.0
;Following fields added for calibration purposes, values are read from a file
EFF FLOAT Array[16, 64] ;Detector Efficiency only 16x4 unique values
ENERGY_SCALE FLOAT Array[16, 64] ;Energy Scale Factors only 4 unique values
ENERGY_OFFSET FLOAT Array[16, 64] ;Energy Offsets only 4 unique values
GF FLOAT Array[16, 64] ;Gfactor corrections, only 4 unique values
Note: True Geometric factor = GEOM_FACTOR*GF, GF are corrections for aperture variations
NOTE: 1. that the .time tag refers to the interval start time. The
.trange tag gives the time range, and is not always present.
2. For documentation on sun contamination correction keywords that
may be passed in through the _extra keyword please see:
thm_remove_sunpulse.pro or thm_crib_sst_contamination.pro
$LastChangedBy: jimm $
$LastChangedDate: 2021-06-21 11:42:40 -0700 (Mon, 21 Jun 2021) $
$LastChangedRevision: 30074 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_part_dist2.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_part_dist2.pro)
Procedure: thm_santize_l2_sst
Purpose:
Basic santization for L2 CDFs.
Right now, only removes attenuator spikes
Only tested for psif/psef. Not sure how it would work on other data
Arguments:
probe: the probe ('a','b,', etc...)
datatype: the sst data type( e.g. psif etc..)
tvarnames: the tvarnames to be sanitized
suffix=suffix:Set to add a suffix for comparison testing
$LastChangedBy: jimm $
$LastChangedDate: 2021-06-21 13:40:03 -0700 (Mon, 21 Jun 2021) $
$LastChangedRevision: 30075 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sanitize_l2_sst.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sanitize_l2_sst.pro)
Procedure: THM_SST_ADD_SPINDATA2.PRO
Purpose: Add appropriate spin model data to L1 SST data
loaded via thm_load_sst2.pro.
Arguments:
dts: Structure from thm_load_sst2.pro (thm_load_sst2_cdfivars)
containing pointers to time varying quatities for a single
data type.
Keywords:
use_eclipse_corrections: Flag to specify which spin model will be used:
0 - No corrections (default)
1 - Use partial corrections
2 - Use full eclipse corrections
Notes: To be called within thm_load_sst2.
Assumes STATE data has already been loaded.
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_add_spindata2.pro)
NAME:
thm_sst_att_correct
PURPOSE:
tests for attenuator transition, calculates background level and
correction factor, and corrects the attenuation level in the saved
data structures. Ideally the correction is interpolated between two
attenuator transistions.
CALLING SEQUENCE:
thm_sst_att_correct, probe, date, dur = dur
INPUT:
probe = 'a', 'b', 'c', 'd', or 'e'
date = start date
KEYWORDS:
dur = duration in days, note that some attenuator intervals are more
than a day, if there is no attenuator transition during the
date input, no correction will be calculated. If there is only
one transition in the data, then the correction will not be
interpolated over the full interval.
auto_extend = If duration is 1 day, the auto_extend option will
extend the calculation to previous and later days if
the attenuators are in at the start and end of the
day. This will extend at least 7 days in either
direction.
NOTES:
Uses thm_part_dist2, and not thx_sst_psi?f
HISTORY:
2021-03-29, jimm@ssl.berkeley.edu
$LastChangedBy: jimm $
$LastChangedDate: 2021-07-13 13:06:43 -0700 (Tue, 13 Jul 2021) $
$LastChangedRevision: 30125 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_att_correct.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_att_correct.pro)
NAME: thm_sst_build_cal_files PURPOSE: Automated routine to ease the creation of text-based cal-files $LastChangedBy: pcruce $ $LastChangedDate: 2013-03-11 16:02:06 -0700 (Mon, 11 Mar 2013) $ $LastChangedRevision: 11768 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_build_cal_files.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_build_cal_files.pro)
NAME: thm_sst_calibration_tests PURPOSE: This routine is for testing new calibrations(will eventually be moved to QA directory) $LastChangedBy: pcruce $ $LastChangedDate: 2011-10-10 13:06:53 -0700 (Mon, 10 Oct 2011) $ $LastChangedRevision: 9100 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_calibration_tests.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_calibration_tests.pro)
NAME: thm_sst_calib_params2 PURPOSE: This populates the correct fields of the dist struct so that data can be correctly calibrated. Inputs: dist: The dist struct that will have its fields populated param_structs: An array of parameter structs that contains the calibration parameters for each time Outputs: error: Set to 1 if error occurred and 0 otherwise. If error occurs calling routine should halt. Keywords: no_energy_efficiency: Set to disable energy efficiency calibrations no_geom_efficiency: Set to disable the relative efficiencies of different anodes no_dead_layer_offsets: Set to disable dead layer energy offsets NOTES: #1 dist.time should be set by the time this is called #2 uses the calibration parameters for full distribution on all types. $LastChangedBy: pcruce $ $LastChangedDate: 2013-03-11 17:32:36 -0700 (Mon, 11 Mar 2013) $ $LastChangedRevision: 11772 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_calib_params2.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_calib_params2.pro)
NAME: thm_sst_convert_units2 PURPOSE: This routine converts input data into the desired physical units It is used as a callback function by ssl_general routines like moments_3d/conv_units It will mutate the contents of the struct that is passed as an argument. Inputs: data: data struct that is being converted, this structure will have its data mutated units: string identifying the desired output units other_data: Proper calibration of the SST requires removal of ion & electron cross-contamination at high energies. If this argument contains the associated struct from the opposite species, cross contamination will be removed. Outputs: scale: scale factor that was used to convert the data into the desired format, should have dimensions that match the data SEE ALSO: thm_sst_energy_cal2 moments_3d conv_units thm_convert_esa_units NOTES: This code is based heavily on thm_convert_esa_units. Looking there should be helpful in understanding this code. $LastChangedBy: pcruce $ $LastChangedDate: 2013-09-06 18:19:42 -0700 (Fri, 06 Sep 2013) $ $LastChangedRevision: 12970 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_convert_units2.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_convert_units2.pro)
NAME: thm_sst_cross_contamination_remove,data_a,data_b PURPOSE: At higher energies electrons will be present in SST ion data and ions will be present in SST electron data. This uses a matrix approach based on modeled channel efficiencies to remove cross contamination. SEE ALSO: thm_sst_energy_cal2 moments_3d conv_units thm_sst_convert_units2 NOTES: $LastChangedBy: aaflores $ $LastChangedDate: 2012-01-10 10:57:33 -0800 (Tue, 10 Jan 2012) $ $LastChangedRevision: 9527 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_cross_contamination_remove.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_cross_contamination_remove.pro)
NAME: thm_sst_dist3d_16x64 PURPOSE: This routine defines the appropriate distribution representation struct for 16 Energy and 64 angle SST data. $LastChangedBy: pcruce $ $LastChangedDate: 2013-09-10 16:17:02 -0700 (Tue, 10 Sep 2013) $ $LastChangedRevision: 13014 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_dist3d_16x64_2__define.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_dist3d_16x64_2__define.pro)
NAME: thm_sst_dist3d_16x64 PURPOSE: This routine returns the appropriate distribution representation struct for 16 Energy and 64 angle SST data.(16 energy by 4 theta by 16 phi) Default and/or constant values will be populated. At this point, the structure should be considered incomplete. $LastChangedBy: aaflores $ $LastChangedDate: 2012-11-01 16:46:42 -0700 (Thu, 01 Nov 2012) $ $LastChangedRevision: 11152 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_dist3d_16x64_2.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_dist3d_16x64_2.pro)
NAME: thm_sst_dist3d_def PURPOSE: This routine returns the appropriate distribution representation struct for a particular number of SST angles in the data type. Default and/or constant values will be populated. At this point, the structure should be considered incomplete. $LastChangedBy: aaflores $ $LastChangedDate: 2016-02-05 14:02:49 -0800 (Fri, 05 Feb 2016) $ $LastChangedRevision: 19904 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_dist3d_def2.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_dist3d_def2.pro)
NAME: thm_sst_energy_cal2 PURPOSE: This routine performs bin energy boundary calibrations. Transforming DAP values into eV The routine directly modifies the dat struct according to parameters stored in the struct But results can be returned for reference. Inputs: dat Outputs: energy: The midpoint of each energy bin denergy: The width of each energy bin SEE ALSO: thm_sst_convert_units2 $LastChangedBy: pcruce $ $LastChangedDate: 2013-03-07 19:17:56 -0800 (Thu, 07 Mar 2013) $ $LastChangedRevision: 11751 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_energy_cal2.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_energy_cal2.pro)
NAME:
thm_sst_read_calibration_params
PURPOSE:
This routine reads calibration parameters from a file.
Inputs:
thx: probe identifier string (e.g. 'tha','thb'...)
species: 'e' or 'i', to indicate ion or electron
dtype: distribution type 'f','b','r'
Returns:
The parameter struct for the calibration file
NOTES:
#1 Reading and applying the calibration parameters is done separately, because reading later when
they are applied leads to duplicated parameter reads. And because there is not enough information
to apply parameters at load time.
$LastChangedBy: aaflores $
$LastChangedDate: 2015-04-27 11:26:29 -0700 (Mon, 27 Apr 2015) $
$LastChangedRevision: 17433 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_read_calib_params.pro $
(See projects/themis/spacecraft/particles/SST/SST_cal_workdir/thm_sst_read_calib_params.pro)