Encounter
Contents
Encounter Overview
One of the primary goals of Celest is mission planning of encounter based tasks such as ground imaging or data transfer; this requires knowledge of when the satellite is in a line of sight of the ground location. Windows are the definition of viable encounter times and can take different forms. The following sections will look more into the concept of windows, demonstrate how to determine them using Celest, and then show the structures to handle and interface with them.
More About Windows
An encounter is any position dependent interaction between a satellite and some ground location. One type of encounter may be an imaging encounter where a satellite wishes to image a ground location. Another instance may be downlinking said imaging data to a ground station. In either case, a line of sight between the satellite and ground location is required. Windows are the way of defining when this line of sight is viable.
Windows in Celest come in two flavours: visible time windows and observation windows.
Visible Time Windows
A visible time window defines the period of time when the satellite is in direct line of sight with the ground location and is characterized by two values: the satellite rise and set times as seen from the ground location. Between these times, the satellite is in view of the ground location and data transmission or ground imaging is theoretically possible.
Observation Windows
Visible time windows can be imagined as generalized to any satellite-ground encounter and define the period of time where a line of sight exists. However, the entire visible time window is more than sufficient for imaging encounters; additionally, imaging encounters will provide other constraints such as image quality (influencing the maximum look-angle) or a fixed look-angle. An observation window is catered to imaging tasks and is a subset of a visible time window which meets the addition constraints of image quality and a fixed look-angle.
Observation windows are generated using the Scheduler
class.
Generating Visible Time Windows
All possible visible time windows for a satellite-ground encounter can be determined using the generate_vtws()
function. For more information on generating visible time windows, see the
window generation tutorial.
The generate_vtws()
function can be imported via the following:
from celest.encounter import generate_vtws
- generate_vtws(satellite, location, vis_threshold, lighting=Lighting.ANYTIME)
Return visible time windows for a satellite-ground encounter.
This function determines the time windows where the satellite has an elevation angle greater than vis_threshold and where lighting conditions are met.
- Parameters
satellite (Satellite) –
location (GroundLocation) – Location of ground station.
vis_threshold (float) –
Visibility threshold in degrees.
The visibility threshold is the minimum elevation angle of the satellite as seen from location where the satellite will be in visual range of location.
lighting (Lighting, optional) –
Lighting condition specifier, defaults to anytime lighting conditions.
Lighting conditions can be specified using the Lighting enum. The different options are Lighting.NIGHTTIME, Lighting.ANYTIME, and Lighting.DAYTIME.
- Returns
The visible time windows.
- Return type
WindowCollection
The Lighting
enumeration is used to specify the lighting conditions for the visible time windows and can be
imported via the following:
from celest.encounter import Lighting
- class Lighting(value)
Bases:
Enum
Enum for different lighting conditions.
- NIGHTTIME
Night time lighting condition.
- Type
int
- ANYTTIME
No lighting condition.
- Type
int
- DAYTIME
Day time lighting condition.
- Type
int
Window Data Structures
Celest contains various data structures to hold individual windows and collections of windows. The
VisibleTimeWindow
class holds information regarding a single visible time window. Similarly, the
ObservationWindow
class holds information regarding a single observation window. The WindowCollection
class is used to hold collections of either visible time windows or observation windows.
- class VisibleTimeWindow(rise_time, set_time, attitude)
Bases:
object
A visible time window is the time at which a satellite is visible from a ground location. It is characterized by the time at which the satellite first becomes visible to when it is last visible.
- Parameters
rise_time (float) – The time at which the satellite is first visible in the jd2000 epoch.
set_time (float) – The time at which the satellite is no longer visible in the jd2000 epoch.
attitude (Attitude) – The attitude of the satellite.
- rise_time
The time at which the satellite is visible in the JD2000 frame.
- Type
Quantity
- set_time
The time at which the satellite is no longer visible in the JD2000 frame.
- Type
Quantity
- attitude
The attitude of the satellite.
- Type
Attitude
- class ObservationWindow(start_time, duration, deadline, location, attitude)
Bases:
object
An observation window is a subset of a visible time window and represents the actual encounter to fulfill some mission request.
- Parameters
start_time (Quantity) – The start time of the encounter.
duration (Quantity) – The duration of the encounter.
location (GroundLocation) – The ground location involved in the encounter.
attitude (Attitude) – The attitude of the satellite during the encounter.
- start_time
The start time of the encounter in the JD2000 frame.
- Type
Quantity
- duration
The duration of the encounter in seconds.
- Type
Quantity
- location
The ground location involved in the encounter.
- Type
- attitude
The attitude of the satellite during the encounter.
- Type
Attitude
- class WindowCollection
Bases:
object
Container to hold window data.
The WindowCollection class can only hold one type of window data (i.e. either visible time windows or observation windows) at a time due to their differing attributes and physical significance.
- add_window(window)
Add a window to the container.
- save_text_file(filename)
Save the window data to a text file.
- Raises
TypeError – If attempting to add both VisibleTimeWindow and ObservationWindow objects.