【问题标题】:How can I store raw data with respect to time and sort it?如何存储关于时间的原始数据并对其进行排序?
【发布时间】:2010-09-30 08:37:58
【问题描述】:

由于 Internet 通信,我可能有两个(或多个)相同数据周期的 RINEX 格式(GPS ASCII 格式)的 ASCII 文件,我想将它们合并到一个文件中。

每个数据集(epoch)包含多于一行(在本例中为 19 行)。我想合并这些文件,它们可能在某些部分相互重叠。

这里是一个 RINEX epoch 数据集的例子:

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 卫星的原始数据。

我的想法是单独打开每个文件并将原始数据存储在某种与时间相关的数组中。每次我阅读新纪元时,我都会询问我的数组是否已经有时间某某某某,如果没有,我将原始数据放在那里。

我的问题是如何存储与时间相关的原始数据,因为它不是一条线,而是可以随时变化的动态数据。

如果你有更好的想法,请与我分享。

问候

【问题讨论】:

    标签: perl sorting gps mergesort


    【解决方案1】:

    要存储关于时间的原始数据,我会:

    • 将时间编码为数字(自 Unix“纪元时间”或自某个任意开始时间以来的秒数 - 使用微秒而不是秒,具体取决于 RINEX 时间精度)。

    • 将原始数据存储为数组(每行的数据是 1 个数组元素 - 存储为字符串、单词数组引用或值哈希)。

    • 将对该数组的引用存储为哈希值,键是时间编码为数字。

    【讨论】:

    • 我支持这种方法。通过这种方式,您可以将行堆组织成一个数据表(数组)和一个查找索引(哈希)。您只需在数组末尾添加新行,这很便宜,而散列仅包含数字键和在数组中查找位置的引用,这也很便宜。这将提供比将数据存储在哈希本身中更昂贵的性能,尤其是对于更大的数据集。
    猜你喜欢
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 2017-07-12
    • 2020-07-31
    • 2020-12-13
    • 2016-03-24
    • 2021-10-15
    • 2022-10-08
    相关资源
    最近更新 更多