Remove Tourconfig spacecraft and target default and add generic body trajectory object
At the moment, it is required to provide a spacecraft
and a target
argument to TourConfig
to create a SpacecraftTrajectory
.
The current default values are spacecraft='JUICE'
and target='Ganymede'
.
It should be possible to remove these default values and add support for:
- Spacecraft trajectory without explicit target:
TourConfig(spacecraft='JUICE')
The user will be in charge of provided an explicit target
only when it is actually required.
This will simplify multi-targets analyses, eg. it is already possible to do:
traj.distance_to('GANYMEDE') # Distance between Juice and Ganymede
traj.distance_to('CALLISTO') # Distance between Juice and Callisto distance
Many methods could be expanded to support this explicit approach and add a fall-back on the main target only if present (and raise an error if not).
- A new generic body trajectory object could be introduced, eg.
BodyTrajectory
, if nospacecraft
is provided:
TourConfig(target='GANYMEDE')
It should only contains a subset of the SpacecraftTrajectory
properties but allow easy body to body calculations:
traj.distance_to('CALLISTO') # Distance between Ganymede and Callisto
- It should be possible to provide a second spacecraft as a target:
TourConfig(spacecraft='JUICE', target='EUROPA CLIPPER')
At the moment, the targets needs to be a SpiceBody
and not a SpiceSpacecaft
.
Some properties needs to be disabled in that case. This might be possible to collapse these issue with SpiceSpacecraft.radii = 0