# ground_station#

This module contains a set of factory functions for setting up ground stations and associated models. Note that in Tudat, no distinction is made between a ground station/lander on Earth or a different body. A ground station defines a reference point (and other relevant properties) on a celestial body.

## Functions#

 basic_station(station_name, ...) Factory function for creating settings for a ground station Factory function for creating settings for all DSN stations linear_station_motion(linear_velocity[, ...]) Factory function for creating settings for a linear station motion Factory function for creating settings for a piecewise constant ground station position variation Factory function for creating settings for a custom ground station position variation
basic_station(station_name: str, station_nominal_position: numpy.ndarray[numpy.float64[3, 1]], station_position_element_type: tudatpy.kernel.astro.element_conversion.PositionElementTypes = <PositionElementTypes.cartesian_position_type: 0>, station_motion_settings: List[tudatpy.kernel.numerical_simulation.environment_setup.ground_station.GroundStationMotionSettings] = []) #

Factory function for creating settings for a ground station

Factory function for creating settings for a ground station, defining only its name, body-fixed position, and (optionally) time-variations of its position

Parameters:
• station_name (string) – Name (unique identifier) by which the station is to be known.

• station_nominal_position (np.ndarray([3,1])) – Nominal position of the station in a body-fixed frame. Depending on the choice of station_position_element_type input, this vector must contain * Cartesian - $$[x,y,z]$$, denoting $$x-$$, $$y-$$ and $$z-$$ components of body-fixed position (w.r.t body-fixed frame origin, typically center of mass) * Spherical - $$[r,\phi',\theta]$$, denoting distance from body-fixed frame origin (typically center of mass), latitude and longitude * Geodetic - $$[h,\phi,\theta]$$, denoting the altitude w.r.t. the body shape model, geodetic latitude and longitude

• station_position_element_type (PositionElementTypes, default = cartesian_position) – Type of elements for station_nominal_position

• station_motion_settings (list[ GroundStationMotionSettings ], default = None) – List of settings defining time-variations of the individual ground station

Returns:

Instance of the GroundStationSettings defining settings of the to be created ground station

Return type:

GroundStationSettings

Examples

In this example, we create a station using geodetic coordinates at the approximate location of the city of Delft, and no motion settings:

# Define the position of the ground station on Earth
station_altitude = 0.0

# Create ground station settings
ground_station_settings = environment_setup.ground_station.basic_station(
"TrackingStation",
[station_altitude, delft_latitude, delft_longitude],
element_conversion.geodetic_position_type)

# Append station settings to existing (default is empty) list
body_settings.get( "Earth" ).ground_station_settings.append( ground_station_settings )

dsn_stations() #

Factory function for creating settings for all DSN stations

Factory function for creating settings for all DSN stations, defined by nominal positions and linear velocities, as defined by Cartesian elements in DSN No. 810-005, 301, Rev. K, see this link. Note that calling these settings will use the Cartesian elements provided in this document (in ITRF93) and apply them to the Earth-fixed station positions, regardless of the selected Earth rotation model.

Returns:

List of settings to create DSN stationss

Return type:
linear_station_motion(linear_velocity: numpy.ndarray[numpy.float64[3, 1]], reference_epoch: float = 0.0) #

Factory function for creating settings for a linear station motion

Factory function for creating settings for a linear station motion, implementing $$\Delta \mathbf{r}=\dot{\mathbf{r}}(t-t_{0})$$.

Parameters:
• linear_velocity (np.ndarray([3,1])) – Linear velocity $$\dot{\mathbf{r}}$$ of the station (in m/s)

• reference_epoch (float, default = 0.0) – Reference epoch $$t_{0}$$, in seconds since J2000 epoch

Returns:

Instance of the GroundStationMotionSettings derived LinearGroundStationMotionSettings class

Return type:

GroundStationMotionSettings

piecewise_constant_station_motion(displacement_list: Dict[float, numpy.ndarray[numpy.float64[3, 1]]]) #

Factory function for creating settings for a piecewise constant ground station position variation

Factory function for creating settings for a piecewise constant ground station position. Using this model, the added station velocity in a body-fixed frame $$\dot{\mathbf{r}}$$ is always zero, but its displacement $$\Delta\mathbf{r}$$ is set according to the input list, which contains a list of times and displacments $$[t_{i},\Delta\mathbf{r}_{i}]$$. When the resulting model is queried at a given time $$t$$, the nearest lower neighbour $$t_{i}$$ from this list is found, and the associated $$\Delta\mathbf{r}_{i}$$ is applied.

Parameters:

displacement_list (dict[float,np.ndarray([3,1])]) – Dictionary with the epochs $$t_{i}$$ as values, and the associated displacement $$\Delta\mathbf{r}_{i}$$ as value

Returns:

Instance of the GroundStationMotionSettings derived PiecewiseConstantGroundStationMotionSettings class

Return type:

GroundStationMotionSettings

custom_station_motion(custom_displacement_function: Callable[[float], numpy.ndarray[numpy.float64[3, 1]]]) #

Factory function for creating settings for a custom ground station position variation

Factory function for creating settings for a custom ground station position. An arbitrary user-defined function of the signature $$\Delta\mathbf{r}=\Delta\mathbf{r}(t)$$ is provided and applied to the station position

Parameters:

custom_displacement_function (dict[float,np.ndarray([3,1])]) – Function returning $$\Delta\mathbf{r}$$, with the time $$t$$ as input.

Returns:

Instance of the GroundStationMotionSettings derived CustomGroundStationMotionSettings class

Return type:

GroundStationMotionSettings

## Classes#

 GroundStationSettings Base class for providing settings for the creation of a ground station. GroundStationMotionSettings Base class for providing settings for the motion of a single ground station. LinearGroundStationMotionSettings Class for defining linear motion (in an Earth-fixed frame) in time of a ground station. PiecewiseConstantGroundStationMotionSettings Class for defining piecewise-constant position (e.g. CustomGroundStationMotionSettings Class for defining custom time-dependent motion of a ground station.
class GroundStationSettings#

Base class for providing settings for the creation of a ground station.

class GroundStationMotionSettings#

Base class for providing settings for the motion of a single ground station.

Non-functional base class for settings for the motion of a single ground station Station motion settings requiring additional information must be defined using an object derived from this class.

class LinearGroundStationMotionSettings#

Class for defining linear motion (in an Earth-fixed frame) in time of a ground station.

GroundStationMotionSettings derived class for time-linear station motion

class PiecewiseConstantGroundStationMotionSettings#

Class for defining piecewise-constant position (e.g. instantaneous change in position at given epochs) of a ground station.

GroundStationMotionSettings derived class for piecewise-constant position of a ground station

class CustomGroundStationMotionSettings#

Class for defining custom time-dependent motion of a ground station.

CustomGroundStationMotionSettings derived class for custom time-dependent motion of a ground station