# `Sidereon.GNSS.SP3.State`
[🔗](https://github.com/neilberkman/sidereon-ex/blob/main/lib/sidereon/gnss/sp3.ex#L165)

An SP3 satellite state at one epoch.

Position is ITRF/IGS-realization ECEF, in meters (frame and unit are fixed
in the field names per the spec's frames-in-the-type-system rule). `clock_s`
is the satellite clock offset in seconds, or `nil` when the product carries
no clock estimate for that satellite/epoch.

Exact parsed records may also carry `velocity_m_s`, `clock_rate_s_s`, and
the four SP3 status flags. Interpolated states leave velocity and clock-rate
as `nil` and all flags as `false`.

# `t`

```elixir
@type t() :: %Sidereon.GNSS.SP3.State{
  clock_event: boolean(),
  clock_predicted: boolean(),
  clock_rate_s_s: float() | nil,
  clock_s: float() | nil,
  maneuver: boolean(),
  orbit_predicted: boolean(),
  velocity_m_s: vec3() | nil,
  x_m: float(),
  y_m: float(),
  z_m: float()
}
```

# `vec3`

```elixir
@type vec3() :: {float(), float(), float()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
