This page was created by the IDL library routine mk_html_help2.

Last modified: Thu Aug 6 12:53:14 2020.


Directory Listing of Routines


Routine Descriptions

SPD_DIST_TO_HASH

[Next Routine] [List of Routines]
Procedure:
  spd_dist_to_hash

Purpose:
  Convert standard 3D partical distribution structure into hash
  compatible with ISEE_3D 

Calling Sequence:
  hash = spd_dist_to_hash( dist [,counts=dist_counts]

Input:
  dist:  Standard distribution structure array (pointer) in df units
  counts:  Optional copy of dist in counts

Output:
  return value: A hash whose elements are each single distributions,
                The keys are the sample time in millisecond precision.

Notes:
  -Requires IDL 8.0+, 8.2+ recommended


$LastChangedBy: aaflores $
$LastChangedDate: 2016-05-23 18:52:50 -0700 (Mon, 23 May 2016) $
$LastChangedRevision: 21180 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_dist_to_hash.pro $

(See general/science/spd_part_products/spd_dist_to_hash.pro)


SPD_PART_COPY

[Previous Routine] [Next Routine] [List of Routines]
Procedure: spd_part_copy

Purpose: Performs deep copy on particle data that is returned by thm_part_dist_array

Arguments:  Old: A particle data structure to be copied
            New: A variable name to which the particle data should be copied

Keywords: error=error:  Set to named variable. Returns 0 if no error, nonzero otherwise.

Usage: spd_part_copy,old,new

  $LastChangedBy: aaflores $
  $LastChangedDate: 2016-02-09 16:31:11 -0800 (Tue, 09 Feb 2016) $
  $LastChangedRevision: 19920 $
  $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_part_copy.pro $

(See general/science/spd_part_products/spd_part_copy.pro)


SPD_PGS_ALIGN_PHI

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_align_phi

Purpose:
  Align phi bins with respect to energy in order to reduce 
  fringing artifacts on field aligned spectrograms.


Input:
  data: single sanitized data structure
  

Output:
  -Phi values in DATA will be averaged across energy.
  -If the inter-energy phi difference is too large for an
   accurate average over energy then an error will be thrown.
   (Hopefully this will never happen, if it does a more
    sofisticated algorithm will be needed)
  

Notes:
  -sigh
   

$LastChangedBy: pcruce $
$LastChangedDate: 2016-01-04 15:09:48 -0800 (Mon, 04 Jan 2016) $
$LastChangedRevision: 19671 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_align_phi.pro $

(See general/science/spd_part_products/spd_pgs_align_phi.pro)


SPD_PGS_CLIP_SPEC

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_clip_spec

Purpose:
  Place NaNs in areas of a spectrogram that are beyond
  the requested limits.

Input:
  y: spectrogram y axis
  z: spectrogram data
  range: The initial range limit applied to the data along an axis
         where that axis now serves as the spectrogram's y axis.
         (e.g. phi=[0,180] for a phi spectrogram)

Output:
  NaNs applied to out of range data in Z

Notes:
  

$LastChangedBy: pcruce $
$LastChangedDate: 2016-01-04 15:09:48 -0800 (Mon, 04 Jan 2016) $
$LastChangedRevision: 19671 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_clip_spec.pro $

(See general/science/spd_part_products/spd_pgs_clip_spec.pro)


SPD_PGS_CONCAT_SPEC

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_concat_spec

Purpose:
  Concatenates spectrograms pieces from across a mode change

Input:
  a: First spectrogram piece (in time) 
  b: Second spectrogram piece (in time)

Output:
  None, appends b to end of a; b will be undefined afterwards.

Notes:


$LastChangedBy: pcruce $
$LastChangedDate: 2016-01-04 15:09:48 -0800 (Mon, 04 Jan 2016) $
$LastChangedRevision: 19671 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_concat_spec.pro $

(See general/science/spd_part_products/spd_pgs_concat_spec.pro)


SPD_PGS_CONCAT_YAXIS

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_concat_yaxis

Purpose:
  Concatenates different y axes as spectrogram is built across mode changes

Input:
  y: Previous y axes, either single dimension or ny x ntimes
  yc: Y axis for current sample, single dimension
  ns: Number of samples before the current one in the spectrogram.
      (used when 1D y axis is converted to 2D axis)  

Output:
  -If y is 1D and yc==y then no variables are changed.
  -If y is 1D and yc!=y then y will become a two dimensional
   and yc will be appended 
  -If y is 2D then yc will be appended.
  -If y and yc have different numbers of elements the smaller
   will be expanded and padded with NaNs

Notes:


$LastChangedBy: pcruce $
$LastChangedDate: 2016-01-04 15:09:48 -0800 (Mon, 04 Jan 2016) $
$LastChangedRevision: 19671 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_concat_yaxis.pro $

(See general/science/spd_part_products/spd_pgs_concat_yaxis.pro)


SPD_PGS_DO_FAC

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_do_fac

Purpose:
  Applies field aligned coordinate transformation to input data

Input:
  data: The struct to be rotated
  mat: The fac rotation matrix
    
Output:
  output=output:  The struct of rotated data
  error=error: 1 indicates error occured, 0 indicates no error occured


$LastChangedBy: egrimes $
$LastChangedDate: 2017-03-10 11:44:24 -0800 (Fri, 10 Mar 2017) $
$LastChangedRevision: 22938 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_do_fac.pro $

(See general/science/spd_part_products/spd_pgs_do_fac.pro)


SPD_PGS_EXPORT

[Previous Routine] [Next Routine] [List of Routines]

 PROCEDURE:
   spd_pgs_export
   
 PURPOSE:
   Exports SPEDAS particle data to ASCII files

 INPUT:
   data_in: standard SPEDAS particle data structure
 
 KEYWORDS:
  filename: output filename
  precise: increases precision to the maximum (microseconds)


$LastChangedBy: egrimes $
$LastChangedDate: 2019-04-10 07:20:38 -0700 (Wed, 10 Apr 2019) $
$LastChangedRevision: 26982 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_export.pro $

(See general/science/spd_part_products/spd_pgs_export.pro)


SPD_PGS_LIMIT_RANGE

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_limits_range

Purpose:
  Applies phi, theta, and energy limits to data structure(s) by
  turning off the corresponding bin flags.


Input:
  data: single sanitized data structure
  phi: phi min/max (min>max allowed)
  theta: theta min/max
  energy: energy min/max


Output:
  Turns off all bins that do not intersect the specified limits.


Notes:
  


$LastChangedBy: jimm $
$LastChangedDate: 2019-07-16 13:07:25 -0700 (Tue, 16 Jul 2019) $
$LastChangedRevision: 27461 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_limit_range.pro $

(See general/science/spd_part_products/spd_pgs_limit_range.pro)


SPD_PGS_MAKE_E_SPEC

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_make_e_spec

Purpose:
  Builds energy spectrogram from simplified particle data structure.


Input:
  data: single sanitized data structure
  

Input/Output:
  spec: The spectrogram (ny x ntimes)
  yaxis: The y axis (ny OR ny x ntimes)
  
  -Each time this procedure runs it will concatenate the sample's data
   to the SPEC variable.
  -Both variables will be initialized if not set
  -The y axis will remain a single dimension until a change is detected
   in the data, at which point it will be expanded to two dimensions.


Notes:


$LastChangedBy: nikos $
$LastChangedDate: 2017-02-21 18:05:49 -0800 (Tue, 21 Feb 2017) $
$LastChangedRevision: 22843 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_make_e_spec.pro $

(See general/science/spd_part_products/spd_pgs_make_e_spec.pro)


SPD_PGS_MAKE_PHI_SPEC

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_make_phi_spec

Purpose:
  Builds phi (longitudinal) spectrogram from simplified particle data structure.


Input:
  data: single sanitized data structure
  

Input/Output:
  spec: The spectrogram (ny x ntimes)
  yaxis: The y axis (ny OR ny x ntimes)
  resolution: (optional) Specify output resolution
  
  -Each time this procedure runs it will concatenate the sample's data
   to the SPEC variable.
  -Both variables will be initialized if not set
  -The y axis will remain a single dimension until a change is detected
   in the data, at which point it will be expanded to two dimensions.


Notes:
  -Code for original value_locate() based version remains commented out
   below. It should produce identical spectrograms for regular phi grids.


$LastChangedBy: aaflores $
$LastChangedDate: 2016-09-30 17:20:25 -0700 (Fri, 30 Sep 2016) $
$LastChangedRevision: 21989 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_make_phi_spec.pro $

(See general/science/spd_part_products/spd_pgs_make_phi_spec.pro)


SPD_PGS_MAKE_THETA_SPEC

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_make_theta_spec

Purpose:
  Builds theta (latitudinal) spectrogram from simplified particle data structure.


Input:
  data: single sanitized data structure


Input/Output:
  spec: The spectrogram (ny x ntimes)
  yaxis: The y axis (ny OR ny x ntimes)
  resolution: (optional) Specify output resolution
  colatitude: Flag to specify that data is in colatitude
  
  -Each time this procedure runs it will concatenate the sample's data
   to the SPEC variable.
  -Both variables will be initialized if not set
  -The y axis will remain a single dimension until a change is detected
   in the data, at which point it will be expanded to two dimensions.


Notes:
  -Resolution of output grid is determined by number of unique theta values
   for the first energy.


History:
  2016-01-20: Changed algorithm to allow ungrouped theta values (~8% slower now)
  2016-09-23: Generalized to remove restrictions on data regularity


$LastChangedBy: aaflores $
$LastChangedDate: 2016-09-30 17:20:25 -0700 (Fri, 30 Sep 2016) $
$LastChangedRevision: 21989 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_make_theta_spec.pro $

(See general/science/spd_part_products/spd_pgs_make_theta_spec.pro)


SPD_PGS_MAKE_TPLOT

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_make_tplot

Purpose:
  Create tplot variable with standard spectrogram settings.


Input:
  name: name of new tplot variable to create
  x: x axis (time)
  y: y axis 
  z: z axis (data)
  _extra: Any other keywords used will be passed to tplot and
          set in the dlimits of the new variable.
          (e.g. ylog=1 to set logarithmic y axis)


Output:
  Creates a tplot variable.
  tplotnames=tplotnames : Concatenates the name of the new variable onto tnames argument

Notes:
  


$LastChangedBy: pcruce $
$LastChangedDate: 2016-01-04 16:08:31 -0800 (Mon, 04 Jan 2016) $
$LastChangedRevision: 19675 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_make_tplot.pro $

(See general/science/spd_part_products/spd_pgs_make_tplot.pro)


SPD_PGS_MAP_AZIMUTH

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_map_azimuth

Purpose:
  Map any range of azimuth values in [-inf,inf] to [0,360]

Calling Sequence:
  new_angles = thm_pgs_map_azimuth(angles)

Input:
  phi: Array of azimuth values in degrees

Output:
  return value: Input values mapped to [0,360]

Notes:

  -values of 360 will not be wrapped to zero
   (otherwise a [0,360] range is mapped to [0,0])


$LastChangedBy: pcruce $
$LastChangedDate: 2016-01-04 15:09:48 -0800 (Mon, 04 Jan 2016) $
$LastChangedRevision: 19671 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_map_azimuth.pro $

(See general/science/spd_part_products/spd_pgs_map_azimuth.pro)


SPD_PGS_MOMENTS

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_moments

Purpose:
  Calculates moments from a simplified particle data structure.


Arguments:
  data: single sanitized data structure
  
  
Input Keywords:
  get_error: Flag indicating that error esitmates (sigma) should be returned
  mag_data: Optional array containing magnetic field vectors for all time samples
  scpot_data: Optional array containing spacecraft potential data for all time samples
  index: Index into mag_data/scpot_data specifying which sample to use

Output Keywords:
  moments: Structure output from moments_3d containing the data.
  sigma: Structure output from moments_3d containing error estimates.

  
Notes:


$LastChangedBy: pcruce $
$LastChangedDate: 2016-02-26 18:33:58 -0800 (Fri, 26 Feb 2016) $
$LastChangedRevision: 20235 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_moments.pro $

(See general/science/spd_part_products/spd_pgs_moments.pro)


SPD_PGS_MOMENTS_TPLOT

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  thm_pgs_moments_tplot


Purpose:
  Creates tplot variables from moments structures


Arguments:
  moments:  Array of moments structures returned from moments_3d 
  
  
Keywords:
  get_error: Flag indicating that the current moment structure
             contains error estimates.
  no_mag: Flag to omit outputs associated with b field
  prefix: Tplot variable name prefix (e.g. 'tha_peif_')
  suffix: Tplot variable name suffix
  tplotnames: Array of tplot variable names created by the parent 
              routine.  Any tplot variables created in this routine
              should have their names appended to this array.
  

Notes:
  Much of this code was copied from thm_part_moments.pro


$LastChangedBy: egrimes $
$LastChangedDate: 2018-08-09 16:26:49 -0700 (Thu, 09 Aug 2018) $
$LastChangedRevision: 25623 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_moments_tplot.pro $

(See general/science/spd_part_products/spd_pgs_moments_tplot.pro)


SPD_PGS_PROGRESS_UPDATE

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_progress_update

Purpose:
  Helper routine prints status message indicating completion percent


Input:
  last_update_time: The last time an update was posted(you can just set this to an undefined variable name)
  current_sample: The current sample index
  total_samples: The total number of samples
  display_object=display_object(optional): dprint display object
  type_string=type_string(optional): set to specify a type in the output message


Notes:
  

$LastChangedBy: pcruce $
$LastChangedDate: 2016-01-04 15:09:48 -0800 (Mon, 04 Jan 2016) $
$LastChangedRevision: 19671 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_progress_update.pro $

(See general/science/spd_part_products/spd_pgs_progress_update.pro)


SPD_PGS_REGRID

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_regrid

Purpose:
  Regrids rotated data to a new set of regularly gridded spherical interpolates

Input:
  data: The struct to be regridded
  regrid_dimen: 2-element array specifying the requested number of phis & thetas in regridded output.
    
Output:
  output=output:  The struct of regridded data
  error=error: 1 indicates error occured, 0 indicates no error occured


$LastChangedBy: egrimes $
$LastChangedDate: 2017-07-05 09:17:03 -0700 (Wed, 05 Jul 2017) $
$LastChangedRevision: 23548 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_regrid.pro $

(See general/science/spd_part_products/spd_pgs_regrid.pro)


SPD_PGS_SHIFT_PHI_SPEC[1]

[Previous Routine] [Next Routine] [List of Routines]
Purpose:
  The new y range may not align perfectly with the shifted 
  data, causing a white bar at the top of the plot.  This 
  routine copies the botton row onto the top to cover the 
  white space.
  
  (requested fix, probably no good solution)

  ^ The other solution would be to snap the new y axis range
    to that of the reordered bins rather than plotting exactly
    what the user requested.

Arguments:
  data: data structure from tplot, already shifted
  yrange: full range of y data from main routine

(See general/science/spd_part_products/spd_pgs_shift_phi_spec.pro)


SPD_PGS_SHIFT_PHI_SPEC[2]

[Previous Routine] [Next Routine] [List of Routines]
Procedure:
  spd_pgs_shift_phi_spec

Purpose:
  Shifts phi (longitudinal) spectrogram's y-axis to start at a different angle.

Input:
  names: string or string array of tplot variable names (wildcards accepted)
  start_angle: value in degrees at which to start the plot (e.g. 90, 180)

Output:
  None, alters input tplot variable(s).

Notes:
  -Bins intersected by the start angle will be copied to the top (end)
   of the spectrogram to ensure that the portion of those bin that is <
   the start angle is still plotted.
  -This procedure assumes that the input variables' y axes are
   monotonic and that any NaNs are at the end of the arrays.
  -NaNs in the y axis are shifted along with valid numbers to
   ensure that missing data along the original spectrogram's
   edge is represented correctly.
    


$LastChangedBy: aaflores $
$LastChangedDate: 2016-08-04 18:15:27 -0700 (Thu, 04 Aug 2016) $
$LastChangedRevision: 21602 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_shift_phi_spec.pro $

(See general/science/spd_part_products/spd_pgs_shift_phi_spec.pro)


SPD_PGS_V_SHIFT

[Previous Routine] [List of Routines]
Procedure:
  spd_pgs_v_shift

Purpose:
  Shift a single distribution strucure by a specified velocity vector

Input:
  data:  Sanitized particle data structure to be operated on
  vector:  3-vector in km/s
  matrix:  (optional) rotation matrix to apply to vector before shift

Output:
  error:  flag, 1 indicates error, 0 none

Notes:
  -Particle velocities are assumed to be small enough 
   to use classical calculation.


$LastChangedBy: aaflores $
$LastChangedDate: 2016-09-30 17:28:46 -0700 (Fri, 30 Sep 2016) $
$LastChangedRevision: 21990 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/general/science/spd_part_products/spd_pgs_v_shift.pro $

(See general/science/spd_part_products/spd_pgs_v_shift.pro)