@orbinauts/engine - v0.1.2
    Preparing search index...

    Function findPasses

    • Every Pass of the Satellite over the Observer that overlaps the interval, in time order, each reported in full: a Pass in progress at the start is reported from its rise, one in progress at the end to its set. An Ephemeris must therefore cover the interval extended by longestPassSeconds at both ends.

      The search steps through the interval with a step the geometry proves safe (see Sky.step), so that most of a 10-day search is spent far below the horizon in strides of ten minutes, then refines each horizon crossing by bisection and each culmination by golden-section search to a twentieth of a second. The crossings are refined on a fixed grid, so a Pass is the same whichever interval's search found it. Passes shorter than a second can be stepped over. Nothing is fetched or stored: the search is pure geometry on what the caller hands it.

      Parameters

      • source: Source
      • observer: Observer
      • interval: Interval
      • OptionalstandardMagnitude: number

        The Satellite's Standard magnitude, the one input the geometry cannot supply: how bright it looks at 1,000 km, half lit. The library keeps no list of Satellites and no facts about them beyond what the Elements say, so the caller brings it. Absent for a Satellite the field has published no brightness for: its Passes then carry a null magnitude and no Visible window, since the fourth condition of the rule cannot be judged and nothing here estimates it, a stand-in value being a guess that can land right on the threshold. Such a Satellite is never Naked-eye, so no window is lost.

        No Pass is longer than LONGEST_PASS_MS, and neither walk that looks for a Pass's rise or set goes further: a Satellite still above the horizon that long after it rose, or that long before the interval began, is one that stands in this Observer's sky rather than crossing it (an inclined geosynchronous Satellite over the middle of its figure of eight, a drifting one near the Observer's longitude), and has no Pass in the interval for as long as it stays up.

      • rule: VisibleRuleOptions = {}

        The thresholds each Pass's Visible window is judged by, any left out taken from VISIBLE_RULE. The Passes themselves, from rise to set, are the same whatever the rule.

      Returns Pass[]

      PassesNotDefinedError for Geostationary Elements, before any stepping: such a Satellite never crosses a horizon, so every walk would run to its bound and find nothing, for every Observer; the Elements say so before it starts.