|
11 | 11 |
|
12 | 12 | from swiftnav.ephemeris import Ephemeris
|
13 | 13 | from swiftnav.pvt import calc_PVT_
|
| 14 | +import copy |
14 | 15 | import numpy as np
|
15 | 16 | import pytest
|
16 | 17 | import swiftnav.time as ti
|
|
23 | 24 | pseudorange=23946993.888943646,
|
24 | 25 | raw_pseudorange=23946993.888943646,
|
25 | 26 | sat_pos=(-19477278.087422125, -7649508.9457812719, 16674633.163554827),
|
26 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 27 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
27 | 28 | raw_doppler=0, doppler=0, lock_counter=0,
|
28 | 29 | snr=0, lock_time=0,
|
29 | 30 | tot=ti.GpsTime(tow=0, wn=0)),
|
30 | 31 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=1, code=0),
|
31 | 32 | pseudorange=22932174.156858064,
|
32 | 33 | raw_pseudorange=22932174.156858064,
|
33 | 34 | sat_pos=(-9680013.5408340245, -15286326.354385279, 19429449.383770257),
|
34 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 35 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
35 | 36 | raw_doppler=0, doppler=0, lock_counter=0,
|
36 | 37 | snr=0, lock_time=0,
|
37 | 38 | tot=ti.GpsTime(tow=0, wn=0)),
|
38 | 39 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=2, code=0),
|
39 | 40 | pseudorange=24373231.648055989,
|
40 | 41 | raw_pseudorange=24373231.648055989,
|
41 | 42 | sat_pos=(-19858593.085281931, -3109845.8288993631, 17180320.439503901),
|
42 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 43 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
43 | 44 | raw_doppler=0, doppler=0, lock_counter=0,
|
44 | 45 | snr=0, lock_time=0,
|
45 | 46 | tot=ti.GpsTime(tow=0, wn=0)),
|
46 | 47 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=3, code=0),
|
47 | 48 | pseudorange=24779663.252316438,
|
48 | 49 | raw_pseudorange=24779663.252316438,
|
49 | 50 | sat_pos=(6682497.8716542246, -14006962.389166718, 21410456.275678463),
|
50 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 51 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
51 | 52 | raw_doppler=0, doppler=0, lock_counter=0,
|
52 | 53 | snr=0, lock_time=0,
|
53 | 54 | tot=ti.GpsTime(tow=0, wn=0)),
|
54 | 55 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=4, code=0),
|
55 | 56 | pseudorange=26948717.022331879,
|
56 | 57 | raw_pseudorange=26948717.022331879,
|
57 | 58 | sat_pos=(7415370.9916331079, -24974079.044485383, -3836019.0262199985),
|
58 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 59 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
59 | 60 | raw_doppler=0, doppler=0, lock_counter=0,
|
60 | 61 | snr=0, lock_time=0,
|
61 | 62 | tot=ti.GpsTime(tow=0, wn=0)),
|
62 | 63 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=5, code=0),
|
63 | 64 | pseudorange=23327405.435463827,
|
64 | 65 | raw_pseudorange=23327405.435463827,
|
65 | 66 | sat_pos=(-2833466.1648670658, -22755197.793894723, 13160322.082875408),
|
66 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 67 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
67 | 68 | raw_doppler=0, doppler=0, lock_counter=0,
|
68 | 69 | snr=0, lock_time=0,
|
69 | 70 | tot=ti.GpsTime(tow=0, wn=0)),
|
70 | 71 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=6, code=0),
|
71 | 72 | pseudorange=27371419.016328193,
|
72 | 73 | raw_pseudorange=27371419.016328193,
|
73 | 74 | sat_pos=(14881660.383624561, -5825253.4316490609, 21204679.68313824),
|
74 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 75 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
75 | 76 | raw_doppler=0, doppler=0, lock_counter=0,
|
76 | 77 | snr=0, lock_time=0,
|
77 | 78 | tot=ti.GpsTime(tow=0, wn=0)),
|
78 | 79 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=7, code=0),
|
79 | 80 | pseudorange=26294221.697782904,
|
80 | 81 | raw_pseudorange=26294221.697782904,
|
81 | 82 | sat_pos=(12246530.477279386, -22184711.955107089, 7739084.2855069181),
|
82 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 83 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
83 | 84 | raw_doppler=0, doppler=0, lock_counter=0,
|
84 | 85 | snr=0, lock_time=0,
|
85 | 86 | tot=ti.GpsTime(tow=0, wn=0)),
|
86 | 87 | t.NavigationMeasurement(sid=s.GNSSSignal(sat=8, code=0),
|
87 | 88 | pseudorange=25781999.479948733,
|
88 | 89 | raw_pseudorange=25781999.479948733,
|
89 | 90 | sat_pos=(-25360766.249484103, -1659033.490658124, 7821492.0398916304),
|
90 |
| - sat_vel=(0, 0, 0), carrier_phase=0, |
| 91 | + sat_vel=(0, 0, 0), raw_carrier_phase=0, carrier_phase=0, |
91 | 92 | raw_doppler=0, doppler=0, lock_counter=0,
|
92 | 93 | snr=0, lock_time=0,
|
93 | 94 | tot=ti.GpsTime(tow=0, wn=0))]
|
@@ -140,49 +141,29 @@ def test_prop_single_diff():
|
140 | 141 | pseudorange=21123480.27105955, doppler=0, raw_doppler=0, carrier_phase=-110993309.26669005,
|
141 | 142 | sat_vel=[-1025.0370403901404, -1821.9217799467374, -2091.6303199092254],
|
142 | 143 | lock_time=0, tot=ti.GpsTime(wn=1876, tow=167131.92954684512),
|
143 |
| - raw_pseudorange=21121324.476403236, |
| 144 | + raw_pseudorange=21121324.476403236, raw_carrier_phase=-110993309.26669005, |
144 | 145 | snr=30.0, sid=s.GNSSSignal(code=0, sat=0), lock_counter=0),
|
145 | 146 | t.NavigationMeasurement(sat_pos=[-16580310.849158794, 918714.1939749047, 20731444.258332774],
|
146 | 147 | pseudorange=22432049.84763688, doppler=0, raw_doppler=0, carrier_phase=-117882743.21601027,
|
147 | 148 | sat_vel=[1060.9864205977192, -2411.43509917502, 953.6270954519971],
|
148 | 149 | lock_time=0, tot=ti.GpsTime(wn=1876, tow=167131.9251737675),
|
149 |
| - raw_pseudorange=22432340.166121125, |
| 150 | + raw_pseudorange=22432340.166121125, raw_carrier_phase=-117882743.21601027, |
150 | 151 | snr=30.0, sid=s.GNSSSignal(code=0, sat=2), lock_counter=0)]
|
151 |
| - remote_dists = np.array([ 21121393.87562408, 22432814.46819838]) |
152 |
| - base_pos = np.array( [-2704375, -4263211, 3884637]) |
153 |
| - es = [Ephemeris(**{'ura': 0.0, 'healthy': 1, |
154 |
| - 'xyz': {'acc': [-6.51925802230835e-08, 4.718410826464475e-09, 2.6226835183928943], |
155 |
| - 'iod': 0, 'a_gf0': 5153.648313522339, 'a_gf1': 0.5977821557062277, |
156 |
| - 'pos': [5.122274160385132e-09, 19.0625, 259.9375], |
157 |
| - 'rate': [1.0151416063308716e-06, 6.260350346565247e-06, -6.332993507385254e-08], |
158 |
| - 'toa': 4096}, |
159 |
| - 'valid': 1, |
160 |
| - 'sid': {'code': 0, 'sat': 0}, |
161 |
| - 'toe': {'wn': 1876, 'tow': 172800.0}, |
162 |
| - 'kepler': {'inc_dot': 4.4966158735287064e-10, 'tgd': 5.122274160385132e-09, 'omegadot': -8.099980253833005e-09, |
163 |
| - 'sqrta': 5153.648313522339, 'inc': 0.9634151551139846, 'cus': 6.260350346565247e-06, |
164 |
| - 'omega0': 0.5977821557062277, 'cuc': 1.0151416063308716e-06, 'm0': 2.6226835183928943, |
165 |
| - 'toc': {'wn': 1876, 'tow': 172800.0}, 'dn': 4.718410826464475e-09, 'ecc': 0.0049016030970960855, |
166 |
| - 'cic': -6.332993507385254e-08, 'crs': 19.0625, 'iode': 74, 'iodc': 21845, 'cis': -6.51925802230835e-08, |
167 |
| - 'crc': 259.9375, 'w': 0.4885959643259506, 'af0': 7.212162017822266e-06, 'af1': 9.094947017729282e-13, 'af2': 0.0}, |
168 |
| - 'fit_interval': 14400}), |
169 |
| - Ephemeris(**{'ura': 0.0, 'healthy': 1, |
170 |
| - 'xyz': {'acc': [-6.146728992462158e-08, 4.742340394655613e-09, -0.8114190126645531], 'iod': 0, |
171 |
| - 'a_gf0': 5153.798839569092, 'a_gf1': 1.6390180338742641, |
172 |
| - 'pos': [1.862645149230957e-09, -40.5625, 221.625], |
173 |
| - 'rate': [-2.2239983081817627e-06, 8.001923561096191e-06, 3.725290298461914e-09], 'toa': 0}, |
174 |
| - 'valid': 1, |
175 |
| - 'sid': {'code': 0, 'sat': 2}, |
176 |
| - 'toe': {'wn': 1876, 'tow': 172800.0}, |
177 |
| - 'kepler': {'inc_dot': -4.475186409476941e-10, 'tgd': 1.862645149230957e-09, 'omegadot': -8.103551831174965e-09, |
178 |
| - 'sqrta': 5153.798839569092, 'inc': 0.9587534715647247, 'cus': 8.001923561096191e-06, |
179 |
| - 'omega0': 1.6390180338742641, 'cuc': -2.2239983081817627e-06, 'm0': -0.8114190126645531, |
180 |
| - 'toc': {'wn': 1876, 'tow': 172800.0}, 'dn': 4.742340394655613e-09, 'ecc': 0.00035172002390027046, |
181 |
| - 'cic': 3.725290298461914e-09, 'crs': -40.5625, 'iode': 59, 'iodc': 21845, 'cis': -6.146728992462158e-08, |
182 |
| - 'crc': 221.625, 'w': 2.9037284161724037, 'af0': -9.969808161258698e-07, 'af1': -5.229594535194337e-12, 'af2': 0.0}, |
183 |
| - 'fit_interval': 14400})] |
184 |
| - gpst = ti.GpsTime(wn=1876, tow=167132) |
185 |
| - sdiffs = o.make_propagated_sdiffs_(rover_nm, rover_nm, remote_dists, base_pos, es, gpst) |
| 152 | + base_nm = [t.NavigationMeasurement(sat_pos=[-19277279.74504115, -8215892.62052003, 16367597.39238895], |
| 153 | + pseudorange=21123480.27105955, doppler=0, raw_doppler=0, carrier_phase=-110993309.26669005, |
| 154 | + sat_vel=[-1025.03418813, -1821.90205153, -2091.65477547], |
| 155 | + lock_time=0, tot=ti.GpsTime(wn=1876, tow=167131.92954684512), |
| 156 | + raw_pseudorange=21121324.476403236, raw_carrier_phase=-110993309.26669005, |
| 157 | + snr=30.0, sid=s.GNSSSignal(code=0, sat=0), lock_counter=0), |
| 158 | + t.NavigationMeasurement(sat_pos=[-16580231.46081397, 918533.75723257, 20731515.61249766], |
| 159 | + pseudorange=22432049.84763688, doppler=0, raw_doppler=0, carrier_phase=-117882743.21601027, |
| 160 | + sat_vel=[1060.97989026, -2411.44777346, 953.59410165], |
| 161 | + lock_time=0, tot=ti.GpsTime(wn=1876, tow=167131.9251737675), |
| 162 | + raw_pseudorange=22432340.166121125, raw_carrier_phase=-117882743.21601027, |
| 163 | + snr=30.0, sid=s.GNSSSignal(code=0, sat=2), lock_counter=0)] |
| 164 | + remote_dists = np.array([ 21121393.87562408, 22432814.46819838]) |
| 165 | + base_pos = np.array( [-2704375, -4263211, 3884637]) |
| 166 | + sdiffs = o.make_propagated_sdiffs_(rover_nm, base_nm, remote_dists, base_pos) |
186 | 167 | assert len(sdiffs) == 2
|
187 | 168 | assert sdiffs[0].pseudorange > 0
|
188 | 169 | assert sdiffs[1].pseudorange > 0
|
|
0 commit comments