Class EclipseDetector

    • Constructor Detail

      • EclipseDetector

        public EclipseDetector​(PVCoordinatesProvider occulted,
                               double occultedRadius,
                               PVCoordinatesProvider occulting,
                               double occultingRadius)
        Build a new eclipse detector.

        The new instance is a total eclipse (umbra) detector with default values for maximal checking interval (AbstractDetector.DEFAULT_MAXCHECK) and convergence threshold (AbstractDetector.DEFAULT_THRESHOLD).

        Parameters:
        occulted - the body to be occulted
        occultedRadius - the radius of the body to be occulted (m)
        occulting - the occulting body
        occultingRadius - the occulting body radius (m)
      • EclipseDetector

        public EclipseDetector​(double maxCheck,
                               PVCoordinatesProvider occulted,
                               double occultedRadius,
                               PVCoordinatesProvider occulting,
                               double occultingRadius)
        Build a new eclipse detector.

        The new instance is a total eclipse (umbra) detector with default value for convergence threshold (AbstractDetector.DEFAULT_THRESHOLD).

        The maximal interval between eclipse checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

        Parameters:
        maxCheck - maximal checking interval (s)
        occulted - the body to be occulted
        occultedRadius - the radius of the body to be occulted in meters
        occulting - the occulting body
        occultingRadius - the occulting body radius in meters
      • EclipseDetector

        public EclipseDetector​(double maxCheck,
                               double threshold,
                               PVCoordinatesProvider occulted,
                               double occultedRadius,
                               PVCoordinatesProvider occulting,
                               double occultingRadius)
        Build a new eclipse detector.

        The new instance is a total eclipse (umbra) detector.

        The maximal interval between eclipse checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

        Parameters:
        maxCheck - maximal checking interval (s)
        threshold - convergence threshold (s)
        occulted - the body to be occulted
        occultedRadius - the radius of the body to be occulted in meters
        occulting - the occulting body
        occultingRadius - the occulting body radius in meters
    • Method Detail

      • create

        protected EclipseDetector create​(double newMaxCheck,
                                         double newThreshold,
                                         int nawMaxIter,
                                         EventHandler<? super EclipseDetector> newHandler)
        Build a new instance.
        Specified by:
        create in class AbstractDetector<EclipseDetector>
        Parameters:
        newMaxCheck - maximum checking interval (s)
        newThreshold - convergence threshold (s)
        nawMaxIter - maximum number of iterations in the event time search
        newHandler - event handler to call at event occurrences
        Returns:
        a new instance of the appropriate sub-type
      • withUmbra

        public EclipseDetector withUmbra()
        Setup the detector to full umbra detection.

        This will override a penumbra/umbra flag if it has been configured previously.

        Returns:
        a new detector with updated configuration (the instance is not changed)
        Since:
        6.1
        See Also:
        withPenumbra()
      • withPenumbra

        public EclipseDetector withPenumbra()
        Setup the detector to penumbra detection.

        This will override a penumbra/umbra flag if it has been configured previously.

        Returns:
        a new detector with updated configuration (the instance is not changed)
        Since:
        6.1
        See Also:
        withUmbra()
      • getOcculting

        public PVCoordinatesProvider getOcculting()
        Get the occulting body.
        Returns:
        the occulting body
      • getOccultingRadius

        public double getOccultingRadius()
        Get the occulting body radius (m).
        Returns:
        the occulting body radius
      • getOcculted

        public PVCoordinatesProvider getOcculted()
        Get the occulted body.
        Returns:
        the occulted body
      • getOccultedRadius

        public double getOccultedRadius()
        Get the occulted body radius (m).
        Returns:
        the occulted body radius
      • getTotalEclipse

        public boolean getTotalEclipse()
        Get the total eclipse detection flag.
        Returns:
        the total eclipse detection flag (true for umbra events detection, false for penumbra events detection)
      • g

        public double g​(SpacecraftState s)
        Compute the value of the switching function. This function becomes negative when entering the region of shadow and positive when exiting.
        Specified by:
        g in interface EventDetector
        Specified by:
        g in class AbstractDetector<EclipseDetector>
        Parameters:
        s - the current state information: date, kinematics, attitude
        Returns:
        value of the switching function