Skip to content

Conversation

@eulaliesa
Copy link
Contributor

This branch introduces a mechanism to retrieve SP3 and CLK files.
The logic follows a two-step approach:

  1. Local Search:
    The system first attempts to find the required SP3 and CLK files locally (e.g. in a pre-downloaded database or directory).

  2. Remote Download with Priority:
    If the files are not available locally, it proceeds to download them automatically from known public sources, following a priority list of analysis centers and product types.
    Final (FIN) products are preferred over rapid (RAP) ones, and centers like COD, GRG, and GFZ are prioritized due to their reliability and precision.

  • Since GPS week 2238, files follow a new naming convention on FTP servers.
  • Before GPS week 2238, the same type of files were added more recently under a dedicated /mgex subfolder, requiring different path logic during discovery.

@plutonheaven
Copy link
Collaborator

I observed that the tests were quite long, which was explained by different things:

  • To check availability of a file on the IGS server, some functions listed all the remote files, and then searched a file in this list. As folders in IGS folders can have many files, this can be quite long for IGS products.
  • Some SP3 files were downloaded many times for the purpose of testing.

I changed many things in the module, and mainly:

  • working with finding files by names rather than by patterns. This means it will not work if an IGS Analysis Center provides a product from a new processing campaign or with a new interval for example, but we still specify the files (MGX, 15M) that we want and will always be able to update this if required.
  • wrote a function that check the availability of a file on the ftp server (by checking its size) without downloading it. This function is then used in tests as a unittest.mock.patch instead of downloading the files

And then I rewrote almost all tests, simplifying the test cases.

@eulaliesa, you can have a look at the changes between 1534cbe and 3541dac to see those changes. It may feel like I rewrote almost all what you did, but in reality, I could not have done this without your code and our discussions. So thanks a lot!

@plutonheaven
Copy link
Collaborator

I still have to merge main into this branch. Will do this later...

@plutonheaven plutonheaven marked this pull request as draft July 26, 2025 15:04
# Conflicts:
#	src/prx/rinex_nav/evaluate.py
#	src/prx/rinex_nav/test/test_evaluate.py
#	src/prx/test/test_main.py
@plutonheaven plutonheaven marked this pull request as ready for review July 27, 2025 15:37
@plutonheaven plutonheaven requested a review from jtec July 27, 2025 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants