This page was created by the IDL library routine
mk_html_help2
.
Last modified: Wed Jun 12 10:49:46 2024.
procedure: dsl2gse Purpose: THEMIS coordinate transformations DSL<-->GSE; interpolates, right ascension, declination updates coord_sys atribute of output tplot variable. inputs name_thx_xxx_in ... data in the input coordinate system (t-plot variable name) name_thx_spinras ... right ascension (t-plot variable name) name_thx_spindec ... declination (t-plot variable name) name_thx_xxx_out ... name for output (t-plot variable name) keywords: TRANSFORMATIONS /GSE2DSL 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: dsl2gse('tha_fgl_dsl','tha_spinras','tha_spindec','tha_fglc_gse') expects attitude in GEI (tha_spinras,tha_spindec) dsl2gse('tha_fglc_gse','tha_spinras','tha_spindec','tha_fgl_dsl',/GSE2DSL) expects attitude in GEI (tha_spinras,tha_spindec) Notes: under construction!! will run faster in the near future!! Written by Hannes Schwarzl $LastChangedBy: pcruce $ $LastChangedDate: 2013-07-29 10:24:04 -0700 (Mon, 29 Jul 2013) $ $LastChangedRevision: 12735 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_6_1/projects/themis/state/cotrans/dsl2gse.pro $
(See projects/themis/state/cotrans/dsl2gse.pro)
procedure: gse2sse Purpose: Coordinate transformation between GSE & SSE coordinates(and the inverse) SSE is defined as: X: Moon->Sun Line Y: Ecliptic North cross X Z: X cross Y GSE is defined as: X: Earth Sun Line(naturally in the ecliptic plane) Y: Z x X Z: Ecliptic North inputs: name_in: Name of input tplot variable to be transformed or an array of data [t,x,y,z] name_sun_pos: Name of the solar position tplot variable in GEI coordinates or as an array of data [t,x,y,z] name_lun_pos: Name of the lunar position tplot variable in GEI coordinates or as an array of data [t,x,y,z] name_out: Name that the rotated variable should take. keywords: /SSE2GSE inverse transformation /IGNORE_DLIMITS: Dlimits normally used to determine if coordinate system is correct, to decide if position needs offset, or to stop incorrect transforms. This option will stop this behavior. This keyword is only used with tplot variables and ignored if array data is input /ROTATION_ONLY: Set this flag when to only do the rotation, and not the translation from geocentric to selenocentric coordinates. That is used for sse2sel transform when creating the sel rotation matrix Examples: gse2sse,'tha_state_pos','slp_sun_pos_gse','slp_lun_pos_gse','tha_state_pos_sse' gse2sse,'tha_state_pos_sse','slp_sun_pos_gse','slp_lun_pos_gse','tha_state_pos_gse',/sse2gse,/ignore_dlimits OR (with vector data [t,x,y,z] gse2sse, pos_gse,sun_gse,lun_pos,pos_sse gse2sse,pos_sse,sun_gse,lun_pos,pos_gse,/sse2gse Notes: #1 SSE coordinate Z-axis is generally not exactly parallel to ecliptic north, as the moon will not always be in the ecliptic plane, and thus the moon->sun line will not always lie in the ecliptic plane. #2 If dlimit-labeled position passed in without /ignore_dlimits, input will be offset to account for relative position of frames of reference. #3 If dlimit-labeled velocity passed in without /ignore_dlimits, input will be offset to account for relative motion of frames of reference #4 If dlimit-labeled acceleration passed in without /ignore_dlimits, warning will be raise, but offset will not be applied automatically #5 Uses tvector_rotate, and sse_matrix_make to perform the rotation. tvector_rotate will also interpolate the rotation matrix onto the time-grid of the input. Interpolation done using quaterions and the spherical linear interpolation algorithm (SLERP) #6 dlimits are automatically ignored if vector data is input Written by Jenni Kissinger and Patrick Cruce $LastChangedBy: jwl $ $LastChangedDate: 2023-04-12 11:20:40 -0700 (Wed, 12 Apr 2023) $ $LastChangedRevision: 31739 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_6_1/projects/themis/state/cotrans/gse2sse.pro $
(See projects/themis/state/cotrans/gse2sse.pro)
procedure: sse2sel Purpose: Coordinate transformation between SSE & SEL coordinates(and the inverse) SSE is defined as: X: Moon->Sun Line Y: Ecliptic North cross X Z: X cross Y SEL is defined as: X: TBD Y: TBD Z: TBD inputs: name_in: Name of input tplot variable to be transformed or as an array of data [t,x,y,z] name_sun_pos: Name of the sun position tplot variable in GEI coordinates or as an array of data [t,x,y,z] name_moon_pos: Name of the moon position tplot variable in GEI coordinates or as an array of data [t,x,y,z] name_lun_att_x: Name of the SEL X-axis tplot variable in GEI coordinates or as an array of data [t,x,y,z] name_lun_att_z: Name of the SEL Z-axis tplot variable in GEI coordinates or as an array of data [t,x,y,z] name_out: Name that the rotated variable should take. keywords: /SEL2SSE inverse transformation /IGNORE_DLIMITS: Dlimits normally used to determine if coordinate system is correct, to decide if position needs offset, or to stop incorrect transforms. This option will stop this behavior. This keyword is only used with tplot variables and ignored if array data is input Examples: sse2sel,'tha_state_pos_sse','slp_sun_pos','slp_lun_pos','slp_lun_att_x','slp_lun_att_z','tha_state_pos_sel' sse2sel,'tha_state_pos_sel','slp_sun_pos','slp_moon_pos','slp_lun_att_x','slp_lun_att_z','tha_state_pos_sse',/sel2sse,/ignore_dlimits Or for vector data sse2sel,pos_sse,sun_pos,lun_pos,lun_att_x,lun_att_z,pos_sel sse2sel,pos_sel,sun_pos,lun_pos,lun_att_x,lun_att_z,pos_sse, /sel2sse Notes: #1 Uses tvector_rotate, and sse_matrix_make to perform the rotation. tvector_rotate will also interpolate the rotation matrix onto the time-grid of the input. Interpolation done using quaterions and the spherical linear interpolation algorithm (SLERP) #2 If vector data is input the IGNORE_LIMITS keyword is not used. Adapted from gse2sse, written by Jenni Kissinger and Patrick Cruce $LastChangedBy: jwl $ $LastChangedDate: 2012-06-04 10:25:21 -0700 (Mon, 04 Jun 2012) $ $LastChangedRevision: 10492 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_6_1/projects/themis/state/cotrans/sse2sel.pro $
(See projects/themis/state/cotrans/sse2sel.pro)
procedure: ssl2dsl Purpose: despins (spins) THEMIS data SSL<-->DSL; interpolates the spinphase, spin period updates coord_sys atribute of output tplot variable. inputs name_thx_xxx_in ... data in the input coordinate system (t-plot variable name) keywords: /NAME_INPUT : Always required; this argument is the name of a tplot variable to use as the input data. /NAME_OUTPUT: Always required; this argument is the name of a tplot variable to receive the output. TRANSFORMATIONS /DSL2SSL 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 /INTERPOLATE_STATE : if specified, interpolate the spin phase from the 1-minute samples in the state CDF. Otherwise, use the spinmodel routines by default. /NAME_THX_SPINPER : required if /INTERPOLATE_STATE is specified; this is the name of a tplot variable containing the 1-minute spinper samples from the state CDF. /NAME_THX_SPINPHASE : required if /INTERPOLATE_STATE is specified; this is the name of a tplot variable containing the 1-minute spinphase samples from the state CDF. /SPINMODEL_PTR : required if /INTERPOLATE_STATE is NOT specified; this argument is a pointer to the appropriate spin model data structure. Example: ssl2dsl,name_input='tha_fgl_ssl',$ name_output='tha_fgl_dsl',$ /INTERPOLATE_STATE,$ name_thx_spinper='tha_state_spinper',$ name_thx_spinphase='tha_state_spinphase' ssl2dsl,name_input='tha_fgl_dsl',$ /INTERPOLATE_STATE,$ name_thx_spinper='tha_state_spinper',$ name_thx_spinphase='tha_state_spinphase',$ name_output='tha_fgl_ssl',$ /DSL2SSL ssl2dsl,name_input='tha_fgl_dsl',$ spinmodel_ptr=spinmodel_get_ptr('a'),$ name_output='tha_fgl_ssl' Notes: under construction!! Written by Hannes Schwarzl $LastChangedBy: jwl $ $LastChangedDate: 2012-06-04 10:26:03 -0700 (Mon, 04 Jun 2012) $ $LastChangedRevision: 10493 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_6_1/projects/themis/state/cotrans/ssl2dsl.pro $
(See projects/themis/state/cotrans/ssl2dsl.pro)
Procedure: thm_cotrans Purpose: Transform between various THEMIS and geophysical coordinate systems keywords: probe = Probe name. The default is 'all', i.e., transform data for 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 transformed, can take any of the values allowed for datatype for the various thm_load routines. You can use wildcards like ? and [lh]. 'all' is not accepted. You can use '*', but you may get unexpected results if you are using suffixes. in_coord = 'spg', 'ssl', 'dsl', 'gse', 'gsm','sm', 'gei','geo', 'sse', 'sel' or 'mag' coordinate system of input. 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 out_coord = 'spg', 'ssl', 'dsl', 'gse', 'gsm', 'sm', 'gei','geo', 'sse','sel', or 'mag' coordinate system of output. This keyword is optional if out_suffix is specified and last 3 characters of suffix specify the output coordinate system. in_suffix = optional suffix needed to generate the input data quantity name: 'th'+probe+'_'datatype+in_suffix out_suffix = optional suffix to add to output data quantity name. If in_suffix is present, then in_suffix will be replaced by out_suffix in the output data quantity name. valid_names:return valid coordinate system names in named varibles supplied to in_coord and/or out_coord keywords. support_suffix: if support_data is loaded with a suffix you can specify it here slp_suffix: if slp_sun_pos, slp_lun_pos, slp_lunn_att variables have this suffix, you can specify it here out_vars: return a list of the names of any transformed variables 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. interpolate_state: use interpolation on 1-minute state CDF spinper/spinphase samples for despinning instead of spin model no_update_labels: Set this keyword if you want the routine to not update the labels automatically Optional Positional Parameters: in_name Name(s) of input tplot variable(s) (or glob patern) (space-separated list or array of strings.). If the in_name parameter is provided, the probe and datatype keywords will be ignored. However, if the input name is not of format 'th[a-e]_*', use the probe keyword to indicate which probe's state data should be used for each input variable. out_name Name(s) of output tplot variable(s). glob patterns not accepted. Number of output names must match number of input names (after glob expansion of input names). (single string, or array of strings.) Examples: thm_load_state, /get_support thm_cotrans, probe='a', datatype='fgl', out_suffix='_gsm' ; or equivalently thm_cotrans, 'tha_fgl', 'tha_fgl_gsm', out_coord='gsm' ; to transform all th?_fg?_dsl to th?_fg?_gsm thm_cotrans, 'th?_fg?', in_suffix='_dsl', out_suffix='_gsm' ; for arbitrary input variables, specify in_coord and probe: thm_cotrans,'mydslvar1 mydslvar2 mydslvar3', $ in_coord='dsl', probe='b c d', out_suff='_gse' $LastChangedBy: jimm $ $LastChangedDate: 2019-02-13 16:05:02 -0800 (Wed, 13 Feb 2019) $ $LastChangedRevision: 26625 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_6_1/projects/themis/state/cotrans/thm_cotrans.pro $
(See projects/themis/state/cotrans/thm_cotrans.pro)
NAME: thm_cotrans_matrix PURPOSE: brute force method of creating rotation matrix for a THEMIS coordinate transform. CALLING SEQUENCE: rotmat = thm_cotrans_matrix(in_name, $ in_coord=in_coord, $ out_coord=out_coord, $ interpolate_state=interpolate_state, $ use_spinaxis_correction=use_spinaxis_correction, $ use_spinphase_correction=use_spinphase_correction, $ use_eclipse_corrections=use_eclipse_corrections) INPUT: in_name = a THEMIS tplot variable, OUTPUT: rotmat = a 3x3 transformation matrix for each time given by the input variable KEYWORDS: Standard thm_cotrans keywords: probe = 'a', 'b', 'c', 'd', 'e', If not set, then we will try to get it from the variable name in_coord = 'spg', 'ssl', 'dsl', 'gse', 'gsm','sm', 'gei','geo', 'sse', 'sel' or 'mag' coordinate system of input. 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 out_coord = 'spg', 'ssl', 'dsl', 'gse', 'gsm', 'sm', 'gei','geo', 'sse','sel', or 'mag' coordinate system of output. This keyword is optional if out_suffix is specified and last 3 characters of suffix specify the output coordinate system. interpolate_state: use interpolation on 1-minute state CDF spinper/spinphase samples for despinning instead of spin model use_spinaxis_correction: uses spinaxis correction as in THM_COTRANS use_spinphase_correction: uses spinphase correction as in THM_COTRANS use_eclipse_correction: uses eclipse correction as in THM_COTRANS support_suffix: if support_data is loaded with a suffix you can specify it here slp_suffix: if slp_sun_pos, slp_lun_pos, slp_lunn_att variables have this suffix, you can specify it here EXAMPLE: For converting DSL to GSE coordinates, using ptens variable rotmat = thm_cotrans_matrix('tha_peif_ptens', out_coord = 'GSE') Any input can be used, only the time variable is important, but if the variable has no coordinate system defined (e.g., density) then the in_coord keyword should be set. HISTORY: 2019-01-16, jmm, jimm@ssl.berkeley.edu $LastChangedBy: jimm $ $LastChangedDate: 2019-02-13 11:37:26 -0800 (Wed, 13 Feb 2019) $ $LastChangedRevision: 26620 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_6_1/projects/themis/state/cotrans/thm_cotrans_matrix.pro $
(See projects/themis/state/cotrans/thm_cotrans_matrix.pro)
NAME: thm_cotrans_tensor PURPOSE: wrapper for coordinate transforms to prssure and momentum flux tensors CALLING SEQUENCE: in_coord is optional if dlimits includes a data_att.coord_sys element. pro thm_cotrans_tensor, in_name, out_name, $ in_coord=in_coord, out_coord=out_coord, verbose=verbose, $ in_suffix=in_suf, out_suffix=out_suf, $ support_suffix=support_suffix,ignore_dlimits=ignore_dlimits,$ interpolate_state=interpolate_state,out_vars=out_vars,$ use_spinaxis_correction=use_spinaxis_correction, $ use_spinphase_correction=use_spinphase_correction, $ use_eclipse_corrections=use_eclipse_corrections,$ slp_suffix=slp_suffix,no_update_labels=no_update_labels INPUT: in_name Name(s) of input tplot variable(s) (or glob patern) (space-separated list or array of strings.). Non-tensor variables can be mixed in, these will be passed to thm_cotrans directly. out_name Name(s) of output tplot variable(s). glob patterns not accepted. Number of output names must match number of input names (after glob expansion of input names). (single string, or array of strings.) KEYWORDS: in_coord = 'spg', 'ssl', 'dsl', 'gse', 'gsm','sm', 'gei','geo', 'sse', 'sel' or 'mag' coordinate system of input. 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 out_coord = 'spg', 'ssl', 'dsl', 'gse', 'gsm', 'sm', 'gei','geo', 'sse','sel', or 'mag' coordinate system of output. This keyword is optional if out_suffix is specified and last 3 characters of suffix specify the output coordinate system. in_suffix = optional suffix needed to generate the input data quantity name: 'th'+probe+'_'datatype+in_suffix out_suffix = optional suffix to add to output data quantity name. If in_suffix is present, then in_suffix will be replaced by out_suffix in the output data quantity name. valid_names:return valid coordinate system names in named varibles supplied to in_coord and/or out_coord keywords. support_suffix: if support_data is loaded with a suffix you can specify it here out_vars: return a list of the names of any transformed variables 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. interpolate_state: use interpolation on 1-minute state CDF spinper/spinphase samples for despinning instead of spin model use_spinaxis_correction: use spinaxis correction use_spinphase_correction: use spinphase correction use_eclipse_corrections: use eclipse corrections no_update_labels: Set this keyword if you want the routine to not update the labels automatically reuse_rotation_matrix: If set, use the same rotation atrix for all inputs, if the time arrays are the same delete_rotation_matrix: If set, delete the rotation matirx variable $LastChangedBy: jimm $ $LastChangedDate: 2019-02-19 11:14:39 -0800 (Tue, 19 Feb 2019) $ $LastChangedRevision: 26642 $ $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_6_1/projects/themis/state/cotrans/thm_cotrans_tensor.pro $
(See projects/themis/state/cotrans/thm_cotrans_tensor.pro)
Procedure: thm_fac_matrix_make Purpose: generates a field aligned coordinate transformation matrix from an input B vector array(and sometimes a position vector array) then stores it in a tplot variable. This code has been modified from fac_matrix_make to handle input data that are in DSL coordinates. Arguments: mag_var_name=the name of the tplot variable storing the magnetic field vectors to be used in transformation matrix generation pos_var_name(optional)=the name of the tplot variable storing the position vectors to be used in transformation matrix generation newname(optional)=the name of the tplot variable in which to store the output error(optional) = named variable that holds the error state of the computation 1 = success 0 = failure other_dim(optional) = the second axis for the field aligned coordinate system. probe=probe(optional) = string indicating the THEMIS probe for systems that use the DSL system. If this keyword is not specified and probe name is required, thm_fac_matrix_make will infer the probe from the 3rd letter of the magnetic field variable. (eg. 'tha_fgs_gsm') If the tplot variable doesn't have a probe label in the name, this can lead to very irregular behavior, so it is recommended that you always specify probe. /DEGAP: Set to call TDEGAP to remove any gaps from the data. See TDEGAP for for other options that can be invoked using the _extra keyword. E.g. thm_fac_matrix_make, 'tha_fgs', other_dim='xgse', /degap, dt=3 ************For all transformations Z = B************ Warning about coordinate systems: B field tplot variable must be in gse,gsm, or dsl coordinates, depending on what transformation has been selected. Position tplot variable must be in gei coordinates. Gei is the default coordinate system of thm_load_state. Warning: The resulting transformation matrices will only correctly transform data from the coordinate system of the input variable to the field aligned coordinate system. So if mag_var_name is in dsl coordinates then you should only use the output matrices to transform other data in dsl coordinates. valid second coord(other_dim) options: 'Xgse', (DEFAULT) translates from gse or gsm into FAC Definition(works on GSE, or GSM): X Axis = on plane defined by Xgse - Z Second coordinate definition: Y = Z x X_gse Third coordinate, X completes orthogonal RHS (right hand system) triad: XYZ Note: X_gse is a unit vector pointing in direction from earth to the sun 'Rgeo',translate from geo into FAC using radial position vector Rgeo is radial position vector, positive radialy outwards. Second coordinate definition: Y = Z x Rgeo (eastward) Third coordinate, X completes orthogonal RHS XYZ. 'mRgeo',translate into FAC using radial position vector mRgeo is radial position vector, positive radially inwards. Second coordinate definition: Y = Z x mRgeo (westward) Third coordinate, X completes orthogonal RHS XYZ. 'Phigeo', translate into FAC using azimuthal position vector Phigeo is the azimuthal geo position vector, positive Eastward First coordinate definition: X = Phigeo x Z (positive outwards) Second coordinate, Y ~ Phigeo (eastward) completes orthogonal RHS XYZ 'mPhigeo', translate into FAC using azimuthal position vector mPhigeo is minus the azimuthal geo position vector; positive Westward First coordinate definition: X = mPhigeo x Z (positive inwards) Second coordinate, Y ~ mPhigeo (Westward) completes orthogonal RHS XYZ 'Phism', translate into FAC using azimuthal Solar Magnetospheric vector. Phism is "phi" vector of satellite position in SM coordinates. Y Axis = on plane defined by Phism-Z, normal to Z Second coordinate definition: X = Phism x Z Third completes orthogonal RHS XYZ 'mPhism', translate into FAC using azimuthal Solar Magnetospheric vector. mPhism is minus "phi" vector of satellite position in SM coordinates. Y Axis = on plane defined by Phism-Z, normal to Z Second coordinate definition: X = mPhism x Z Third completes orthogonal RHS XYZ 'Ygsm', translate into FAC using cartesian Ygsm position as other dimension. Y Axis on plane defined by Ygsm and Z First coordinate definition: X = Ygsm x Z Third completes orthogonal RHS XYZ 'Zdsl', translates from dsl into FAC Definition: X Axis = on plane defined by Zdsl - Z Second coordinate definition: X = Z x Zdsl Third coordinate, Y completes orthogonal RHS (right hand system) triad: XYZ Example: fac_matrix_make,'tha_fgs',other_dim='Xgse',pos_var_name='tha_pos',out_var_name='tha_fgs_fac_mat',probe='a'
(See projects/themis/state/cotrans/thm_fac_matrix_make.pro)
NAME: THM_GSM2LMN_WRAP PURPOSE: Wrapper transforms THEMIS-generated vector field from GSM to LMN (boundary-normal) coordinate system for magnetopause with help of routine gsm2lmn.pro. It gets the necessary solar wind data with help of routine get_sw_data.pro and passes all necessary keywords to it. In distinction of GSM2LMN_WRAP, it finds space-time coordinates using reference to a THEMIS probe. CATEGORY: Coordinate Transformation CALLING SEQUENCE: thm_gsm2lmn_wrap,data_in,data_out,probe,SWkeywords INPUTS: data_in: structure {x:time, y:data} probe: string specify which spacecraft caught data_in. KEYWORDS: Solarwind_load.pro keywords (Any combination of keywords defining output of solarwind_load.pro) PARAMETERS: none OUTPUTS: data_out: structure {x:time, y:transformed_data} DEPENDENCIES: gsm2lmn.pro, solarwind_load.pro. Intermediate-level part of LMN transform package. MODIFICATION HISTORY: Written by: Liu Jiang 09/21/2007 Modified for new background routines by: Vladimir Kondratovich 2007/12/28 Modified for error handling and changed () to [] for arrays by: Lynn B. Wilson III 2012/10/26
(See projects/themis/state/cotrans/thm_gsm2lmn_wrap.pro)