Установка часового пояса в запросах weatherData
Я использую weatherData
пакет, в частности, его getDetailedWeather
функция. Возвращает фрейм данных, один из компонентов фрейма данных Time
из класса POSIXct
, Моя проблема в том, что все Time
устанавливается местный часовой пояс машины, которую я использую. Я почти уверен, что это неверно, что данные отражают местное время, и единственное, что API делает, это добавляет часовой пояс к данным, не меняя его. Я прав? Как я могу сказать API прекратить использовать мой часовой пояс по умолчанию?
Например:
library(weatherData)
dat <- getDetailedWeather("NRT", "2014-04-29")
dat$Time
# [1] "2014-04-29 00:00:00 EST" ## local timezone, not of the weather station
1 ответ
Глядя на результаты примера в ?getDetailedWeather
:
library(weatherData)
dat <- getDetailedWeather("NRT", "2014-04-29")
dat$Time
# [1] "2014-04-29 00:00:00 EST" "2014-04-29 00:30:00 EST" "2014-04-29 01:00:00 EST" etc
Возвращенные времена кажутся "правильными" в том смысле, что они идут с 00:00 до 23:30. Часовой пояс для данных - это не метеостанция, а скорее компьютерная система. Возможно, вам лучше всего изменить эти выходные данные, как только они у вас есть, так как R всегда будет отображать дату / время POSIXct
объекты в местном часовом поясе по умолчанию, например:
as.POSIXct(as.character(dat$Time),tz="UTC")
# [1] "2014-04-29 00:00:00 UTC" "2014-04-29 00:30:00 UTC" "2014-04-29 01:00:00 UTC" etc
Вышеизложенное меняет часовой пояс на новый часовой пояс (в этом случае "UTC"
, но вы можете использовать один, подходящий для местоположения метеостанции), не влияя на данные времени суток. Смотрите здесь: Действительные часовые пояса в lubridate для определения местных кодов часовых поясов.