Skip to content

Satellite State

satstate

A convenience class representing a satellite position and velocity, and optionally 6x6 position/velocity covariance at a particular instant in time

This class can be used to propagate the position, velocity, and optional covariance to different points in time.

pos property

state position in meters in GCRF frame

Returns:

Type Description
NDArray[float64]

npt.ArrayLike[np.float64]: 3-element numpy array representing position in meters in GCRF frame

vel property

Return this state velocity in meters / second in GCRF

Returns:

Type Description
NDArray[float64]

npt.ArrayLike[np.float64]: 3-element numpy array representing velocity in meters / second in GCRF frame

qgcrf2lvlh property

Quaternion that rotates from the GCRF to the LVLH frame for the current state

Returns:

Type Description
quaternion

satkit.quaternion: Quaternion that rotates from the GCRF to the LVLH frame for the current state

cov property

6x6 state covariance matrix in GCRF frame

Returns:

Type Description
NDArray[float64] | None

npt.ArrayLike[np.float64] | None: 6x6 numpy array representing state covariance in GCRF frame or None if not set

time property

Return time of this satellite state

Returns:

Type Description
time

satkit.time: Time instant of this state

__init__(time, pos, vel, cov=None)

Create a new satellite state

Parameters:

Name Type Description Default
time time

Time instant of this state

required
pos NDArray[float64]

Position in meters in GCRF frame

required
vel NDArray[float64]

Velocity in meters / second in GCRF frame

required
cov NDArray[float64] | None

Covariance in GCRF frame. Defaults to None. If input, should be a 6x6 numpy array

None
Example
import numpy as np

t = satkit.time(2024, 1, 1)
pos = np.array([6.781e6, 0, 0])       # meters, GCRF
vel = np.array([0, 7.5e3, 0])          # m/s, GCRF
state = satkit.satstate(t, pos, vel)

propagate(time, propsettings=None)

Propagate this state to a new time, specified by the "time" input, updating the position, the velocity, and the covariance if set

Parameters:

Name Type Description Default
time time | duration

Time or duration from current time to which to propagate the state

required
propsettings propsettings

object describing settings to use in the propagation. If omitted, default is used

None

Returns:

Name Type Description
satstate satstate

New satellite state object representing the state at the new time

Example
# Propagate forward by 90 minutes
new_state = state.propagate(satkit.duration(minutes=90))
print(new_state.pos)