This page was created by the IDL library routine
mk_html_help2.
Last modified: Tue Apr 8 18:16:48 2025.
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)
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)
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)
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)
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)