Platform

Platforms are defined in PlatformDefinition. This message contains fields to define the position of the platform and the collection of communications assets onboard.

Motion

The coordinates field (of type Motion) defines the position and/or motion of the platform. Spacetime supports Geodetic coordinates relative to mean sea level or the WGS84 reference ellipsoid; Earth-centered, Earth-fixed coordinates; timestamped interpolations of Earth-centered, Earth-fixed coordinates; cartographic waypoints; two-line elements (TLE); Keplerian elements; state vectors; and selenographic coordinates (coordinates in the Moon’s reference frame). The interval field of the Motion message allows any type of motion to be defined over a specified time interval or continuously propagated.

Another way to define motion is to have Spacetime fetch a platform’s coordinates from a public web service, such as TLEs from Norad or FlightRadar24 trajectories, through the motion_source field.

Transceivers

TransceiverModels define the communications assets on the platform. Each TransceiverModel contains a transmitter (of type TransmitterDefinition), a receiver (of type ReceiverDefinition), an antenna (of type AntennaDefinition), and a list of supported MACs (of type WirelessMac). If there are other parameters you would like to define on each MAC, you can define a Protocol Buffer extension in your code to add new fields to this message.

Transmitters and Receivers
Spacetime groups channels that can be considered as having the same propagation loss effects into BandProfiles for performance optimization. Then, the same propagation loss modeling is applied to all channels in the BandProfile. For example, consider the 2.4GHz and 5GHz bands in WiFi. There are many channels in the 2.4GHz band, such as channels 1 - 11, and there are many channels in the 5GHz band, such as U-NII-1, U-NII-2A, etc. In many cases, the channels in the 2.4GHz band can be considered to have the same propagation loss, and the channels in the 5GHz band can be considered to have the same propagation loss. But, we cannot treat channels in the 2.4GHz band the same as channels in the 5GHz band. So, we could model the 2.4GHz channels and the 5GHz channels as 2 BandProfiles, and the propagation loss will be computed for each BandProfile. In this way, BandProfiles allow users to tell Spacetime which ranges of channels to compute a different propagation loss modeling for. Each BandProfile has an AdaptiveRateTable, which stores levels of carrier-to-noise-and-interference (C/(N + I), in dB) with the effective data rate that each level can maintain.

The TransmitterDefinition and ReceiverDefinition have a channel_set field that defines which channels belong to each BandProfile. For the transmitter, users can define the maximum transmit power on each channel to model onboard power limitations or regulatory limitations. Both the TransmitterDefinition and ReceiverDefinition also have a list of signal_processing_steps. On the transmitter, users can configure a chain of amplifiers or constant gains and losses. On the receiver, users can configure a chain of filters, amplifiers for RF communications, photodetectors for Optical communications, or miscellaneous gains and losses.

Antennas
Antennas are defined in AntennaDefinition.

The fixed_coordinates_offsets allow each antenna to have its own positional and rotational offset from the platform’s center. The targeting field defines whether an antenna is fixed or steerable, and if it is steerable, this field specifies the motion of the target. The antenna_pattern_id field defines a reference to the antenna’s gain pattern, which is defined in AntennaPattern. Spacetime supports Gaussian, Helical, Isotropic, Parabolic, Square Horn, Gaussian Optical, and custom gain patterns specified through phi (radians), theta (radians), and gain (dB). Separate near- and far- field antenna patterns can be specified as well.