Слияние растров различной степени, сумма значений перекрывающихся ячеек в R - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь объединить растеризованные полилинии, которые имеют различную протяженность, чтобы создать единую поверхность, указывающую, сколько раз ячейки перекрываются.

Из-за вычислительных ограничений (учитывая размер моей учебной области) я не могу использовать 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)})
  }
 }

Изображение токового выхода:

Image of current output

Изображение одного маршрута (пример):

Image of a single route (example)

Изображениеисправить:

Image of fix)

1 Ответ

0 голосов
/ 07 июня 2018

решаемая.Есть функция мозаики, которая позволяет следующее:

combined_raster <- mosaic(combined_raster, road_rast_i, fun = sum)
...