Как получить точный сезон (осень, зима, весна и лето) из вектора даты и времени в R, используя некоторую встроенную функцию пакета? - PullRequest
0 голосов
/ 14 февраля 2019

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