RNOAA R 包数据访问

RNOAA R package data access

在整个课程中,我一直在尝试使用 r 包 rnoaa 从离我的研究地点最近的气象站(基本上几乎是佛罗里达州的每个州或国家公园)下载气候数据两个十年。

我没有找到任何对我有帮助或真正有意义的小插图或教程,尤其是考虑到我正在使用的公园数量。我想知道这里是否有人有使用此软件包的经验,并且可以举例说明如何对我列表中的几个公园执行此操作?

我还有公园经纬度:

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))

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

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

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 in meteo_pull_monitors from all the available variables.

指定你需要的变量

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

例如

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

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

您可以看到缺少您需要处理的测量值。