如何将一天中的时间转换为0 / 2Pi =日出和Pi = sunset的弧度?

时间:2019-04-18 11:23:49

标签: r datetime data-conversion radians

我有一个很大的数据集(跨月连续),我需要执行循环统计以评估diel周期的潜在影响。

为此,我将所有循环数据转换为弧度。我现在需要在一天中的同一时间做同样的事情。我面临的问题如下: 我不希望0 / 2Pi对应于0h / 24h,而Pi代表中午。考虑到全年的日出/日落时间不同,我需要对数据进行标准化。

相反,我需要将0 / 2Pi设置为日出时间,将Pi设置为日落时间。我到处都是,找不到任何解决方案。一篇科学论文使用这种方法,我联系了其中一位作者,但到目前为止没有任何答案。这是论文中的一句话:

“为使日光标准化,要计算弧度值。0和2Pi值表示黎明,而Pi表示黄昏。” Zein 等人。,2019

我应该提到我是一名海洋生物学家,从事鲸类动物的研究。我没有任何数学背景。然后用R编写代码。我使用Maptools包中的Sunriset()访问了数据集每天的日落/日出时间。

非常感谢您。

1 个答案:

答案 0 :(得分:0)

您可以在getSunlightTimes包中使用suncalc。这是一种尝试计算时间的尝试,将0设置为日出,将π设置为日落。

library(suncalc)
library(hms)

#  tm = a time variable
tm <- as.hms(
  c(
    as.POSIXlt("2019-04-18 10:02:29"),
    as.POSIXlt("2019-04-18 15:10:00"),
    as.POSIXlt("2019-04-18 18:54:12")
  )
)

sun_t <- getSunlightTimes(as.Date("2019-04-18"), lat= 59.33, lon= 18.07, tz= "CET")

sunrise <- as.hms(sun_t$sunrise)
sunset <- as.hms(sun_t$sunset)

tm_pi <- as.numeric(tm - sunrise) * pi / as.numeric(sunset - sunrise)