Find flybys opportunities#

Get all the flybys in a temporal window#

Caution

You can list all the flyby in the entire tour with:

tour.flybys

However, by default, the temporal step will be set to 30 min so this computation can take quite some time.

To simplify the search of these orbital configurations, the planetary-coverage provide a flybys attribute to any Trajectory (and TourConfig) that will automatically search for all these opportunities. By default, the minimum altitude for which a flyby is considered valid when the spacecraft is below 25,000 km.

For example, here we search for all the Ganymede flybys in 2032 and 2033:

flybys = tour['2032-01-01':'2033-12-31':'1 h'].flybys
flybys
[<SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 400.0 km
  - UTC at CA: 2032-02-13T23:03:55
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041,
 <SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 488.3 km
  - UTC at CA: 2032-04-11T04:14:51
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041,
 <SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 5,630.3 km
  - UTC at CA: 2032-05-09T18:34:53
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041,
 <SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 2,365.1 km
  - UTC at CA: 2032-06-02T21:30:44
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041,
 <SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 867.0 km
  - UTC at CA: 2033-11-27T06:22:14
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041]

Get all the flybys below a given altitude#

If you only want the flybys below an other given altitude, you can use the get_flybys() function instead and provide your own alt_min.

Warning

For very low altitude flybys, you may need to increase the temporal resolution or you could miss some encounters.

tour['2032-01-01':'2033-12-31':'10 min'].get_flybys(alt_min=1_000)
[<SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 400.0 km
  - UTC at CA: 2032-02-13T23:03:55
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041,
 <SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 488.3 km
  - UTC at CA: 2032-04-11T04:14:51
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041,
 <SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
  - Altitude at CA: 867.0 km
  - UTC at CA: 2033-11-27T06:22:14
  - Duration: 1 day, 0:00:00
  - Nb of pts: 2,041]

Get a flyby for a given date#

If you already know when the flyby is supposed to happen (within a 1 day accuracy), you can select this specific flyby very quickly:

Tip

You can also provide a list of dates, an Event, an EventWindow or an EventsList as an approximate date.

flyby = tour.flyby('2032-02-13')
flyby
<SpacecraftFlyby> Observer: JUICE | Target: GANYMEDE
 - Altitude at CA: 400.0 km
 - UTC at CA: 2032-02-13T23:03:55
 - Duration: 1 day, 0:00:00
 - Nb of pts: 2,041