Sidereon.GNSS.StaticPositioning (Sidereon v0.23.0)

Copy Markdown View Source

Multi-epoch static GNSS single-point positioning.

A static solve estimates one shared receiver ECEF position from several pseudorange epochs while fitting epoch-local receiver clocks. It is useful when a receiver is known to be stationary and the caller wants the stacked solution covariance, residuals, and leave-one-out influence diagnostics from the core solver.

Summary

Types

One static epoch request.

Functions

Solve one static receiver position from multiple pseudorange epochs.

Types

epoch_request()

@type epoch_request() ::
  %{
    :observations => [Sidereon.GNSS.Positioning.observation()],
    :epoch => Sidereon.GNSS.Positioning.epoch(),
    optional(:weights) => [number()],
    optional(:clock_initial_m) => number()
  }
  | {[Sidereon.GNSS.Positioning.observation()],
     Sidereon.GNSS.Positioning.epoch()}
  | {[Sidereon.GNSS.Positioning.observation()],
     Sidereon.GNSS.Positioning.epoch(), keyword()}

One static epoch request.

Functions

solve(source, epochs, opts \\ [])

Solve one static receiver position from multiple pseudorange epochs.

source is a parsed SP3 precise product or broadcast navigation product. Each epoch supplies pseudorange observations and a receive epoch. Epoch options may override the solve-wide atmosphere, weights, clock seed, and GLONASS channel options for that epoch.

Options:

  • :initial_position - shared {x_m, y_m, z_m} position seed, default {0.0, 0.0, 0.0}.
  • :with_geodetic - include geodetic output, default true.
  • :ionosphere, :troposphere, :klobuchar_alpha, :klobuchar_beta, :pressure_hpa, :temperature_k, :relative_humidity, and :glonass_channels match Sidereon.GNSS.Positioning.solve/4.
  • :huber plus :huber_k, :huber_sigma, and :huber_max_iter enables the core static Huber reweighting.

Returns {:ok, %Solution{}} or {:error, reason} with typed static solve errors from the core.