米国チェサピーク湾のさまざまな場所で採取された種の豊富さの調査データがあり、そのデータを「ヒート マップ」としてグラフィカルに提示したいと考えています。
緯度/経度座標と豊かさの値のデータフレームがあり、これを に変換し、automap パッケージ SpatialPointsDataFrame
の関数を使用して補間値を生成しました。autoKrige()
まず、autoKrige()
関数を正しく実装しているかどうかについてコメントできますか?
次に、データをプロットして地域の地図を重ねるのに問題があります。または、ベイの境界を反映するように補間グリッドを指定できますか (ここで提案されているように)? どうすればそれができるか、どこでその情報を入手できるかについて何か考えはありますか? グリッドを提供するのautoKrige()
は簡単に見えます。
編集: 非常に役立つ投稿をしてくれた Paul に感謝します! これが私が今持っているものです。ggplot が補間されたデータと地図投影の両方を受け入れるのに問題があります。
require(rgdal)
require(automap)
#Generate lat/long coordinates and richness data
set.seed(6)
df=data.frame(
lat=sample(seq(36.9,39.3,by=0.01),100,rep=T),
long=sample(seq(-76.5,-76,by=0.01),100,rep=T),
fd=runif(10,0,10))
initial.df=df
#Convert dataframe into SpatialPointsDataFrame
coordinates(df)=~long+lat
#Project latlong coordinates onto an ellipse
proj4string(df)="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
#+proj = the type of projection (lat/long)
#+ellps and +datum = the irregularity in the ellipse represented by planet earth
#Transform the projection into Euclidean distances
project_df=spTransform(df, CRS("+proj=merc +zone=18s +ellps=WGS84 +datum=WGS84")) #projInfo(type="proj")
#Perform the interpolation using kriging
kr=autoKrige(fd~1,project_df)
#Extract the output and convert to dataframe for easy plotting with ggplot2
kr.output=as.data.frame(kr$krige_output)
#Plot the output
#Load the map data for the Chesapeake Bay
cb=data.frame(map("state",xlim=range(initial.df$long),ylim=range(initial.df$lat),plot=F)[c("x","y")])
ggplot()+
geom_tile(data=kr.output,aes(x=x1,y=x2,fill=var1.pred))+
geom_path(data=cb,aes(x=x,y=y))+
coord_map(projection="mercator")