Создать интерактивный сюжет в R - PullRequest
0 голосов
/ 04 февраля 2019

Интересно, возможно ли в R (RStudio) иметь интерактивный график, где пользователь нажимает на изображение, и это используется в качестве входных данных для предстоящей обработки.Вот моя ситуация:

У меня есть растр, который я строю

plot(NDVI[[4]])

[! [Введите описание изображения здесь] [1]] [1]

Впоследствии,Я добавляю второй слой с ограничениями полигонов:

plot(fields, add=TRUE)

[! [Введите описание изображения здесь] [2]] [2]

Моя цель - чтобы пользователь нажимал на изображение, чтобы выбратьнекоторые из этих полигонов (скажем, 3).Эти щелчки используются для идентификации тех многоугольников, которые впоследствии будут использоваться для получения среднего значения растра внутри области, которую они представляют.

До сих пор я занимался обновлением шейп-файла, содержащего точки, но я хотел бы сделать его более интерактивным

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 голосов
/ 06 февраля 2019

Для тех, кто заинтересован, я решил проблему с помощью функции 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, я могу перейти к следующему шагу

...