【问题标题】:How can we extract London weather in 2000 via Darksky API?我们如何通过 Darksky API 提取 2000 年的伦敦天气?
【发布时间】:2020-04-27 07:07:13
【问题描述】:
#install.packages("darksky")
library(darksky)
library(tidyverse)

# current verison
packageVersion("darksky")

Sys.setenv("DARKSKY_API_KEY" = # Secret API Key
             )
Sys.getenv("DARKSKY_API_KEY")

#This coordinates works 
now <- get_current_forecast(43.2672, -70.8617)
print(now)

正在尝试提取伦敦的温度信息...

seq(as.Date("2000-01-01"), as.Date("2001-01-01"), "day") %>% 
  map(~get_forecast_for(51.5074, 0.1278, .x)) %>% 
  map_df("daily") %>% 
  ggplot(aes(x=time, y=temperature)) +
  geom_line()´

但访问被禁止的 HTTP 403 错误

【问题讨论】:

    标签: r weather darksky


    【解决方案1】:

    HTTP 403 错误表明您无权访问被调用的网站。所以这意味着你的密钥是错误的。首先,您需要在darksky 上创建一个帐户。请注意:您每天只需免费获得 1000 次 api 调用(查看faq),如果您想全年调用,您已经收到 365 次 api 调用,因为您每天进行一次调用。因此,请先尝试较小的日期。

    您可以使用darksky_api_key() 输入 API 密钥,这样您就有机会在控制台中输入您的密钥。否则,您可以创建一个 .Renviron 文件并在其中添加密钥(为此检查 darksky 包的 documentary)。

    所以在控制台中添加密钥后,这里是来自github 的代码工作示例(我猜你也使用过)。根据您的情况调整日期和情节,由于通话限制,我只使用了一个月的数据。

    library(darksky)
    library(tidyverse)
    library(ggplot2)
    
    # current verison
    
    
    darksky_api_key()
    
    #This coordinates works 
    now <- get_current_forecast(43.2672, -70.8617)
    print(now)
    
    df <- seq(as.Date("2000-01-01"), as.Date("2000-02-02"), "day") %>% 
      map(~get_forecast_for(51.5074, 0.1278, .x)) 
    
    df %>%
      map_df("hourly") %>%
      ggplot(aes(x=time, y=temperature)) +
      geom_line()
    

    输出:

    【讨论】:

    • 谢谢,是的,我的 API 调用昨天结束了。我想知道使用这个 API github.com/hrbrmstr/darksky,如果我们可以了解下雪的详细信息,例如特定地区的下雪日期和数量(precipAmount)。因为在他们的网站上,他们提到降雪数据可用但不确定是否提取此类信息。
    • @Abhi 遗憾的是我不知道如何提取降雪数据。我找不到用这个包做这个的方法。也许你应该就这个问题联系 Github 上的所有者
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 2011-02-02
    • 1970-01-01
    • 2011-04-08
    相关资源
    最近更新 更多