如何使用一些内置的包函数从 R 中的日期时间向量获取准确的季节(秋季、冬季、春季和夏季)?

Guz*_*Guz 6 datetime r astronomy lubridate

我需要使用日期时间列获取数据集的确切季节(秋季冬季春季夏季"POSIXct" "POSIXt"

重要的是要考虑到季节取决于地球上的春分和至日,而且季节发生的确切时间会随着时间的推移以及纬度和经度位置而变化。因此,这并不像为所有年份的所有春分和至日定义相同的日期和时间那么简单。

下面的表格显示了多年来的这种变化:http://www.astropixels.com/ephemeris/soleq2001.html

R 包中有没有内置函数可以实现这一点?

下面是一个起点:

# Load packages
library(lubridate)
library(dplyr)

# Create dummy df with datetime col 
df <- data.frame(datetimes = seq(as.POSIXct("2016-01-01 00:00:00", tz = "UTC"),
                             as.POSIXct("2019-12-31 23:59:59", tz="UTC"),
                             by = "hour"))

# Calculate season in a fix position given by lon, lat pairs
df2 <- 
  df %>%
  mutate(season = datetimeToExactSeason(datetimes))
Run Code Online (Sandbox Code Playgroud)