Я оглянулся и не могу найти рабочее решение. Немного фона:
Я использую R для поиска необработанных изображений на основе проверенного имени изображения (все это работает). Проблема в том, что существует не менее 30 каталогов дат, в каждом из которых имеется большое количество временных каталогов, которые разделены на 10-минутные бины. Поиск во всех бинах или только в родительском каталоге требует слишком много вычислений. Примером формата корзины будет
R_Experiments\RawImageFinder\Raw\2016-10-08\1536
R_Experiments\RawImageFinder\Raw\2016-10-08\1546
Важно отметить, что ячейки не соответствуют их начальным минутам; это может измениться, и здесь во лжи проблема.
Я знаю, в какое время изображение было взято из имени файла, используя следующий бит кода
SingleImage <- Pia1.2016-10-08.1103+N2353_hc.tif
TimeDir <- sub('.*?\\.\\d{4}-\\d{2}-\\d{2}\\.(\\d{2})(\\d{2}).*', '\\1:\\2', SingleImage)
TimeDir <- sub(':','', TimeDir)
#
> print(TimeDir)
[1] "1103"
Таким образом, изображение может находиться в любой из следующих корзин:
\1053,\1054,\1055,..you get the idea...,\1112,\1113
это зависит только от того, когда корзина была запущена. Поэтому я хочу, чтобы код "поиска" просматривал все возможные ячейки, которые находятся в пределах минимальных значений с обеих сторон (как в примере выше), очевидно, что некоторые из них не будут существовать.
Я думал о том, чтобы сделать:
TimeDir1 <- as.numeric(TimeDir)+1
TimeDir2 <- as.numeric(TimeDir)+2
но проблема возникает, если мы доберемся до 59 минут, потому что нет такой вещи, как 61 минута в час (ха-ха).
Затем я использую следующее, чтобы указать, какие каталоги искать, хотя я немного застрял и в том, как заставить его искать в нескольких каталогах.
Directorytosearch <- ParentDirectory
#this has the \ in it, same for time, it works
Directorytosearch <- sub('$',paste(DateDir), Directorytosearch)
Directorytoserach <- sub('$',paste(TimeDir), Directorytoserach)
IMAGEtocopy <- list.files(
path = c(Directorytosearch),
recursive = TRUE,
include.dirs = FALSE,
full.names = FALSE,
pattern = SingleImagePattern)
Любая помощь действительно была бы великолепна!
Может быть, использовать функцию strptime
?
Большое спасибо
Jim
Обновление для @ Nya
test <- strptime("1546", format = "%H%M")
dirs[select.image.dir(test, dirs.time)]
> dirs[select.image.dir(test, dirs.time)]
[1] "test/1546"