【问题标题】:Executing getSunlightTimes function in R with data frame?使用数据框在 R 中执行 getSunlightTimes 函数?
【发布时间】:2019-09-10 13:54:41
【问题描述】:

我希望您能支持我使用 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 类)

令人沮丧的是,当我查看 class(latlon2$date) R 验证该列是“日期”类时!

接下来,我尝试只指定数据框:

sunrise2003CET=getSunlightTimes(data="latlon2", tz="CET", keep = c("sunrise", "sunset"))

R 返回错误:

.buildData 中的错误(日期 = 日期,纬度 = 纬度,经度 = 经度,数据 = 数据): all(c("date", "lat", "lon") %in% colnames(data)) 不正确

这看起来很奇怪,因为我将数据框中的列命名为“date”、“lat”、“lon”,但可能错误是由于数据框中还有其他变量(例如状态码) .

我正在尝试在 15 年(和四个时区)的多个日期执行此任务,因此非常感谢任何有关如何使其运行以及高效运行的建议!

非常感谢!

科莱特

【问题讨论】:

  • 澄清一下,我原来的帖子有错字。我尝试的第一个命令是 sunrise2003CET=getSunlightTimes(date="latlon2$date", lat="latlon2$lat", lon="latlon2$lon", tz="CET", keep = c("sunrise", "sunset "))
  • 我将更改编辑为您的问题。其他人对其进行了编辑以进行格式化,但他们没有得到任何编辑的功劳。哦,好吧。

标签: r spatial


【解决方案1】:

问题在于引号。当你写

sunrise2003CET=getSunlightTimes(date="latlon2$date", 
                                lat="latlon2$lat",
                                lon="latlon2$lon", 
                                tz="CET", 
                                keep = c("sunrise", "sunset"))

您不应该将 datelatlon 参数的表达式放在引号中,因为这样 R 会将它们视为字符串。 (你可以试试class("latlon2$date") 看看这个。)只要写成

sunrise2003CET=getSunlightTimes(date=latlon2$date, 
                                lat=latlon2$lat,
                                lon=latlon2$lon, 
                                tz="CET", 
                                keep = c("sunrise", "sunset"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    相关资源
    最近更新 更多