PositionVelocityTime.jl
Calculates position, velocity, and time from GNSS satellite measurements.
Features
- Estimation of user position, velocity, and time
- Satellite position and velocity calculation from orbital parameters
- Dilution of Precision (DOP) computation
- Support for GPS L1 and Galileo E1B
Installation
using Pkg
Pkg.add("PositionVelocityTime")Quick Start
Decoded data and code phase of a satellite must be combined in the SatelliteState struct:
using PositionVelocityTime, GNSSSignals, GNSSDecoder
gpsl1 = GPSL1()
sat_state = SatelliteState(
decoder = decoder,
system = gpsl1,
code_phase = code_phase,
carrier_doppler = carrier_doppler,
carrier_phase = carrier_phase, # optional
)Alternatively, pass a Tracking.SatState directly:
using Tracking
sat_state = SatelliteState(decoder, gpsl1, sat_state)With at least 4 satellite states, compute the PVT solution:
pvt = calc_pvt(sat_states)
lla = get_LLA(pvt) # latitude, longitude, altitude