0

私は r パッケージを使用して、rnoaa20 年以上にわたって、私の研究サイト (フロリダ州のほぼすべての州立公園または国立公園) に最も近い気象観測所から気候データをダウンロードしようと試みてきました。

特に私が扱っている公園の数を考えると、私に役立つ、または本当に意味のあるビネットやチュートリアルは見つかりませんでした. ここにいる誰かがこのパッケージを使用した経験があり、私のリストからいくつかの公園でこれを行う方法の例を示すことができるかどうか疑問に思っていましたか?

公園の経度と緯度もあります。

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

このサンプル データの最終的な目標は、データに記載されている年について、これらの公園 (または公園の座標) に最も近い測候所からの年間気温、湿度、およびその他の環境変数を取得することです。気象観測所によっては、それらの年のデータが欠落している可能性があることを知っています。

4

1 に答える 1

1

これで始められるはずです(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]))

これにより、最寄りの駅のすべての変数が得られます。もちろん、使用可能なすべての変数のvarmeteo_pull_monitorsから必要な変数を指定できます。

次のステップは、必要な変数が希望する時間枠内でこれらのステーションで利用できるかどうかを確認することです。そうでない場合は、次に近いものを使用できます。

例えば

最初の公園に最も近い駅には、降水量、最低気温、最高気温しかありません。

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

また、処理が必要な測定値が欠落していることがわかります。

于 2018-03-20T14:13:13.687 に答える