Sidereon.GNSS.ARAIM.Geometry (Sidereon v0.25.0)

Copy Markdown View Source

ARAIM snapshot geometry.

:receiver is {lat_rad, lon_rad, height_m}. :clock_systems is the ordered receiver-clock column list, encoded as GNSS system letters.

Summary

Types

A row as {id, azimuth_deg, elevation_deg}, {id, azimuth_deg, elevation_deg, system}, or a map.

t()

Functions

Build ARAIM geometry from per-satellite azimuth and elevation rows.

Build an ARAIM geometry snapshot.

Types

az_el_row()

@type az_el_row() ::
  {String.t(), number(), number()}
  | {String.t(), number(), number(), atom() | String.t()}
  | %{
      :id => String.t(),
      :azimuth_deg => number(),
      :elevation_deg => number(),
      optional(:system) => atom() | String.t()
    }

A row as {id, azimuth_deg, elevation_deg}, {id, azimuth_deg, elevation_deg, system}, or a map.

receiver()

@type receiver() :: {float(), float(), float()}

t()

@type t() :: %Sidereon.GNSS.ARAIM.Geometry{
  clock_systems: [String.t()],
  receiver: receiver(),
  rows: [Sidereon.GNSS.ARAIM.Row.t()]
}

Functions

from_az_el_deg(rows, receiver, clock_systems)

@spec from_az_el_deg([az_el_row()], {number(), number(), number()}, [
  atom() | String.t()
]) ::
  {:ok, t()} | {:error, term()}

Build ARAIM geometry from per-satellite azimuth and elevation rows.

Rows may be {id, azimuth_deg, elevation_deg}, {id, azimuth_deg, elevation_deg, system}, or maps with :id, :azimuth_deg, :elevation_deg, and optional :system.

new(rows, arg, clock_systems)

@spec new([Sidereon.GNSS.ARAIM.Row.t()], {number(), number(), number()}, [
  atom() | String.t()
]) :: t()

Build an ARAIM geometry snapshot.

Receiver latitude and longitude are radians, receiver height is meters, and clock systems use GNSS letters or supported atoms such as :gps.