我有这个数据框,我需要使用反距离加权(IDW)插值。我已经检查过了,但我找不到一种方法来做到这一点,我想要的是一个热图与IDW方法的水pH值数据采取在那个地方。
pacman::p_load(dplyr,sf,raster,sp,gstat,mapview)
dflima<-getData("GADM",country="PER", level=3) %>% st_as_sf() %>% filter(NAME_2=="Lima")
long <- c(-77.0958901385, -76.7059862868, -77.0490377322, -77.0082420569, -77.029088411, -76.8875419285)
lat <- c(-11.702568503, -12.2926462918, -12.0510554271, -11.8780894556, -12.1207933935, -12.2201247629)
ph <- c(7.64, 7.66, 7.71, 8.10, 8.22, 8.29)
df<-data.frame(long,lat,ph)
我试着画密度图,但这不是我真正想要的。
df %>% ggplot() +
stat_density2d(aes(x=df1$long, y=df1$lat, fill =..level..),bins=5 ,geom = "polygon")+
scale_fill_distiller(palette = "Spectral")+
geom_sf(data=dflima ,col = "#000000",alpha=0)
我甚至做了插值(在一个正方形区域),但我不能用Map的形状将其覆盖在图形上:
我想要类似于这个图表的东西:
如果你能帮助我,我将不胜感激。
1条答案
按热度按时间t0ybt7op1#
不知道插值有什么问题,但这里有一个简化的方法。这里我们将使用
sf
和stars
光栅网格与idw()
,结果也将是一个stars
对象。创建于2023-10-03带有reprex v2.0.2