Orbis.GNSS.RTK.FixedBaselineSolution (Orbis v0.12.0)

Copy Markdown View Source

Integer-fixed RTK baseline solution from code/carrier double differences.

Summary

Types

ecef()

@type ecef() :: %{x_m: float(), y_m: float(), z_m: float()}

t()

@type t() :: %Orbis.GNSS.RTK.FixedBaselineSolution{
  baseline_m: ecef(),
  fixed_ambiguities_cycles: %{required(String.t()) => integer()},
  fixed_ambiguities_m: %{required(String.t()) => float()},
  float_solution: Orbis.GNSS.RTK.FloatBaselineSolution.t(),
  metadata: %{
    :iterations => pos_integer(),
    :converged => boolean(),
    :status => :state_tolerance | :max_iterations,
    :integer_status => :fixed | :not_fixed,
    :integer_method => :bounded_ils | :widelane_narrowlane_bounded_ils,
    :integer_ratio => float() | :infinity,
    :integer_best_score => float(),
    :integer_second_best_score => float() | nil,
    :integer_candidates => pos_integer(),
    :code_rms_m => float(),
    :phase_rms_m => float(),
    :weighted_rms_m => float(),
    :n_epochs => pos_integer(),
    :n_observations => pos_integer(),
    :measurement_covariance => %{
      model: :double_difference,
      code_sigma_m: float(),
      phase_sigma_m: float(),
      elevation_weighting: boolean(),
      min_elevation_sin: float()
    },
    :ambiguity_search => %{
      order: [String.t()],
      float_cycles: %{required(String.t()) => float()},
      covariance_cycles: [[float()]],
      covariance_inverse_cycles: [[float()]]
    },
    :ambiguity_offsets_m => %{required(String.t()) => float()},
    optional(:wide_lane_fixed) => boolean(),
    optional(:wide_lane_ambiguities_cycles) => %{
      required(String.t()) => integer()
    },
    optional(:physical_sats) => [String.t()],
    optional(:ambiguity_satellites) => %{required(String.t()) => String.t()},
    optional(:partial_ambiguity_resolution) => boolean(),
    optional(:partial_fixed) => boolean(),
    optional(:partial_fixed_ambiguities) => [String.t()],
    optional(:partial_free_ambiguities) => [String.t()],
    optional(:partial_full_set) => map(),
    optional(:dropped_cycle_slip_sats) => [String.t()],
    optional(:split_cycle_slip_arcs) => [map()]
  },
  reference_satellite_id: String.t(),
  residuals_m: [Orbis.GNSS.RTK.FloatBaselineSolution.residual()],
  rover_position_m: ecef(),
  used_sats: [String.t()],
  wide_lane_ambiguities_cycles: %{required(String.t()) => integer()} | nil
}