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:
- Create
ObservationFileHeader
,ClockFileHeader
, andNavigationFileHeader
classes containing the specific data in the different RINEX formats. - Create
RinexFileHeader
class containing the common data in the header of the RINEX format. - Create
IgsFileHeader
class containing the common data in the header of RINEX, ANTEX, and SINEX files. - Create
RinexParser
class containing the common parsing methods of RINEX formats - Create
IgsParser
class containing the common parsing methods of IGS standard. - Rename
RinexLoader
class inObservationFileparser
class. - Create
ObservationFile
class to contain the specific date of RINEX observation files. - Create
IgsFile
class to contain the common data in IGS files. - Create
RinexFile
class 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.