Я пытаюсь извлечь значения одной и той же ячейки [i, j] из ~ 14000 файлов img. Я настроил рабочую функцию, которая делала это для небольших партий, где было разумно поместить файлы в мой каталог, но теперь, когда я готов взглянуть на больший набор данных, я застрял. IMG файлы организованы по годам, с 365 отдельными файлами для каждой из 38 зим. Каждая зима имеет свою собственную папку (WS1978_1979data, WS1979_1980data и т. Д.), И каждый день имеет свой собственный файл, содержащий данные о глубине снега для большой спутниковой сетки в Арктике (ssmi_n_snowdepth_5day_1978307.img, ssmi_n_snowdepth_5day_1978308.img и т. Д.), Начиная с октября до 30 сентября следующего года. Моя последняя надежда (по крайней мере, на этом этапе) - создать вектор из 365 глубин снега для интересующей ячейки и делать это для каждого года в наборе данных.
Я могу указать соответствующий путь к файлу, чтобы сгенерировать список файлов, которые я хочу за данный год, но затем, когда я использую свою функцию для извлечения конкретной ячейки, которую я хочу, она ищет файл в каталоге, который неправильно. Можете ли вы помочь мне? Мне кажется, что я упускаю что-то простое, но я не смог найти то, что мне нужно.
Пример составления списка всех файлов на зиму 1979-1980 годов:
w1979s1980 <- as.vector(list.files(path="SnowDepth/WS1979_1980data", pattern=".img"))`
Функция для извлечения глубины снега из данной ячейки для всех файлов в этом списке:
cell.depthKotz <- function(depthfile){
depth.val <- c()
for(i in 1:length(depthfile)) {
depth.mat <- matrix(readBin(depthfile[i], what="integer", n=136192, size=2, endian="little"),
nrow=448, ncol=304, byrow=TRUE)
depth.val[i] <- depth.mat[187,65]
depth.val[depth.val == 110] <- NA
depth.val[depth.val == 120] <- NA
depth.val[depth.val == 130] <- NA
depth.val[depth.val == 140] <- NA
depth.val[depth.val == 150] <- NA
depth.val[depth.val == 160] <- NA
}
return(depth.val)
}
И затем, вероятно, сохраните это как вектор, когда я запустил функцию для данного года:
Sdepths1978.1979 <- as.vector(cell.depthKotz(w1979s1980))
Я должен добавить, что я очень новичок во всем этом, поскольку даже знаю, как сформулировать то, что я прошу, поэтому дайте мне знать, если мне нужно отредактировать заголовок / вопрос или добавить больше деталей. Меня не волнует время выполнения, если вы видите подобную неэффективность в вышеприведенных функциях, но если есть очевидные изменения, которые означали бы меньше повторяющихся / ручных усилий от меня и более автоматизированные усилия от R, не стесняйтесь говорить об этом. Спасибо за вашу помощь!