【问题标题】:Zero offset for sensor data set传感器数据集的零偏移
【发布时间】:2021-09-12 08:53:14
【问题描述】:

我在搜索中找不到答案,但也许我使用了错误的术语。 我正在尝试将漂移的深度传感器数据归零。

我有一个以 5 秒为增量的数月数据的大型数据集,它看起来像这样:

  Depth Temperature Light_Level          Local_time
1  64.0       27.55         148 2013-10-14 12:30:00
2  65.5       27.50         148 2013-10-14 12:30:05
3  65.5       27.40         148 2013-10-14 12:30:10
4  66.0       27.35         148 2013-10-14 12:30:15
5  67.5       27.25         147 2013-10-14 12:30:20

我需要调整,所以 0 是深度的最小值。为了做到这一点,我正在使用以下代码:

daily_depths <- with(dataset_1, aggregate(Depth ~ as.Date(Local_time), FUN =  function(x) c(Min = min(x), Max = max(x)))) #pulls out min daily depth for each day

min_max <- do.call(data.frame, daily_depths) #converts to a df with date, min and max values

MA5 <- stats::filter(min_max$Depth.Min, rep(1,5), sides = 2)/5 #calculates a moving average from 5 values centered on the current value

MA5 输出为时间序列,开始 = 1,结束 = 180(或数据集长度以天为单位),频率 = 1

例如打印:[1] NA NA -0.6 -0.6 -0.6 -0.5 -0.5 -0.5 -0.5 -0.5 ....... -0.5 NA NA

现在我想从当天的所有数据点中减去每日值。有几个问题:

  1. 前两天和最后两天没有 5 天移动平均线。我想创建一个平均值并用这些数字替换 NA。对于倒数第二个和最后一个,这是对 MA 的简单修改,使用边 = 1
  2. 对于第一个和第二个,我不确定给定的边函数如何不允许使用未来值。
  3. 获得这些数字后,如何在 MA5 时间序列中用它们替换 NA

最后,我需要从相应日期的每个深度值中加上或减去每日移动平均值,这将取决于数字是正数还是负数,以修正回 0。 对此的任何帮助都会很棒。非常感谢

【问题讨论】:

    标签: r offset zero drift


    【解决方案1】:

    我最终在 IGOR 中创建了一个函数,使用移动框窗口来计算框的最小值,然后创建数据的移动平均值。 然后使用我创建的波浪从数据中减去这个波浪,将整个数据集移动调整后的值。 最后,我将任何低于 0 的值替换为 0,这样深度始终为 0 或更大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多