我有一个很大的数据集(跨月连续),我需要执行循环统计以评估diel周期的潜在影响。
为此,我将所有循环数据转换为弧度。我现在需要在一天中的同一时间做同样的事情。我面临的问题如下: 我不希望0 / 2Pi对应于0h / 24h,而Pi代表中午。考虑到全年的日出/日落时间不同,我需要对数据进行标准化。
相反,我需要将0 / 2Pi设置为日出时间,将Pi设置为日落时间。我到处都是,找不到任何解决方案。一篇科学论文使用这种方法,我联系了其中一位作者,但到目前为止没有任何答案。这是论文中的一句话:
“为使日光标准化,要计算弧度值。0和2Pi值表示黎明,而Pi表示黄昏。” Zein 等人。,2019
我应该提到我是一名海洋生物学家,从事鲸类动物的研究。我没有任何数学背景。然后用R编写代码。我使用Maptools包中的Sunriset()访问了数据集每天的日落/日出时间。
非常感谢您。
答案 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)