由于互联网通信,我可能有两个(或更多)相同数据周期的RINEX格式(GPS ASCII格式)的ASCII文件,我想合并到一个文件中。
每个数据集(纪元)包含多于一行(在此示例中为19行)。我想合并这些文件,它们可能会在某些部分相互重叠。
这是RINEX纪元数据集的一个例子:
09 2 21 12 59 59.9000000 0 9G31G23G11G13G32G17G14G20G19
23152606.238 121667768.06047 94806069.43545 23152606.540 23152606.521
1262.605 43.750 31.500
22765313.352 119632547.53447 93220179.18745 22765312.252 22765311.072
3252.769 46.250 32.250
20798168.896 109295128.07748 85165036.96747 20798168.642 20798168.578
-2252.493 52.750 43.250
25363206.177 133284559.23845
3776.403 32.750
20350616.203 106943239.96448 83332404.31147 20350615.386 20350616.499
-929.443 51.000 44.500
21994260.713 115580595.93348 90062809.84446 21994260.826 21994260.114
416.327 49.500 38.250
23964108.994 125932271.15846 98129049.02843 23964107.689 23964107.603
-3561.500 39.250 20.250
20225257.452 106284459.64448 82819085.85247 20225256.341 20225256.964
956.944 52.750 45.250
25623383.323 134651746.21445 104923415.17742 25623386.202 25623384.504
-3991.096 34.250 12.250
第一行包含时间信息,下面是每颗GPS卫星的原始数据。
我的想法是将每个文件分开打开,并将原始数据存储在某种类型的数组中。每当我读到新的纪元时,我都会问我的数组我是否已经有时间某些东西,如果没有我将原始数据放在那里。
我的问题是如何根据时间存储原始数据,因为它不是一行,而是一些可以随时变化的动态数据。
如果您有更好的想法,请与我分享。
此致
答案 0 :(得分:3)
要存储与时间有关的原始数据,我会:
将时间编码为一个数字(自Unix以来的秒数“纪元时间”或自某些任意开始时间开始 - 根据RINEX时间精度,使用微秒而不是秒数。)
将原始数据存储为数组(每行的数据为1个数组元素 - 存储为字符串,字数的arrayref或值的哈希值)。
将对该数组的引用存储为哈希值,其中键是时间编码为数字。