예제 #1
0
def test_baseline_ref_end():
  # Check that it works with the last sdiff as the reference sat. This
  # should verify that the loop can terminate correctly
  sdiffs, ref_ecef = baseline_setup()
  ambs = bl.Ambiguities(n=4,
                        sids=[{'sat': 5, 'code': 0},
                              {'sat': 1, 'code': 0},
                              {'sat': 2, 'code': 0},
                              {'sat': 3, 'code': 0},
                              {'sat': 4, 'code': 0},
                              # Remaining
                              {'sat': 6, 'code': 0},
                              {'sat': 7, 'code': 0},
                              {'sat': 8, 'code': 0},
                              {'sat': 9, 'code': 0},
                              {'sat': 10, 'code': 0},
                              {'sat': 11, 'code': 0}],
                        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
  index = ambs.n
  old_snr_2 = sdiffs[index].snr
  s = sdiffs[index].to_dict()
  s.update({'snr': 22})
  sdiffs[index] = SingleDiff(**s)
  code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_)
  assert code == 0
  assert num_used == 5
  assert np.allclose(b, np.array([-0.589178, -0.35166, 0.0288157]))
예제 #2
0
def test_baseline_ref_middle():
  # Check that it works with a middle sdiff as the reference sat. This
  # should verify that the induction works.
  sdiffs, ref_ecef = baseline_setup()
  ambs = bl.Ambiguities(n=4,
                        sids=[{'sat': 1, 'code': 0},
                              {'sat': 2, 'code': 0},
                              {'sat': 3, 'code': 0},
                              {'sat': 4, 'code': 0},
                              {'sat': 5, 'code': 0},
                              # Remaining
                              {'sat': 6, 'code': 0},
                              {'sat': 7, 'code': 0},
                              {'sat': 8, 'code': 0},
                              {'sat': 9, 'code': 0},
                              {'sat': 10, 'code': 0},
                              {'sat': 11, 'code': 0}],
                        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
  old_snr_2 = sdiffs[1].snr
  sdiffs[1] = SingleDiff(sid={'sat':2, 'code': 0},
                         pseudorange=0,
                         sat_pos=np.array([1, 0, 0]),
                         sat_vel=np.array([0, 0, 0]),
                         doppler=0,
                         carrier_phase=2,
                         snr=22.0)
  code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_)
  assert code == 0
  assert num_used == 5
  assert np.allclose(b, np.array([-0.622609, -0.432371, -0.00461595]))
예제 #3
0
def test_baseline_ref_first():
    # Check that it works with the first sdiff as the reference
    # sat. This should verify that the loop can start correctly.
    ambs = bl.Ambiguities(
        n=4,
        sids=[
            {
                'sat': 1,
                'code': 0
            },
            {
                'sat': 2,
                'code': 0
            },
            {
                'sat': 3,
                'code': 0
            },
            {
                'sat': 4,
                'code': 0
            },
            {
                'sat': 5,
                'code': 0
            },
            # Remaining
            {
                'sat': 6,
                'code': 0
            },
            {
                'sat': 7,
                'code': 0
            },
            {
                'sat': 8,
                'code': 0
            },
            {
                'sat': 9,
                'code': 0
            },
            {
                'sat': 10,
                'code': 0
            },
            {
                'sat': 11,
                'code': 0
            }
        ],
        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
    sdiffs, ref_ecef = baseline_setup()
    code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False,
                                     bl.DEFAULT_RAIM_THRESHOLD_)
    assert valid == 0
    assert num_used == 5
    assert np.allclose(b, np.array([-0.742242, -0.492905, -0.0533294]))
예제 #4
0
def test_baseline_few_sats():
    sdiffs, ref_ecef = baseline_setup()
    ambs = bl.Ambiguities(
        n=0,
        sids=[
            {
                'sat': 5,
                'code': 0
            },
            {
                'sat': 1,
                'code': 0
            },
            {
                'sat': 2,
                'code': 0
            },
            {
                'sat': 3,
                'code': 0
            },
            {
                'sat': 4,
                'code': 0
            },
            # Remaining
            {
                'sat': 6,
                'code': 0
            },
            {
                'sat': 7,
                'code': 0
            },
            {
                'sat': 8,
                'code': 0
            },
            {
                'sat': 9,
                'code': 0
            },
            {
                'sat': 10,
                'code': 0
            },
            {
                'sat': 11,
                'code': 0
            }
        ],
        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
    code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False,
                                     bl.DEFAULT_RAIM_THRESHOLD_)
    assert num_used == 0
    assert np.allclose(b, np.array([0, 0, 0]))
    assert code == -1
