irfpy.spice.spicetools
¶
Misc tools related to SPICE
- irfpy.spice.spicetools.set_error_action(strategy)[source]¶
- Parameters
strategy – Strategy, ‘abort’, ‘report’, ‘return’, ‘ignore’, or ‘default’.
See SPICE document (
erract_c()
) for details.
- irfpy.spice.spicetools.get_state(t, target, origin, frame, correction='NONE')[source]¶
Get the state of
target
fromorigin
inframe
.- Parameters
t – datetime object.
target – SPICE name of the target
origin – SPICE name of the origin
frame – SPICE name of the frame
correction – SPICE aberration correction
>>> get_state(datetime.datetime(2014, 10, 5, 3, 20, 15), 'MARS', "SUN", 'J2000', correction='LT+S') array([ 8.39495688e+07, -1.75490667e+08, -8.27591341e+07, 2.31543409e+01, 1.08699922e+01, 4.36065716e+00])
- irfpy.spice.spicetools.state(t0, t1, dt, target, origin, frame, correction='NONE')[source]¶
Generator of the state vector.
- Parameters
t0 – Start time
t1 – End time (exclusive)
dt – Time delta
target – SPICE name of target
origin – SPICE name of origin
frame – SPICE name of the frame
correction – SPICE aberration correction
- Returns
Generator, yielding the tuple (t, pos, vel).
>>> t0 = datetime.datetime(2014, 10, 1, 12, 0) >>> t1 = datetime.datetime(2014, 10, 1, 12, 10) >>> dt = datetime.timedelta(minutes=2) >>> for t, xv in state(t0, t1, dt, 'SUN', 'MARS', 'J2000', correction='LT+S'): ... print(t, xv[:3], xv[3:]) 2014-10-01 12:00:00 [ -7.66126240e+07 1.78785069e+08 8.40721063e+07] [-23.50762679 -10.09017858 -3.99343982] 2014-10-01 12:02:00 [ -7.66154449e+07 1.78783858e+08 8.40716271e+07] [-23.50749856 -10.09047781 -3.99358053] 2014-10-01 12:04:00 [ -7.66182658e+07 1.78782647e+08 8.40711478e+07] [-23.50737033 -10.09077705 -3.99372125] 2014-10-01 12:06:00 [ -7.66210866e+07 1.78781436e+08 8.40706686e+07] [-23.50724209 -10.09107629 -3.99386196] 2014-10-01 12:08:00 [ -7.66239075e+07 1.78780225e+08 8.40701893e+07] [-23.50711385 -10.09137552 -3.99400267]
- irfpy.spice.spicetools.get_position(t, target, origin, frame, correction='NONE')[source]¶
Get the position of
target
fromorigin
inframe
.- Parameters
t – datetime object.
target – SPICE name of the target
origin – SPICE name of the origin
frame – SPICE name of the frame
correction – Correction allowed by SPICE
- irfpy.spice.spicetools.position(t0, t1, dt, target, origin, frame, correction='NONE')[source]¶
Generator of the position vectors.
- Parameters
t0 – Start time
t1 – End time (exclusive)
dt – Time delta
target – SPICE name of target
origin – SPICE name of origin
frame – SPICE name of the frame
correction – SPICE aberration correction
- Returns
Generator, yielding the tuple (t, pos).
>>> t0 = datetime.datetime(2014, 10, 1, 12, 0) >>> t1 = datetime.datetime(2014, 10, 1, 12, 10) >>> dt = datetime.timedelta(minutes=2) >>> for t, x in position(t0, t1, dt, 'SUN', 'MARS', 'J2000', correction='LT+S'): ... print(t, x) 2014-10-01 12:00:00 [ -7.66126240e+07 1.78785069e+08 8.40721063e+07] 2014-10-01 12:02:00 [ -7.66154449e+07 1.78783858e+08 8.40716271e+07] 2014-10-01 12:04:00 [ -7.66182658e+07 1.78782647e+08 8.40711478e+07] 2014-10-01 12:06:00 [ -7.66210866e+07 1.78781436e+08 8.40706686e+07] 2014-10-01 12:08:00 [ -7.66239075e+07 1.78780225e+08 8.40701893e+07]
- irfpy.spice.spicetools.get_velocity(t, target, origin, frame, correction='NONE')[source]¶
Get the velocity of
target
relative toorigin
inframe
.- Parameters
t – datetime object.
target – SPICE name of the target
origin – SPICE name of the origin
frame – SPICE name of the frame
correction – Correction allowed by SPICE
- irfpy.spice.spicetools.velocity(t0, t1, dt, target, origin, frame, correction='NONE')[source]¶
Generator of the velocity vectors.
- Parameters
t0 – Start time
t1 – End time (exclusive)
dt – Time delta
target – SPICE name of target
origin – SPICE name of origin
frame – SPICE name of the frame
correction – SPICE aberration correction
- Returns
Generator, yielding the tuple (t, vel).
>>> t0 = datetime.datetime(2014, 10, 1, 12, 0) >>> t1 = datetime.datetime(2014, 10, 1, 12, 10) >>> dt = datetime.timedelta(minutes=2) >>> for t, v in velocity(t0, t1, dt, 'SUN', 'MARS', 'J2000', correction='LT+S'): ... print(t, v) 2014-10-01 12:00:00 [-23.50762679 -10.09017858 -3.99343982] 2014-10-01 12:02:00 [-23.50749856 -10.09047781 -3.99358053] 2014-10-01 12:04:00 [-23.50737033 -10.09077705 -3.99372125] 2014-10-01 12:06:00 [-23.50724209 -10.09107629 -3.99386196] 2014-10-01 12:08:00 [-23.50711385 -10.09137552 -3.99400267]
- irfpy.spice.spicetools.get_distance(t, target, origin, frame='J2000', correction='NONE')[source]¶
Return the distance.
- irfpy.spice.spicetools.distance(t0, t1, dt, target, origin, frame='J2000', correction='NONE')[source]¶
Generator for distance.
>>> for t, h in distance(datetime.datetime(2014, 10, 1, 15), ... datetime.datetime(2014, 10, 1, 16), datetime.timedelta(minutes=1), ... 'MEX', 'MARS', frame='MSO'): ... print(t, h)
- irfpy.spice.spicetools.get_sza(t, target, origin, frame='J2000', correction='NONE')[source]¶
Return the solar zenith angle in degrees.
- irfpy.spice.spicetools.get_conversion_matrix(t, frame0, frame1)[source]¶
Return the frame conversion matrix (3x3)
If you want to convert from the MEX_SPACECRAFT frame to MSO frame, you may get a conversion matrix as follows.
>>> m = get_conversion_matrix(datetime.datetime(2014, 1, 23, 15, 30), 'MEX_SPACECRAFT', 'MSO') >>> print(m.shape) (3, 3)
- irfpy.spice.spicetools.get_conversion_matrix_6d(t, frame0, frame1)[source]¶
Return the frame conversion matrix (6x6)
If you want to convert from the J2000 frame to IAU_MARS frame, you may get a conversion matrix as follows.
>>> m = get_conversion_matrix(datetime.datetime(2014, 1, 23, 15, 30), 'J2000', 'IAU_MARS') >>> print(m.shape) (6, 6)
- irfpy.spice.spicetools.et(t)[source]¶
Get the
et
from the datetime object.Preparation. >>> import datetime >>> from irfpy.spice import localize >>> localize.furnsh_tls()
Execution. >>> print(et(datetime.datetime(2020, 1, 1))) 631108869.1839073
>>> print(et([datetime.datetime(2020, 1, 1), datetime.datetime(2020, 1, 2)])) (631108869.1839073, 631195269.1839362)