Refactoring of supported RINEX files
Since the implementation of the first RINEX format in Orekit (i.e. RINEX observation files represented by RinexHeader and RinexLoader classes), more and more other RINEX formats were added in Orekit: clock files and navigation files for instance. Furthermore, RINEX formats are part of the more generic IGS standards regrouping RINEX, ANTEX, and SINEX. All this formats are also supported in Orekit.
Many keys and elements are common between the formats. However, the factorization of these common elements has never been done in Orekit. It could be very useful to take advantage of these commun elements by implementing a more generic and factorized architecture of the RINEX and IGS standard.
Here some idea:
NavigationFileHeaderclasses containing the specific data in the different RINEX formats.
RinexFileHeaderclass containing the common data in the header of the RINEX format.
IgsFileHeaderclass containing the common data in the header of RINEX, ANTEX, and SINEX files.
RinexParserclass containing the common parsing methods of RINEX formats
IgsParserclass containing the common parsing methods of IGS standard.
ObservationFileclass to contain the specific date of RINEX observation files.
IgsFileclass to contain the common data in IGS files.
RinexFileclass to contain the common data in Rinex files.
This implementation can be inspired by what is currently done in issue- #474 (closed) branch for the factorization of common data.