在R中创建交互式图

时间:2019-02-04 15:15:55

标签: r ggplot2 plot raster shapefile

我想知道在R(RStudio)中是否可能有一个交互式绘图,用户可以在其中单击图像并将其用作即将进行的处理的输入。这是我的情况:

我有一个绘制的栅格

plot(NDVI[[4]])

[![在此处输入图片描述] [1]] [1]

然后,我添加第二个包含多边形限制的层:

plot(fields, add=TRUE)

[![在此处输入图片描述] [2]] [2]

我的目标是用户单击图像以选择其中一些多边形(比方说3)。这些单击用于标识那些多边形,这些多边形随后将用于在它们表示的区域内得出平均栅格值。

到目前为止,我一直在更新包含点的shapefile,但我想使其更具交互性

points<-readOGR("Points_crops.shp") 
fields<-readOGR("Boundaries.shp")
fields_sub <- fields[!is.na(sp::over(fields, sp::geometry(points))), ]
NDVI_mean<-lapply(NDVI, FUN=function (NDVI) {data.frame(mean=extract(NDVI,fields_sub,fun=mean))})

1 个答案:

答案 0 :(得分:1)

对于那些感兴趣的人,我已经使用click函数解决了这个问题。这将检索您用鼠标单击的点的坐标。之后,您可以将它们转换为spatialPoints并设置proj4string(与参考栅格之一相同)。

  points<-click(NDVI[[4]], n=5, xy=TRUE, show=TRUE)
  points$value<-NULL
  points<-SpatialPoints(points, proj4string = crs(S2_stack_crop[[2]]))

一旦获得spatialPoints的分数,我就可以继续下一步