Skip to content
PL1

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:

  1. 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).

  1. A new generic body trajectory object could be introduced, eg. BodyTrajectory, if no spacecraft 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
  1. 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 🤔 (to be confirmed…).