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.