예제 #1
0
 def test_nav_vs_orbit__old(self):
     dog_orbit = AstroDog(pull_orbit=True)
     dog_nav = AstroDog(pull_orbit=False)
     for gps_time in gps_times:
         for svId in svIds:
             sat_info_nav = dog_nav.get_sat_info(svId, gps_time)
             assert sat_info_nav is not None
             sat_info_orbit = dog_orbit.get_sat_info(svId, gps_time)
             assert sat_info_orbit is not None
             dog_orbit.get_delay(
                 svId, gps_time,
                 np.array([-2703115.2660, -4291768.3500, 3854247.9590]))
             np.testing.assert_allclose(sat_info_nav[0],
                                        sat_info_orbit[0],
                                        rtol=0,
                                        atol=5)
             np.testing.assert_allclose(sat_info_nav[1],
                                        sat_info_orbit[1],
                                        rtol=0,
                                        atol=.1)
             np.testing.assert_allclose(sat_info_nav[2],
                                        sat_info_orbit[2],
                                        rtol=0,
                                        atol=1e-7)
             np.testing.assert_allclose(sat_info_nav[3],
                                        sat_info_orbit[3],
                                        rtol=0,
                                        atol=1e-11)
예제 #2
0
 def test_nav_vs_orbit__old(self):
   dog_orbit = AstroDog(pull_orbit=True)
   dog_nav = AstroDog(pull_orbit=False)
   for gps_time in gps_times:
     for svId in svIds:
       sat_info_nav = dog_nav.get_sat_info(svId, gps_time)
       sat_info_orbit = dog_orbit.get_sat_info(svId, gps_time)
       np.testing.assert_allclose(sat_info_nav[0], sat_info_orbit[0], rtol=0, atol=5)
       np.testing.assert_allclose(sat_info_nav[1], sat_info_orbit[1], rtol=0, atol=.1)
       np.testing.assert_allclose(sat_info_nav[2], sat_info_orbit[2], rtol=0, atol=1e-7)
       np.testing.assert_allclose(sat_info_nav[3], sat_info_orbit[3], rtol=0, atol=1e-11)
예제 #3
0
    def test_no_block_satellite_when_get_info_from_not_available_period(self):
        '''If you first fetch satellite info from period when navigation data
    isn't available and next from period when navigation data are available
    then you should get correct result'''

        prn = "C03"
        constellations = ["GPS", "BEIDOU"]
        available_date = GPSTime.from_datetime(datetime(2020, 5, 1, 12, 0))
        not_available_date = GPSTime.from_datetime(datetime(2000, 1, 1))

        dog = AstroDog(valid_const=constellations)
        sat_info = dog.get_sat_info(prn, not_available_date)
        self.assertIsNone(sat_info)
        sat_info = dog.get_sat_info(prn, available_date)
        self.assertIsNotNone(sat_info)
예제 #4
0
from laika.lib.coordinates import ecef2geodetic, geodetic2ecef
import numpy as np
import seaborn as sns

from laika import AstroDog
constellations = ['GPS']
dog = AstroDog(valid_const=constellations)

from datetime import datetime
from laika.gps_time import GPSTime

time = GPSTime(1946, 222803)
sat_prn = 'G02'
sat_pos, sat_vel, sat_clock_err, sat_clock_drift = dog.get_sat_info(
    sat_prn, time)
print("Sattelite's position in ecef(m) : \n", sat_pos, '\n')
print("Sattelite's velocity in ecef(m/s) : \n", sat_vel, '\n')
print("Sattelite's clock error(s) : \n", sat_clock_err, '\n\n')

time = GPSTime(1946, 222804)
sat_prn = 'G06'
sat_pos, sat_vel, sat_clock_err, sat_clock_drift = dog.get_sat_info(
    sat_prn, time)
print("Sattelite's position in ecef(m) : \n", sat_pos, '\n')
print("Sattelite's velocity in ecef(m/s) : \n", sat_vel, '\n')
print("Sattelite's clock error(s) : \n", sat_clock_err, '\n\n')

time = GPSTime(1946, 222805)
sat_prn = 'G12'
sat_pos, sat_vel, sat_clock_err, sat_clock_drift = dog.get_sat_info(
    sat_prn, time)