Integer-fixed RTK baseline solution from code/carrier double differences.
Summary
Types
@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 => :lambda | :widelane_narrowlane_lambda, :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 }