from pyspedas.projects.themis.load import load
from pyspedas.tplot_tools import data_exists, del_data
from .apply_spinaxis_corrections import apply_spinaxis_corrections
from .spinmodel.spinmodel_postprocess import spinmodel_postprocess
[docs]
def state(trange=['2007-03-23', '2007-03-24'],
probe='c',
level='l1',
suffix='',
get_support_data=False,
varformat=None,
exclude_format=None,
varnames=[],
downloadonly=False,
notplot=False,
no_update=False,
time_clip=False,
keep_spin=False):
"""
Load THEMIS state data
Parameters
----------
trange: list of str
time range of interest [starttime, endtime] with the format
['YYYY-MM-DD','YYYY-MM-DD'] or to specify more or less than a day
['YYYY-MM-DD/hh:mm:ss','YYYY-MM-DD/hh:mm:ss']
Default: ['2007-03-23', '2007-03-24']
probe: str or list of str
Spacecraft probe letter(s) ('a', 'b', 'c', 'd' and/or 'e')
Default: 'c'
level: str
Data type; Valid options: 'l1'
Default: 'l1'
suffix: str
The tplot variable names will be given this suffix.
Default: None
get_support_data: bool
Data with an attribute "VAR_TYPE" with a value of "support_data"
will be loaded into tplot.
Default: False
varformat: str
The file variable formats to load into tplot. Wildcard character
"*" is accepted. By default, all variables are loaded in.
Default: None (all variables are loaded)
exclude_format: str
If specified, CDF variables matching this pattern will not be processed.
Wildcard character "*" is accepted.
Default: None
varnames: list of str
List of variable names to load. If list is empty or unsoecified, all data variables are loaded
Default: [] (all variables are loaded)
downloadonly: bool
Set this flag to download the CDF files, but not load them into
tplot variables
Default: false
notplot: bool
Return the data in hash tables instead of creating tplot variables
Default: false
no_update: bool
If set, only load data from your local cache
Default: false
time_clip: bool
Time clip the variables to exactly the range specified
in the trange keyword
Default: false
keep_spin: bool
If True, do not delete the spin model tplot variables after the spin models are built.
Default: False
Returns
-------
List of str
List of tplot variables created
Empty list if no data loaded
Example
-------
>>> import pyspedas
>>> from pyspedas import tplot
>>> pyspedas.projects.themis.state(trange=['2007-03-23', '2007-03-24'], probe='a', varnames=['tha_pos_gse','tha_vel_gse'])
>>> tplot['tha_pos_gse', 'tha_vel_gse'])
"""
# If support data is being loaded, preemptively delete the thx_spinras_correction and thx_spindec_correction
# variables, to avoid dangling corrections if they don't exist in this time interval.
if get_support_data:
for p in probe:
spinras_corrvar='th'+ p +'_spinras_correction'
spindec_corrvar='th'+ p +'_spindec_correction'
if data_exists(spinras_corrvar):
del_data(spinras_corrvar)
if data_exists(spindec_corrvar):
del_data(spindec_corrvar)
res = load(instrument='state', trange=trange, level=level, probe=probe,
suffix=suffix, get_support_data=get_support_data,
varformat=varformat, varnames=varnames, exclude_format = exclude_format,
downloadonly=downloadonly, notplot=notplot,
time_clip=time_clip, no_update=no_update)
if get_support_data:
for p in probe:
# Process spin model variables
spinmodel_postprocess(p,suffix)
if not keep_spin:
spinvar_pattern = 'th' + p + '_spin_*'
del_data(spinvar_pattern)
# Perform spin axis RA and Dec corrections
spinras_var = 'th' + p + '_spinras' + suffix
delta_spinras_var = 'th' + p + '_spinras_correction' + suffix
corrected_spinras_var = 'th' + p + '_spinras_corrected' + suffix
spindec_var = 'th' + p + '_spindec' + suffix
delta_spindec_var = 'th' + p + '_spindec_correction' + suffix
corrected_spindec_var = 'th' + p + '_spindec_corrected' + suffix
apply_spinaxis_corrections(spinras=spinras_var, delta_spinras=delta_spinras_var,
corrected_spinras=corrected_spinras_var, spindec=spindec_var,
delta_spindec=delta_spindec_var, corrected_spindec=corrected_spindec_var)
return res