Мне нужно получить точный сезон ( осень , зима , весна и лето ) моего набора данных, используя "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))