Вы можете использовать мощные функции GDAL
. По моему опыту, это намного быстрее, чем чистый код R.
Мой подход был бы с library(gdalUtils)
:
Сначала создайте файл виртуального растра (vrt):
library(gdalUtils)
setwd(...)
gdalbuildvrt(gdalfile = "*.tif", # uses all tiffs in the current folder
output.vrt = "dem.vrt")
Затем скопируйте виртуальный растр в реальный физический файл:
gdal_translate(src_dataset = "dem.vrt",
dst_dataset = "dem.tif",
output_Raster = TRUE # returns the raster as Raster*Object
# if TRUE, you should consider to assign
# the whole function to an object like dem <- gddal_tr..
options = c("BIGTIFF=YES", "COMPRESSION=LZW"))
Другое чистое (и, возможно, более медленное) пакетное решение raster
:
f <- list.files(path = "your/path", pattern = ".tif$", full.names = TRUE)
rl <- lapply(f, raster)
do.call(merge, c(rl, tolerance = 1))
вам нужно настроить tolerance
, поскольку растровые файлы, вероятно, не будут иметь одинаковое происхождение.
person
loki
schedule
08.05.2018
do.call(merge, a)
, а дляmerge
нет аргументаfun
. - person akrun   schedule 08.05.2018Reduce(function(...) merge(...), a)
- person akrun   schedule 08.05.2018?merge
изraster
, пример работает сdo.call(merge, x)
, и я также не нахожу аргументаfun
- person akrun   schedule 08.05.2018