Exemplo n.º 1
0
    def test_str(self):
        a = gpstk.SatID(3, gpstk.SatID.systemGlonass)
        self.assertEqual('GLONASS 3', str(a))

        b = gpstk.SatID(1, gpstk.SatID.systemLEO)
        self.assertEqual('LEO 1', str(b))

        c = gpstk.SatID(4)  # optional arg should be SatID.systemGPS
        self.assertEqual('GPS 4', str(c))
Exemplo n.º 2
0
def rinex3nav_data(filename, prn):
    header, data = gpstk.readRinex3Nav(filename)
    sat = gpstk.SatID(prn, gpstk.SatID.systemGPS)
    g = gpstk.GPSEphemerisStore()
    for d in data:
        if prn == d.PRNID:
            ephem = d.toEngEphemeris()
            g.addEphemeris(ephem)

    class rinex3nav_holder:
        def __init__(self, gpsStore, satStore):
            self.gpsStore = gpsStore
            self.satStore = satStore

        def first_time(self):
            return self.gpsStore.getInitialTime()

        def last_time(self):
            return self.gpsStore.getFinalTime()

        def position(self, t):
            triple = self.gpsStore.getXvt(self.satStore, t).getPos()
            return triple2Position(triple)

    return rinex3nav_holder(g, sat)
Exemplo n.º 3
0
def yuma_data(filename, prn):
    header, data = gpstk.readYuma(filename)
    sat = gpstk.SatID(prn, gpstk.SatID.systemGPS)
    almanac = gpstk.GPSAlmanacStore()
    for d in data:
        if prn == d.PRN:
            orbit = d.toAlmOrbit()
            almanac.addAlmanac(orbit)

    class yuma_holder:
        def __init__(self, almanacStore, satStore):
            self.almanacStore = almanacStore
            self.satStore = satStore

        def first_time(self):
            return self.almanacStore.getInitialTime()

        def last_time(self):
            return self.almanacStore.getFinalTime()

        def position(self, t):
            triple = self.almanacStore.getXvt(self.satStore, t).getPos()
            return triple2Position(triple)

    return yuma_holder(almanac, sat)
Exemplo n.º 4
0
 def test_almanac_store(self):
     s = gpstk.SEMAlmanacStore()
     s.loadFile(gpstk.data.full_path('sem_data.txt'))
     expected = ('x:(1.33149e+06, 1.54299e+07, -2.15873e+07), '
                 'v:(-2620.86, 793.126, 415.074), '
                 'clk bias:4.75373e-05, clk drift:0, relcorr:0')
     actual = str(s.getXvt(gpstk.SatID(1), s.getInitialTime()))
     self.assertEqual(expected, actual)
Exemplo n.º 5
0
 def test_functions(self):
     self.assertEqual(4, gpstk.getLegacyFitInterval(15, 27))
     sat = gpstk.SatID(1, 1)
     self.assertAlmostEqual(
         0.190293672798,
         gpstk.getWavelength(sat, 1),
     )
     self.assertAlmostEqual(1.2833333333333334, gpstk.getBeta(sat, 1, 2))
     self.assertAlmostEqual(0.6469444444444448, gpstk.getAlpha(sat, 1, 2))
Exemplo n.º 6
0
 def test_ephem_store(self):
     ephem = gpstk.SP3EphemerisStore()
     ephem.rejectBadPositions(True)
     ephem.rejectBadClocks(True)
     ephem.loadFile(gpstk.data.full_path("sp3_data.txt"))
     t = ephem.getInitialTime()
     t.addSeconds(60 * 120)  # 2 hours into data
     s = gpstk.SatID(1)
     p = ephem.getPosition(s, t)
     self.assertAlmostEqual(17359099.884999998, p[0])
     self.assertAlmostEqual(-483028.55, p[1])
     self.assertAlmostEqual(-19921938.297000002, p[2])
Exemplo n.º 7
0
 def test_stream(self):
     header, data = gpstk.readRinex3Obs('rinex3obs_data.txt', strict=True)
     self.assertEqual(0L, header.numSVs)
     self.assertEqual('NATIONAL IMAGERY AND MAPPING AGENCY', header.agency)
     self.assertEqual(120, len(data))
     dataPoint = data[0]
     datum = dataPoint.getObs(gpstk.SatID(4), header.getObsIndex("C1"))
     self.assertAlmostEqual(24236698.057, datum.data)
     self.assertEqual(0, dataPoint.clockOffset)
     expectedTime = gpstk.CommonTime()
     expectedTime.set(2453167)
     expectedTime.setTimeSystem(gpstk.TimeSystem(gpstk.TimeSystem.GPS))
     self.assertEqual(expectedTime, dataPoint.time)
