さまざまな場所 (X1、X2、...) での温度データの毎日の平均値があり、それらをマップに補間したいと考えています。次のようなフォーマットされた Excel シートからロードして、長いフォーマットのデータ オブジェクトを作成しました。
library(reshape2)
tempdata <- read.csv("...", sep=";")
names(tempdata) <- c("date", paste("X", 1:73))
head(tempdata)
# date X1 X2 X3 X4 X5 X6 X7
# 1 1 7.3 6.6 6.7 5.8 6.1 6.1 5.5
# 2 2 7.5 6.6 6.6 5.6 4.8 4.7 3.9
# 3 3 8.8 7.7 7.6 7.0 7.0 6.0 5.8
# 4 4 8.5 7.4 7.5 7.0 7.3 5.9 5.5
# 5 5 7.7 6.7 6.9 6.1 6.8 5.1 4.1
# 6 6 7.5 6.7 6.8 6.0 6.4 5.0 4.1
場所 X1、X2、... の緯度経度についても同じです。
lat.lon <- read.csv("...", sep=";")
rownames(lat.lon) <- c(paste0("X",1:73))
head(lat.lon)
# latitude longitude
# X1 54.1650 6.3458
# X2 54.1667 7.4500
# X3 54.1832 7.8856
# X4 55.0114 8.4158
# X5 54.5068 9.5393
# X6 54.5214 11.0522
それらを長い形式にマージしました:
res <- merge(
melt(tempdata, id.vars="date"),
lat.lon,
by.x="variable", by.y="row.names"
)
head(res)
# variable date value latitude longitude
# X1 1 9.9 54.165 6.3458
# X1 2 8.9 54.165 6.3458
# X1 3 7.8 54.165 6.3458
# X1 4 9.2 54.165 6.3458
# X1 5 8.7 54.165 6.3458
# X1 6 8.4 54.165 6.3458
と
coordinates(res) = ~longitude+latitude
spplot を使用して、それらを正しい場所にプロットすることができます。また、国境も使用できます。
library(maptools)
load(url('http://gadm.org/data/rda/DEU_adm0.RData'))
GE <- gadm
GE <- spChFIDs(GE, paste("GE", rownames(GE), sep = "_"))
spplot(res["value"], sp.layout = list("sp.polygons", GE), col.regions=bpy.colors(20))
1 日間の観測に IDW を使用したいのですが、見つけたパッケージ (gstat など) の idw メソッドには、他の「グリッド化された」データ オブジェクトが必要です。そのようなメソッドで補間するために、そのようなデータ オブジェクトを作成するにはどうすればよいですか?