Объедините несколько растров в определенных местах, когда количество растров является переменным - PullRequest
0 голосов
/ 21 декабря 2018

Учитывая "n" растров, каждый размером 100x100 пикселей, я хочу объединить их все в один график, чтобы в строке было ровно 4 изображения.Для n> 4 должна быть создана новая строка и так далее.Таким образом, размеры созданного пустого графика будут фиксированы вдоль оси x, но ось y будет зависеть от количества растров.Я использовал функцию image_montage () из пакета «magick» для генерации монтажных операций следующим образом:

mag_montage <- list()
for(ii in 1:n){
filelist_crop <- list.files()[grep(".png",list.files())]  
mag_montagetemp <- image_read(filelist_crop)
mag_montage[[ii]] <- image_montage(mag_montagetemp)
}

Но я не могу таким образом контролировать конкретную позицию каждого отдельного файла в монтажном файле.Знание местоположений очень важно, так как мне нужно выбрать определенные координаты xy (используя «локатор») из объединенных растров для некоторой последующей обработки.Любая помощь будет высоко ценится.Благодарю.

1 Ответ

0 голосов
/ 21 декабря 2018

Таким образом, вы можете построить все растры в списке rlist на одном графике с 4 столбцами:

library(raster)

n <- 26

rlist <- lapply(1:n,function(x) raster(system.file("external/test.grd", package="raster")))

par(mfrow=c(ceiling(n/4),4))

for (ii in 1:length(rlist)){

  plot(rlist[[ii]])

## additional options for plot to omit legend and box
#bty="n", box=FALSE, axes=F, legend=F

}

enter image description here

...