Я надеюсь, что вы можете поддержать меня с помощью функции getSunlightTimes. У меня есть кадр данных уровня пикселей ("latlon2") с широтой ("lat"), долготой ("lon") и одной датой ("date") в формате YYYY-MM-DD. Данные охватывают континентальную часть США, и у меня также есть переменная кода штата во фрейме данных.
Чтобы получить переменную date
в качестве переменной класса даты, я выполнил:
latlon2$date=as.Date(latlon2$d2003s)
Я пытаюсь использовать getSunlightTimes
для определения времени восхода и захода солнца для каждого пикселя в назначенную дату. Тем не менее, мне трудно заставить эту функцию работать. Об этой команде не так много информации, кроме справочных руководств R, поэтому я надеюсь, что некоторые из вас уже поработали с ней и могут предложить свои предложения, основываясь на моем подходе.
Сначала я попытался использовать функцию getSunlightTimes
, обозначающую каждый столбец широты / долготы / даты в моем фрейме данных
sunrise2003CET=getSunlightTimes(date="latlon2$date", lat="latlon2$lat", lon="latlon2$lon", tz="CET", keep = c("sunrise", "sunset"))
R возвращает ошибку:
Ошибка в getSunlightTimes (date = "latlon2 $ date2", lat = "latlon2 $ lat",
: date должен быть объектом Date (класс Date)
Что разочаровывает, так это то, что когда я смотрю на класс (latlon2 $ date), R проверяет, что столбец является классом "Date"!
Далее я попытался обозначить только фрейм данных:
sunrise2003CET=getSunlightTimes(data="latlon2", tz="CET", keep = c("sunrise", "sunset"))
R возвращает ошибку:
Ошибка в .buildData (дата = дата, широта = широта, долгота = долгота, данные = данные):
all (c ("date", "lat", "lon")% в% colnames (data)) не TRUE
Это кажется странным, потому что я назвал столбцы в кадре данных "date", "lat", "lon", но, возможно, ошибка связана с тем, что в кадре данных есть другие переменные (например, код состояния) .
Я пытаюсь выполнить эту задачу в течение нескольких дат в течение 15 лет (и четырех часовых поясов), поэтому любые предложения о том, как это запустить, а также эффективно работать, очень ценятся!
Спасибо большое!
Colette