Flyby properties#

Search for the closest approach point#

The location of the closest approach (CA) point is always computed internally to ensure that the flyby is correctly centered on its lowest altitude with a resolution of 1 sec.

To ensure great performance, the CA location search is performed in a 3-step process:

  • 1st step with a coarse resolution (20 min at CA ± 12h)

  • 2nd step with a medium resolution (1 min at CA ± 30 min)

  • 3rd step with a fine resolution (1 sec at CA ± 2 min)

By default the final sampling temporal steps are irregular with a high resolution only around the CA:

  • 1 pt from CA -12 h to CA -2 h every 10 min

  • 1 pt from CA -2 h to CA -1 h every 1 min

  • 1 pt from CA -1 h to CA -10 m every 10 sec

  • 1 pt from CA -10 m to CA +10 m every 1 sec

  • 1 pt from CA +10 m to CA +1 h every 10 sec

  • 1 pt from CA +1 h to CA +2 h every 1 min

  • 1 pt from CA +2 h to CA +12 h every 10 min

fig = plt.figure(figsize=(12, 4))
ax = fig.add_subplot()

ax.plot(flyby.utc, flyby.alt, '.', color='tab:orange')

# Optional labels

ax.set_title('Ganymede 1G1 flyby');

List of the available properties#

A Flyby object behaves exactly as a Trajectory object but also has additional properties:

  • utc_ca: the closest approach UTC time.

  • date_ca: the closest approach date.

  • lon_e_ca: the sub-spacecraft west longitude at closest approach.

  • lat_ca: the sub-spacecraft latitude at closest approach.

  • alt_ca: the altitude at closest approach (km).

  • inc_ca: the incidence angle at closest approach (degree).

  • emi_ca: the emission angle at closest approach (degree).

  • phase_ca: the phase angle at closest approach (degree).

  • pixel_scale_ca: cross-track iFOV projected on the target body at closest approach (km/pixel).

  • t_ca: the relative time to closest approach.

  • ca: a Trajectory with only the closest approach point.

Represent one or more flybys on a Map#

fig = plt.figure(figsize=(12, 9))
ax = fig.add_subplot(projection=GANYMEDE)

for name, flyby in tour.get_flybys(alt_min=500).items():
    ax.plot(flyby.where(flyby.alt < 20_000), 'inc',
            linewidth=3, vmin=0, vmax=90, cbar=False)

    ax.plot(, 'o', color='lightgrey')

    ax.annotate(f'{name} ({flyby.date_ca})',,
                xytext=(0, 10), textcoords='offset points',
                color='lightgrey', ha='center', va='center')

ax.colorbar(vmin=0, vmax=90, label='inc', extend='max')
ax.set_title('Ganymede flybys below 500 km at CA');

Temporal window below a given altitude#

You can use the alt_window() function, if you need to find when the flyby is below a given altitude (km):


You will get, the start and stop times when these conditions are met and the duration of the window.