首页 > 解决方案 > 从 R - Rnoaa 获取天气数据

问题描述

我正在尝试从 R 中的 rnoaa 获取一些天气数据。因为 rnoaa 仅支持一年的提取,我试图将一个循环放在一起以获得几年。使用地图功能更好吗?

它返回一个空白列表..

library(rnoaa)
options(noaakey= "somekey") 

washington_weather <- getweather("GHCND:USW00024234")
getweather <- function(stid) {
wtr<-0
for (i in 2009:2017) {
start_date <- paste0(i, "-01-01")
end_date <- paste0(i, "-12-31")
j<- i -2008
wtr[j]$tbl <- ncdc(datasetid='GHCND', stationid=stid, startdate = start_date, enddate = end_date)
}
return(wtr)
}

fahrenheit_to_celsius <- function(temp_F) {
  temp_C <- (temp_F - 32) * 5 / 9
  return(temp_C)
}

标签: rrnoaa

解决方案


rnoaa 包允许您组合使用该包获得的多个 ncdc 对象。

如果您使用ncdc_combine()函数,则可以组合您创建的多个对象。

例如:

x <- ncdc(datasetid= "GHNCD", stationid=stid, startdate = start_date, enddate = end_date)
y <- ncdc(datasetid= "GHNCD", stationid=stid, startdate = start_date1, enddate = end_date1)

z <- ncdc_combine(x,y)

这将结合您的两个 ncdc 对象,只要您将每个对象分解为不到一年。


推荐阅读