Many services providing RINEX data use the hourly format as a standard way of storing and transmitting data. However, unlike CORS (Continuously Operating Reference Stations) networks, such services often do not provide flexible settings for changing the duration of data intervals. Users have to merge hourly files themselves if they need to work with longer time intervals.
To demonstrate how to combine hourly RINEX files, let’s look at a few examples using popular tools, namely:
- CRX2RNX ( https://terras.gsi.go.jp/ja/crx2rnx.html )
- gfzrnx ( https://gnss.gfz-potsdam.de/services/gfzrnx )
These utilities are available for download from official websites and are designed to work in the command line.
First, let’s look at unpacking “.crx“. A RINEX file in the “.crx” format is a compressed version of the standard RINEX (Compact RINEX). This format allows you to significantly reduce the size of files, which simplifies their storage and transfer. However, to work with such files, they must be unpacked into the standard “.rnx” format. To do this, place “.crx” and the unpacking utility in any desired directory, as shown in Figure 1.

Then open PowerShell and enter the unpacking command, in our case it looks like this, Figure 2:
.\CRX2RNX.exe .\SEV100ESP_R_20250071100_01H_01S_MO.crx

As a result, the unpacked Rinex file will appear in the folder, as shown in Figure 3.

Now let’s look at merging several files into one. Let’s say we want to merge two ephemeris files and two observation files, as shown in Figure 4. As you can see, we placed the observation files and ephemeris in one directory, and also created a new directory “tmp“. It will be needed for temporary storage of the merged files.

To merge, we will use the gfzrnx.exe utility. Before merging, you need to check the file version to avoid errors. In this case, we downloaded Rinex version 3.04. If you have a different version, for example 3.02 or 3.04, then you should take it into account as a parameter when merging.

Also open PowerShell and write the command, Figure 6:
.\gfzrnx.exe -finp .\SEV100ESP_R_20250071100_01H_01S_MO.rnx .\SEV100ESP_R_20250071200_01H_01S_MO.rnx -fout tmp\SEV100ESP_R_20250071100_01H_01S_MO.rnx -vo 3.04 -splice_direct

Note that the name of the output file is the same as the first of the input files. For this purpose, the “tmp” directory was created, into which the combined file is placed. To avoid name conflicts. When combining hourly RINEX files, it is important that the resulting file (combined) has a name corresponding to the beginning of the first time interval. For example, if the first file covers data from 11:00 to 12:00 (SEV100ESP_R_20250071100_01H_01S_MO.rnx), and the second from 12:00 to 13:00 (SEV100ESP_R_20250071200_01H_01S_MO.rnx), then the combined file, including data from 11:00 to 13:00, should be called SEV100ESP_R_20250071100_01H_01S_MO.rnx
Navigation files are combined in the same way.
Let’s consider another case when the service provides hourly observation files and only one daily navigation file (‘EPHM00GBR_S_yyyyddd0000_01D_MN.rnx.zip’). This is also not a problem. Below is an example of using RINEX version 3.04 files from a public base station of the Ordnance Survey GNSS network, as shown in Figure 7.

Before merging, let’s look inside the navigation file. As shown in Figure 8, the versions are different. Therefore, when merging, we will “bring” the observation files to a newer version to avoid processing errors.

In this case, the command for merging will look like this, Figure 9:
./gfzrnx.exe -finp BIAX00GBR_S_20250081200_01H_30S_MO.rnx BIAX00GBR_S_20250081300_01H_30S_MO.rnx -fout tmp\BIAX00GBR_S_20250081200_01H_30S_MO.rnx -vo 3.05 -splice_direct

As a result, a merged observation file will appear in the “tmp” directory. For correct processing, it is necessary to rename the navigation file according to the name of the observation file, as shown below:
EPHM00GBR_S_20250080000_01D_MN.rnx -> BIAX00GBR_S_20250081200_01H_MN.rnx
After renaming, move the finished files to the “data” folder of your project, for example, as shown in Figure 10.

You can learn more about the command line parameters for the utilities used on the official websites. We will also leave useful links for a more detailed acquaintance with the Rinex format: