Имя выходного файла будет таким же, как у входного файла с дополнительным именем в R - PullRequest
2 голосов
/ 20 марта 2020

Я использую растровый пакет для обработки некоторых растровых файлов / спутниковых данных. Я использовал ниже для выбора пути и моего входного изображения:

inputfile <- choose.files(default = "D:\\March\\NewData\\2017", caption = "Select files",
                            multi = TRUE, filters = Filters,
                            index = nrow(Filters))

это дает:

inputfile = D:\\March\\NewData\\2017\\chlorophyll.tiff

Чтобы получить мой обработанный растровый файл, сохраненный в том же каталоге и с тем же именем файла, но с дополнительным словом, я должен скопировать и вставить:

D:\\March\\NewData\\2017\\chlorophyll.tiff

ниже (и вручную добавить '_new')

writeRaster(stack_cor, "D:\\March\\NewData\\2017\\chlorophyll_new.tiff", format='GTiff', 

Поскольку мне нужно сделать это повторно, я хотелось бы получить inputfile автоматически, а затем просто вручную добавить к нему _new - вместо того, чтобы копировать и вставлять inputfile в вывод, то есть writeRaster(........) каждый раз.

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Вот для чего регулярные выражения :

inputfile <- "D:\\March\\NewData\\2017\\chlorophyll.tiff"
outputfile <- gsub("\\.tiff$", "_new.tiff", inputfile)

outputfile

производит:

[1] "D:\\March\\NewData\\2017\\chlorophyll_new.tiff"
0 голосов
/ 20 марта 2020
fn <- "D:\\March\\NewData\\2017\\chlorophyll.tiff"
paste0(tools::file_path_sans_ext(fn), "_new.", tools::file_ext(fn))
# [1] "D:\\March\\NewData\\2017\\chlorophyll_new.tiff"

(Пакет tools устанавливается с базой R, он просто не подключен по умолчанию.)

Также

gsub("\\.tiff$", "_new.tiff", fn)
# [1] "D:\\March\\NewData\\2017\\chlorophyll_new.tiff"

Если у вас есть множество возможных расширения файлов, затем

gsub("\\.(tiff|jpeg|jpg|gif|png|something)$", "_new.tiff", fn)
# [1] "D:\\March\\NewData\\2017\\chlorophyll_new.tiff"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...