Trajectory window#

Now that you selected your tour configuration and the SPICE pool is correctly loaded with all the required kernels, we need to select the list of times on which the calculation will be performed.

[t_start : t_stop]#

The first, and easiest way to do that, is to provide t_start and a t_stop times separated by a :

Hint

You can provide an input date with or without an explicit time.

sc_traj = tour['2035-06-01':'2035-06-02T00:00:00.000']

sc_traj
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2035-06-01T00:00:00.000
 - UTC stop time: 2035-06-02T00:00:00.000
 - Nb of pts: 1,441

The output object is a SpacecraftTrajectory or a InstrumentTrajectory depending on the observer choose (see below, how to select a specific instrument).

By default, the temporal step is 1 minute so you will get a Trajectory with 1,441 points.

[t_start : t_stop : t_step]#

If you need to increase or decrease your temporal coverage, you can add a custom temporal step interval:

Tip

If the step interval is an integer then it will define directly the number of point in the trajectory.

tour['2033-01-01':'2033-01-02':'30 s']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2033-01-01T00:00:00.000
 - UTC stop time: 2033-01-02T00:00:00.000
 - Nb of pts: 2,881

All major temporal intervals will be interpreted. You can refer to the et_range() function to get the full list of valid units as describe in the SPICE toolbox section.

The t_step value can be provided as an int. In this case it will be interpreted directly as the number of point to use:

tour['2033-01-01':'2033-01-02':100]
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2033-01-01T00:00:00.000
 - UTC stop time: 2033-01-02T00:00:00.000
 - Nb of pts: 100

[::t_step]#

You can omit the t_start or t_stop values to begin or end your coverage window. Here is a few examples:

tour[:'2032-01-01':'1h']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2031-01-19T00:00:00.001
 - UTC stop time: 2032-01-01T00:00:00.000
 - Nb of pts: 8,329
tour['2032-01-01'::'1 day']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2032-01-01T00:00:00.000
 - UTC stop time: 2035-06-02T23:59:59.999
 - Nb of pts: 1,250

Danger

If the Trajectory have more than 1,000,000 points. The SPICE computation can take a while. It may be relevant to reduce the temporal resolution or the time range. In this case, you will get a warning at runtime:

If both, t_start and t_stop, are omitted, the full coverage will be used. In that case it is recommended to provide a large temporal step to avoid computing too many points.

tour[::'1y']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2031-01-19T00:00:00.001
 - UTC stop time: 2035-06-02T23:59:59.999
 - Nb of pts: 6

['all']#

If you need to perform you calculations on the complete tour available by the metakernel, you can use the all keyword (in this case, the temporal step is set at 30 mins by default):

tour['all']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2031-01-19T00:00:00.001
 - UTC stop time: 2035-06-02T23:59:59.999
 - Nb of pts: 76,609

These t_start and t_stop times are directly extracted from the kernel pool and correspond to the overlapping windows that include information about the spacecraft and target locations. It can be retrieved with the coverage window on the TourConfig:

Note

You can notice that this temporal windows is shrunk by 1 ms compared to the actual SpicePool coverage in order to avoid SPICE rounding errors.

tour.coverage
(numpy.datetime64('2031-01-19T00:00:00.001'),
 numpy.datetime64('2035-06-02T23:59:59.999'))

[t1, t2, t3, …]#

You can also provide a list of explicit times:

Tip

These values don’t need to be ordered, nor the same type. However, if a mixed type numpy array is provided, it must have an explicit dtype='object'.

tour['2035-06-01', '2035-06-04', '2035-06-03']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2035-06-01T00:00:00.000
 - UTC stop time: 2035-06-04T00:00:00.000
 - Nb of pts: 3

['event-name', …]#

If the TourConfig has a fk events kernel you can use any event(s) in the mission .phases or .timeline to defined a new trajectory:

Hint

It is recommended to use an explicit time step (here 1h) to avoid to compute too many points.

tour['GCO5000':'1h']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2035-01-17T03:00:00.000
 - UTC stop time: 2035-04-16T16:00:00.000
 - Nb of pts: 2,151

Warning

If you use a list of single events (like the FLYBY_<TARGET>), you will only get a single point per-event:

tour['FLYBY_GANYMEDE']
<SpacecraftTrajectory> Observer: JUICE | Target: GANYMEDE
 - UTC start time: 2031-07-21T07:13:28.000
 - UTC stop time: 2034-11-18T21:58:51.000
 - Nb of pts: 12

In this case, you should look into Flyby object documentation.

[Event, EventWindow, CsvEventsFile, EventsDict, EventsList]#

Generic Event objects are compatible with the Trajectory temporal selection. More details on how to use them can be found here.