# `Sidereon.Estimation.TrackFilterConfig`
[🔗](https://github.com/neilberkman/sidereon-ex/blob/main/lib/sidereon/estimation.ex#L246)

Configuration for a no-IMU constant-velocity track filter.

## Example

    alias Sidereon.Estimation.{TrackFilter, TrackFilterConfig}

    {:ok, config} =
      TrackFilterConfig.from_position(
        :ecef,
        0.0,
        [1.0, 2.0, 3.0],
        [[25.0, 0.0, 0.0], [0.0, 25.0, 0.0], [0.0, 0.0, 25.0]],
        100.0,
        0.05
      )

    {:ok, filter} = TrackFilter.new(config)
    {:ok, _prediction} = TrackFilter.predict(filter, 1.0)
    {:ok, update} =
      TrackFilter.update_position(
        filter,
        [1.5, 2.0, 3.0],
        [[9.0, 0.0, 0.0], [0.0, 9.0, 0.0], [0.0, 0.0, 9.0]]
      )

    update.updated.position_m

# `t`

```elixir
@type t() :: %Sidereon.Estimation.TrackFilterConfig{
  acceleration_variance_spectral_density_m2_s3: float(),
  dimension: pos_integer(),
  frame: Sidereon.Estimation.TrackState.frame(),
  initial_covariance: [[float()]],
  initial_position_m: [float()],
  initial_t_s: float(),
  initial_velocity_m_s: [float()]
}
```

# `from_position`

```elixir
@spec from_position(keyword() | map()) :: {:ok, t()} | {:error, term()}
```

Build a config from a position fix and uncertain zero initial velocity.

# `from_position`

```elixir
@spec from_position(
  Sidereon.Estimation.TrackState.frame(),
  number(),
  [number()] | tuple(),
  [[number()]],
  number(),
  number()
) :: {:ok, t()} | {:error, term()}
```

Build a config from a position fix and uncertain zero initial velocity.

# `new`

```elixir
@spec new(keyword() | map()) :: {:ok, t()} | {:error, term()}
```

Build a config from position, velocity, full covariance, and acceleration PSD.

# `new`

```elixir
@spec new(
  Sidereon.Estimation.TrackState.frame(),
  number(),
  [number()] | tuple(),
  [number()] | tuple(),
  [[number()]],
  number()
) :: {:ok, t()} | {:error, term()}
```

Build a config from position, velocity, full covariance, and acceleration PSD.

---

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