Sidereon.GNSS.SBAS (Sidereon v0.27.0)

Copy Markdown View Source

Satellite-based augmentation corrections.

The correction store, SBAS message decoding, corrected broadcast ephemeris source, and corrected SPP solve all delegate to the core SBAS implementation.

Summary

Functions

Evaluate an SBAS-corrected broadcast satellite state.

Decode one 250-bit framed or 226-bit body SBAS message.

Decode one 250-bit framed or 226-bit body SBAS message or raise.

Create an empty correction store.

Parse ESA EMS-style SBAS log lines.

Parse ESA EMS-style SBAS log lines or raise.

Parse RTKLIB SBAS log lines.

Parse RTKLIB SBAS log lines or raise.

Return ready SBAS GEO ids for an epoch.

Sample an SBAS-corrected broadcast source over a grid.

Run SPP against an SBAS-corrected broadcast source.

Build a correction store from EMS log text.

Build a correction store from decoded message tuples.

Build a correction store from RTKLIB SBAS log text.

Types

epoch()

@type epoch() :: NaiveDateTime.t() | tuple() | number()

error()

@type error() :: :not_found | :invalid_input | String.t()

t()

@type t() :: %Sidereon.GNSS.SBAS{handle: reference()}

Functions

corrected_position(broadcast, sbas, geo_id, satellite_id, epoch, opts \\ [])

Evaluate an SBAS-corrected broadcast satellite state.

corrected_position!(broadcast, store, geo_id, satellite_id, epoch, opts \\ [])

decode(bytes, form \\ :body_226)

@spec decode(binary(), atom() | String.t()) ::
  {:ok, Sidereon.GNSS.SBAS.Message.t()} | {:error, error()}

Decode one 250-bit framed or 226-bit body SBAS message.

decode!(bytes, form \\ :body_226)

@spec decode!(binary(), atom() | String.t()) :: Sidereon.GNSS.SBAS.Message.t()

Decode one 250-bit framed or 226-bit body SBAS message or raise.

fast(sbas, geo_id, satellite_id)

fast!(store, geo_id, satellite_id)

geo_nav(sbas, geo_id)

geo_nav!(store, geo_id)

iono_grid(sbas, geo_id)

iono_grid!(store, geo_id)

long_term(sbas, geo_id, satellite_id)

long_term!(store, geo_id, satellite_id)

new(opts \\ [])

@spec new(keyword()) :: t()

Create an empty correction store.

parse_ems(text)

@spec parse_ems(String.t()) :: {:ok, [Sidereon.GNSS.SBAS.LogBlock.t()]}

Parse ESA EMS-style SBAS log lines.

parse_ems!(text)

@spec parse_ems!(String.t()) :: [Sidereon.GNSS.SBAS.LogBlock.t()]

Parse ESA EMS-style SBAS log lines or raise.

parse_rtklib(text)

@spec parse_rtklib(String.t()) :: {:ok, [Sidereon.GNSS.SBAS.LogBlock.t()]}

Parse RTKLIB SBAS log lines.

parse_rtklib!(text)

@spec parse_rtklib!(String.t()) :: [Sidereon.GNSS.SBAS.LogBlock.t()]

Parse RTKLIB SBAS log lines or raise.

ready_geos(sbas, epoch)

Return ready SBAS GEO ids for an epoch.

ready_geos!(store, epoch)

sample(broadcast, sbas, geo_id, satellites, arg, step_s, opts \\ [])

Sample an SBAS-corrected broadcast source over a grid.

sample!(broadcast, store, geo_id, satellites, window, step_s, opts \\ [])

sbas_protection_levels(geometry, error_model, k \\ SbasKMultipliers.precision_approach())

Compute SBAS horizontal and vertical protection levels.

The error model supplies one range-error budget per geometry row. Returned values are meters except :d_en_m2, which is square meters.

solve_broadcast(broadcast, sbas, geo_id, observations, epoch, opts \\ [])

Run SPP against an SBAS-corrected broadcast source.

solve_broadcast!(broadcast, store, geo_id, observations, epoch, opts \\ [])

store_from_ems(text, opts \\ [])

Build a correction store from EMS log text.

store_from_ems!(text, opts \\ [])

store_from_messages(messages, opts \\ [])

Build a correction store from decoded message tuples.

store_from_messages!(messages, opts \\ [])

store_from_rtklib(text, opts \\ [])

Build a correction store from RTKLIB SBAS log text.

store_from_rtklib!(text, opts \\ [])