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

DMPA2DSL

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

Purpose: MMS coordinate transformation:
            DMPA <--> DSL

         ----------------------------------------------
         |  This is currently a placeholder and only  |
         |  performs an identity transformation!      |
         -----------------------------------------------

Inputs
  TBD

Keywords:
   /dsl2dmpa:  Inverse transformation
   /IGNORE_DLIMITS:  If the specified from coord is different from the
                     coord system labeled in the dlimits structure of the 
                     tplot variable setting this keyword prevents an error.

Example:
     

Notes: 
    
    
$LastChangedBy: aaflores $
$LastChangedDate: 2015-12-21 19:27:01 -0800 (Mon, 21 Dec 2015) $
$LastChangedRevision: 19640 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/dmpa2dsl.pro $

(See projects/mms/common/cotrans/dmpa2dsl.pro)


DMPA2GSE

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

Purpose: MMS coordinate transformation:
            DMPA <--> GSE

         interpolates, right ascension, declination
         updates coord_sys attribute of output tplot variable.

inputs

     name_mms_xxx_in   ... data to transform (dmpa coordinates)
   name_mms_spinras     ... right ascension of the L-vector (J2000 coordinates)
   name_mms_spindec     ... declination of the L-vector (J2000 coordinates)
   name_mms_xxx_out     ... name for output (t-plot variable name)

keywords:

   /GSE2DMPA inverse transformation

   /IGNORE_DLIMITS if the specified from coord is different from the
coord system labeled in the dlimits structure of the tplot variable
setting this keyword prevents an error

Example:
     

Notes: 
    Based on dsl2gse from THEMIS, forked 6/22/2015
    
    dmpa2gse is functionally equivalent to dsl2gse, and with proper
    input it can be used to perform a DSL to GSE transformation,
    as described below.
    
    MEC L_vec assumes rigid-body rotation even when the wire booms
    are oscillating, and thus, at any point in time it does not
    give L, but rather the average orientation of the nutating
    MPA (which is also assumed fixed relative to the rigid body)
    as it wobbles in inertial space with a period of ~7 minutes.

    
    When the user wants a DSL to GSE transformation, this can be done 
    if the spinra/spindec give the actual orientation of the angular 
    momentum vector.  This can come from:
           predatt (e.g. via AFG/DFG QL RADec_gse), or
           defatt, (e.g. via MEC L_vec data), sufficiently smoothed to remove any ‘wobble’
             - The wobble is large: it can be as large as 0.2 degrees in amplitude 
               right after a maneuver, and still as large as 0.1 degrees 12 hours 
               after a maneuver.
             - A gaussian filter with a low-pass cutoff low enough to clobber the 
               7-minute wobble works well.
    
 $LastChangedBy: egrimes $
 $LastChangedDate: 2017-06-12 15:08:37 -0700 (Mon, 12 Jun 2017) $
 $LastChangedRevision: 23455 $
 $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/dmpa2gse.pro $

(See projects/mms/common/cotrans/dmpa2gse.pro)


MMS_COTRANS

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


Purpose:
  Transform between MMS and geophysical coordinate systems.


Calling Sequence:
  mms_cotrans, input_name [,output_name] 
               ,out_coord=out_coord [,out_suffix=out_suffix] 
               [,in_coord=in_coord] [,in_suffix=in_suffix] ...


Example Usage:
  mms_cotrans, 'mms1_fgm_b_gse_srvy_l2_bvec', in_coord='gse', out_coord='gsm', $
                out_suffix='_gsm', /ignore_dlimits


Arguments:
  input_name: String or string array of input tplot variable(s).  Standard tplot
              wildcards may be used to specify multiple variables.
  output_name (optional) String or string array of output tplot variable names.
              Number of output names must match number of input names once 
              wildcards are considered.

Keywords:
  in_coord:  String specifying the coordinate system of the input(s).
             This keyword is optional if the dlimits.data_att.coord_sys attribute
             is present for the tplot variable, and if present, it must match
             the value of that attribute (see cotrans_set_coord, cotrans_get_coord).
               e.g. 'gse', 'gsm', 'sm', 'gei','geo', 'mag'
  out_coord:  String specifying the desitnation coordinate system.
                e.g. 'gse', 'gsm', 'sm', 'gei','geo', 'mag' 
  in_suffix:  Suffix of input variable name.  This specifies the portion of
              the input variable's name that will be replace with the output
              suffix.  If specified, the name effective input name will be
              input_name + in_suffix
  out_suffix:  Suffix appended to the output name.  If in_suffix is present or
               the input coordinates are part of the input variable's name then
               they will be replaced with out_suffix.
  support_suffix:  Suffix appended to standard support data names when looking
                   for support data (i.e. RA & Dec)
           
  out_vars: return a list of the names of any transformed variables

  valid_names:  return valid coordinate system names in named variables supplied to
                in_coord and/or out_coord keywords.
  ignore_dlimits: set this keyword to true so that an error will not
                  be produced if the internal label of the coordinate system clashed
                  with the user provided coordinate system.
  no_update_labels: Set this keyword if you want the routine to not update the labels automatically


Notes:
  Based on thm_cotrans
  
  
  egrimes disabled DMPA coordinate transformations on 2July18 - please use mms_qcotrans for
  these transformations


$LastChangedBy: egrimes $
$LastChangedDate: 2020-05-18 12:42:05 -0700 (Mon, 18 May 2020) $
$LastChangedRevision: 28709 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_cotrans.pro $

(See projects/mms/common/cotrans/mms_cotrans.pro)


MMS_COTRANS_LMN

[Previous Routine] [Next Routine] [List of Routines]
 PROCEDURE:
         mms_cotrans_lmn

 PURPOSE:
         Tranforms MMS vector fields from GSM coordinates to LMN (boundary-normal) coordinates
         using the Shue et al., 1998 magnetopause model

 KEYWORDS:
         gsm: input vector is in GSM coordinates (note: if the coordinate system is stored in the tplot metadata, these keywords are not required)
         gse: input vector is in GSE coordinates
         probe: MMS probe #; not required if the input variable follows the standard MMS naming scheme, e.g., mms1_mec_r_gsm
         data_rate: data rate of the MEC data
         resol: desired time resolution of the solar wind data in seconds
             if not set, SW data are provided in original time resolution
         wind - use WIND observations for solar wind data (they are convolved to desired resolution and
             then time-shifted to the bow-shock nose using OMNI-2 methodology. The
             code checks if the SW speed irregularities are too large and warns
             user when more sophisticated processing may be needed.
         min5 - use 5 min HRO merged database for solar wind inputs (default is to use 1 min HRO merged data)
         h1 - use OMNI-2 1 hour SW database for solar wind inputs. No convolution employed and parameter
             resol is ignored
             
 NOTES:
         Based on the THEMIS version, thm_cotrans_lmn
 
         Also accepts all keywords available to solarwind_load
         
$LastChangedBy: egrimes $
$LastChangedDate: 2020-05-28 13:57:39 -0700 (Thu, 28 May 2020) $
$LastChangedRevision: 28746 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_cotrans_lmn.pro $

(See projects/mms/common/cotrans/mms_cotrans_lmn.pro)


MMS_COTRANS_PARSE

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

Purpose:
  Parse input coordinates stored in suffix string.
  This should allow coordinates systems denoted non-three-character strings
  and handle disambiguation between systems with identical substrings.

Calling Sequence:
  coord_string = mms_cotrans_parse(input_string, valid_strings)

Input:
  input_string:  The suffix to be parsed (scalar)
  valid_strings:  Array of valid coordinate strings

Output:
  return value:  Returns recognized coordinate or empty string if none found.

Notes:


$LastChangedBy: egrimes $
$LastChangedDate: 2016-05-25 15:38:52 -0700 (Wed, 25 May 2016) $
$LastChangedRevision: 21208 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_cotrans_parse.pro $

(See projects/mms/common/cotrans/mms_cotrans_parse.pro)


MMS_COTRANS_QROTATE

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

Purpose:
  Perform a quaternion rotation on a tplot variable 

Calling Sequence:
  mms_cotrans_qrotate, name_in, quaternion_name [,name_out] [,inverse=inverse]

Input:
  name_in:  Tplot variable to be transformed
  quaternion_name:  Tplot variable containing MMS rotation quaternion
  name_out:  New name for output variable, if not specified the original is overwritten
  inverse:  Flag to apply inverse rotation
  out_coord:  String specifying output coordinates for updating dlimits
  
Output:
  none, may alter or create new tplot variable

Notes:


$LastChangedBy: aaflores $
$LastChangedDate: 2016-05-25 18:22:33 -0700 (Wed, 25 May 2016) $
$LastChangedRevision: 21214 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_cotrans_qrotate.pro $

(See projects/mms/common/cotrans/mms_cotrans_qrotate.pro)


MMS_COTRANS_QTRANSFORMER

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

Purpose:
  Helps simplify transformation logic code using a recursive formulation.
  Rather than specifying the set of transformations for each combination of
  in_coord & out_coord, this routine will perform only the nearest transformation
  then make a recursive call to itself, with each call performing one additional
  step in the chain.  This makes it so only neighboring coordinate transforms
  need be specified.

  All possible transformations currently go through ECI coordinates 

Input:
  in_name:  name of variable to be transformed
  out_name:  output name for transformed variable
  in_coord:  coordinate system of the input
  out_coord:  coordinate system of the output
  probe:  probe designation for input variable

Output:
  No explicit output, calls transformation routines and itself

Notes:
  Modeled after thm_cotrans_transform_helper


$LastChangedBy: aaflores $
$LastChangedDate: 2016-05-25 18:22:33 -0700 (Wed, 25 May 2016) $
$LastChangedRevision: 21214 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_cotrans_qtransformer.pro $

(See projects/mms/common/cotrans/mms_cotrans_qtransformer.pro)


MMS_COTRANS_TRANSFORMER

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

Purpose:
  Helps simplify transformation logic code using a recursive formulation.
  Rather than specifying the set of transformations for each combination of
  in_coord & out_coord, this routine will perform only the nearest transformation
  then make a recursive call to itself, with each call performing one additional
  step in the chain.  This makes it so only neighboring coordinate transforms 
  need be specified.

  The set of possible transformations forms the following graph:
            GSE<->AGSM
             |
     DMPA<->GSE<->GSM<->SM
             |
            GSE<->GEI<->GEO<->MAG
                   |
                  GEI<->J2000

Input:
  in_name:  name of variable to be transformed
  out_name:  output name for transformed variable
  in_coord:  coordinate system of the input
  out_coord:  coordinate system of the output
  
  spinras:  name of spacecraft right ascension variable
  spindec:  name of spacecraft declination variable 

  ingnore_dlimits:  ignore variable metadata

Output:
  No explicit output, calls transformation routines and itself

Notes:
  - Modeled after thm_cotrans_transform_helper
  
  - the dmpa2dsl transformation is an identity 
    transformation (dmpa is approximately the same as dsl; 
    see the notes in the header of dmpa2gse for more info)


$LastChangedBy: egrimes $
$LastChangedDate: 2017-06-12 15:08:37 -0700 (Mon, 12 Jun 2017) $
$LastChangedRevision: 23455 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_cotrans_transformer.pro $

(See projects/mms/common/cotrans/mms_cotrans_transformer.pro)


MMS_MP_LMN

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

 PROCEDURE:
     mms_mp_lmn
 
 NOTES:
     For more info, see: 
     Determining L‐M‐N Current Sheet Coordinates at the Magnetopause From Magnetospheric Multiscale Data by Denton et al.
     
     http://dx.doi.org/10.1002/2017JA024619
     
 HISTORY:
     Originally provided by Jef Broll; added to SPEDAS by egrimes, April 2019


 $LastChangedBy: egrimes $
 $LastChangedDate: 2019-04-29 12:07:53 -0700 (Mon, 29 Apr 2019) $
 $LastChangedRevision: 27132 $
 $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_mp_lmn.pro $

(See projects/mms/common/cotrans/mms_mp_lmn.pro)


MMS_QCOTRANS

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

Purpose:
  Perform coordinate transformations using MMS MEC quaternions.
  This routine mirrors mms_cotrans but applies a different transformation.


Calling Sequence:
  mms_qcotrans, input_name [,output_name] 
                ,out_coord=out_coord [,out_suffix=out_suffix] 
                [,in_coord=in_coord] [,in_suffix=in_suffix] ...

Example Usage:
  mms_qcotrans, 'mms1_fgm_b_gse_srvy_l2_bvec', in_coord='gse', out_coord='gsm', $
                out_suffix='_gsm'


Arguments:
  input_name: String or string array of input tplot variable(s).  Standard tplot
              wildcards may be used to specify multiple variables.
  output_name (optional) String or string array of output tplot variable names.
              Number of output names must match number of input names once 
              wildcards are considered.

Keywords:
  in_coord:  String specifying the coordinate system of the input(s).
             This keyword is optional if the dlimits.data_att.coord_sys attribute
             is present for the tplot variable, and if present, it must match
             the value of that attribute (see cotrans_set_coord, cotrans_get_coord).
               e.g. 'bcs','gse','gse2000','gsm','sm','geo','eci'
  out_coord:  String specifying the output coordinate system.
                e.g. 'bcs','gse','gse2000','gsm','sm','geo','eci'
  in_suffix:  Suffix of input variable name.  This specifies the portion of
              the input variable's name that will be replace with the output
              suffix.  If specified, the name effective input name will be
              input_name + in_suffix
  out_suffix:  Suffix appended to the output name.  If in_suffix is present or
               the input coordinates are part of the input variable's name then
               they will be replaced with out_suffix.
           
  out_vars: return a list of the names of any transformed variables

  valid_names:  return valid coordinate system names
  no_update_labels: Set this keyword if you want the routine to not update the labels automatically



$LastChangedBy: egrimes $
$LastChangedDate: 2018-02-01 15:58:09 -0800 (Thu, 01 Feb 2018) $
$LastChangedRevision: 24622 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_qcotrans.pro $

(See projects/mms/common/cotrans/mms_qcotrans.pro)


MMS_QCOTRANS_CHECK_RATE

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

Purpose:
  Verify that quaternion transformations have sufficient time
  resolution for spinning/despinning data.

Calling Sequence:
  bool = mms_qcotrans_check_times(in_coord, out_coord, probe)

Input:
  in_coord:  input coordinates string
  out_coord:  output coordinates
  probe:  probe designation

Output:
  return value:
    1 if required quaternion are present and have insufficient resolution
    0 otherwise

Notes:
  -Assumes all tranformations performed through ECI

$LastChangedBy: egrimes $
$LastChangedDate: 2016-05-25 15:38:52 -0700 (Wed, 25 May 2016) $
$LastChangedRevision: 21208 $
$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_4_0/projects/mms/common/cotrans/mms_qcotrans_check_rate.pro $

(See projects/mms/common/cotrans/mms_qcotrans_check_rate.pro)