예제 #5
0
def test_baseline_few_sats():
  sdiffs, ref_ecef = baseline_setup()
  ambs = bl.Ambiguities(n=0,
                        sids=[{'sat': 5, 'code': 0},
                              {'sat': 1, 'code': 0},
                              {'sat': 2, 'code': 0},
                              {'sat': 3, 'code': 0},
                              {'sat': 4, 'code': 0},
                              # Remaining
                              {'sat': 6, 'code': 0},
                              {'sat': 7, 'code': 0},
                              {'sat': 8, 'code': 0},
                              {'sat': 9, 'code': 0},
                              {'sat': 10, 'code': 0},
                              {'sat': 11, 'code': 0}],
                        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
  code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_)
  assert num_used == 0
  assert np.allclose(b, np.array([0, 0, 0]))
  assert code == -1
예제 #6
0
def test_baseline_ref_first():
  # Check that it works with the first sdiff as the reference
  # sat. This should verify that the loop can start correctly.
  ambs = bl.Ambiguities(n=4,
                        sids=[{'sat': 1, 'code': 0},
                              {'sat': 2, 'code': 0},
                              {'sat': 3, 'code': 0},
                              {'sat': 4, 'code': 0},
                              {'sat': 5, 'code': 0},
                              # Remaining
                              {'sat': 6, 'code': 0},
                              {'sat': 7, 'code': 0},
                              {'sat': 8, 'code': 0},
                              {'sat': 9, 'code': 0},
                              {'sat': 10, 'code': 0},
                              {'sat': 11, 'code': 0}],
                        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
  sdiffs, ref_ecef = baseline_setup()
  code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False, bl.DEFAULT_RAIM_THRESHOLD_)
  assert valid == 0
  assert num_used == 5
  assert np.allclose(b, np.array([-0.742242, -0.492905, -0.0533294]))
예제 #7
0
def test_baseline_ref_end():
    # Check that it works with the last sdiff as the reference sat. This
    # should verify that the loop can terminate correctly
    sdiffs, ref_ecef = baseline_setup()
    ambs = bl.Ambiguities(
        n=4,
        sids=[
            {
                'sat': 5,
                'code': 0
            },
            {
                'sat': 1,
                'code': 0
            },
            {
                'sat': 2,
                'code': 0
            },
            {
                'sat': 3,
                'code': 0
            },
            {
                'sat': 4,
                'code': 0
            },
            # Remaining
            {
                'sat': 6,
                'code': 0
            },
            {
                'sat': 7,
                'code': 0
            },
            {
                'sat': 8,
                'code': 0
            },
            {
                'sat': 9,
                'code': 0
            },
            {
                'sat': 10,
                'code': 0
            },
            {
                'sat': 11,
                'code': 0
            }
        ],
        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
    index = ambs.n
    old_snr_2 = sdiffs[index].snr
    s = sdiffs[index].to_dict()
    s.update({'snr': 22})
    sdiffs[index] = SingleDiff(**s)
    code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False,
                                     bl.DEFAULT_RAIM_THRESHOLD_)
    assert code == 0
    assert num_used == 5
    assert np.allclose(b, np.array([-0.589178, -0.35166, 0.0288157]))
예제 #8
0
def test_baseline_ref_middle():
    # Check that it works with a middle sdiff as the reference sat. This
    # should verify that the induction works.
    sdiffs, ref_ecef = baseline_setup()
    ambs = bl.Ambiguities(
        n=4,
        sids=[
            {
                'sat': 1,
                'code': 0
            },
            {
                'sat': 2,
                'code': 0
            },
            {
                'sat': 3,
                'code': 0
            },
            {
                'sat': 4,
                'code': 0
            },
            {
                'sat': 5,
                'code': 0
            },
            # Remaining
            {
                'sat': 6,
                'code': 0
            },
            {
                'sat': 7,
                'code': 0
            },
            {
                'sat': 8,
                'code': 0
            },
            {
                'sat': 9,
                'code': 0
            },
            {
                'sat': 10,
                'code': 0
            },
            {
                'sat': 11,
                'code': 0
            }
        ],
        ambs=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
    old_snr_2 = sdiffs[1].snr
    sdiffs[1] = SingleDiff(sid={
        'sat': 2,
        'code': 0
    },
                           pseudorange=0,
                           sat_pos=np.array([1, 0, 0]),
                           sat_vel=np.array([0, 0, 0]),
                           doppler=0,
                           carrier_phase=2,
                           snr=22.0)
    code, num_used, b = bl._baseline(sdiffs, ref_ecef, ambs, False,
                                     bl.DEFAULT_RAIM_THRESHOLD_)
    assert code == 0
    assert num_used == 5
    assert np.allclose(b, np.array([-0.622609, -0.432371, -0.00461595]))