Data: Ground Station
Description
Ground Stations are sources of data that are able to output information about the azimuth, elevation, and slant range of a tracked spacecraft in the form of an Access Message. The ground station is a ground body, meaning that it exists at a fixed latitude and longitude on the surface of a gravity body. Variables can be configured on the ground station to set the minimum elevation and maximum range conditions that determine if the spacecraft can be accessed by the ground station. The ground station is able to track any number of spacecraft at a time and can output separate access messages for each tracked object.
Example Use Cases
- Simulate data transfer with a spacecraft in orbit: The ground station class can generate an Access Message relating to a spacecraft in orbit. This can be used to determine if the Ground Station currently has access to the Spacecraft for purposes such as the transmission of data between the two entities.
- Determine satellite constellation coverage at a point: The Ground Station is able to track any number of satellites at a time and will update the access message for each tracked spacecraft every update. This can be used to track how many satellites in a constellation are within range and view of a specific point on the gravity body, represented by the Ground Station.
Module Implementation
The ground station will update its inertial position during each tick to maintain the same latitude and longitude on the stationed planet. The Ground Station stores a dictionary of spacecraft access messages for all tracked spacecraft in the simulation. An access message is calculated for each tracked spacecraft during each update.
The module uses the inertial positions of the spacecraft and the ground station to determine the azimuth, elevation, and slant range for the access message. This information is then stored in the dictionary so that it can be retrieved when requested. Additionally, an access message can be calculated at any time for any spacecraft without needing to track it first using the Get Spacecraft Access function.
The magnitude of the vector between the tracked spacecraft and the ground station is used for the slant range of the access message.
The elevation of the tracked object is calculated as the inverse cosine of the dot product of the normalized vectors between the object and the ground station and between the ground station and the stationed body’s centre.
The elevation angle \(\alpha\), can be calculated as:
Azimuth, \(\gamma\), can be calculated as:
These values are used alongside a line-of-sight check from the ground station to the object to determine if the ground station has access to the targeted ground object. If the slant range is less than the station’s maximum range, there are no obstructions between the target and the ground station, and the elevation is greater than the minimum elevation for the ground station, the Access flag will return true.
Assumptions/Limitations
The Ground Station access calculation currently assumes that the Ground Station is stationed on the simulation’s Zero Base object. If the Ground Station is placed on another body, the Ground Station may calculate Azimuth values incorrectly.
References
[1] Schaub, H. (2023). Module: groundLocation. Retrieved from Basilisk 2.1.7 Documentation: https://hanspeterschaub.info/basilisk/Documentation/simulation/environment/groundLocation/groundLocation.html