3 import unittest, sys, os
4 sys.path.insert(0, os.path.abspath(
".."))
5 from gnsstk.test_utils
import args,run_unit_tests
11 self.assertAlmostEqual(299792458.0, e.c())
16 self.assertAlmostEqual(6378136.0, p.a())
23 self.assertEqual(15, gnsstk.SV_ACCURACY_GPS_MAX_INDEX_VALUE)
33 obs =
gnsstk.ObsID(gnsstk.ObservationType.Range, gnsstk.CarrierBand.Any, gnsstk.TrackingCode.A)
35 5,
True, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
36 0.0, 1.1, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2, 1.3, 0.0)
37 self.assertEqual(1.1, b.getEcc())
38 self.assertEqual(1.2, b.getW())
39 self.assertEqual(1.3, b.getOmegaDot())
44 a =
gnsstk.AlmOrbit(1, 1.0, 2.0, 1.5, 3.0, 0, 0, 50.5, 0, 0, 0, 3000000L, 1, 2)
45 self.assertEqual(0.0, a.getAF0())
46 self.assertEqual(0L, a.getFullWeek())
47 xvt = a.svXvt(a.getTimestamp())
48 self.assertAlmostEqual(-5.285762998073685, xvt.x[0], places=3)
49 self.assertAlmostEqual(-7.928259054425361, xvt.v[1], places=3)
55 suframe = [023222245L, 14111111324L, 4623626L, 33333531536L,
56 4126166634L, 17845L, 6317L, 736162361L, 83163L, 91471L]
57 e.addSubframe(suframe, 1)
58 g = gnsstk.GPSAlmanacStore()
64 g = gnsstk.GloEphemeris()
67 0.0, 0.0, 1, 2, 3, 1.1, 1.0)
68 expected = (
"Sys:mySys, PRN:1, Epoch:0000000 00000000 0.000000000000000 UNK, pos:(100, 200, 300), "
69 "vel:(10, 20, 30), acc:(1, 2, 3), TauN:0, GammaN:0, MFTime:1, health:2, freqNum:3, ageOfInfo:1.1")
70 self.assertEqual(expected, str(g))
75 ephem = gnsstk.SP3EphemerisStore()
76 ephem.rejectBadPositions(
True)
77 ephem.rejectBadClocks(
True)
78 ephem.loadFile( gnsstk.data.full_path(
"sp3_data.txt") )
79 t = ephem.getInitialTime()
82 p = ephem.getPosition(s, t)
83 self.assertAlmostEqual(17359099.884999998, p[0])
84 self.assertAlmostEqual(-483028.55, p[1])
85 self.assertAlmostEqual(-19921938.297000002, p[2])
88 header, data = gnsstk.readSP3( gnsstk.data.full_path(
'sp3_data.txt'), strict=
True)
89 self.assertEqual(
' IGS', header.agency)
90 self.assertEqual(96, header.numberOfEpochs)
92 self.assertEqual(
'P', dataPoint.RecType)
94 self.assertEqual(3, len(dataPoint.x))
95 self.assertEqual(4, len(dataPoint.sig))
96 self.assertEqual(6, len(dataPoint.correlation))
97 self.assertEqual(-20622.832361, dataPoint.x[0])
98 self.assertEqual(0, dataPoint.sdev[0])
103 header, gen = gnsstk.readSEM( gnsstk.data.full_path(
'sem_data.txt') )
105 self.assertEqual(31, len(data))
108 header, data = gnsstk.readSEM( gnsstk.data.full_path(
'sem_data.txt') , strict=
True)
109 self.assertEqual(724, header.week)
110 self.assertEqual(405504L, header.Toa)
111 self.assertEqual(31, len(data))
113 self.assertEqual(16, dataPoint.PRN)
114 self.assertAlmostEqual(0.00711489, dataPoint.ecc)
117 s = gnsstk.SEMAlmanacStore()
118 s.loadFile( gnsstk.data.full_path(
'sem_data.txt') )
119 expected = (
'x:(1.33149e+06, 1.54299e+07, -2.15873e+07), '
120 'v:(-2620.86, 793.126, 415.074), '
121 'clk bias:4.75373e-05, clk drift:0, relcorr:0')
122 actual = str(s.getXvt(
gnsstk.SatID(1), s.getInitialTime()))
123 self.assertEqual(expected, actual)
128 header, gen = gnsstk.readYuma( gnsstk.data.full_path(
'yuma_data.txt') )
130 self.assertEqual(30, len(data))
133 header, data = gnsstk.readYuma( gnsstk.data.full_path(
'yuma_data.txt') , strict=
True)
134 self.assertEqual(30, len(data))
136 self.assertAlmostEqual(0.0, dataPoint.AF1)
137 self.assertEqual(11L, dataPoint.PRN)
138 self.assertAlmostEqual(0.006191730499, dataPoint.ecc)
139 self.assertEqual(377L, dataPoint.week)
144 header, data = gnsstk.readRinex3Obs( gnsstk.data.full_path(
'rinex2obs_data.txt') , strict=
True)
145 self.assertEqual(0L, header.numSVs)
146 self.assertEqual(
'NATIONAL IMAGERY AND MAPPING AGENCY', header.agency)
147 self.assertEqual(120, len(data))
149 datum = dataPoint.getObs(
gnsstk.SatID(4), header.getObsIndex(
"C1"))
150 self.assertAlmostEqual(24236698.057, datum.data)
151 self.assertEqual(0, dataPoint.clockOffset)
153 expectedTime.set(2453167)
155 self.assertEqual(expectedTime, dataPoint.time)
158 header, gen = gnsstk.readRinex3Obs( gnsstk.data.full_path(
'rinex2obs_data.txt') , strict=
False)
160 self.assertEqual(120, len(data))
165 header, data = gnsstk.readRinex3Nav( gnsstk.data.full_path(
'rinex2nav_data.txt') , strict=
True)
166 self.assertEqual(
'06/10/2004 00:00:26', header.date)
167 self.assertEqual(166, len(data))
168 dataPoint = data[165]
169 self.assertAlmostEqual(5153.72985268, dataPoint.Ahalf)
170 self.assertEqual(432000.0, dataPoint.Toc)
173 eng = dataPoint.toEngEphemeris()
174 xvt = eng.svXvt(eng.getTransmitTime())
175 self.assertAlmostEqual(4793694.728073199, xvt.x[0])
176 self.assertAlmostEqual(2028.248716131878, xvt.v[1])
181 header, data = gnsstk.readRinexMet( gnsstk.data.full_path(
'rinexmet_data.txt'), strict=
True)
182 self.assertEqual(
'06/09/2004 23:58:58', header.date)
183 self.assertEqual(96, len(data))
185 d = dataPoint.getData()
186 self.assertAlmostEqual(998.3, d[gnsstk.RinexMetHeader.PR])
187 self.assertAlmostEqual(30.8, d[gnsstk.RinexMetHeader.TD])
190 if __name__ ==
'__main__':