satkit.events.eventfinders
Event finders for ground based events and intervals.
Functions
|
Finds illumination periods of a ground location. |
|
Finds satellite (or any object with a trajectory) "passes" over a ground location. |
|
Finds satellite (or any object with a trajectory) illumination (or outside occultation) times. |
Classes
|
Standard elevations definitions. |
- class StandardDawnDuskElevs(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Standard elevations definitions.
- ASTRONOMICAL_DAWN_DUSK_ELEVATION = <Quantity(-18.0, 'degree')>
- CIVIL_DAWN_DUSK_ELEVATION = <Quantity(-6.0, 'degree')>
- NAUTICAL_DAWN_DUSK_ELEVATION = <Quantity(-12.0, 'degree')>
- gnd_illum_finder(search_interval, gnd_pos, dawn_dusk_elev, sun_coords=None, planet=None, refraction_model=None, sun_stepsize=<Quantity(600, 'second')>)[source]
Finds illumination periods of a ground location.
This method is not limited to a ground location on Earth (as defined by the planet parameter). It uses the Orekit GroundAtNightDetector to find the “Sun elevation equal to elevation limit” events. However, the cases with “no events in the search interval” are handled correctly. The output is a TimeIntervalList which can then be intersected with another interval list, for example “satellite pass over ground location intervals”.
Sun positions are by default generated every 10 minutes and the underlying interpolator (the Ephemeris propagator) uses 5 data points.
The method accepts both a fixed elevation mask or the values in the StandardDawnDuskElevs enumerator.
The planet parameter can be any OneAxisEllipsoid with its own fixed frame. For example, Earth can be generated as follows:
itrf = FramesFactory.getITRF(IERSConventions.IERS_2010, True) earth = OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS, Constants.WGS84_EARTH_FLATTENING, itrf)
If the gnd_pos parameter is defined as a TopocentricFrame, then the optional planet parameter is ignored. Otherwise, it is set to Earth as given above.
Atmospheric Refraction Model should be set to None to ignore the atmospheric refraction. It can be set to EarthITU453AtmosphereRefraction or EarthStandardAtmosphereRefraction (provided by Orekit), though the ITU 453 refraction model which can compute refraction at large negative elevations should be preferred. For visual applications, typically Astronomical Dawn/Dusk definition is used.
- Return type
- Parameters
search_interval (TimeInterval) – Search interval for the “events”
gnd_pos (org.orekit.bodies.GeodeticPoint | org.orekit.frames.TopocentricFrame) – Ground position in geodetic coordinates (or the topocentric frame associated with it)
dawn_dusk_elev (float | pint.registry.Quantity | satkit.events.eventfinders.StandardDawnDuskElevs) – Elevation mask a fixed value
sun_coords (PVCoordinatesProvider) – Propagator (or PVCoordinatesProvider) to generate the trajectory of the Sun
planet (OneAxisEllipsoid) – The planet where the ground position is located. Defaults to WGS84 Earth.
refraction_model (AtmosphericRefractionModel) – Atmospheric Refraction Model, defaults to None
sun_stepsize (float | pint.registry.Quantity) – Stepsize for the sun trajectory generation / interpolation
- Returns
List of time intervals corresponding to the “sun elevation above the elev mask”
- Return type
- gnd_pass_finder(search_interval, gnd_pos, elev_mask, propagator, planet=None, refraction_model=None)[source]
Finds satellite (or any object with a trajectory) “passes” over a ground location.
This method is not limited to a ground location on Earth (as defined by the planet parameter). It uses the Orekit ElevationDetector to find the “elevation equal to elevation mask” events. However, the cases with “no events in the search interval” are handled correctly. The output is a TimeIntervalList which can then be intersected with another interval list, for example “ground location illuminated intervals”.
The method accepts both a fixed elevation mask or an ElevationMask with a complex mask shape.
The planet parameter can be any OneAxisEllipsoid with its own fixed frame. For example, Earth can be generated as follows:
itrf = FramesFactory.getITRF(IERSConventions.IERS_2010, True) earth = OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS, Constants.WGS84_EARTH_FLATTENING, itrf)
If the gnd_pos parameter is defined as a TopocentricFrame, then the optional planet parameter is ignored. Otherwise, it is set to Earth as given above.
Atmospheric Refraction Model should be set to None for communications applications. It can be set to EarthITU453AtmosphereRefraction or EarthStandardAtmosphereRefraction (provided by Orekit) for visual or optical applications.
- Return type
- Parameters
search_interval (TimeInterval) – Search interval for the “elevation events”
propagator (Propagator) – Propagator to generate the trajectory of the satellite (or any other object)
gnd_pos (org.orekit.bodies.GeodeticPoint | org.orekit.frames.TopocentricFrame) – Ground position in geodetic coordinates (or the topocentric frame associated with it)
elev_mask (float | pint.registry.Quantity | org.orekit.utils.ElevationMask) – Elevation mask, either a fixed value or a complex mask shape
planet (OneAxisEllipsoid) – The planet where the ground location is located. Defaults to WGS84 Earth.
refraction_model (AtmosphericRefractionModel) – Atmospheric Refraction Model, defaults to None
- Returns
List of time intervals corresponding to the “elevation above the mask” and max elevation times as a tuple
- Return type
- sat_illum_finder(search_interval, propagator, use_total_eclipse=True, angular_margin=0.0, sun_coords=None, planet=None)[source]
Finds satellite (or any object with a trajectory) illumination (or outside occultation) times.
This method computes the durations outside umbra or penumbra for a point object (e.g., a satellite) on a trajectory. It uses the Orekit EclipseDetector to find the umbra/penumbra entry and exit events. However, the cases with “no events in the search interval” are handled correctly. The output is a TimeIntervalList which can then be intersected with another interval list, for example “satellite pass over ground location intervals”.
The use_total_eclipse flag is used to find umbra or penumbra entry/exit events. The angular_margin parameter added to the eclipse detection. A positive margin implies eclipses are “larger” hence entry occurs earlier and exit occurs later than a detector with 0 margin.
The planet parameter can be any OneAxisEllipsoid with its own fixed frame. For example, Earth can be generated as follows (which is the default, if None is given):
itrf = FramesFactory.getITRF(IERSConventions.IERS_2010, True) earth = OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS, Constants.WGS84_EARTH_FLATTENING, itrf)
The same method can be used to find eclipses due to the Moon, by simply replacing the planet parameter with the Moon definition.
- Return type
- Parameters
search_interval (TimeInterval) – Search interval for the “events”
propagator (Propagator) – Propagator to generate the trajectory of the satellite (or any other object)
use_total_eclipse (bool) – Total eclipse detection flag (true for umbra events detection, false for penumbra events detection)
angular_margin (float | pint.registry.Quantity) – Angular margin added to the eclipse detection
sun_coords (PVCoordinatesProvider) – Propagator (or PVCoordinatesProvider) to generate the trajectory of the Sun
planet (OneAxisEllipsoid) – The planet that occults the satellite. Defaults to WGS84 Earth.
- Returns
List of time intervals corresponding to the “elevation above the mask”
- Return type