Я хотел бы создать кирпичный растр из большого количества файлов .asc на основе их имен. Я пробовал несколько способов (см. ниже), но безуспешно:
setwd("C:/")
b <- brick(list.files(pattern = glob2rx("total_aground_live_biomass_2000_*_*.asc")))
b <- brick(system.file(pattern = glob2rx("total_aground_live_biomass_2000_*_*.asc"), package = "Raster"))
Может ли кто-нибудь помочь мне? Мне также интересно, как использовать glob2rx только для чтения файлов со следующим шаблоном: total_aground_live_biomass_[только годы 1995, 2000, 2005]__*.asc. Большое спасибо!
Ответ 1 · рейтинг 1 · Val
Если я правильно понял ваш вопрос, у вас есть .asc файлов за разные годы, которые вы хотите сложить вместе по годам.
Предполагая, что файлы находятся в одном каталоге (для простоты назовем его datadir) и имеют согласованное соглашение об именах, я бы сделал это так:
library(raster)
#vector of years
yr <- c('1995','2000','2005')
# file name pattern
patt <- 'total_aground_live_biomass_(*.).asc$'
#list files, optionally without recursive
fls <- list.files(datadir,patt,full.names=TRUE,recursive=TRUE)
#stack files per year
stcks <- lapply(yr,function(x) stack(grep(x,fls,value=TRUE)))
Это должно дать вам хороший список из трех растровых стеков, по одному на каждый год, как определено в yr. Вам нужно использовать stack для объединения файлов с диска вместе. Если после этого вам все еще нужно, чтобы они были растровыми кирпичиками, вы можете просто скрыть их с помощью brick.