Closest Approach#

class ClosestApproach#

A close approach between an orbit and a target orbit. Obtained by calling Orbit::next_closest_approach() or Orbit::closest_approaches().

Note

A close approach is a snapshot: the time of closest approach is estimated once when the object is created, and every member describes the state at that time. Relative quantities are the target relative to the orbiting object (target minus self).

double ut()#

The universal time of the closest approach, in seconds.

double time_to()#

The time until the closest approach, in seconds.

double distance()#

The distance between the objects at the closest approach, in meters.

double relative_speed()#

The relative speed of the objects at the closest approach, in meters per second. This is the magnitude of ClosestApproach::relative_velocity(), and does not depend on the choice of reference frame.

Vessel vessel()#

The vessel doing the approaching, or NULL if it is not a vessel.

CelestialBody body()#

The celestial body doing the approaching, or NULL if it is not a celestial body.

Vessel target_vessel()#

The vessel being approached, or NULL if the target is not a vessel.

CelestialBody target_body()#

The celestial body being approached, or NULL if the target is not a celestial body.

std::tuple<double, double, double> position(ReferenceFrame reference_frame = ReferenceFrame())#

The position of the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned position vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The position as a vector.

std::tuple<double, double, double> target_position(ReferenceFrame reference_frame = ReferenceFrame())#

The position of the target object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned position vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The position as a vector.

std::tuple<double, double, double> velocity(ReferenceFrame reference_frame = ReferenceFrame())#

The velocity of the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned velocity vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The velocity as a vector.

std::tuple<double, double, double> target_velocity(ReferenceFrame reference_frame = ReferenceFrame())#

The velocity of the target object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned velocity vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The velocity as a vector.

std::tuple<double, double, double> relative_position(ReferenceFrame reference_frame = ReferenceFrame())#

The position of the target relative to the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame whose axes the returned vector is expressed in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The relative position as a vector.

std::tuple<double, double, double> relative_velocity(ReferenceFrame reference_frame = ReferenceFrame())#

The velocity of the target relative to the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame whose axes the returned vector is expressed in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The relative velocity as a vector.