pylupnt.Sp3Loader¶
- class pylupnt.Sp3Loader¶
Loader for SP3 precise-ephemeris files: parses and interpolates GNSS satellite ECEF position/velocity and clock bias
- static download_file_for_epoch(epoch: Real, time_scale: pylupnt._pylupnt.Time = <Time.UTC: 1>, cache_dir: str = '') str¶
Download/cache the COD MGEX final SP3 product covering epoch (in time_scale seconds) from NASA CDDIS and return the local uncompressed .SP3 path. Needs Earthdata credentials (~/.netrc or EARTHDATA_USERNAME/EARTHDATA_PASSWORD). Cache defaults to output/gnss_files/sp3.
- static filename_for_epoch(epoch: Real, time_scale: pylupnt._pylupnt.Time = <Time.UTC: 1>) str¶
SP3 filename covering epoch, e.g. ‘COD0MGXFIN_20260140000_01D_05M_ORB.SP3’
- get_pos_vel(self: pylupnt._pylupnt.Sp3Loader, sat_id: str, t_tai: Real) Annotated[numpy.typing.NDArray[Real], '[6, 1]']¶
Interpolated ECEF position/velocity [m, m/s] only
- get_pos_vel_clock(self: pylupnt._pylupnt.Sp3Loader, sat_id: str, t_tai: Real) tuple[Annotated[numpy.typing.NDArray[Real], '[6, 1]'], Real]¶
Interpolated ECEF (position, velocity) [m, m/s] and clock bias [s] (including the relativistic correction); returns (rv_ecef, clock_bias_s)
- get_satellites(self: pylupnt._pylupnt.Sp3Loader) list[str]¶
SP3 identifiers of all satellites with data loaded so far, e.g. [‘G01’, ‘E11’, …]
- get_time_span(self: pylupnt._pylupnt.Sp3Loader, sat_id: str) tuple[float, float]¶
Time span [TAI seconds] covered by the loaded ephemeris for sat_id: (t_min, t_max)
- has_satellite(self: pylupnt._pylupnt.Sp3Loader, sat_id: str) bool¶
True if ephemeris data for sat_id (e.g. ‘G01’) has been loaded
- load_file(self: pylupnt._pylupnt.Sp3Loader, filepath: str) None¶
Parse an additional SP3 file and merge its samples in
- static url_for_epoch(epoch: Real, time_scale: pylupnt._pylupnt.Time = <Time.UTC: 1>) str¶
CDDIS download URL for the SP3 product