首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RNOAA R包数据访问

RNOAA R包数据访问
EN

Stack Overflow用户
提问于 2018-03-20 11:48:13
回答 1查看 369关注 0票数 0

在过去的20年里,我一直试图使用r软件包rnoaa从离我的研究地点最近的气象站(基本上是佛罗里达州的每个州或国家公园)下载气候数据。

我没有发现任何对我有帮助或真正有意义的小插曲或教程,尤其是考虑到我正在工作的公园的数量。我想知道这里的人是否有处理这个包的经验,并能给我举一个例子,说明如何在我的单子上的几个公园里做这件事?

我还有公园的经度和纬度:

代码语言:javascript
复制
df<-structure(list(ParkName = structure(c(2L, 6L, 4L, 7L, 5L, 6L, 
3L, 3L, 1L), .Label = c("Big Talbot Island State Park", "Fakahatchee Strand Preserve State Park", 
"Jonathan Dickinson State Park", "Key Largo Hammocks", "Myakka River State Park", 
"Paynes Prairie Preserve State Park", "Sebastian Inlet State Park"
), class = "factor"), ParkLatitude = c(26.02109, 29.57728, 25.25342, 
27.86018, 27.2263, 29.57728, 27.00857, 27.00857, 30.47957), ParkLongitude = c(-81.42208, 
-82.30675, -80.31574, -80.45221, -82.26661, -82.30675, -80.13897, 
-80.13897, -81.43955), Year = c(2004L, 2000L, 1996L, 1997L, 2008L, 
2002L, 2004L, 2002L, 1995L)), .Names = c("ParkName", "ParkLatitude", 
"ParkLongitude", "Year"), class = "data.frame", row.names = c(NA, 
-9L))

该示例数据的最终目标是在数据中列出的年份中,从离这些公园最近的气象站(或公园坐标)获得年温度、湿度和其他环境变量。我知道,根据气象站的情况,这些年的数据可能会丢失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-20 14:13:13

这应该会让您开始(从您的问题中使用df ):

代码语言:javascript
复制
library(rnooa)

# load station data - takes some minutes

station_data <- ghcnd_stations()

# add id column for each location (necessary for next function)

df$id <- 1:nrow(df)

# retrieve all stations in radius (e.g. 20km) using lapply

stations <- lapply(1:nrow(df),
                   function(i) meteo_nearby_stations(df[i,],lat_colname = 'ParkLatitude',lon_colname = 'ParkLongitude',radius = 20,station_data = station_data)[[1]])

# pull data for nearest stations -  x$id[1] selects ID of closest station

stations_data <- lapply(stations,function(x)  meteo_pull_monitors(x$id[1]))

这将给出最近站的所有变量。当然,您可以在var中从所有可用变量指定meteo_pull_monitors中需要哪些变量。

您的下一步将是检查您想要的变量是否在您期望的时间范围内对这些站点可用。如果没有,你可以用下一个最近的。

例如。

离你的第一个公园最近的车站只有降水量、最低气温和最高气温:

代码语言:javascript
复制
stations_data[[1]]

# # A tibble: 4,077 x 5
# id       date  prcp  tmax  tmin
# <chr>     <date> <dbl> <dbl> <dbl>
# 1 USW00092826 2007-02-01    NA    NA    NA
# 2 USW00092826 2007-02-02    NA    NA    NA
# 3 USW00092826 2007-02-03    NA    NA    NA
# 4 USW00092826 2007-02-04    NA    NA    NA
# 5 USW00092826 2007-02-05    NA    NA    NA
# 6 USW00092826 2007-02-06    NA    NA    NA
# 7 USW00092826 2007-02-07    NA    NA    NA
# 8 USW00092826 2007-02-08    NA    NA    NA
# 9 USW00092826 2007-02-09    NA    NA    NA
#10 USW00092826 2007-02-10    NA    NA    NA
# # ... with 4,067 more rows

你可以看到缺少的测量数据,你需要处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49383436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档