Exemplo n.º 8
0
def compute_raim_position(gps_week, gps_sow, prns, prns_pos, pranges,
                          bcestore):
    if len(prns) == 0 or len(prns_pos) == 0:
        return np.array([0, 0, 0])
    t = gpstk.GPSWeekSecond(gps_week, gps_sow).toCommonTime()
    prnList = [gpstk.SatID(int(i[3:])) for i in prns]
    satVector = gpstk.seqToVector(list(prnList), outtype='vector_SatID')
    rangeVector = gpstk.seqToVector([float(i) for i in pranges])
    noTropModel = gpstk.ZeroTropModel()
    raimSolver = gpstk.PRSolution2()
    raimSolver.RAIMCompute(t, satVector, rangeVector, bcestore, noTropModel)
    r = np.array([
        raimSolver.Solution[0], raimSolver.Solution[1], raimSolver.Solution[2]
    ])
    return r
Exemplo n.º 9
0
    def test_ephemeris(self):
        isblock9 = (lambda x: x.blockNum == 9)
        header, data = gpstk.readFIC('fic_data.txt', filterfunction=isblock9, strict=True)
        g = gpstk.GPSEphemerisStore()
        for d in data:
            ephem = gpstk.Rinex3NavData(d.toEngEphemeris())
            g.addEphemeris(ephem)

        sat = gpstk.SatID(4, gpstk.SatID.systemGPS)
        sys = gpstk.TimeSystem(gpstk.TimeSystem.GPS)
        t = gpstk.CivilTime(2012, 11, 10, 2, 0, 0, sys)
        t = t.toCommonTime()
        xvt= g.getXvt(sat, t)
        self.assertAlmostEqual(6887268.768807452, xvt.x[0])
        self.assertAlmostEqual(1036.3167828001287, xvt.v[1])
Exemplo n.º 10
0
    def test_almanac(self):
        isblock62 = (lambda x: x.blockNum == 62)
        header, data = gpstk.readFIC('fic_data.txt', filterfunction=isblock62, strict=True)
        self.assertEqual(96, len(data))
        g = gpstk.GPSAlmanacStore()
        for d in data:
            orbit = d.toAlmOrbit()
            g.addAlmanac(orbit)

        sat = gpstk.SatID(4, gpstk.SatID.systemGPS)
        sys = gpstk.TimeSystem(gpstk.TimeSystem.GPS)
        t = gpstk.CivilTime(2012, 11, 10, 2, 0, 0, sys)
        t = t.toCommonTime()
        xvt= g.getXvt(sat, t)
        self.assertAlmostEqual(6888490.4337890595, xvt.x[0])
        self.assertAlmostEqual(1036.1894772036476, xvt.v[1])
Exemplo n.º 11
0
def sp3_data(filename, prn):
    store = gpstk.SP3EphemerisStore()
    store.loadFile(filename)
    sat = gpstk.SatID(prn)

    class sp3_holder:
        def __init__(self, sp3Store, satStore):
            self.sp3Store = sp3Store
            self.satStore = satStore
        def first_time(self):
            return self.sp3Store.getPositionInitialTime(self.satStore)
        def last_time(self):
            return self.sp3Store.getPositionFinalTime(self.satStore)
        def position(self, t):
            triple = self.sp3Store.getPosition(self.satStore, t)
            return triple2Position(triple)
    return sp3_holder(store, sat)
Exemplo n.º 12
0
def fic_data(filename, prn):
    isblock9 = (lambda x: x.blockNum == 9)
    header, data = gpstk.readFIC(filename, filterfunction=isblock9)
    sat = gpstk.SatID(prn, gpstk.SatID.systemGPS)
    g = gpstk.GPSEphemerisStore()
    for d in data:
        ephem = gpstk.Rinex3NavData(d.toEngEphemeris())
        g.GPSEphemerisStore(ephem)

    class fic_holder:
        def __init__(self, gpsStore, satStore):
            self.gpsStore = gpsStore
            self.satStore = satStore
        def first_time(self):
            return self.gpsStore.getInitialTime()
        def last_time(self):
            return self.gpsStore.getFinalTime()
        def position(self, t):
            triple = self.gpsStore.getXvt(self.satStore, t).getPos()
            return triple2Position(triple)
    return fic_holder(g, sat)
Exemplo n.º 13
0
 def test_invalid(self):
     s = gpstk.SatID()  # creates an invalid SatID (id=-1)
     self.assertFalse(s.isValid())
Exemplo n.º 14
0
 def test_validity(self):
     s = gpstk.SatID(1, gpstk.SatID.systemGPS)
     self.assertTrue(s.isValid())