View Source SpaceDust.State.ECIState (Space Dust v0.3.0)

State vector in Earth-Centered Inertial J2000 (ECI) reference frame.

ECI J2000 is an inertial reference frame with:

  • Origin at Earth's center of mass
  • X-axis pointing toward the mean vernal equinox at J2000.0
  • Z-axis pointing toward the mean celestial pole at J2000.0
  • Y-axis completing the right-handed system

Position and velocity are in kilometers and kilometers/second respectively.

Summary

Functions

Create an ECI state from Nx tensors.

Create a new ECI J2000 state from position and velocity tuples.

Convert position and velocity to Nx tensors for numerical operations. Returns {position_tensor, velocity_tensor} as 1D tensors of shape {3}.

Types

t()

@type t() :: %SpaceDust.State.ECIState{
  epoch: DateTime.t(),
  position: {float(), float(), float()},
  velocity: {float(), float(), float()}
}

Functions

from_tensors(epoch, pos_tensor, vel_tensor)

@spec from_tensors(DateTime.t(), Nx.Tensor.t(), Nx.Tensor.t()) :: t()

Create an ECI state from Nx tensors.

new(epoch, position, velocity)

@spec new(DateTime.t(), {float(), float(), float()}, {float(), float(), float()}) ::
  t()

Create a new ECI J2000 state from position and velocity tuples.

Parameters

  • epoch: UTC DateTime
  • position: {x, y, z} in kilometers
  • velocity: {vx, vy, vz} in km/s

to_tensors(eci_state)

@spec to_tensors(t()) :: {Nx.Tensor.t(), Nx.Tensor.t()}

Convert position and velocity to Nx tensors for numerical operations. Returns {position_tensor, velocity_tensor} as 1D tensors of shape {3}.