This project investigates a hypothesis related to the Special Theory of Relativity, specifically how the velocity of a clock relative to different reference frames influences its perceived rate (time dilation).
The goal is to simulate an alternative relativistic model and determine if it could explain documented, sub-centimeter periodic errors found in global GPS time series.
The document "Alice and Bob Hafele-Keating.pdf" in the docs folder illustrates the context.
The Standard ECI Model: The "proper" time is maximized in the Earth-Centered Inertial (ECI) frame.
- This frame does not rotate with the Earth and maintains a fixed orientation toward distant stars.
- In this model, GPS satellites maintain a constant orbital velocity relative to the ECI, resulting in a stable, predictable clock rate.
The Solar-Translation Model: The "proper" time is maximized in a frame that translates with the Earth’s orbit around the Sun but does not rotate with the Earth.
- In this frame, the velocity of a GPS satellite is the vector sum of its orbital velocity around Earth and Earth's orbital velocity around the Sun.
- Consequently, the satellite's velocity fluctuates relative to this frame, causing its clock to tick at a variable rate.
Current geodetic research has identified unexplained millimeter-level (mm) deviations in GPS data. These anomalies serve as the benchmark for our simulation:
| Attribute | Observed Deviation Characteristic |
|---|---|
| Pervasiveness | Identified consistently across all timeframes and global locations. |
| Magnitude | Typically a few millimeters in North, East, and Up components. |
| Periodicity | Patterns exhibit harmonics of the GPS draconitic year (~351.4 days). |
| Component Correlation | NEU (North East Up) directions do not correlate with each other at a single station. |
| Spatial Correlation | Deviations are spatially correlated for neighboring stations up to 3,000 km. |
- Ray et al. (2013) - Journal of Geophysical Research
- Allahvirdi-Zadeh (2016) - Investigation of GPS draconitic year effect
This project consists of 8 scripts that must be run in order. Ensure the GPS ground station data is placed in data/external before starting.
0_initialise.py: Writes a timestamp file1_gps_satellite_orbit_simulation.py: Simulates raw orbital paths.1a_visualize_gps_satellite_orbits.py: Visualizes planes and annual rotation.2_gps_satellite_mm_deviation.py: Calculates clock bias (mm) comparing ECI vs. Barycentric motion.2a_gps_satellite_mm_deviation_spectral_analysis.py: Runs spectral analysis to find modulation periods.3_gps_periodic_patterns_observer.py: Projects deviations onto ground observer coordinates (ENU).3a_gps_periodic_patterns_spectral_analysis.py: Identifies Draconitic vs. Solar year harmonics in station series.3b_gps_periodic_patterns_spatial_correlation.py: Maps spatial correlation across the IGS Network.
Important
Resource Intensive: These scripts are CPU and memory-intensive. While they have been parallelized where possible to optimize performance, significant processing time may be required.
Reference Configuration: This project was developed and tested on a MacBook Pro with a 10-core CPU and 32 GB of RAM. Expect higher execution times on systems with fewer resources.
Warning
Independent Verification Required: The methodologies and scripts presented in this project require independent peer verification before the following conclusions can be finalized. While care was taken in the theoretical approach, a significant portion of the codebase was developed with the assistance of Artificial Intelligence. The code include assumptions on how the atomic clocks are continuously adjusted and how satellites are selected for optimal positioning accuracy.
Based on the simulations conducted using the Alternative Hypothesis (
The simulation replicates some, but not all of the periodic deviations that align with the GPS draconitic year (~351.4 days).
Only the harmonics with a shorter periodicity show up.
These periodic deviations only show up after including a very small scaling factor

-
Coordinate Independence: As observed in historical IGS data, the simulated deviations in North, East, and Up directions show minimal cross-correlation, effectively mirroring real-world signal noise profiles.

-
Regional Coherence: The model confirms that stations within a 3,000 km radius experience similar "clock-drift" signatures, providing a potential physical explanation for the known spatial correlations in global GNSS networks.

The magnitude of the simulated effect consistently falls within the 1–5 mm range.
This may impact Absolute GPS measurements.
For Relative GPS measurements, there is no impact as receiver and reference point share the same deviations.
-
Clone the repository:
git clone https://github.com/BartLeplae/GPS-Periodic-Patterns.git cd gps_periodic_patterns -
Set up the environment:
conda env create -f environment.yml
-
Activate the environment:
conda activate gps_periodic_patterns
gps_periodic_patterns/
├── data/
│ ├── external/ # Third-party data files (e.g. GPS ground station locations)
│ ├── raw/ # Intermediate simulation binaries
│ └── processed/ # Final analysis images and plots
├── src/ # Source code
├── docs/ # Additional documentation
├── .gitignore # Files to exclude from Git
├── environment.yml #
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
└── README.md # Project documentation
This project is licensed under the MIT License. This means you are free to use, modify, and distribute the software for both personal and commercial purposes, provided the original license and copyright notice are included.
See the LICENSE file for the full text.
Bart Leplae Email: bartleplae@hotmail.com
GitHub: github.com/BartLeplae
Please feel free to reach out for collaborations, questions regarding the relativistic simulations, or to report issues.