Я пытаюсь объединить растеризованные полилинии, которые имеют различную протяженность, чтобы создать единую поверхность, указывающую, сколько раз ячейки перекрываются.
Из-за вычислительных ограничений (учитывая размер моей учебной области) я не могу использовать extend
, а затем stack
для каждого растра (общее количество = 67).
Я столкнулся с функцией merge
в R, и это позволяет мне объединять растры в одну поверхность.Однако мне не нравится вставлять функцию для вычисления суммы перекрывающихся ячеек.
Возможно, я упускаю что-то очевидное, или это ограничение функции merge
.Любой совет о том, как генерировать этот вывод, избегая extend
& stack
, будет принята с благодарностью!
Код:
# read in specific route rasters
raster_list <- list.files('Data/Raw/tracks/rasterized/', full.names = TRUE)
for(i in 1:length(raster_list)){
# get file name
file_name <- raster_list[i]
# read raster in
road_rast_i <- raster(file_name)
if(i == 1){
combined_raster <- road_rast_i
} else {
# merge rasters and calc overlap
combined_raster <- merge(combined_raster, road_rast_i,
fun = function(x, y){sum(x@data@values, y@data@values)})
}
}
Изображение токового выхода:
Изображение одного маршрута (пример):
Изображениеисправить: