-
public class SatellitePositionCalculatorSatellite Position and Velocity Calculator
Calculates GPS satellite positions and velocities from ephemeris data. Based on ICD-GPS-200 specification and Google's GPS Tools implementation.
The calculation includes:
Kepler orbit equations
Perturbation corrections
Sagnac effect compensation
Satellite clock corrections
-
-
Field Summary
Fields Modifier and Type Field Description public final static SatellitePositionCalculatorINSTANCE
-
Method Summary
Modifier and Type Method Description final SatellitePositionVelocitycalculateSatellitePositionAndVelocity(GpsEphemerisProto ephemeris, Double transmitTimeGpsSeconds, Integer gpsWeek, Double userPosX, Double userPosY, Double userPosZ)Calculate satellite position and velocity from ephemeris. final DoublecalculateSatelliteClockCorrection(GpsEphemerisProto ephemeris, Double transmitTimeGpsSeconds)Calculate satellite clock correction. -
-
Method Detail
-
calculateSatellitePositionAndVelocity
final SatellitePositionVelocity calculateSatellitePositionAndVelocity(GpsEphemerisProto ephemeris, Double transmitTimeGpsSeconds, Integer gpsWeek, Double userPosX, Double userPosY, Double userPosZ)
Calculate satellite position and velocity from ephemeris. Includes Sagnac effect correction by iterating with updated user-to-satellite range.
- Parameters:
ephemeris- GPS ephemeris parameterstransmitTimeGpsSeconds- Transmission time in GPS seconds (corrected for satellite clock)gpsWeek- GPS week numberuserPosX- User X position in ECEF meters (if known, else 0)userPosY- User Y position in ECEF meters (if known, else 0)userPosZ- User Z position in ECEF meters (if known, else 0)
-
calculateSatelliteClockCorrection
final Double calculateSatelliteClockCorrection(GpsEphemerisProto ephemeris, Double transmitTimeGpsSeconds)
Calculate satellite clock correction.
- Parameters:
ephemeris- GPS ephemeristransmitTimeGpsSeconds- Transmit time in GPS seconds
-
-
-
-