gpt4 book ai didi

php - 如何找到潮汐数据的所有波峰和波谷?

转载 作者:可可西里 更新时间:2023-10-31 22:48:43 26 4
gpt4 key购买 nike

我正在处理一些结构如下的海潮数据:

$data = array('date' => array('time' => array('predicted','observed')));

这是我使用的真实数据示例:http://pastebin.com/raw.php?i=bRc2rmpG

这是我寻找高/低值的尝试:http://pastebin.com/8PS1frc0

我的代码当前存在的问题:

  • 当读数波动时(如 11/14/2010=>11:30:0011/14/2010=>11:54:00 样本数据中的跨度),它会在方向逻辑中产生“摆动”。这会产生错误的峰谷。我怎样才能避免/纠正这种情况?

注意:我的方法非常“临时”。我认为我不需要任何很棒的数学知识,因为我不想找到任何平均值、近似值或 future 估计.我真的很感激更好方法的代码示例,即使这意味着丢弃我到目前为止编写的代码。

最佳答案

我不得不对嘈杂的生理数据执行类似的任务。在我看来,你有一个信号调节问题。这是一个对我有用的过程。

  1. 将您的时间值转换为秒,即 (HH*3600)+(MM*60)+(SS),以生成数字“X”值。
  2. 使用滑动窗口平滑生成的 X 和 Y 数组,比如宽度为 10 点。您还可以考虑在此步骤中过滤带有冗余和/或虚假时间戳的数据。
  3. 通过比较平滑后的 Y[1] 和 Y[0] 执行指示相位检测。与上面的帖子类似,如果 (Y[1] > Y[0]),您可以假设数据正在攀升至峰值。如果 (Y[1] < Y[0]),您可以假设数据正在下降到谷底。
  4. 一旦知道了初始相位,就可以按上述方法执行波峰和波谷检测:如果 Y[i] > Y[i+1] 且 Y[i] < Y[i-1],则你遇到了峰值。
  5. 您可以通过考虑滑动窗口大小(以补偿滑动窗口引起的“信号滞后”)将平滑后的 X 值投影回原始 X 数据来估算峰值/谷值时间。然后可以将生成的时间值(以秒为单位)转换回 HH:MM:SS 格式以进行报告。

关于php - 如何找到潮汐数据的所有波峰和波谷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4168396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com