Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Откройте список файлов .asc и создайте кирпич или стопку

Автор вопроса: CecileОтветов: 1

Я хотел бы создать кирпичный растр из большого количества файлов .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. Большое спасибо!

rraster

Ответы

Ответ 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.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы