This page was created by the IDL library routine `mk_html_help2`.

Last modified: Mon Nov 3 18:16:57 2025.

# Directory Listing of Routines

# projects/themis/spedas_plugin/thm_ui_cotrans

- THM_UI_COORDINATE_SYSTEMS
  This object exists for two purposes:
- THM_UI_COTRANS
- THM_UI_COTRANS_OPTIONS
- THM_UI_REQ_SLP
  Determines availablity of solar/lunar ephemeris data.
- THM_UI_REQ_SPIN
  Determines availability of parameters for spin model.

# Routine Descriptions

## THM_UI_COORDINATE_SYSTEMS

[Next Routine] [List of Routines]

     NAME:
         thm_ui_coordinate_systems

     PURPOSE:
         This object exists for two purposes:
             1) Maintain the list of coordinate systems used throughout SPEDAS
                in a single location
             2) Encapsulate the methods that produce coordinate system lists
                for different contexts, e.g., the verify data panel,
                load data panel, data processing panel, etc.

         Both are ultimately for code maintenance

     KEYWORDS:

     METHODS:
         makeCoordSysList: creates and returns a list of valid coordinate systems
         makeCoordSysListForSpinModel: creates and returns a list of valid
             coordinate systems that don't require spin model variables to be loaded
         makeCoordSysListForTHEMIS: creates and returns a list of valid THEMIS-centric
             coordinate systems ('dsl', 'ssl', 'spg')
         makeCoordSysListForTHEMISReqPos: creates and returns a list of valid THEMIS coordinate
             systems that require position data to be transformed to/from

     EXAMPLES:
         To make a simple list of general purpose coordinate systems:
            THEMIS> coordSysObj = obj_new('thm_ui_coordinate_systems') ; create the object
            THEMIS> print, coordSysObj->makeCoordSysList(/uppercase) ; make the list
               DSL SSL SPG GSM AGSM GSE GEI SM GEO MAG SEL SSE
            THEMIS> print, coordSysObj->makeCoordSysList(/uppercase, /include_none) ; include N/A
               N/A DSL SSL SPG GSM GSE GEI SM GEO MAG SEL SSE
            THEMIS> print, coordSysObj->makeCoordSysList(/uppercase, /include_none, /include_all) ; includes 'N/A' and 'ALL'
               N/A DSL SSL SPG GSM GSE GEI SM GEO MAG SEL SSE ALL
            THEMIS> obj_destroy, coordSysObj ; delete the object

     NOTE:
          All coordinate system lists exist in this object's constructor, with pointers
            to the lists in the objects state structure

          Changes to this object should be reflected in the corresponding test procedure, thm_ui_test_coordinate_systems_obj

    $LastChangedBy: crussell $
    $LastChangedDate: 2015-09-18 14:21:09 -0700 (Fri, 18 Sep 2015) $
    $LastChangedRevision: 18843 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_coordinate_systems__define.pro $

(See projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_coordinate_systems__define.pro)

## THM_UI_COTRANS

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

    Procedure:
      thm_ui_cotrans

    Purpose:
      Perform coordinate transforms for THEMIS dproc plugin.
      This is the primary routine which loads support data
      as requested and calls thm_cotrans to perform the
      transformation.

    Calling Sequence:
      Called internally by SPEDAS

    API Input:
      active_data:  List of of tplot vars exported from the GUI for processing

      support_parameters:  Structure containing options from the setup routine (thm_ui_cotrans_options)

      status_bar:  SPEDAS GUI status bar object
      history_window:  SPEDAS GUI history window object

      _extra keyword also required by API

    API Output:
      output_names:  List of tplot variables to be loaded into the GUI on completion.
      support_names:  List of support data to be left as tplot variables.
                      All other new tplot variables will be deleted on completion

    Notes:
      This routine executes the core of the operation and should be replayable
      without required user input.  To that end, any user querries should be
      placed in the setup routine (thm_ui_cotrans_options).

    $LastChangedBy: aaflores $
    $LastChangedDate: 2015-04-24 18:45:02 -0700 (Fri, 24 Apr 2015) $
    $LastChangedRevision: 17429 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_cotrans.pro $

(See projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_cotrans.pro)

## THM_UI_COTRANS_OPTIONS

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

    Procedure:
      thm_ui_cotrans_options

    Purpose:
      Gets and returns information required to perform THEMIS
      coordinate transforms in the SPEDAS GUI.
      This is the setup routine for thm_ui_cotrans and the
      routine explicitly listed in the plugin text file.

    Calling Sequence:
      Called internally by SPEDAS

    API Input:
      gui_id:  Top level widget ID needed for building new windows

      status_bar:  SPEDAS GUI status bar object
      history_window:  SPEDAS GUI history window object

      loaded_data:  SPEDAS loaded data object.
                    Used to check necessity of loading THEMIS support data.

    API Output:
      plugin_structure:  Custom output structure used to pass information to
                         plugin's primary routine (thm_ui_cotrans).

    Notes:
      This routine is for setup only.  Any action needed to replay the
      requested operation must occur in the primary routine (thm_ui_cotrans)
      instead of here.  This includes:
        -adding to or editing the GUI's loaded data
        -loading support data or other necessary tplot variables

    $LastChangedBy: aaflores $
    $LastChangedDate: 2015-05-22 16:55:11 -0700 (Fri, 22 May 2015) $
    $LastChangedRevision: 17684 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_cotrans_options.pro $

(See projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_cotrans_options.pro)

## THM_UI_REQ_SLP

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

    NAME:
      thm_ui_req_slp

    PURPOSE:
      Determines availablity of solar/lunar ephemeris data.

    CALLING SEQUENCE:
      General:
        bool = thm_ui_req_spin(inCoord,outCoord,trange [,loadedData])

      Example:
        if thm_ui_req_spin(inCoord,outCoord,trange,loadedData) then begin
          thm_load_slp,datatype='all',trange=trange
        endif

    INPUT:
      inCoord: string storing the destination coordinate system (e.g. 'gse')
      outCoord: string storing the destination coordinate system (e.g. 'sse')
      trange: two element arraw storing the time range
      loadedData: gui loadedData object reference

    OUTPUT:
      Returns boolean: 1 if required data is not present or does not cover
                       the time range, 0 otherwise.

    NOTES:
      This code assumes that only explicit transformations into the
      coordinates in question will require slp data.

    HISTORY:
      2015-04-24 - loaded data object now optional

    $LastChangedBy: aaflores $
    $LastChangedDate: 2015-04-24 18:45:02 -0700 (Fri, 24 Apr 2015) $
    $LastChangedRevision: 17429 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_req_slp.pro $

(See projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_req_slp.pro)

## THM_UI_REQ_SPIN

[Previous Routine] [List of Routines]

    NAME:
      thm_ui_req_spin

    PURPOSE:
      Determines availability of parameters for spin model.

    CALLING SEQUENCE:
      bool = thm_ui_req_spin(in_coord, out_coord, probe, trange [,loadedData])

      Example:
        if thm_ui_req_spin(in_coord, out_coord, probe, trange) then begin
          thm_load_state, probe=probe, trange=trange, /get_support_data
        endif

    INPUT:
      in_coord:  string storing the original coordinate system
      out_coord:  a string storing the destination coordinate system
      probe:  string probe designation
      trange:  two element double storing requested time range
      loadedData:  (optional) SPEDAS loadedData object

    OUTPUT:
      return value: 0 if required data is present for entire time range plus margin
                    1 otherwise

    NOTES:

    HISTORY:
      2015-04-24 - loaded data object now optional

    $LastChangedBy: aaflores $
    $LastChangedDate: 2015-04-24 18:45:02 -0700 (Fri, 24 Apr 2015) $
    $LastChangedRevision: 17429 $
    $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/trunk/projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_req_spin.pro $

(See projects/themis/spedas_plugin/thm_ui_cotrans/thm_ui_req_spin.pro)