I wrote a piece of Python code to read different GPS observation files (.24o) and navigation files (.24p), and generate polar plots of satellite trajectories. It is hoped that the RINEX file can be parsed and the sky plot of GNSS satellite positions can be drawn.
However, in actual operation, even when completely different .24o and .24p files are input, the final output satellite position sky maps are almost exactly the same.
Python version: 3.11.9
Dependency library: numpy2.2.6; matplotlib: 3.10.7; cssrlib: 2021.08.21
Operating system: Windows11
I have tried to print the file_seed value to confirm that the filE_seeds generated by different files are indeed different (for example, the seed of file A is 0.123456, and the seed of file B is 0.789012),also check the track parameters by printing the a/e/i0 values of the same PRN in different files, and find that the differences are extremely small (for example, a only differs by 1e-5) and adjust FILE_SEED_WEIGHT from 0.3 to 10, but there is still no significant difference in the trajectory.
def get_unique_orbit_params(prn, file_seed):
prn_num = int(prn.replace('G', ''))
base_offset = prn_num * 0.9 + file_seed * 10
a = (5153.7 + base_offset) ** 2
e = 0.001 + (prn_num * 0.0002 + file_seed * 0.001)
i0 = np.radians(55 + prn_num * 1.5 + file_seed * 10)
return {'a':a, 'e':e, 'i0':i0, ...}
Why is the difference of file_seed not reflected in the graph? Was the difference in orbital parameters "offset" by subsequent calculations, or did the trajectory drawing logic ignore the parameter changes? How can modifications be made to generate significantly different satellite trajectories for different files?