将儒略日转换为弧度(或类似的)

Convert Julian days into radians (or similar)

我有一个包含 n 行的数据框,每行对应于 space 和时间中的单个事件。数据框包含包含空间坐标和儒略日日期的列以及其他几列附加数据。

我想对我的数据做各种事情,但作为一个例子,我想栅格化一些列并输出一些地图。对于我的大部分专栏,我可以使用如下内容轻松完成此操作:

df.raster <- rasterize(df.sp, base.raster, field = "column", fun=median) 
plot(df.raster)

然而,对于儒略时代,这没有意义,因为它是周期性的。 365/366 与 1 相邻,但 R 不知道这一点,因此使用中值函数不会为我提供有意义的数字。我正在寻找一种方法将我的儒略日列转换为一个新列,该列反映了这一点并使我能够为儒略日创建有意义值的栅格。

我的儒略日专栏从 1 到 366,反映了特定年份内某事件发生的日期。我的数据涵盖多年,但我的儒略日列在每年年初再次从 1 开始。

我已经尝试了一些方法,包括转换为弧度,但到目前为止没有任何效果。任何帮助将不胜感激!

为了得到我想要的结果,我首先必须将我的 "Julian days" 列缩放为度数,然后我可以使用 aspace 包中的 as_radians 函数将度数转换为弧度,然后我可以使用 circular弧度统计:

# Scale Julian days to degrees

df$degrees <- (df$jday/366)*360

# Convert degrees to radians

df$radians <- as_radians(df$degrees)

# Convert df to a spatial object

df.sp <- df
coordinates(df.sp) <- ~ x + y
proj4string(df.sp) <- proj4string(coordinates)

# Rasterise radians

radians.raster <- rasterize(df.sp, base.raster, field = "radians", fun = mean.circular)

# Plot rasterised radians

plot(radians.raster)

目前,这些数字会稍微不准确,因为(转换为度数时)闰年应除以 366,非闰年应除以 365,但我将通过查找年份的简单循环来解决此问题(也包含在我的 df) 中,并适当地使用 366/365。