public final class EventUtils extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
EventUtils.GMEclipseResults
Container class for the results of the
computeGMEclipse methods. |
static class |
EventUtils.VisiParamType
Enumerate containing the existing visibility parameter types that can be provided for conversion
|
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_INTERPOL_ORDER
Default interpolation order for the Lagrange interpolator to be used in computeEclipse.
|
static double |
DEFAULT_LIGHTING_RATIO
Default lighting ratio: 0 when total eclipse events should be detected, 1 for penumbra events.
|
static double |
DEFAULT_MIN_INTERVAL_DURATION
Default interval length limit for eclipse checking to be used in computeEclipse (s).
|
static double |
DEFAULT_THRESHOLD
Default convergence threshold to be used in computeEclipse (s).
|
| Modifier and Type | Method and Description |
|---|---|
static double[][] |
computeAllStaVisParam(double[] satRadius,
double[] targetRadius,
EventUtils.VisiParamType typeIn,
double[] paramIn)
Compute all visibility parameters array for each of the provided entries.
|
static double[] |
computeAllStaVisParam(double satRadius,
double targetRadius,
EventUtils.VisiParamType typeIn,
double paramIn)
Compute all visibility parameters based on the provided visibility parameter.
|
static List<AbsoluteDateInterval> |
computeEclipse(AbsoluteDate[] dates,
List<Vector3D> posObserver,
List<Vector3D> posOccultedBody,
List<Vector3D> posOccultingBody)
Compute the date intervals where an observer is in a total eclipse zone of the Sun by the Earth.
|
static List<AbsoluteDateInterval> |
computeEclipse(AbsoluteDate[] dates,
List<Vector3D> posObserver,
List<Vector3D> posOccultedBody,
List<Vector3D> posOccultingBody,
double occultedBodyRadius,
double occultingBodyRadius,
double lightingRatio,
AbsoluteDateInterval evaluationInterval)
Compute the date intervals where an observer is in a shadow zone for a given occulted body (ex: Sun) and a given
occulting body (ex:Earth).
|
static List<AbsoluteDateInterval> |
computeEclipse(AbsoluteDate[] dates,
List<Vector3D> posObserver,
List<Vector3D> posOccultedBody,
List<Vector3D> posOccultingBody,
double occultedBodyRadius,
double occultingBodyRadius,
double lightingRatio,
AbsoluteDateInterval evaluationInterval,
double threshold,
double minIntervalDuration,
int interpolOrder)
Compute the date intervals where an observer is in a shadow zone for a given occulted body (ex: Sun) and a given
occulting body (ex: Earth).
|
static EventUtils.GMEclipseResults |
computeGMEclipse(double sma,
double ecc,
double inc,
double argp,
double raan,
double alphaSun,
double deltaSun)
Computes the eclipsed portion of the provided orbit around the Earth for a given Sun direction.
|
static EventUtils.GMEclipseResults |
computeGMEclipse(double sma,
double ecc,
double inc,
double argp,
double raan,
double alphaSun,
double deltaSun,
double earthRadius,
double mu)
Computes the eclipsed portion of the provided orbit around the Earth for a given Sun direction.
|
static Map<Integer,List<AbsoluteDateInterval>> |
computeStationVisibility(AbsoluteDate[] dates,
List<Vector3D> posSat,
List<Vector3D> posStations,
double[] elevationMin)
Compute the date intervals where the provided satellite is visible from the provided Earth stations considering
the minimum elevation.
|
static Map<Integer,List<AbsoluteDateInterval>> |
computeStationVisibility(AbsoluteDate[] dates,
List<Vector3D> posSat,
List<Vector3D> posStations,
double[] elevationMin,
AbsoluteDateInterval evaluationInterval)
Compute the date intervals where the provided satellite is visible from the provided Earth stations considering
the minimum elevation.
|
static Map<Integer,List<AbsoluteDateInterval>> |
computeStationVisibility(AbsoluteDate[] dates,
List<Vector3D> posSat,
List<Vector3D> posStations,
double[] elevationMin,
AbsoluteDateInterval evaluationInterval,
double threshold,
double minIntervalDuration,
int interpolOrder)
Compute the date intervals where the provided satellite is visible from the provided Earth stations considering
the minimum elevation.
|
static Map<Integer,List<AbsoluteDateInterval>> |
computeStationVisibility(AbsoluteDate[] dates,
List<Vector3D> posSat,
List<Vector3D> posStations,
double[] elevationMin,
AbsoluteDateInterval evaluationInterval,
double threshold,
double minIntervalDuration,
int interpolOrder,
double earthRadius,
double flattening)
Compute the date intervals where the provided satellite is visible from the provided Earth stations considering
the minimum elevation.
|
static double[] |
computeStaVisParam(double[] satRadius,
double[] targetRadius,
EventUtils.VisiParamType typeIn,
double[] paramIn,
EventUtils.VisiParamType typeOut)
Compute the chosen visibility parameter array based on the provided visibility parameter array.
|
static double |
computeStaVisParam(double satRadius,
double targetRadius,
EventUtils.VisiParamType typeIn,
double paramIn,
EventUtils.VisiParamType typeOut)
Compute the chosen visibility parameter based on the provided visibility parameter.
|
public static final double DEFAULT_THRESHOLD
public static final double DEFAULT_MIN_INTERVAL_DURATION
public static final int DEFAULT_INTERPOL_ORDER
public static final double DEFAULT_LIGHTING_RATIO
public static List<AbsoluteDateInterval> computeEclipse(AbsoluteDate[] dates, List<Vector3D> posObserver, List<Vector3D> posOccultedBody, List<Vector3D> posOccultingBody) throws PatriusException
Inspired by the Celestlab method CL_ev_eclipse.
dates - Dates corresponding to each provided positionposObserver - Observer positionsposOccultedBody - Occulted body positionsposOccultingBody - Occulting body positionsPatriusException - if all arrays don't have the same sizepublic static List<AbsoluteDateInterval> computeEclipse(AbsoluteDate[] dates, List<Vector3D> posObserver, List<Vector3D> posOccultedBody, List<Vector3D> posOccultingBody, double occultedBodyRadius, double occultingBodyRadius, double lightingRatio, AbsoluteDateInterval evaluationInterval) throws PatriusException
Inspired by the Celestlab method CL_ev_eclipse.
dates - Dates corresponding to each provided positionposObserver - Observer positionsposOccultedBody - Occulted body positionsposOccultingBody - Occulting body positionsoccultedBodyRadius - Occulted body radius (m)occultingBodyRadius - Occulting body radius (m)lightingRatio - The lighting ratio: 0 when total eclipse events should be detected, 1 for penumbra
eventsevaluationInterval - Interval on which we want to evaluate the eclipsesPatriusException - if all arrays don't have the same sizepublic static List<AbsoluteDateInterval> computeEclipse(AbsoluteDate[] dates, List<Vector3D> posObserver, List<Vector3D> posOccultedBody, List<Vector3D> posOccultingBody, double occultedBodyRadius, double occultingBodyRadius, double lightingRatio, AbsoluteDateInterval evaluationInterval, double threshold, double minIntervalDuration, int interpolOrder) throws PatriusException
Inspired by the Celestlab method CL_ev_eclipse.
dates - Dates corresponding to each provided positionposObserver - Observer positionsposOccultedBody - Occulted body positionsposOccultingBody - Occulting body positionsoccultedBodyRadius - Occulted body radius (m)occultingBodyRadius - Occulting body radius (m)lightingRatio - The lighting ratio: 0 when total eclipse events should be detected, 1 for penumbra
eventsevaluationInterval - Interval on which we want to evaluate the eclipsesthreshold - convergence threshold (s)minIntervalDuration - Interval length limit for eclipse checking (s)interpolOrder - Interpolation order for the Lagrange interpolatorPatriusException - if all arrays don't have the same sizepublic static EventUtils.GMEclipseResults computeGMEclipse(double sma, double ecc, double inc, double argp, double raan, double alphaSun, double deltaSun) throws PatriusException
AbsoluteDate.J2000_EPOCH.
The default gravitational parameter is Constants.EGM96_EARTH_EQUATORIAL_RADIUS and the default Earth
radius is Constants.EGM96_EARTH_MU.
Inspired by the Celestlab method CL_gm_eclipse.
sma - Semi-major axis of the considered orbit (m)ecc - Eccentricity of the considered orbitinc - Inclination of the considered orbit (rad)argp - Argument of perigee of the considered orbit (rad)raan - Right ascension of ascending node of the considered orbit (rad)alphaSun - Azimuth of the sun in the ITRF frame (rad)deltaSun - Elevation of the sun in the ITRF frame (rad)EventUtils.GMEclipseResults corresponding to the computed eclipse intervalPatriusException - on an error in Patrius configurationpublic static EventUtils.GMEclipseResults computeGMEclipse(double sma, double ecc, double inc, double argp, double raan, double alphaSun, double deltaSun, double earthRadius, double mu) throws PatriusException
AbsoluteDate.J2000_EPOCH.
Inspired by the Celestlab method CL_gm_eclipse.
sma - Semi-major axis of the considered orbit (m)ecc - Eccentricity of the considered orbitinc - Inclination of the considered orbit (rad)argp - Argument of perigee of the considered orbit (rad)raan - Right ascension of ascending node of the considered orbit (rad)alphaSun - Azimuth of the sun in the ITRF frame (rad)deltaSun - Elevation of the sun in the ITRF frame (rad)earthRadius - Earth radius considered for the eclipse computation (m)mu - Earth graviationnal parameter (m3/s2)EventUtils.GMEclipseResults corresponding to the computed eclipse intervalPatriusException - on an error in Patrius configurationpublic static Map<Integer,List<AbsoluteDateInterval>> computeStationVisibility(AbsoluteDate[] dates, List<Vector3D> posSat, List<Vector3D> posStations, double[] elevationMin) throws PatriusException
Constants.EGM96_EARTH_EQUATORIAL_RADIUS and flattening is Constants.WGS84_EARTH_FLATTENING
Inspired by the Celestlab method CL_ev_stationVisibility.
dates - Dates corresponding to each provided positionposSat - Positions of the satellite for each dateposStations - Position of each station as Vector3D {latitude, longitude, height}LLHCoordinatesSystem.ELLIPSODETIC systemelevationMin - Minimum elevation needed to see the satellite per station (rad)PatriusException - if dates and posSat have different sizes or if posStations and
elevationMin have different sizes (except if the length of elevationMin is 1)public static Map<Integer,List<AbsoluteDateInterval>> computeStationVisibility(AbsoluteDate[] dates, List<Vector3D> posSat, List<Vector3D> posStations, double[] elevationMin, AbsoluteDateInterval evaluationInterval) throws PatriusException
Constants.EGM96_EARTH_EQUATORIAL_RADIUS and flattening is Constants.WGS84_EARTH_FLATTENING
Inspired by the Celestlab method CL_ev_stationVisibility.
dates - Dates corresponding to each provided positionposSat - Positions of the satellite for each dateposStations - Position of each station as Vector3D {latitude, longitude, height}LLHCoordinatesSystem.ELLIPSODETIC systemelevationMin - Minimum elevation needed to see the satellite per station (rad)evaluationInterval - The interval on which we want to evaluate visibility of the satellitePatriusException - if dates and posSat have different sizes or if posStations and
elevationMin have different sizes (except if the length of elevationMin is 1)public static Map<Integer,List<AbsoluteDateInterval>> computeStationVisibility(AbsoluteDate[] dates, List<Vector3D> posSat, List<Vector3D> posStations, double[] elevationMin, AbsoluteDateInterval evaluationInterval, double threshold, double minIntervalDuration, int interpolOrder) throws PatriusException
Constants.EGM96_EARTH_EQUATORIAL_RADIUS and flattening is
Constants.WGS84_EARTH_FLATTENING
Inspired by the Celestlab method CL_ev_stationVisibility.
dates - Dates corresponding to each provided positionposSat - Positions of the satellite for each dateposStations - Position of each station as Vector3D {latitude, longitude, height}LLHCoordinatesSystem.ELLIPSODETIC systemelevationMin - Minimum elevation needed to see the satellite per station (rad)evaluationInterval - The interval on which we want to evaluate visibility of the satellitethreshold - Convergence threshold (s)minIntervalDuration - Interval length limit for eclipse checking (s)interpolOrder - Interpolation order for the Lagrange interpolatorPatriusException - if dates and posSat have different sizes or if posStations and
elevationMin have different sizes (except if the length of elevationMin is 1)public static Map<Integer,List<AbsoluteDateInterval>> computeStationVisibility(AbsoluteDate[] dates, List<Vector3D> posSat, List<Vector3D> posStations, double[] elevationMin, AbsoluteDateInterval evaluationInterval, double threshold, double minIntervalDuration, int interpolOrder, double earthRadius, double flattening) throws PatriusException
Inspired by the Celestlab method CL_ev_stationVisibility.
dates - Dates corresponding to each provided positionposSat - Positions of the satellite for each date in the ECEF frameposStations - Position of each station as Vector3D {latitude, longitude, height}LLHCoordinatesSystem.ELLIPSODETIC systemelevationMin - Minimum elevation needed to see the satellite per station (rad)evaluationInterval - The interval on which we want to evaluate visibility of the satellitethreshold - Convergence threshold (s)minIntervalDuration - Interval length limit for eclipse checking (s)interpolOrder - Interpolation order for the Lagrange interpolatorearthRadius - Earth radius considered for the ellispoid definition (m)flattening - Flattening factor of the Earth considered for the ellipsoid definitionPatriusException - if dates and posSat have different sizes or if posStations and
elevationMin have different sizes (except if the length of elevationMin is 1)public static double[][] computeAllStaVisParam(double[] satRadius,
double[] targetRadius,
EventUtils.VisiParamType typeIn,
double[] paramIn)
throws PatriusException
Will return NaN for entries where the provided inputs leads to an impossible case.
Inspired by the Celestlab method CL_gm_visiParams.
satRadius - Distance array between the satellite and the planet center (m)targetRadius - Distance array between the target and the planet center (m)typeIn - Type of the provided visibility parameterparamIn - Value array of the provided parameterPatriusException - if satRadius, targetRadius and paramIn have not the same lengthpublic static double[] computeAllStaVisParam(double satRadius,
double targetRadius,
EventUtils.VisiParamType typeIn,
double paramIn)
throws PatriusException
Will return a NaN array if the provided inputs leads to an impossible case. Each visibility parameter can be
accessed in the returned array by using the EventUtils.VisiParamType.getIndex() method.
Inspired by the Celestlab method CL_gm_visiParams.
satRadius - Distance between the satellite and the planet center (m)targetRadius - Distance between the target and the planet center (m)typeIn - Type of the provided visibility parameterparamIn - Value of the provided parameterPatriusException - if VisiParamType.ALL is provided as typeOutpublic static double[] computeStaVisParam(double[] satRadius,
double[] targetRadius,
EventUtils.VisiParamType typeIn,
double[] paramIn,
EventUtils.VisiParamType typeOut)
throws PatriusException
Will return NaN for entries where the provided inputs leads to an impossible case.
Inspired by the Celestlab method CL_gm_visiParams.
satRadius - Distance array between the satellite and the planet center (m)targetRadius - Distance array between the target and the planet center (m)typeIn - Type of the provided visibility parameterparamIn - Value array of the provided parametertypeOut - Type of the expected visibility parameterPatriusException - if satRadius, targetRadius and paramIn have not the same lengthpublic static double computeStaVisParam(double satRadius,
double targetRadius,
EventUtils.VisiParamType typeIn,
double paramIn,
EventUtils.VisiParamType typeOut)
throws PatriusException
Will return NaN if the provided inputs leads to an impossible case.
Inspired by the Celestlab method CL_gm_visiParams.
satRadius - Distance between the satellite and the planet center (m)targetRadius - Distance between the target and the planet center (m)typeIn - Type of the provided visibility parameterparamIn - Value of the provided parametertypeOut - Type of the expected visibility parameterPatriusException - if VisiParamType.ALL is provided as typeOutCopyright © 2025 CNES. All rights reserved.